Kazalo:

MATLAB Enostavno zaznavanje obrazov: 4 koraki
MATLAB Enostavno zaznavanje obrazov: 4 koraki

Video: MATLAB Enostavno zaznavanje obrazov: 4 koraki

Video: MATLAB Enostavno zaznavanje obrazov: 4 koraki
Video: Facial features recognition using App Designer #Shorts 2024, Julij
Anonim
Enostavno zaznavanje obrazov MATLAB
Enostavno zaznavanje obrazov MATLAB

Glavni cilj teh navodil je pokazati, kako lahka bo obdelava slik s pomočjo MATLAB -a

Odkrivanje in sledenje obrazov je bilo pomembno in aktivno raziskovalno področje, zato bom razložil, kako je to mogoče storiti z Matlabom.

V naslednji vadnici bom naredil naslednje:

1. odkrivanje obrazov na sliki in štetje.

2. odkrivanje človeških oči na sliki in štetje.

3. odkrivanje človeških ust na sliki in štetje.

4. odkrivanje obrazov v videu in štetje.

5. odkrivanje človeških oči v videu in štetje.

6. odkrivanje človeških ust v videu in štetje.

1. korak: Zaznavanje obrazov na sliki in štetje

Zaznavanje obrazov na sliki in štetje
Zaznavanje obrazov na sliki in štetje

MATLAB Scenarij:

počisti vse % počisti vse predmeteclc % počisti zaslon

FDetect = vision. CascadeObjectDetector; %Odkrivanje predmetov z uporabo algoritma Viola-Jones

%Preberite vhodno sliko

image = imread ('c: / Deskotp / HarryPotter.jpg'); %naložite sliko z uporabo imread ('lokacija datoteke / ime.jpg')

BB = korak (FDetect, slika); %Vrne vrednosti mejnega okvirja glede na število predmetov

slika, imshow (I);

počakaj

za i = 1: velikost (BB, 1)

pravokotnik ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r-rdeča, g-zelena, b-modra

konec

naslov ('Odkrivanje obrazov'); %naslova številke off;

Rezultat bo podoben sliki, ki je bila priložena v tem koraku

Če želite šteti število zaznanih obrazov:

počisti vse % počisti vse predmeteclc % počisti zaslon

FDetect = vision. CascadeObjectDetector; %Odkrivanje predmetov z uporabo algoritma Viola-Jones %Preberite vhodno sliko

image = imread ('c: / Deskotp / HarryPotter.jpg'); %naložite sliko z uporabo imread ('lokacija datoteke / ime.jpg')

BB = korak (FDetect, slika); %Vrne vrednosti mejnega okvirja glede na število predmetov

slika,

imshow (I);

počakaj

za i = 1: velikost (BB, 1)

pravokotnik ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r-rdeča, g-zelena, b-modra

konec

text (10, 10, strcat ('\ color {red} Št. obrazov =', num2str (dolžina (BB)))); Ta vrstica prikazuje število

naslov ('Odkrivanje obrazov'); %naslov figure

počakaj;

2. korak: Zaznavanje človeških oči na sliki in štetje

Zaznavanje človeških oči na sliki in štetje
Zaznavanje človeških oči na sliki in štetje

MATLAB Scenarij:

Počisti vse;

clc;

%Za zaznavanje EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig');

%Preberite vnos

image = imread ('c: / Deskotp / HarryPotter.jpg'); %naložite sliko z uporabo imread ('lokacija datoteke / ime.jpg')

BB = korak (EyeDetect, slika);

slika,

imshow (slika);

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

naslov ('Odkrivanje oči');

Rezultat bo podoben sliki, ki je bila priložena v tem koraku

Če želite prešteti število zaznanih oči:

počisti vse; clc; %Za odkrivanje oči

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %naložite sliko z uporabo imread ('lokacija datoteke / ime.jpg')

BB = korak (EyeDetect, slika); slika, imshow (slika); pravokotnik ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

besedilo (10, 10, strcat ('\ color {rdeče} Št. oči =', num2str (dolžina (BB))));

naslov ('Odkrivanje oči');

3. korak: Zaznavanje človeških ust na sliki in štetje

Odkrivanje človeških ust na sliki in štetje
Odkrivanje človeških ust na sliki in štetje

MATLAB Scenarij:

Počisti vse;

clc;

%Za odkrivanje ust

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

%Preberite vhodno sliko = imread ('c: / Deskotp / HarryPotter.jpg'); %naložite sliko z uporabo imread ('lokacija datoteke / ime.jpg')

BB = korak (MouthDetect, slika);

slika, imshow (slika);

počakaj

za i = 1: velikost (BB, 1)

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

konec

naslov ('Zaznavanje ust');

počakaj;

Rezultat bo podoben sliki, ki je bila priložena v tem koraku

Če želite prešteti število zaznanih ust:

Počisti vse; clc; %Za odkrivanje ust

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

image = imread ('c: / Deskotp / HarryPotter.jpg'); %naložite sliko z uporabo imread ('file location / name.jpg') BB = step (MouthDetect, image);

slika, imshow (slika);

počakaj

za i = 1: velikost (BB, 1)

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

konec

besedilo (10, 10, strcat ('\ color {rdeče} Št. ust =', num2str (dolžina (BB))));

naslov ('Zaznavanje ust');

počakaj;

4. korak: Zaznavanje obrazov, oči, ust v videu in štetje

Počisti vse;

zaprite vse;

clc;

% Zajemite video okvirje s funkcijo video vhoda % Zamenjati morate ločljivost in ime nameščenega vmesnika.

a = vision. CascadeObjectDetector; %za zaznavanje obraza

% a = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %za odkrivanje ust

% a = vision. CascadeObjectDetector ('EyePairBig'); %za odkrivanje oči

%uporabljajte samo eno (obraz/oči/usta)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Nastavite lastnosti video predmeta

set (vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %začnite s pridobivanjem videa tukaj

start (vid) % Nastavite zanko, ki se ustavi po 100 sličicah

while (vid. FramesAcquired <= 200) % Pridobite posnetek trenutnega okvira

data = getsnapshot (vid);

imshow (podatki);

b = korak (a, podatki);

počakaj

za i = 1: velikost (b, 1)

pravokotnik ('position', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');

konec

počakaj

text (10, 10, strcat ('\ color {green} Št. obrazov =', num2str (dolžina (b))));

konec

ustaviti (vid); % Ustavite pridobivanje videa

Priporočena: