Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Hovedmålet med disse instruktørene er å vise hvor lett, bildebehandlingen vil være, ved hjelp av MATLAB
Ansiktsgjenkjenning og sporing har vært et viktig og aktivt forskningsfelt, så derfor skal jeg forklare hvordan det kan gjøres med Matlab.
I den følgende opplæringen skal jeg gjøre følgende ting:
1. oppdage ansikter i et bilde og telle.
2. oppdage menneskelige øyne i et bilde og telle.
3. oppdage menneskelig munn i et bilde og telle.
4. oppdage ansikter i en video og telle.
5. oppdage menneskelige øyne i en video og telle.
6. oppdage menneskelig munn i en video og telle.
Trinn 1: Oppdage ansikter i et bilde og telle
MATLAB SCRIPT:
clear all % clear all objectsclc % clear screen
FDetect = vision. CascadeObjectDetector; %Oppdag objekter ved hjelp av Viola-Jones-algoritmen
%Les inndatabildet
image = imread ('c: / Deskotp / HarryPotter.jpg'); %last inn bildet ved å bruke imread ('filplassering / navn.jpg')
BB = trinn (FDetect, bilde); %Returnerer grenseverdier basert på antall objekter
figur, imshow (I);
vent litt
for i = 1: størrelse (BB, 1)
rektangel ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rød, g-grønn, b-blå
slutt
tittel ('Ansiktsgjenkjenning'); %tittel på figuren av;
Resultatet vil være som bildet som ble vedlagt i dette trinnet selv
For å telle antall ansikter detektert:
clear all % clear all objectsclc % clear screen
FDetect = vision. CascadeObjectDetector; %Oppdag objekter ved hjelp av Viola-Jones-algoritme %Les inndatabildet
image = imread ('c: / Deskotp / HarryPotter.jpg'); %last inn bildet ved å bruke imread ('filplassering / navn.jpg')
BB = trinn (FDetect, bilde); %Returnerer grenseverdier for verdier basert på antall objekter
figur,
imshow (I);
vent litt
for i = 1: størrelse (BB, 1)
rektangel ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -rød, g-grønn, b-blå
slutt
text (10, 10, strcat ('\ color {red} Antall ansikter =', num2str (lengde (BB)))); Denne linjen gir deg tellingen
tittel ('Ansiktsgjenkjenning'); %tittel på figuren
hold av;
Trinn 2: Oppdage menneskelige øyne i et bilde og telle
MATLAB SCRIPT:
Rydd alt;
clc;
%For å oppdage EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');
%Les innspillet
image = imread ('c: / Deskotp / HarryPotter.jpg'); %last inn bildet ved å bruke imread ('filplassering / navn.jpg')
BB = trinn (EyeDetect, bilde);
figur,
imshow (bilde);
rektangel ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
tittel ('Eyes Detection');
Resultatet vil være som bildet som ble vedlagt i dette trinnet selv
For å telle antall oppdagede øyne:
tøm alt; clc; %For å oppdage øyne
EyeDetect = vision. CascadeObjectDetector ('EyePairBig');
image = imread ('c: / Deskotp / HarryPotter.jpg'); %last inn bildet ved å bruke imread ('filplassering / navn.jpg')
BB = trinn (EyeDetect, bilde); figur, imshow (bilde); rektangel ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
tekst (10, 10, strcat ('\ color {rød} Antall øyne =', num2str (lengde (BB))));
tittel ('Eyes Detection');
Trinn 3: Oppdage menneskelig munn i et bilde og telle
MATLAB SCRIPT:
Rydd alt;
clc;
%For å oppdage munn
MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16);
%Les inndatabildet = imread ('c: / Deskotp / HarryPotter.jpg'); %last inn bildet ved å bruke imread ('filplassering / navn.jpg')
BB = trinn (MouthDetect, bilde);
figur, imshow (bilde);
vent litt
for i = 1: størrelse (BB, 1)
rektangel ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
slutt
tittel ('Mouth Detection');
hold av;
Resultatet vil være som bildet som ble vedlagt i dette trinnet selv
For å telle antall oppdagede munn:
Rydd alt; clc; %For å oppdage munn
MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Les innspillet
image = imread ('c: / Deskotp / HarryPotter.jpg'); %last inn bildet ved å bruke imread ('file location / name.jpg') BB = step (MouthDetect, image);
figur, imshow (bilde);
vent litt
for i = 1: størrelse (BB, 1)
rektangel ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
slutt
text (10, 10, strcat ('\ color {red} Antall munner =', num2str (lengde (BB))));
tittel ('Mouth Detection');
hold av;
Trinn 4: Registrering av ansikter, øyne, munn i en video og telling
Rydd alt;
Lukk alle;
clc;
% Ta videorammer med videoinngangsfunksjonen % Du må erstatte oppløsningen og det installerte adapternavnet.
a = vision. CascadeObjectDetector; %for å oppdage ansikt
% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %for å oppdage munnen
% a = vision. CascadeObjectDetector ('EyePairBig'); %for å oppdage øyne
%bare bruk en (ansikt/øyne/munn)
vid = videoinngang ('winvideo', 1, 'yuy2_320x240'); % Angi egenskapene til videoobjektet
sett (vid, 'FramesPerTrigger', Inf);
set (vid, 'ReturnedColorspace', 'rgb');
vid. FrameGrabInterval = 5; %start videooppkjøpet her
start (vid) % Sett en sløyfe som stopper etter 100 oppkjøpsrammer
while (vid. FramesAcquired <= 200) % Få øyeblikksbildet av gjeldende ramme
data = getsnapshot (vid);
imshow (data);
b = trinn (a, data);
vent litt
for i = 1: størrelse (b, 1)
rektangel ('posisjon', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');
slutt
hold av
tekst (10, 10, strcat ('\ color {grønn} Antall ansikter =', num2str (lengde (b))));
slutt
stopp (vid); % Stopp videooppkjøpet