INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
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
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
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
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