Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Qëllimi kryesor i këtij udhëzuesi është të tregojë se sa i lehtë do të jetë përpunimi i imazhit, me ndihmën e MATLAB
Zbulimi dhe gjurmimi i fytyrës ka qenë një fushë kërkimore e rëndësishme dhe aktive, prandaj unë do të shpjegoj se si mund të bëhet me Matlab.
Në tutorialin e mëposhtëm do të bëj gjërat e mëposhtme:
1. zbulimi i fytyrave në një imazh dhe numërimi.
2. zbulimi i syve të njeriut në një imazh dhe numërimi.
3. zbulimi i gojës së njeriut në një imazh dhe numërimi.
4. zbulimi i fytyrave në një video dhe numërimi.
5. zbulimi i syve të njeriut në një video dhe numërimi.
6. zbulimi i gojës së njeriut në një video dhe numërimi.
Hapi 1: Zbulimi i fytyrave në një imazh dhe numërimi
SHKRIM MATLAB:
pastroni të gjithë % pastroni të gjitha objektetclc % ekran të qartë
FDetect = vision. CascadeObjectDetector; %Zbuloni objektet duke përdorur algoritmin Viola-Jones
%Lexoni imazhin hyrës
image = imread ('c: / Deskotp / HarryPotter.jpg'); %ngarkoni imazhin duke përdorur imread ('vendndodhja e skedarit / name.jpg')
BB = hapi (FDetect, image); %Kthen vlerat e Kutisë së Kufizuar bazuar në numrin e objekteve
figurë, shfaqje (I);
prit
për i = 1: madhësia (BB, 1)
drejtkëndësh ('Pozicioni', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r-kuqe, g-jeshile, b-blu
fund
titulli ('Zbulimi i fytyrës'); %titulli i stokut të shlyerjes;
Rezultati do të jetë si imazhi i bashkangjitur në këtë hap
Për të numëruar numrin e fytyrave të zbuluara:
pastroni të gjithë % pastroni të gjitha objektetclc % ekran të qartë
FDetect = vision. CascadeObjectDetector; %Zbuloni objektet duke përdorur algoritmin Viola-Jones %Lexoni imazhin hyrës
image = imread ('c: / Deskotp / HarryPotter.jpg'); %ngarkoni imazhin duke përdorur imread ('vendndodhja e skedarit / name.jpg')
BB = hapi (FDetect, image); %Kthen vlerat e Kutisë së Kufizuar bazuar në numrin e objekteve
figura,
imshow (I);
prit
për i = 1: madhësia (BB, 1)
drejtkëndësh ('Pozicioni', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r-kuqe, g-jeshile, b-blu
fund
tekst (10, 10, strcat ('\ ngjyra {e kuqe} Numri i fytyrave =', num2str (gjatësia (BB)))); Kjo linjë ju jep numërimin
titulli ("Zbulimi i fytyrës"); %titulli i figurës
mbaje mendjen;
Hapi 2: Zbulimi i syve të njeriut në një imazh dhe numërimi
SHKRIM MATLAB:
pastroji të gjitha;
clc;
%Për të zbuluar EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');
%Lexoni hyrjen
image = imread ('c: / Deskotp / HarryPotter.jpg'); %ngarkoni imazhin duke përdorur imread ('vendndodhja e skedarit / name.jpg')
BB = hapi (EyeDetect, imazhi);
figura,
shfaqje (imazh);
drejtkëndësh ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
titulli ('Zbulimi i Sytë');
Rezultati do të jetë si imazhi i bashkangjitur në këtë hap vetë
Për të numëruar numrin e syve të zbuluar:
pastroni të gjitha; clc; %Për të zbuluar Sytë
EyeDetect = vision. CascadeObjectDetector ('EyePairBig');
image = imread ('c: / Deskotp / HarryPotter.jpg'); %ngarkoni imazhin duke përdorur imread ('vendndodhja e skedarit / name.jpg')
BB = hapi (Zbulimi i syrit, imazhi); figura, shfaqja (imazhi); drejtkëndësh ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
tekst (10, 10, strcat ('\ ngjyra {e kuqe} Numri i syve =', num2str (gjatësia (BB))));
titulli ('Zbulimi i Sytë');
Hapi 3: Zbulimi i gojës së njeriut në një imazh dhe numërimi
SHKRIM MATLAB:
pastroji të gjitha;
clc;
%Për të zbuluar gojën
MouthDetect = vision. CascadeObjectDetector ('Goja', 'MergeThreshold', 16);
%Lexoni imazhin hyrës = imread ('c: / Deskotp / HarryPotter.jpg'); %ngarkoni imazhin duke përdorur imread ('vendndodhja e skedarit / name.jpg')
BB = hapi (Zbulimi i gojës, imazhi);
figurë, shfaqje (imazh);
prit
për i = 1: madhësia (BB, 1)
drejtkëndësh ('Pozicioni', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
fund
titulli ("Zbulimi i gojës");
mbaje mendjen;
Rezultati do të jetë si imazhi i bashkangjitur në këtë hap vetë
Për të numëruar numrin e gojës së zbuluar:
pastroji të gjitha; clc; %Për të zbuluar gojën
MouthDetect = vision. CascadeObjectDetector ('Goja', 'MergeThreshold', 16); %Lexoni hyrjen
image = imread ('c: / Deskotp / HarryPotter.jpg'); %ngarkoni imazhin duke përdorur imread ('vendndodhja e skedarit / name.jpg') BB = hapi (Zbulimi i gojës, imazhi);
figurë, shfaqje (imazh);
prit
për i = 1: madhësia (BB, 1)
drejtkëndësh ('Pozicioni', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
fund
tekst (10, 10, strcat ('\ ngjyra {e kuqe} Numri i gojëve =', num2str (gjatësia (BB))));
titulli ("Zbulimi i gojës");
mbaje mendjen;
Hapi 4: Zbulimi i fytyrave, syve, gojës në një video dhe numërimi
pastroji të gjitha;
mbyll të gjitha;
clc;
% Regjistroni kornizat e videos duke përdorur funksionin e hyrjes video % Ju duhet të zëvendësoni rezolucionin dhe emrin e përshtatësit tuaj të instaluar.
a = vizion. CascadeObjectDetector; %për të zbuluar fytyrën
% a = vision. CascadeObjectDetector ('Goja', 'MergeThreshold', 16); %për të zbuluar gojën
% a = vision. CascadeObjectDetector ('EyePairBig'); %për të zbuluar sytë
%përdorin vetëm cilindo (fytyrë/sy/gojë)
vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Vendosni vetitë e objektit të videos
set (vid, 'FramesPerTrigger', Inf);
set (vid, 'ReturnedColorspace', 'rgb');
vid. FrameGrabInterval = 5; %filloni marrjen e videos këtu
fillimi (vid) % Vendosni një lak që ndalet pas 100 kornizave të blerjes
ndërsa (vid. FramesAcired <= 200) % Merrni fotografinë e kornizës aktuale
të dhëna = merrnapshot (vid);
shfaqje (të dhëna);
b = hapi (a, të dhëna);
prit
për i = 1: madhësia (b, 1)
drejtkëndësh ('pozicioni', b (i,:), 'gjerësia e linjës', 2, 'stili i linjës', '-', 'EdgeColor', 'r');
fund
mbaje mendjen
tekst (10, 10, strcat ('\ ngjyra {jeshile} Numri i fytyrave =', num2str (gjatësia (b))));
fund
ndal (vid); % Ndaloni marrjen e videos