INHOUDSOPGAWE:

MATLAB Maklike gesigsopsporing: 4 stappe
MATLAB Maklike gesigsopsporing: 4 stappe

Video: MATLAB Maklike gesigsopsporing: 4 stappe

Video: MATLAB Maklike gesigsopsporing: 4 stappe
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Julie
Anonim
MATLAB Maklike gesigsopsporing
MATLAB Maklike gesigsopsporing

Die hoofdoel van hierdie instruksies is om aan te toon hoe maklik die beeldverwerking sal wees, met behulp van MATLAB

Gesigsopsporing en -opsporing was 'n belangrike en aktiewe navorsingsveld, so daarom gaan ek verduidelik hoe dit met die Matlab gedoen kan word.

In die volgende tutoriaal gaan ek die onderstaande dinge doen:

1. gesigte in 'n beeld opspoor en tel.

2. die opsporing van menslike oë in 'n beeld en tel.

3. die opsporing van menslike mond in 'n beeld en tel.

4. gesigte in 'n video opspoor en tel.

5. die opspoor van menslike oë in 'n video en tel.

6. die opsporing van menslike mond in 'n video en tel.

Stap 1: Ontdek gesigte in 'n prent en tel

Gesigte in 'n beeld opspoor en tel
Gesigte in 'n beeld opspoor en tel

MATLAB SCRIPT:

maak alles skoon % maak alle voorwerpe skoonsclc % skerm skoon

FDetect = vision. CascadeObjectDetector; Ontdek voorwerpe met behulp van Viola-Jones-algoritme

%Lees die invoerbeeld

image = imread ('c: / Deskotp / HarryPotter.jpg'); laai die prentjie %met behulp van imread ('file location / name.jpg')

BB = stap (FDetect, beeld); %Wys grenswaardes op grond van die aantal voorwerpe

figuur, imshow (I);

hou vas

vir i = 1: grootte (BB, 1)

reghoek ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rooi, g-groen, b-blou

einde

titel ('Gesigsopsporing'); %titel van die figuur af;

Die resultaat sal soos die prentjie wees wat in hierdie stap self aangeheg is

Om die aantal gesigte wat opgespoor is, te tel:

maak alles skoon % maak alle voorwerpe skoonsclc % skerm skoon

FDetect = vision. CascadeObjectDetector; %Ontdek voorwerpe met behulp van Viola-Jones-algoritme Lees die invoerbeeld

image = imread ('c: / Deskotp / HarryPotter.jpg'); laai die prentjie %met behulp van imread ('file location / name.jpg')

BB = stap (FDetect, beeld); %Wys grenswaardes op grond van die aantal voorwerpe

figuur,

imshow (I);

hou vas

vir i = 1: grootte (BB, 1)

reghoek ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rooi, g-groen, b-blou

einde

text (10, 10, strcat ('\ color {red} Aantal gesigte =', num2str (lengte (BB))))); Hierdie reël gee u die telling

titel ('Gesigsopsporing'); %titel van die figuur

hou vas;

Stap 2: Ontdek menslike oë in 'n beeld en tel

Ontdek menslike oë in 'n beeld en tel
Ontdek menslike oë in 'n beeld en tel

MATLAB SCRIPT:

maak alles duidelik;

clc;

%Om EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig') op te spoor;

%Lees die insette

image = imread ('c: / Deskotp / HarryPotter.jpg'); laai die prentjie %met behulp van imread ('file location / name.jpg')

BB = stap (EyeDetect, beeld);

figuur,

imshow (beeld);

reghoek ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

titel ('Oogopsporing');

Die resultaat sal soos die prentjie wees wat in hierdie stap self aangeheg is

Om die aantal opgespoorde oë te tel:

maak alles skoon; clc; %Om oë op te spoor

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); laai die prentjie %met behulp van imread ('file location / name.jpg')

BB = stap (EyeDetect, beeld); figuur, imshow (beeld); reghoek ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

text (10, 10, strcat ('\ color {red} Aantal oë =', num2str (lengte (BB)))));

titel ('Oogopsporing');

Stap 3: Ontdek menslike mond in 'n beeld en tel

Menslike mond in 'n beeld opspoor en tel
Menslike mond in 'n beeld opspoor en tel

MATLAB SCRIPT:

maak alles duidelik;

clc;

%Mond op te spoor

MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16);

%Lees die invoerbeeld = imread ('c: / Deskotp / HarryPotter.jpg'); laai die prentjie %met behulp van imread ('file location / name.jpg')

BB = stap (MouthDetect, beeld);

figuur, imshow (beeld);

hou vas

vir i = 1: grootte (BB, 1)

reghoek ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

einde

titel ('Mondopsporing');

hou vas;

Die resultaat sal soos die prentjie wees wat in hierdie stap self aangeheg is

Om die aantal opgespoorde mond te tel:

maak alles duidelik; clc; %Mond op te spoor

MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Lees die insette

image = imread ('c: / Deskotp / HarryPotter.jpg'); laai die prentjie %met behulp van imread ('file location / name.jpg') BB = step (MouthDetect, image);

figuur, imshow (beeld);

hou vas

vir i = 1: grootte (BB, 1)

reghoek ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

einde

text (10, 10, strcat ('\ color {red} Aantal monde =', num2str (lengte (BB)))));

titel ('Mondopsporing');

hou vas;

Stap 4: Ontdek gesigte, oë, mond in 'n video en tel

maak alles duidelik;

sluit almal;

clc;

% Neem die videorame vas met die video -invoerfunksie % U moet die resolusie en die naam van u geïnstalleerde adapter vervang.

a = vision. CascadeObjectDetector; %om gesig op te spoor

% a = vision. CascadeObjectDetector ('Mond', 'MergeThreshold', 16); %om mond op te spoor

% a = vision. CascadeObjectDetector ('EyePairBig'); %om oë op te spoor

%gebruik slegs een (gesig/oë/mond)

vid = video -invoer ('winvideo', 1, 'yuy2_320x240'); % Stel die eienskappe van die video -voorwerp in

set (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %begin met die video -verkryging hier

begin (vid) % Stel 'n lus op wat stop na 100 verkrygingsraamwerke

while (vid. FramesAcquired <= 200) % Kry die momentopname van die huidige raam

data = getsnapshot (vid);

imshow (data);

b = stap (a, data);

hou vas

vir i = 1: grootte (b, 1)

reghoek ('posisie', b (i,:), 'lynwydte', 2, 'lynstyl', '-', 'EdgeColor', 'r');

einde

hou vas

text (10, 10, strcat ('\ color {green} Aantal gesigte =', num2str (lengte (b))));

einde

stop (vid); Stop die video -verkryging

Aanbeveel: