Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Selle juhendi peamine eesmärk on näidata, kui lihtne on pilditöötlus, MATLABi abil
Näotuvastus ja jälgimine on olnud oluline ja aktiivne uurimisvaldkond, seetõttu selgitan, kuidas seda Matlabi abil teha saab.
Järgmises õpetuses teen järgmist.
1. nägude tuvastamine pildil ja loendamine.
2. inimese silmade tuvastamine pildil ja loendamine.
3. inimese suu tuvastamine pildil ja loendamine.
4. nägude tuvastamine videos ja loendamine.
5. inimese silmade tuvastamine videos ja loendamine.
6. inimese suu tuvastamine videost ja loendamine.
1. samm: nägude tuvastamine pildil ja loendamine
MATLABI SKRIPT:
kustuta kõik % kustuta kõik objektid clc % puhasta ekraan
FDetect = nägemine. CascadeObjectDetector; %Objektide tuvastamine Viola-Jonesi algoritmi abil
%Loe sisendpilti
pilt = imread ('c: / Deskotp / HarryPotter.jpg'); %pildi laadimine imreadi abil ('faili asukoht / nimi.jpg')
BB = samm (FDetect, pilt); %Tagastab piiritluskasti väärtused objektide arvu alusel
joonis, näitus (I);
oota
i = 1: suurus (BB, 1)
ristkülik ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -punane, g-roheline, b-sinine
lõpp
title ('Näotuvastus'); figuuri pealkiri %välja;
Tulemus on nagu selles etapis lisatud pilt
Tuvastatud nägude arvu loendamiseks tehke järgmist
kustuta kõik % kustuta kõik objektid clc % puhasta ekraan
FDetect = nägemine. CascadeObjectDetector; %Objektide tuvastamine Viola-Jonesi algoritmi abil %Sisendpildi lugemine
pilt = imread ('c: / Deskotp / HarryPotter.jpg'); %pildi laadimine imreadi abil ('faili asukoht / nimi.jpg')
BB = samm (FDetect, pilt); %Tagastab piiritluskasti väärtused objektide arvu alusel
joonis,
imshow (I);
oota
i = 1: suurus (BB, 1)
ristkülik ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r -punane, g-roheline, b-sinine
lõpp
text (10, 10, strcat ('\ color {red} Nägude arv =', num2str (pikkus (BB)))); See rida annab teile arvu
title ('Näotuvastus'); %joonis
kinni hoida;
2. samm: inimese silmade tuvastamine pildil ja loendamine
MATLABI SKRIPT:
Kustuta kõik;
clc;
%EyesEyeDetect tuvastamiseks = nägemine. CascadeObjectDetector ('EyePairBig');
%Loe sisendit
pilt = imread ('c: / Deskotp / HarryPotter.jpg'); %pildi laadimine imreadi abil ('faili asukoht / nimi.jpg')
BB = samm (EyeDetect, pilt);
joonis,
imshow (pilt);
ristkülik ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
title ('Silmade tuvastamine');
Tulemus on nagu selles etapis lisatud pilt
Tuvastatud silmade arvu loendamiseks tehke järgmist
kustuta kõik; clc; %Silmade tuvastamiseks
EyeDetect = nägemine. CascadeObjectDetector ('EyePairBig');
pilt = imread ('c: / Deskotp / HarryPotter.jpg'); %pildi laadimine imreadi abil ('faili asukoht / nimi.jpg')
BB = samm (EyeDetect, pilt); joonis, imshow (pilt); ristkülik ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');
text (10, 10, strcat ('\ color {red} Silmade arv =', num2str (pikkus (BB))));
title ('Silmade tuvastamine');
3. samm: inimese suu tuvastamine pildil ja loendamine
MATLABI SKRIPT:
Kustuta kõik;
clc;
%Suu tuvastamiseks
MouthDetect = nägemine. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16);
%Loe sisendpilti = imread ('c: / Deskotp / HarryPotter.jpg'); %pildi laadimine imreadi abil ('faili asukoht / nimi.jpg')
BB = samm (MouthDetect, pilt);
joonis, näitus (pilt);
oota
i = 1: suurus (BB, 1)
ristkülik ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
lõpp
title ('Suu tuvastamine');
kinni hoida;
Tulemus on nagu selles etapis lisatud pilt
Avastatud suu arvu loendamiseks tehke järgmist
Kustuta kõik; clc; %Suu tuvastamiseks
MouthDetect = nägemine. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Loe sisendit
pilt = imread ('c: / Deskotp / HarryPotter.jpg'); %laadida pilt, kasutades imread ('faili asukoht / nimi.jpg') BB = samm (MouthDetect, pilt);
joonis, näitus (pilt);
oota
i = 1: suurus (BB, 1)
ristkülik ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');
lõpp
text (10, 10, strcat ('\ color {red} Suude arv =', num2str (pikkus (BB))));
title ('Suu tuvastamine');
kinni hoida;
4. samm: nägude, silmade, suu tuvastamine videost ja loendamine
Kustuta kõik;
sulgege kõik;
clc;
% Jäädvustage videokaadreid videosisendi funktsiooni abil % Peate asendama eraldusvõime ja installitud adapteri nime.
a = nägemine. CascadeObjectDetector; %näo tuvastamiseks
% a = nägemine. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %suu tuvastamiseks
% a = nägemine. CascadeObjectDetector ('EyePairBig'); %silmade tuvastamiseks
%kasutab ainult ühte (nägu/silmad/suu)
vid = video sisend ('winvideo', 1, 'yuy2_320x240'); % Määra videoobjekti omadused
set (vid, 'FramesPerTrigger', Inf);
set (vid, 'ReturnedColorspace', 'rgb');
vid. FrameGrabInterval = 5; %alusta video hankimist siit
algus (vid) % Määrake tsükkel, mis peatub pärast 100 kaadrit
while (vid. FramesAcquired <= 200) % Hankige hetkekaadri hetktõmmis
andmed = ülevaade (vid);
imshow (andmed);
b = samm (a, andmed);
oota
i = 1: suurus (b, 1)
ristkülik ('position', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');
lõpp
pea kinni
text (10, 10, strcat ('\ color {green} Nägude arv =', num2str (pikkus (b))));
lõpp
peatus (vid); % Peata video hankimine