Სარჩევი:

MATLAB მარტივი სახის ამოცნობა: 4 ნაბიჯი
MATLAB მარტივი სახის ამოცნობა: 4 ნაბიჯი

ვიდეო: MATLAB მარტივი სახის ამოცნობა: 4 ნაბიჯი

ვიდეო: MATLAB მარტივი სახის ამოცნობა: 4 ნაბიჯი
ვიდეო: რა ხდება კანონიერი ქურდების საკნებში 2024, ივლისი
Anonim
MATLAB მარტივი სახის ამოცნობა
MATLAB მარტივი სახის ამოცნობა

ამ ინსტრუქციის მთავარი მიზანია აჩვენოს რამდენად ადვილი იქნება სურათის დამუშავება MATLAB– ის დახმარებით

სახის გამოვლენა და თვალყურის დევნება იყო მნიშვნელოვანი და აქტიური კვლევითი სფერო, ამიტომაც ვაპირებ აგიხსნათ როგორ შეიძლება ამის გაკეთება Matlab– ით.

შემდეგ გაკვეთილში მე ვაპირებ გავაკეთო შემდეგი რამ:

1. გამოსახულების სახეების გამოვლენა და დათვლა.

2. ადამიანის თვალების გამოვლენა გამოსახულებაში და დათვლა.

3. ადამიანის პირის გამოვლენა გამოსახულებაში და დათვლა.

4. სახეების გამოვლენა ვიდეოში და დათვლა.

5. ადამიანის თვალების გამოვლენა ვიდეოში და დათვლა.

6. ადამიანის პირის გამოვლენა ვიდეოში და დათვლა.

ნაბიჯი 1: სახეების გამოვლენა სურათში და დათვლა

სახეების გამოვლენა სურათში და დათვლა
სახეების გამოვლენა სურათში და დათვლა

MATLAB SCRIPT:

გასუფთავება ყველა % ყველა ობიექტის გასუფთავებაclc % წმინდა ეკრანი

FDetect = vision. CascadeObjectDetector; %ობიექტების გამოვლენა ვიოლა-ჯონსის ალგორითმის გამოყენებით

%წაიკითხეთ შეყვანის სურათი

image = imread ('c: / Deskotp / HarryPotter.jpg'); %ჩატვირთეთ სურათი imread გამოყენებით ('ფაილის მდებარეობა / name.jpg')

BB = ნაბიჯი (FDetect, image); აბრუნებს შემოსაზღვრულ ყუთს ღირებულებების საფუძველზე ობიექტების რაოდენობა

ფიგურა, imshow (I);

შეჩერდი

i = 1 -ისთვის: ზომა (BB, 1)

მართკუთხედი ("პოზიცია", BB (i,:), "LineWidth", 5, "LineStyle", "-", "EdgeColor", "r"); %r-წითელი, g-მწვანე, b-ლურჯი

დასასრული

სათაური ('სახის ამოცნობა'); ფიგურის წილის გამორთული %;

შედეგი იქნება იმ სურათის მსგავსი, რომელიც თან ერთვის ამ ნაბიჯს

გამოვლენილი სახეების რაოდენობის დასათვლელად:

გასუფთავება ყველა % ყველა ობიექტის გასუფთავებაclc % წმინდა ეკრანი

FDetect = vision. CascadeObjectDetector; %ობიექტების გამოვლენა ვიოლა-ჯონსის ალგორითმის გამოყენებით შესასვლელი სურათის წაკითხვა

image = imread ('c: / Deskotp / HarryPotter.jpg'); %ჩატვირთეთ სურათი imread გამოყენებით ('ფაილის მდებარეობა / name.jpg')

BB = ნაბიჯი (FDetect, image); აბრუნებს შემოსაზღვრულ ყუთს ღირებულებების საფუძველზე ობიექტების რაოდენობა

ფიგურა,

imshow (I);

შეჩერდი

i = 1 -ისთვის: ზომა (BB, 1)

მართკუთხედი ("პოზიცია", BB (i,:), "LineWidth", 5, "LineStyle", "-", "EdgeColor", "r"); %r-წითელი, g-მწვანე, b-ლურჯი

დასასრული

ტექსტი (10, 10, strcat ('\ ფერი {წითელი} სახეების რაოდენობა =', num2str (სიგრძე (BB)))); ეს ხაზი გაძლევთ დათვლას

სათაური ('სახის ამოცნობა'); ფიგურის სათაური

შეკავება;

ნაბიჯი 2: ადამიანის თვალების გამოვლენა გამოსახულებით და დათვლა

ადამიანის თვალების გამოვლენა გამოსახულებით და დათვლა
ადამიანის თვალების გამოვლენა გამოსახულებით და დათვლა

MATLAB SCRIPT:

ყველაფრის გასუფთავება;

clc;

%EyesEyeDetect = vision. CascadeObjectDetector ('EyePairBig') გამოვლენის მიზნით;

%წაიკითხეთ შეყვანა

image = imread ('c: / Deskotp / HarryPotter.jpg'); %ჩატვირთეთ სურათი imread გამოყენებით ('ფაილის მდებარეობა / name.jpg')

BB = ნაბიჯი (EyeDetect, სურათი);

ფიგურა,

imshow (სურათი);

მართკუთხედი ("პოზიცია", BB, "LineWidth", 4, "LineStyle", "-", "EdgeColor", "b");

სათაური ("თვალების ამოცნობა");

შედეგი იქნება იმ სურათის მსგავსი, რომელიც თან ერთვის ამ ნაბიჯს

გამოვლენილი თვალების რაოდენობის დასათვლელად:

ყველაფრის გასუფთავება; clc; თვალების გამოვლენის მიზნით

EyeDetect = vision. CascadeObjectDetector ('EyePairBig');

image = imread ('c: / Deskotp / HarryPotter.jpg'); %ჩატვირთეთ სურათი imread გამოყენებით ('ფაილის მდებარეობა / name.jpg')

BB = ნაბიჯი (EyeDetect, სურათი); ფიგურა, imshow (სურათი); მართკუთხედი ("პოზიცია", BB, "LineWidth", 4, "LineStyle", "-", "EdgeColor", "b");

ტექსტი (10, 10, strcat ('\ ფერი {წითელი} თვალების რაოდენობა =', num2str (სიგრძე (BB))));

სათაური ("თვალების ამოცნობა");

ნაბიჯი 3: ადამიანის პირის გამოვლენა გამოსახულებით და დათვლა

ადამიანის პირის გამოვლენა გამოსახულებით და დათვლა
ადამიანის პირის გამოვლენა გამოსახულებით და დათვლა

MATLAB SCRIPT:

ყველაფრის გასუფთავება;

clc;

პირის გამოვლენის მიზნით

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

%წაიკითხეთ შეყვანის სურათი = imread ('c: / Deskotp / HarryPotter.jpg'); %ჩატვირთეთ სურათი imread გამოყენებით ('ფაილის მდებარეობა / name.jpg')

BB = ნაბიჯი (MouthDetect, სურათი);

ფიგურა, ჩვენება (სურათი);

შეჩერდი

i = 1 -ისთვის: ზომა (BB, 1)

მართკუთხედი ('პოზიცია', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

დასასრული

სათაური ("პირის გამოვლენა");

შეკავება;

შედეგი იქნება იმ სურათის მსგავსი, რომელიც თან ერთვის ამ ნაბიჯს

გამოვლენილი პირის რაოდენობის დასათვლელად:

ყველაფრის გასუფთავება; clc; პირის გამოვლენის მიზნით

MouthDetect = vision. CascadeObjectDetector ('Mouth', 'MergeThreshold', 16); %წაიკითხეთ შეყვანა

image = imread ('c: / Deskotp / HarryPotter.jpg'); %ჩატვირთეთ სურათი imread გამოყენებით ('ფაილის მდებარეობა / name.jpg') BB = ნაბიჯი (MouthDetect, სურათი);

ფიგურა, ჩვენება (სურათი);

შეჩერდი

i = 1 -ისთვის: ზომა (BB, 1)

მართკუთხედი ('პოზიცია', BB (i,:), 'LineWidth', 4, 'LineStyle', '-', 'EdgeColor', 'r');

დასასრული

ტექსტი (10, 10, strcat ('\ ფერი {წითელი} პირის ღრუს =', num2str (სიგრძე (BB))));

სათაური ("პირის გამოვლენა");

შეკავება;

ნაბიჯი 4: სახის, თვალების, პირის გამოვლენა ვიდეოში და დათვლა

ყველაფრის გასუფთავება;

დახურე ყველა;

clc;

გადაიღეთ ვიდეო ჩარჩოები ვიდეო შეყვანის ფუნქციის გამოყენებით თქვენ უნდა შეცვალოთ გარჩევადობა და თქვენი დაინსტალირებული ადაპტერის სახელი.

a = vision. CascadeObjectDetector; %სახის გამოსაჩენად

% a = vision. CascadeObjectDetector ("Mouth", "MergeThreshold", 16); %პირის დასადგენად

% a = vision. CascadeObjectDetector ('EyePairBig'); %თვალების აღმოსაჩენად

%იყენებს მხოლოდ ერთს (სახე/თვალები/პირი)

vid = videoinput ("winvideo", 1, "yuy2_320x240"); % დააყენეთ ვიდეო ობიექტის თვისებები

კომპლექტი (vid, 'FramesPerTrigger', Inf);

კომპლექტი (vid, 'ReturnedColorspace', 'rgb');

vid. FrameGrabInterval = 5; %დაიწყეთ ვიდეოს შეძენა აქ

დაწყება (vid) % დააყენეთ მარყუჟი, რომელიც ჩერდება შეძენის 100 ჩარჩოს შემდეგ

while (vid. FramesAcquired <= 200) % მიიღეთ მიმდინარე ჩარჩოს სურათის სურათი

მონაცემები = იღებს სურათს (ვიდეო);

imshow (მონაცემები);

b = ნაბიჯი (a, მონაცემები);

შეჩერდი

for i = 1: ზომა (b, 1)

მართკუთხედი ('პოზიცია', b (i,:), 'linewidth', 2, 'linestyle', '-', 'EdgeColor', 'r');

დასასრული

თავი დაანებე

ტექსტი (10, 10, strcat ('\ ფერი {მწვანე} სახეების რაოდენობა =', num2str (სიგრძე (ბ))));

დასასრული

გაჩერება (ვიდეო); შეაჩერე ვიდეოს შეძენა

გირჩევთ: