Агуулгын хүснэгт:

MATLAB хялбар нүүр илрүүлэх: 4 алхам
MATLAB хялбар нүүр илрүүлэх: 4 алхам

Видео: MATLAB хялбар нүүр илрүүлэх: 4 алхам

Видео: MATLAB хялбар нүүр илрүүлэх: 4 алхам
Видео: Автоматический календарь-планировщик смен в Excel 2024, Арваннэгдүгээр
Anonim
MATLAB хялбар нүүр илрүүлэх
MATLAB хялбар нүүр илрүүлэх

Энэхүү зааварчилгааны гол зорилго нь MATLAB -ийн тусламжтайгаар зураг боловсруулах нь хэр хялбар болохыг харуулах явдал юм.

Нүүр илрүүлэх, хянах нь чухал бөгөөд идэвхтэй судалгааны талбар байсан тул үүнийг Matlab дээр хэрхэн яаж хийхийг тайлбарлах болно.

Дараагийн хичээлд би дараахь зүйлийг хийх болно.

1. зураг дээрх нүүрийг тодорхойлох, тоолох.

2. хүний нүдийг дүрсээр илрүүлж тоолох.

3. хүний амыг дүрсээр илрүүлж тоолох.

4. видеогоор нүүрээ илрүүлж тоолох.

5. Хүний нүдийг видеогоор илрүүлж тоолох.

6. Хүний амыг видео бичлэгээр илрүүлж тоолох.

Алхам 1: Зураг дээрх нүүрийг илрүүлж тоолох

Зурган дээрх царайг илрүүлэх, тоолох
Зурган дээрх царайг илрүүлэх, тоолох

MATLAB скрипт:

бүгдийг цэвэрлэх % бүх объектуудыг цэвэрлэх clc % дэлгэцийг цэвэрлэх

FDetect = алсын хараа. CascadeObjectDetector; %Viola-Jones алгоритмыг ашиглан объектуудыг илрүүлэх

%Оруулсан зургийг уншина уу

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ашиглан зургийг ачаална уу ('файлын байрлал / name.jpg')

BB = алхам (FDetect, зураг); %Объектуудын тоонд үндэслэн хязгаарлах хайрцгийн утгыг буцаана

зураг, imshow (I);

түр хүлээгээрэй

i = 1 -ийн хувьд: хэмжээ (BB, 1)

тэгш өнцөгт ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r-улаан, g-ногоон, b-цэнхэр

Төгсгөл

гарчиг ('Нүүр илрүүлэх'); хасагдсан нэрийн %гарчиг;

Үр дүн нь энэ алхамд хавсаргасан зураг шиг байх болно

Илэрсэн нүүрний тоог тоолохын тулд:

бүгдийг цэвэрлэх % бүх объектуудыг цэвэрлэх clc % дэлгэцийг цэвэрлэх

FDetect = алсын хараа. CascadeObjectDetector; %Viola-Jones алгоритмыг ашиглан объектуудыг илрүүлэх %Оруулсан зургийг уншина уу

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ашиглан зургийг ачаална уу ('файлын байршил / name.jpg')

BB = алхам (FDetect, зураг); %Объектуудын тоонд үндэслэн хязгаарлах хайрцгийн утгыг буцаана

дүрс,

imshow (I);

түр хүлээгээрэй

i = 1 -ийн хувьд: хэмжээ (BB, 1)

тэгш өнцөгт ('Position', BB (i,:), 'LineWidth', 5, 'LineStyle', '-', 'EdgeColor', 'r'); %r-улаан, g-ногоон, b-цэнхэр

Төгсгөл

текст (10, 10, strcat ('\ color {red} No of face =', num2str (length (BB))))); Энэ мөр нь танд тооллогыг өгдөг

гарчиг ('Нүүр илрүүлэх'); Зургийн %гарчиг

түр зогсоох;

Алхам 2: Хүний нүдийг дүрсээр илрүүлж тоолох

Хүний нүдийг дүрсээр илрүүлэх, тоолох
Хүний нүдийг дүрсээр илрүүлэх, тоолох

MATLAB скрипт:

бүгдийг цэвэрлэ;

clc;

%EyesEyeDetect илрүүлэхийн тулд = vision. CascadeObjectDetector ('EyePairBig');

%Оруулгыг уншина уу

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ашиглан зургийг ачаална уу ('файлын байрлал / name.jpg')

BB = алхам (EyeDetect, зураг);

дүрс,

imshow (зураг);

тэгш өнцөгт ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

гарчиг ('Нүд илрүүлэх');

Үр дүн нь энэ алхамд хавсаргасан зураг шиг байх болно

Илэрсэн нүдний тоог тоолохын тулд:

бүгдийг цэвэрлэх; clc; %Нүдийг илрүүлэх

EyeDetect = алсын хараа. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ашиглан зургийг ачаална уу ('файлын байрлал / name.jpg')

BB = алхам (EyeDetect, зураг); зураг, imshow (зураг); тэгш өнцөгт ('Position', BB, 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'b');

текст (10, 10, strcat ('\ color {red} Нүдний тоо =', num2str (урт (BB)))));

гарчиг ('Нүд илрүүлэх');

Алхам 3: Хүний амыг дүрсээр илрүүлж тоолох

Хүний амыг дүрсээр илрүүлж тоолох
Хүний амыг дүрсээр илрүүлж тоолох

MATLAB скрипт:

бүгдийг цэвэрлэ;

clc;

%Амыг илрүүлэх

MouthDetect = алсын хараа. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16);

%Оруулсан зургийг уншина уу = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ашиглан зургийг ачаална уу ('файлын байршил / name.jpg')

BB = алхам (MouthDetect, зураг);

зураг, imshow (зураг);

түр хүлээгээрэй

i = 1 -ийн хувьд: хэмжээ (BB, 1)

тэгш өнцөгт ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

Төгсгөл

гарчиг ('Ам илрүүлэх');

түр зогсоох;

Үр дүн нь энэ алхамд хавсаргасан зураг шиг байх болно

Илэрсэн амны тоог тоолохын тулд:

бүгдийг цэвэрлэ; clc; %Амыг илрүүлэх

MouthDetect = алсын хараа. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %Оруулгыг уншина уу

image = imread ('c: / Deskotp / HarryPotter.jpg'); %imread ('file location / name.jpg') ашиглан зургийг ачаална уу BB = алхам (MouthDetect, зураг);

зураг, imshow (зураг);

түр хүлээгээрэй

i = 1 -ийн хувьд: хэмжээ (BB, 1)

тэгш өнцөгт ('Position', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

Төгсгөл

текст (10, 10, strcat ('\ color {red} No of ам =', num2str (length (BB)))));

гарчиг ('Ам илрүүлэх');

түр зогсоох;

Алхам 4: Видео бичлэг дээр нүүр, нүд, амыг илрүүлж тоолох

бүгдийг цэвэрлэ;

бүгдийг хаах;

clc;

% Видео оруулах функцийг ашиглан видео хүрээ авах % Та нарийвчлал болон суулгасан адаптерийн нэрийг солих хэрэгтэй.

a = алсын хараа. CascadeObjectDetector; нүүр царайг илрүүлэх %

% a = алсын хараа. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %амыг илрүүлэх

% a = алсын хараа. CascadeObjectDetector ('EyePairBig'); нүдийг илрүүлэх %

%зөвхөн ямар ч хэрэглээрэй (нүүр/нүд/ам)

vid = videoinput ('winvideo', 1, 'yuy2_320x240'); % Видео объектын шинж чанарыг тохируулна уу

багц (vid, 'FramesPerTrigger', Inf);

багц (vid, 'ReturnedColorspace', 'rgb');

vid. FrameGrabInterval = 5; %видео олж авах ажлыг эндээс эхлүүлнэ үү

эхлэх (vid) % 100 хүрээг олж авсны дараа зогсох давталтыг тохируулна уу

while (vid. FramesAcquired <= 200) % Одоогийн хүрээний агшинг авах

өгөгдөл = getsnapshot (vid);

imshow (өгөгдөл);

b = алхам (а, өгөгдөл);

түр хүлээгээрэй

i = 1 -ийн хувьд: хэмжээ (b, 1)

тэгш өнцөгт ('байрлал', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');

Төгсгөл

түр зогсоо

текст (10, 10, strcat ('\ color {green} No of face =', num2str (length (b)))));

Төгсгөл

зогсоох (видео); % Видео бичлэгийг зогсоох

Зөвлөмж болгож буй: