Daftar Isi:

MATLAB Deteksi Wajah Mudah: 4 Langkah
MATLAB Deteksi Wajah Mudah: 4 Langkah

Video: MATLAB Deteksi Wajah Mudah: 4 Langkah

Video: MATLAB Deteksi Wajah Mudah: 4 Langkah
Video: Tutorial Pemrograman MATLAB - 063 - Cara Melakukan Deteksi Wajah 2024, Juli
Anonim
MATLAB Deteksi Wajah Mudah
MATLAB Deteksi Wajah Mudah

Tujuan utama dari instruksi ini adalah untuk menunjukkan betapa mudahnya pemrosesan gambar, Dengan bantuan MATLAB

Deteksi wajah dan pelacakan telah menjadi bidang penelitian yang penting dan aktif, jadi itulah mengapa saya akan menjelaskan bagaimana hal itu dapat dilakukan dengan Matlab.

Dalam tutorial berikut saya akan melakukan hal-hal di bawah ini:

1.mendeteksi wajah dalam gambar dan menghitung.

2. mendeteksi mata manusia dalam gambar dan menghitung.

3.mendeteksi mulut manusia dalam gambar dan menghitung.

4.mendeteksi wajah dalam Video dan menghitung.

5.mendeteksi mata manusia dalam Video dan menghitung.

6.mendeteksi mulut manusia dalam Video dan menghitung.

Langkah 1: Mendeteksi Wajah dalam Gambar dan Menghitung

Mendeteksi Wajah dalam Gambar dan Menghitung
Mendeteksi Wajah dalam Gambar dan Menghitung

SKRIP MATLAB:

hapus semua % hapus semua objekclc %hapus layar

FDetect = vision. CascadeObjectDetector; %Mendeteksi objek menggunakan Algoritma Viola-Jones

%Baca gambar masukan

gambar = imread('c:\Deskotp\HarryPotter.jpg'); %load gambar dengan menggunakan imread('file location\name.jpg')

BB = langkah(FDeteksi, gambar); %Mengembalikan nilai Kotak Batas berdasarkan jumlah objek

angka, imshow(I);

tunggu

untuk i = 1:ukuran(BB, 1)

persegi panjang('Posisi', BB(i,:), 'Lebar Garis', 5, 'Gaya Garis', '-', 'Warna Tepi', 'r'); %r -merah, g-hijau, b-biru

akhir

title('Deteksi Wajah'); %judul dari figurehold off;

Hasilnya akan seperti gambar yang dilampirkan pada langkah ini sendiri

Untuk menghitung jumlah wajah yang terdeteksi:

hapus semua % hapus semua objekclc %hapus layar

FDetect = vision. CascadeObjectDetector; %Mendeteksi objek menggunakan Algoritma Viola-Jones %Membaca gambar masukan

gambar = imread('c:\Deskotp\HarryPotter.jpg'); %load gambar dengan menggunakan imread('file location\name.jpg')

BB = langkah(FDeteksi, gambar); %Mengembalikan nilai Kotak Batas berdasarkan jumlah objek

angka,

imshow(saya);

tunggu

untuk i = 1:ukuran(BB, 1)

persegi panjang('Posisi', BB(i,:), 'Lebar Garis', 5, 'Gaya Garis', '-', 'Warna Tepi', 'r'); %r -merah, g-hijau, b-biru

akhir

teks(10, 10, strcat('\colour{red} Jumlah wajah =', num2str(length(BB)))); Baris ini memberi Anda hitungan

title('Deteksi Wajah'); %judul gambar

bertahan;

Langkah 2: Mendeteksi Mata Manusia dalam Gambar dan Menghitung

Mendeteksi Mata Manusia dalam Gambar dan Menghitung
Mendeteksi Mata Manusia dalam Gambar dan Menghitung

SKRIP MATLAB:

Bersihkan semua;

kl;

%Untuk mendeteksi EyesEyeDetect = vision. CascadeObjectDetector('EyePairBig');

%Baca masukannya

gambar = imread('c:\Deskotp\HarryPotter.jpg'); %load gambar dengan menggunakan imread('file location\name.jpg')

BB=langkah(Deteksi Mata, gambar);

angka,

imshow(gambar);

persegi panjang('Posisi', BB, 'Lebar Garis', 4, 'Gaya Garis', '-', 'Warna Tepi', 'b');

title('Deteksi Mata');

Hasilnya akan seperti gambar yang dilampirkan pada langkah ini sendiri

Untuk menghitung jumlah mata yang terdeteksi:

hapus semua;clc; %Untuk mendeteksi Mata

EyeDetect = visi. CascadeObjectDetector('EyePairBig');

gambar = imread('c:\Deskotp\HarryPotter.jpg'); %load gambar dengan menggunakan imread('file location\name.jpg')

BB=langkah(Deteksi Mata, gambar);gambar, imshow(gambar); persegi panjang('Posisi', BB, 'Lebar Garis', 4, 'Gaya Garis', '-', 'Warna Tepi', 'b');

teks(10, 10, strcat('\colour{red} Jumlah mata =', num2str(length(BB))));

title('Deteksi Mata');

Langkah 3: Mendeteksi Mulut Manusia dalam Gambar dan Menghitung

Mendeteksi Mulut Manusia dalam Gambar dan Menghitung
Mendeteksi Mulut Manusia dalam Gambar dan Menghitung

SKRIP MATLAB:

Bersihkan semua;

kl;

%Untuk mendeteksi Mulut

MouthDetect = visi. CascadeObjectDetector('Mulut', 'MergeThreshold', 16);

%Baca gambar masukan = imread('c:\Deskotp\HarryPotter.jpg'); %load gambar dengan menggunakan imread('file location\name.jpg')

BB=langkah(Deteksi Mulut, gambar);

gambar, imshow(gambar);

tunggu

untuk i = 1:ukuran(BB, 1)

persegi panjang('Posisi', BB(i,:), 'Lebar Garis', 4, 'Gaya Garis', '-', 'Warna Tepi', 'r');

akhir

title('Deteksi Mulut');

bertahan;

Hasilnya akan seperti gambar yang dilampirkan pada langkah ini sendiri

Untuk menghitung jumlah Mulut yang terdeteksi:

Bersihkan semua; kl; %Untuk mendeteksi Mulut

MouthDetect = visi. CascadeObjectDetector('Mulut', 'MergeThreshold', 16); %Baca masukannya

gambar = imread('c:\Deskotp\HarryPotter.jpg'); %load gambar dengan menggunakan imread('file location\name.jpg') BB=langkah(MouthDetect, image);

gambar, imshow(gambar);

tunggu

untuk i = 1:ukuran(BB, 1)

persegi panjang('Posisi', BB(i,:), 'Lebar Garis', 4, 'Gaya Garis', '-', 'Warna Tepi', 'r');

akhir

teks(10, 10, strcat('\color{red} Jumlah mulut =', num2str(length(BB))));

title('Deteksi Mulut');

bertahan;

Langkah 4: Mendeteksi Wajah, mata, mulut dalam Video dan Menghitung

Bersihkan semua;

tutup semua;

kl;

% Menangkap frame video menggunakan fungsi input video % Anda harus mengganti resolusi & nama adaptor yang Anda pasang.

a=vision. CascadeObjectDetector; %untuk mendeteksi wajah

% a=vision. CascadeObjectDetector('Mulut', 'MergeThreshold', 16); %untuk mendeteksi mulut

% a=vision. CascadeObjectDetector('EyePairBig'); %untuk mendeteksi mata

% hanya menggunakan salah satu (wajah/mata/mulut)

vid = videoinput('winvideo', 1, 'yuy2_320x240'); % Atur properti objek video

set(vid, 'FramesPerTrigger', Inf);

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

vid. FrameGrabInterval = 5; %mulai akuisisi video di sini

start(vid) % Atur loop yang berhenti setelah 100 frame akuisisi

while(vid. FramesAcquired<=200) % Dapatkan snapshot dari frame saat ini

data = getnapshot(vid);

imshow(data);

b=langkah(a, data);

tunggu

untuk i=1:ukuran(b, 1)

persegi panjang('posisi', b(i,:), 'lebar garis', 2, 'gaya garis', '-', 'Warna Tepi', 'r');

akhir

bertahan

teks(10, 10, strcat('\colour{hijau} Jumlah wajah =', num2str(panjang(b))));

akhir

berhenti (vid); % Hentikan akuisisi video

Direkomendasikan: