İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu talimatın temel amacı, MATLAB yardımıyla görüntü işlemenin ne kadar kolay olacağını göstermektir.
Yüz tanıma ve izleme önemli ve aktif bir araştırma alanı olmuştur, bu yüzden Matlab ile nasıl yapılabileceğini anlatacağım.
Aşağıdaki eğitimde aşağıdaki şeyleri yapacağım:
1. Görüntüdeki yüzleri algılama ve sayma.
2. Bir görüntüde insan gözünü algılama ve sayma.
3. Bir görüntüde insan ağzını algılama ve sayma.
4. Videodaki yüzleri algılama ve sayma.
5. Videodaki insan gözünü algılama ve sayma.
6. Videodaki insan ağzını algılama ve sayma.
Adım 1: Bir Görüntüdeki Yüzleri Algılama ve Sayma
MATLAB Scripti:
tümünü temizle % tüm nesneleri temizleclc % ekranı temizle
FDetect = vision. CascadeObjectDetector; %Viola-Jones Algoritmasını kullanarak nesneleri algıla
%Giriş görüntüsünü oku
resim = imread('c:\Deskotp\HarryPotter.jpg'); % imread('file location\name.jpg') kullanarak resmi yükleyin
BB = step(FDetect, image); %Nesne sayısına bağlı olarak Sınırlayıcı Kutu değerlerini döndürür
şekil, imshow(I);
devam etmek
i = 1:boyut(BB, 1) için
dikdörtgen('Konum', BB(i,:), 'Çizgi Genişliği', 5, 'ÇizgiStyle', '-', 'EdgeColor', 'r'); %r -kırmızı, g-yeşil, b-mavi
son
title('Yüz Algılama'); rakamın %başlığı kapalı;
Sonuç, bu adımda eklenen resim gibi olacaktır.
Algılanan yüzlerin sayısını saymak için:
tümünü temizle % tüm nesneleri temizleclc % ekranı temizle
FDetect = vision. CascadeObjectDetector; %Viola-Jones Algoritmasını kullanarak nesneleri algıla %Giriş görüntüsünü oku
resim = imread('c:\Deskotp\HarryPotter.jpg'); % imread('file location\name.jpg') kullanarak resmi yükleyin
BB = step(FDetect, image); %Nesne sayısına bağlı olarak Sınırlayıcı Kutu değerlerini döndürür
figür,
imshow(I);
devam etmek
i = 1:boyut(BB, 1) için
dikdörtgen('Konum', BB(i,:), 'Çizgi Genişliği', 5, 'ÇizgiStyle', '-', 'EdgeColor', 'r'); %r -kırmızı, g-yeşil, b-mavi
son
text(10, 10, strcat('\color{red} Yüz sayısı =', num2str(uzunluk(BB)))); Bu satır size sayımı verir
title('Yüz Algılama'); şeklin %başlığı
uzak dur;
Adım 2: Bir Görüntüde İnsan Gözlerini Tespit Etme ve Sayma
MATLAB Scripti:
hepsini temizle;
clc;
%EyesEyeDetect algılamak için = vision. CascadeObjectDetector('EyePairBig');
%Girişi oku
resim = imread('c:\Deskotp\HarryPotter.jpg'); % imread('file location\name.jpg') kullanarak resmi yükleyin
BB=step(EyeDetect, görüntü);
figür,
imshow(resim);
dikdörtgen('Konum', BB, 'Çizgi Genişliği', 4, 'ÇizgiStyle', '-', 'EdgeColor', 'b');
title('Göz Algılama');
Sonuç, bu adımda eklenen resim gibi olacaktır.
Tespit edilen göz sayısını saymak için:
hepsini temizle;clc; %Gözleri algılamak için
EyeDetect = vision. CascadeObjectDetector('EyePairBig');
resim = imread('c:\Deskotp\HarryPotter.jpg'); % imread('file location\name.jpg') kullanarak resmi yükleyin
BB=step(EyeDetect, image);şekil, imshow(image); dikdörtgen('Konum', BB, 'Çizgi Genişliği', 4, 'ÇizgiStyle', '-', 'EdgeColor', 'b');
text(10, 10, strcat('\color{red} Göz sayısı =', num2str(uzunluk(BB))));
title('Göz Algılama');
Adım 3: Bir Görüntüde İnsan Ağzını Tespit Etme ve Sayma
MATLAB Scripti:
hepsini temizle;
clc;
%Ağı algılamak için
MouthDetect = vision. CascadeObjectDetector('Mouth', 'MergeThreshold', 16);
%Giriş resmini oku = imread('c:\Deskotp\HarryPotter.jpg'); % imread('file location\name.jpg') kullanarak resmi yükleyin
BB=step(MouthDetect, görüntü);
şekil, imshow(image);
devam etmek
i = 1:boyut(BB, 1) için
dikdörtgen('Konum', BB(i,:), 'Çizgi Genişliği', 4, 'ÇizgiStyle', '-', 'EdgeColor', 'r');
son
title('Ağız Algılama');
uzak dur;
Sonuç, bu adımda eklenen resim gibi olacaktır.
Tespit edilen Ağız sayısını saymak için:
hepsini temizle; clc; %Ağı algılamak için
MouthDetect =vision. CascadeObjectDetector('Mouth', 'MergeThreshold', 16); %Girişi oku
resim = imread('c:\Deskotp\HarryPotter.jpg'); %imread('file location\name.jpg') kullanarak görüntüyü yükleyin BB=step(MouthDetect, image);
şekil, imshow(image);
devam etmek
i = 1:boyut(BB, 1) için
dikdörtgen('Konum', BB(i,:), 'Çizgi Genişliği', 4, 'ÇizgiStyle', '-', 'EdgeColor', 'r');
son
text(10, 10, strcat('\color{red} Ağız sayısı =', num2str(uzunluk(BB))));
title('Ağız Algılama');
uzak dur;
Adım 4: Bir Videoda Yüzleri, Gözleri, Ağzı Tespit Etme ve Sayma
hepsini temizle;
hepsini kapat;
clc;
% Video giriş işlevini kullanarak video karelerini yakalayın % Çözünürlüğü ve kurulu adaptör adınızı değiştirmelisiniz.
a=vision. CascadeObjectDetector; Yüz algılamak için %
% a=vision. CascadeObjectDetector('Ağız', 'MergeThreshold', 16); % ağız algılamak için
% a=vision. CascadeObjectDetector('EyePairBig'); % gözleri algılamak için
%sadece birini kullan (yüz/göz/ağız)
vid = videoinput('winvideo', 1, 'yuy2_320x240'); % Video nesnesinin özelliklerini ayarlayın
set(vid, 'FramesPerTrigger', Inf);
set(vid, 'ReturnedColorspace', 'rgb');
vid. FrameGrabInterval = 5; %Video alımını buradan başlatın
start(vid) % 100 kare alımdan sonra duran bir döngü ayarlayın
while(vid. FramesAcquired<=200) % Geçerli karenin anlık görüntüsünü alın
veri = getnapshot(vid);
imshow(veri);
b=adım(a, veri);
devam etmek
i=1 için:boyut(b, 1)
dikdörtgen('konum', b(i,:), 'çizgi genişliği', 2, 'çizgi stili', '-', 'EdgeColor', 'r');
son
uzak durmak
text(10, 10, strcat('\color{green} Yüz sayısı =', num2str(uzunluk(b))));
son
dur(video); % Video alımını durdur