Spisu treści:

Łatwe wykrywanie twarzy MATLAB: 4 kroki
Łatwe wykrywanie twarzy MATLAB: 4 kroki

Wideo: Łatwe wykrywanie twarzy MATLAB: 4 kroki

Wideo: Łatwe wykrywanie twarzy MATLAB: 4 kroki
Wideo: Хуан Энрикез: Ваша жизнь в Сети — как татуировка, всегда с вами 2024, Lipiec
Anonim
Łatwe wykrywanie twarzy MATLAB
Łatwe wykrywanie twarzy MATLAB

Głównym celem tej instrukcji jest pokazanie, jak łatwe będzie przetwarzanie obrazu przy pomocy MATLAB

Wykrywanie i śledzenie twarzy było ważną i aktywną dziedziną badań, dlatego wyjaśnię, jak można to zrobić za pomocą Matlaba.

W poniższym tutorialu zrobię poniższe rzeczy:

1.wykrywanie twarzy na obrazie i liczenie.

2.wykrywanie ludzkich oczu na obrazie i liczenie.

3.wykrywanie ust człowieka na obrazie i liczenie.

4.detecting twarze w filmie i liczenie.

5.wykrywanie ludzkich oczu w filmie i liczenie.

6. wykrywanie ludzkich ust w filmie i liczenie.

Krok 1: Wykrywanie twarzy na obrazie i liczenie

Wykrywanie twarzy na obrazie i liczenie
Wykrywanie twarzy na obrazie i liczenie

SCENARIUSZ MATLABOWY:

wyczyść wszystko % wyczyść wszystkie obiektyclc % wyczyść ekran

FDetect = wizja. CascadeObjectDetector; %Wykryj obiekty za pomocą algorytmu Viola-Jones

% Przeczytaj obraz wejściowy

image = imread('c:\Deskotp\HarryPotter.jpg'); % załaduj obraz za pomocą imread('lokalizacja pliku\nazwa.jpg')

BB = krok (FDetect, obraz); %Zwraca wartości obwiedni na podstawie liczby obiektów

rysunek, imshow(I);

trzymać się

dla i = 1:rozmiar(BB, 1)

prostokąt('Pozycja', BB(i,:), 'Szerokość Linii', 5, 'Styl Linii', '-', 'Kolor Krawędzi', 'r'); %r -czerwony, g-zielony, b-niebieski

kończyć się

title('Wykrywanie twarzy'); %tytuł figury wyłączony;

Wynik będzie podobny do obrazu, który został dołączony w tym kroku

Aby policzyć liczbę wykrytych twarzy:

wyczyść wszystko % wyczyść wszystkie obiektyclc % wyczyść ekran

FDetect = wizja. CascadeObjectDetector; %Wykryj obiekty za pomocą algorytmu Viola-Jones %Odczytaj obraz wejściowy

image = imread('c:\Deskotp\HarryPotter.jpg'); % załaduj obraz za pomocą imread('lokalizacja pliku\nazwa.jpg')

BB = krok (FDetect, obraz); %Zwraca wartości obwiedni na podstawie liczby obiektów

postać,

imshow(I);

trzymać się

dla i = 1:rozmiar(BB, 1)

prostokąt('Pozycja', BB(i,:), 'Szerokość Linii', 5, 'Styl Linii', '-', 'Kolor Krawędzi', 'r'); %r -czerwony, g-zielony, b-niebieski

kończyć się

text(10, 10, strcat('\kolor{czerwony} Liczba twarzy =', num2str(długość(BB)))); Ta linia daje ci liczbę

title('Wykrywanie twarzy'); % tytuł figury

wstrzymaj się;

Krok 2: Wykrywanie ludzkich oczu na obrazie i liczenie

Wykrywanie ludzkich oczu na obrazie i liczenie
Wykrywanie ludzkich oczu na obrazie i liczenie

SCENARIUSZ MATLABOWY:

Wyczyść wszystko;

kl;

%Aby wykryć EyesEyeDetect = vision. CascadeObjectDetector('EyePairBig');

% Przeczytaj dane wejściowe

image = imread('c:\Deskotp\HarryPotter.jpg'); % załaduj obraz za pomocą imread('lokalizacja pliku\nazwa.jpg')

BB=krok(Wykrywanie oczu, obraz);

postać,

imshow(obraz);

prostokąt('Pozycja', BB, 'Szerokość Linii', 4, 'Styl Linii', '-', 'Kolor Krawędzi', 'b');

title('Wykrywanie oczu');

Wynik będzie podobny do obrazu, który został dołączony w tym kroku

Aby policzyć liczbę wykrytych oczu:

wyczyść wszystko;clc; % Aby wykryć oczy

EyeDetect = vision. CascadeObjectDetector('EyePairBig');

image = imread('c:\Deskotp\HarryPotter.jpg'); % załaduj obraz za pomocą imread('lokalizacja pliku\nazwa.jpg')

BB=step(EyeDetect, obraz);figura, imshow(obraz); prostokąt('Pozycja', BB, 'Szerokość Linii', 4, 'Styl Linii', '-', 'Kolor Krawędzi', 'b');

text(10, 10, strcat('\kolor{czerwony} Liczba oczu =', num2str(długość(BB))));

title('Wykrywanie oczu');

Krok 3: Wykrywanie ust człowieka na obrazie i liczenie

Wykrywanie ust człowieka na obrazie i liczenie
Wykrywanie ust człowieka na obrazie i liczenie

SCENARIUSZ MATLABOWY:

Wyczyść wszystko;

kl;

%Aby wykryć usta

MouthDetect = wizja. CascadeObjectDetector('Usta', 'MergeThreshold', 16);

%Odczytaj obraz wejściowy = imread('c:\Deskotp\HarryPotter.jpg'); % załaduj obraz za pomocą imread('lokalizacja pliku\nazwa.jpg')

BB=krok(Wykrywanie ust, obraz);

rysunek, imshow(obraz);

trzymać się

dla i = 1:rozmiar(BB, 1)

prostokąt('Pozycja', BB(i,:), 'Szerokość Linii', 4, 'Styl Linii', '-', 'Kolor Krawędzi', 'r');

kończyć się

title('Wykrywanie ust');

wstrzymaj się;

Wynik będzie podobny do obrazu, który został dołączony w tym kroku

Aby policzyć liczbę wykrytych ust:

Wyczyść wszystko; kl; %Aby wykryć usta

MouthDetect = wizja. CascadeObjectDetector('Usta', 'MergeThreshold', 16); % Przeczytaj dane wejściowe

image = imread('c:\Deskotp\HarryPotter.jpg'); % załaduj obraz używając imread('lokalizacja pliku\name.jpg') BB=step(MouthDetect, image);

rysunek, imshow(obraz);

trzymać się

dla i = 1:rozmiar(BB, 1)

prostokąt('Pozycja', BB(i,:), 'Szerokość Linii', 4, 'Styl Linii', '-', 'Kolor Krawędzi', 'r');

kończyć się

text(10, 10, strcat('\kolor{czerwony} Liczba ust =', num2str(długość(BB))));

title('Wykrywanie ust');

wstrzymaj się;

Krok 4: Wykrywanie twarzy, oczu, ust w filmie i liczenie

Wyczyść wszystko;

zamknij wszystko;

kl;

% Przechwytywanie klatek wideo przy użyciu funkcji wejścia wideo % Musisz zmienić rozdzielczość i nazwę zainstalowanego adaptera.

a=wizja. CascadeObjectDetector; % wykryć twarz

% a=vision. CascadeObjectDetector('Usta', 'MergeThreshold', 16); % wykryć usta

% a=vision. CascadeObjectDetector('ParaOczyDuże'); % do wykrywania oczu

% używaj tylko jednego (twarz/oczy/usta)

vid = videoinput('winvideo', 1, 'yuy2_320x240'); % Ustaw właściwości obiektu wideo

set(vid, 'FramesPerTrigger', Inf);

set(vid, 'Zwrócona przestrzeń kolorów', 'rgb');

vid. FrameGrabInterval = 5; %rozpocznij pobieranie wideo tutaj

start(vid) % Ustawia pętlę, która zatrzymuje się po 100 klatkach akwizycji

while(vid. FramesAcquired<=200) % Pobierz zrzut bieżącej klatki

dane = pobieranapshot(vid);

imshow(dane);

b=krok(a, dane);

trzymać się

dla i=1:rozmiar(b, 1)

prostokąt('pozycja', b(i,:), 'szerokość linii', 2, 'styl linii', '-', 'Kolor krawędzi', 'r');

kończyć się

wstrzymaj się

text(10, 10, strcat('\color{green} Liczba twarzy =', num2str(length(b))));

kończyć się

stop(vid); % Zatrzymaj akwizycję wideo

Zalecana: