Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Bu təlimatların əsas məqsədi, MATLAB -ın köməyi ilə görüntü emalının nə qədər asan olacağını göstərməkdir.
Üz tanıma və izləmə vacib və aktiv bir araşdırma sahəsi idi, buna görə də bunun Matlab ilə necə edilə biləcəyini izah edəcəyəm.
Aşağıdakı dərslikdə aşağıdakı işləri edəcəyəm:
1. şəkildəki üzlərin aşkarlanması və sayılması.
2. bir görüntüdə insan gözlərinin aşkarlanması və sayılması.
3. görüntüdə insan ağzını aşkar etmək və saymaq.
4. Videoda üzlərin aşkarlanması və sayılması.
5. Videoda insan gözlərinin aşkarlanması və sayılması.
6. Videoda insan ağzını aşkar etmək və saymaq.
Addım 1: Bir Şəkildə Üzlərin Tapılması və Sayılması
MATLAB SKRİTİ:
hamısını silmək bütün obyektləri təmizləmək
FDetect = görmə. CascadeObjectDetector; Viola-Jones Alqoritmi istifadə edərək obyektləri aşkar edin
Giriş şəklini oxuyun
image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('fayl yeri / name.jpg') istifadə edərək görüntünü yükləyin
BB = addım (FDetect, görüntü); Obyektlərin sayına əsaslanaraq Bounding Box dəyərlərini qaytarır
rəqəm, imshow (I);
gözlə
i = 1 üçün: ölçü (BB, 1)
düzbucaqlı ('Mövqe', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -qırmızı, g-yaşıl, b-mavi
bitmək
başlıq ('Üz Algılama'); fiqurun adı %;
Nəticə, bu addımın özündə əlavə olunan şəkil kimi olacaq
Tapılan üzlərin sayını hesablamaq üçün:
hamısını silmək bütün obyektləri silmək
FDetect = görmə. CascadeObjectDetector; Viola-Jones Alqoritmi istifadə edərək obyektlərin aşkarlanması Giriş şəklini oxuyun
image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('fayl yeri / name.jpg') istifadə edərək görüntünü yükləyin
BB = addım (FDetect, görüntü); Obyektlərin sayına əsaslanaraq Bounding Box dəyərlərini qaytarır
rəqəm,
imshow (I);
gözlə
i = 1 üçün: ölçü (BB, 1)
düzbucaqlı ('Mövqe', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -qırmızı, g-yaşıl, b-mavi
bitmək
mətn (10, 10, strcat ('\ color {red} No of face =', num2str (length (BB))))); Bu xətt sizə sayını verir
başlıq ('Üz Algılama'); rəqəmin adı %
dayandırmaq;
Addım 2: Bir Şəkildə İnsan Gözlərinin Algılanması və Sayılması
MATLAB SKRİTİ:
hamısını sil, hamısını təmizlə;
clc;
EyesEyeDetect aşkar etmək üçün = vision. CascadeObjectDetector ('EyePairBig');
Giriş oxuyun
image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('fayl yeri / name.jpg') istifadə edərək görüntünü yükləyin
BB = addım (EyeDetect, görüntü);
rəqəm,
imshow (şəkil);
düzbucaqlı ('Mövqe', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
başlıq ('Gözlərin Algılanması');
Nəticə, bu addımın özündə əlavə olunan şəkil kimi olacaq
Aşkarlanan gözlərin sayını hesablamaq üçün:
hamısını təmizləyin; clc; Gözləri aşkar etmək üçün
EyeDetect = görmə. CascadeObjectDetector ('EyePairBig');
image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('fayl yeri / name.jpg') istifadə edərək görüntünü yükləyin
BB = addım (EyeDetect, görüntü); rəqəm, imshow (şəkil); düzbucaqlı ('Mövqe', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
mətn (10, 10, strcat ('\ color {red} No of eyes =', num2str (length (BB)))));
başlıq ('Gözlərin Algılanması');
Addım 3: Bir Görünüşdə İnsan Ağzının Algılanması və Sayılması
MATLAB SKRİTİ:
hamısını sil, hamısını təmizlə;
clc;
Mouth aşkar etmək üçün
MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16);
Giriş şəklini oxuyun = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('fayl yeri / name.jpg') istifadə edərək görüntünü yükləyin
BB = addım (MouthDetect, görüntü);
rəqəm, imshow (şəkil);
gözlə
i = 1 üçün: ölçü (BB, 1)
düzbucaqlı ('Mövqe', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
bitmək
başlıq ('Ağız Algılama');
dayandırmaq;
Nəticə, bu addımın özündə əlavə olunan şəkil kimi olacaq
Tapılan ağız sayını hesablamaq üçün:
hamısını sil, hamısını təmizlə; clc; Mouth aşkar etmək üçün
MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); Giriş oxuyun
image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('fayl yeri / name.jpg') istifadə edərək görüntünü yükləyin BB = addım (MouthDetect, şəkil);
rəqəm, imshow (şəkil);
gözlə
i = 1 üçün: ölçü (BB, 1)
düzbucaqlı ('Mövqe', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
bitmək
mətn (10, 10, strcat ('\ color {red} No mouths =', num2str (length (BB)))));
başlıq ('Ağız Algılama');
dayandırmaq;
Addım 4: Videoda Üzləri, Gözləri, Ağzını Tapmaq və Saymaq
hamısını sil, hamısını təmizlə;
hamısını bağlamaq;
clc;
Video giriş funksiyasından istifadə edərək video çərçivələri çəkin Çözünürlüyü və quraşdırılmış adapterinizin adını dəyişdirməlisiniz.
a = görmə. CascadeObjectDetector; üz aşkar etmək üçün
% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); ağız aşkar etmək üçün
% a = görmə. CascadeObjectDetector ('EyePairBig'); %gözləri aşkar etmək üçün
%hər hansı birini istifadə edin (üz/göz/ağız)
vid = videoinput ('winvideo', 1, 'yuy2_320x240'); Video obyektinin xüsusiyyətlərini təyin edin
dəsti (vid, 'FramesPerTrigger', Inf);
set (vid, 'ReturnedColorspace', 'rgb');
vid. FrameGrabInterval = 5; burada video əldə etməyə başlayın
start (vid) % 100 kadr əldə etdikdən sonra dayanacaq bir döngə təyin edin
while (vid. FramesAcquired <= 200) % Cari çərçivənin anlıq görüntüsünü əldə edin
data = getsnapshot (vid);
imshow (məlumatlar);
b = addım (a, məlumat);
gözlə
i = 1 üçün: ölçü (b, 1)
düzbucaqlı ('mövqe', b (i,:), 'xətt genişliyi', 2, 'xətti üslub', '-', 'EdgeColor', 'r');
bitmək
dayanmaq
mətn (10, 10, strcat ('\ color {green} No of face =', num2str (length (b)))));
bitmək
dayandır (vid); Video əldə etməyi dayandırın