Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
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
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
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
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