Cuprins:

MATLAB Easy Face Detection: 4 pași
MATLAB Easy Face Detection: 4 pași

Video: MATLAB Easy Face Detection: 4 pași

Video: MATLAB Easy Face Detection: 4 pași
Video: Как определить черты лица с помощью Matlab | Код Matlab| ~xRay Пикси 2024, Iulie
Anonim
MATLAB Easy Face Detection
MATLAB Easy Face Detection

Scopul principal al acestor instructabile este de a arăta cât de ușor va fi procesarea imaginii, cu ajutorul MATLAB

Detectarea și urmărirea feței a fost un domeniu de cercetare important și activ, așa că de aceea voi explica cum se poate face cu Matlab.

În următorul tutorial voi face următoarele lucruri:

1. detectarea fețelor într-o imagine și numărarea.

2. detectarea ochilor umani într-o imagine și numărare.

3. detectarea gurii umane într-o imagine și numărare.

4. detectarea fețelor într-un videoclip și numărarea.

5. detectarea ochilor umani într-un videoclip și numărare.

6. detectarea gurii umane într-un videoclip și numărare.

Pasul 1: detectarea fețelor într-o imagine și numărare

Detectarea fețelor într-o imagine și numărarea
Detectarea fețelor într-o imagine și numărarea

SCRIPT MATLAB:

ștergeți toate% ștergeți toate obiectelesclc% ștergeți ecranul

FDetect = vision. CascadeObjectDetector; % Detectați obiecte folosind algoritmul Viola-Jones

% Citiți imaginea de intrare

image = imread ('c: / Deskotp / HarryPotter.jpg'); % încărcați imaginea utilizând imread ('locația fișierului / nume.jpg')

BB = pas (FDetect, imagine); % Returnează valorile Bounding Box pe baza numărului de obiecte

figura, imshow (I);

stai asa

pentru i = 1: dimensiune (BB, 1)

dreptunghi ('Poziție', BB (i,:), 'LinieLățime', 5, 'LinieStil', '-', 'EdgeColor', 'r'); % r-roșu, g-verde, b-albastru

Sfârșit

titlu („Detectarea feței”); % titlu al figurii off;

Rezultatul va fi ca imaginea care a fost atașată în acest pas în sine

Pentru a număra numărul fețelor detectate:

ștergeți toate% ștergeți toate obiectelesclc% ștergeți ecranul

FDetect = vision. CascadeObjectDetector; % Detectați obiecte utilizând algoritmul Viola-Jones% Citiți imaginea de intrare

image = imread ('c: / Deskotp / HarryPotter.jpg'); % încărcați imaginea utilizând imread ('locația fișierului / nume.jpg')

BB = pas (FDetect, imagine); % Returnează valorile Bounding Box pe baza numărului de obiecte

figura,

imshow (I);

stai asa

pentru i = 1: dimensiune (BB, 1)

dreptunghi ('Poziție', BB (i,:), 'LinieLățime', 5, 'LinieStil', '-', 'EdgeColor', 'r'); % r-roșu, g-verde, b-albastru

Sfârșit

text (10, 10, strcat ('\ color {red} No of faces =', num2str (length (BB)))); Această linie vă oferă numărul

titlu („Detectarea feței”); % titlu al figurii

aștepta;

Pasul 2: detectarea ochilor umani într-o imagine și numărare

Detectarea ochilor umani într-o imagine și numărare
Detectarea ochilor umani într-o imagine și numărare

SCRIPT MATLAB:

curata tot;

clc;

% Pentru a detecta EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

% Citiți intrarea

image = imread ('c: / Deskotp / HarryPotter.jpg'); % încărcați imaginea utilizând imread ('locația fișierului / nume.jpg')

BB = pas (EyeDetect, imagine);

figura,

imshow (imagine);

dreptunghi ('Poziție', BB, 'LinieLățime', 4, 'LinieStil', '-', 'EdgeColor', 'b');

titlu („Detectarea ochilor”);

Rezultatul va fi ca imaginea care a fost atașată în acest pas în sine

Pentru a număra numărul de ochi detectați:

ștergeți toate; clc; % Pentru a detecta Ochii

EyeDetect = vision. CascadeObjectDetector („EyePairBig”);

image = imread ('c: / Deskotp / HarryPotter.jpg'); % încărcați imaginea utilizând imread ('locația fișierului / nume.jpg')

BB = pas (EyeDetect, imagine); figura, imshow (imagine); dreptunghi ('Poziție', BB, 'LinieLățime', 4, 'LinieStil', '-', 'EdgeColor', 'b');

text (10, 10, strcat ('\ color {red} No of eyes =', num2str (length (BB))));

titlu („Detectarea ochilor”);

Pasul 3: detectarea gurii umane într-o imagine și numărare

Detectarea gurii umane într-o imagine și numărare
Detectarea gurii umane într-o imagine și numărare

SCRIPT MATLAB:

curata tot;

clc;

% Pentru a detecta Gura

MouthDetect = vision. CascadeObjectDetector („Gură”, „MergeThreshold”, 16);

% Citiți imaginea de intrare = imread ('c: / Deskotp / HarryPotter.jpg'); % încărcați imaginea utilizând imread ('locația fișierului / nume.jpg')

BB = pas (MouthDetect, imagine);

figura, imshow (imagine);

stai asa

pentru i = 1: dimensiune (BB, 1)

dreptunghi ('Poziție', BB (i,:), 'LinieLățime', 4, 'LinieStil', '-', 'EdgeColor', 'r');

Sfârșit

titlu („Detectarea gurii”);

aștepta;

Rezultatul va fi ca imaginea care a fost atașată în acest pas în sine

Pentru a număra numărul de Gură detectată:

curata tot; clc; % Pentru a detecta Gura

MouthDetect = vision. CascadeObjectDetector („Gură”, „MergeThreshold”, 16); % Citiți intrarea

image = imread ('c: / Deskotp / HarryPotter.jpg'); % încărcați imaginea utilizând imread ('locația fișierului / nume.jpg') BB = step (MouthDetect, imagine);

figura, imshow (imagine);

stai asa

pentru i = 1: dimensiune (BB, 1)

dreptunghi ('Poziție', BB (i,:), 'LinieLățime', 4, 'LinieStil', '-', 'EdgeColor', 'r');

Sfârșit

text (10, 10, strcat ('\ color {red} Număr de guri =', num2str (lungime (BB))));

titlu („Detectarea gurii”);

aștepta;

Pasul 4: detectarea fețelor, ochilor, gurii într-un videoclip și numărarea

curata tot;

inchide tot;

clc;

% Capturați cadrele video utilizând funcția de intrare video% Trebuie să înlocuiți rezoluția și numele adaptorului instalat.

a = vision. CascadeObjectDetector; % pentru a detecta fața

% a = vision. CascadeObjectDetector ('Gură', 'MergeThreshold', 16); % pentru a detecta gura

% a = vision. CascadeObjectDetector ('EyePairBig'); % pentru a detecta ochii

% folosiți oricine (față / ochi / gură)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Setați proprietățile obiectului video

set (vid, 'FramesPerTrigger', Inf);

set (vid, 'ReturnedColorspace', 'rgb');

vid. FrameGrabInterval = 5; % începeți achiziția video aici

start (vid)% Setați o buclă care se oprește după 100 de cadre de achiziție

while (vid. FramesAcquired <= 200)% Obține instantaneul cadrului curent

date = getsnapshot (vid);

imshow (date);

b = pas (a, date);

stai asa

pentru i = 1: dimensiune (b, 1)

dreptunghi ('poziție', b (i,:), 'lățime de linie', 2, 'linestyle', '-', 'EdgeColor', 'r');

Sfârșit

stai departe

text (10, 10, strcat ('\ color {green} No of faces =', num2str (length (b))));

Sfârșit

stop (vid); % Opriți achiziția video

Recomandat: