Turinys:

„MATLAB“paprastas veido aptikimas: 4 žingsniai
„MATLAB“paprastas veido aptikimas: 4 žingsniai

Video: „MATLAB“paprastas veido aptikimas: 4 žingsniai

Video: „MATLAB“paprastas veido aptikimas: 4 žingsniai
Video: How to Design Basic GUI Graphical user Interface in MATLAB and Image Processing 2024, Liepa
Anonim
„MATLAB“paprastas veido aptikimas
„MATLAB“paprastas veido aptikimas

Pagrindinis šios instrukcijos tikslas yra parodyti, kaip lengva bus apdoroti vaizdus, naudojant MATLAB

Veido aptikimas ir stebėjimas buvo svarbi ir aktyvi tyrimų sritis, todėl aš paaiškinsiu, kaip tai galima padaryti naudojant „Matlab“.

Šioje pamokoje aš atliksiu šiuos dalykus:

1. veidų aptikimas vaizde ir skaičiavimas.

2. žmogaus akių aptikimas vaizde ir skaičiavimas.

3. žmogaus burnos aptikimas vaizde ir skaičiavimas.

4. veidų aptikimas vaizdo įraše ir skaičiavimas.

5. žmogaus akių aptikimas vaizdo įraše ir skaičiavimas.

6. žmogaus burnos aptikimas vaizdo įraše ir skaičiavimas.

1 žingsnis: veidų aptikimas vaizde ir skaičiavimas

Veidų aptikimas vaizde ir skaičiavimas
Veidų aptikimas vaizde ir skaičiavimas

MATLAB SCRIPT:

išvalyti visus % išvalyti visus objektusclc % išvalyti ekraną

FDetect = regėjimas. CascadeObjectDetector; %Aptikti objektus naudojant Viola-Jones algoritmą

%Skaityti įvesties vaizdą

image = imread ('c: / Deskotp / HarryPotter.jpg'); %įkelti vaizdą naudojant imread ('failo vieta / name.jpg')

BB = žingsnis (FDetect, vaizdas); Grąžina ribojimo langelio vertes pagal objektų skaičių

figūra, imshow (I);

palauk

i = 1: dydis (BB, 1)

stačiakampis ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r-raudona, g-žalia, b-mėlyna

galas

pavadinimas („Veido aptikimas“); %paveikslo pavadinimas išjungtas;

Rezultatas bus panašus į vaizdą, kuris buvo pridėtas atliekant šį veiksmą

Norėdami suskaičiuoti aptiktų veidų skaičių:

išvalyti visus % išvalyti visus objektusclc % išvalyti ekraną

FDetect = regėjimas. CascadeObjectDetector; %Aptikti objektus naudojant Viola-Jones algoritmą %Skaityti įvesties vaizdą

image = imread ('c: / Deskotp / HarryPotter.jpg'); %įkelti vaizdą naudojant imread ('failo vieta / name.jpg')

BB = žingsnis (FDetect, vaizdas); Grąžina ribojimo langelio vertes pagal objektų skaičių

figūra,

imshow (I);

palauk

i = 1: dydis (BB, 1)

stačiakampis ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r-raudona, g-žalia, b-mėlyna

galas

text (10, 10, strcat ('\ color {red} Veidų skaičius =', num2str (ilgis (BB)))); Ši eilutė suteikia jums skaičių

pavadinimas („Veido aptikimas“); %paveikslo pavadinimas

susilaikyti;

2 žingsnis: žmogaus akių aptikimas vaizde ir skaičiavimas

Žmogaus akių aptikimas vaizde ir skaičiavimas
Žmogaus akių aptikimas vaizde ir skaičiavimas

MATLAB SCRIPT:

Išvalyti viską;

clc;

%EyesEyeDetect aptikti = regėjimas. CascadeObjectDetector ('EyePairBig');

%Perskaitykite įvestį

image = imread ('c: / Deskotp / HarryPotter.jpg'); %įkelti vaizdą naudojant imread ('failo vieta / name.jpg')

BB = žingsnis („EyeDetect“, vaizdas);

figūra,

imshow (vaizdas);

stačiakampis ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

pavadinimas („Akių aptikimas“);

Rezultatas bus panašus į vaizdą, kuris buvo pridėtas atliekant šį veiksmą

Norėdami suskaičiuoti aptiktų akių skaičių:

išvalyti viską; clc; %Norėdami aptikti akis

EyeDetect = regėjimas. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %įkelti vaizdą naudojant imread ('failo vieta / name.jpg')

BB = žingsnis („EyeDetect“, vaizdas); figūra, „imshow“(vaizdas); stačiakampis ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

tekstas (10, 10, strcat ('\ color {red} akių skaičius =', num2str (ilgis (BB))));

pavadinimas („Akių aptikimas“);

3 žingsnis: žmogaus burnos aptikimas vaizde ir skaičiavimas

Žmogaus burnos aptikimas vaizde ir skaičiavimas
Žmogaus burnos aptikimas vaizde ir skaičiavimas

MATLAB SCRIPT:

Išvalyti viską;

clc;

%Norėdami aptikti burną

MouthDetect = regėjimas. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16);

%Skaitykite įvesties vaizdą = imread ('c: / Deskotp / HarryPotter.jpg'); %įkelti vaizdą naudojant imread ('failo vieta / name.jpg')

BB = žingsnis (MouthDetect, vaizdas);

figūra, imshow (vaizdas);

palauk

i = 1: dydis (BB, 1)

stačiakampis ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

galas

pavadinimas („Burnos aptikimas“);

susilaikyti;

Rezultatas bus panašus į vaizdą, kuris buvo pridėtas atliekant šį veiksmą

Norėdami suskaičiuoti aptiktą burnos ertmę:

Išvalyti viską; clc; %Norėdami aptikti burną

MouthDetect = regėjimas. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Perskaitykite įvestį

image = imread ('c: / Deskotp / HarryPotter.jpg'); %įkelti paveikslėlį naudojant imread ('failo vieta / name.jpg') BB = žingsnis (MouthDetect, vaizdas);

figūra, imshow (vaizdas);

palauk

i = 1: dydis (BB, 1)

stačiakampis ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

galas

text (10, 10, strcat ('\ color {red} Burnų skaičius =', num2str (ilgis (BB))));

pavadinimas („Burnos aptikimas“);

susilaikyti;

4 žingsnis: veidų, akių, burnos aptikimas vaizdo įraše ir skaičiavimas

Išvalyti viską;

uždaryti viską;

clc;

% Fiksuokite vaizdo kadrus naudodami vaizdo įvesties funkciją % Turite pakeisti skiriamąją gebą ir įdiegto adapterio pavadinimą.

a = regėjimas. CascadeObjectDetector; %veidui aptikti

% a = vizija. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %aptikti burną

% a = regėjimas. CascadeObjectDetector ('EyePairBig'); %aptikti akis

%naudoja tik vieną (veidą/akis/burną)

vid = vaizdo įvestis ('winvideo', 1, 'yuy2_320x240'); % Nustatykite vaizdo objekto savybes

rinkinys (vid, 'FramesPerTrigger', Inf);

set (vid, „ReturnedColorspace“, „rgb“);

vid. FrameGrabInterval = 5; %pradėti vaizdo įrašų rinkimą čia

start (vid) % Nustatykite ciklą, kuris sustoja po 100 kadrų

while (vid. FramesAcquired <= 200) % Gaukite dabartinio kadro momentinę nuotrauką

duomenys = momentinis vaizdas (vid);

„imshow“(duomenys);

b = žingsnis (a, duomenys);

palauk

i = 1: dydis (b, 1)

stačiakampis ('pozicija', b (i,:), 'linijos plotis', 2, 'linestyle', '-', 'EdgeColor', 'r');

galas

susilaikyti

text (10, 10, strcat ('\ color {green} Veidų skaičius =', num2str (ilgis (b))));

galas

stop (vid); % Sustabdyti vaizdo įrašų gavimą

Rekomenduojamas: