Langsung ke konten utama

Simple Eye, Nose and Mouth Detection using OpenCV | Visual Studio

Setelah tadi kita membuat projek Simple Face Detection using OpenCV. Sekarang kita akan mencoba membuat projek Simple Eye, Nose and Mouth Detection using OpenCV | Visual Studio. Sebenarnya kodingan masih sama seperti projek tadi, kita tinggal mengganti pembacaan file XML-nya aja dengan memodifikasi sedikit kodingan.

Berikut tahapan-tahapannya :
1. Bagi kamu yang belum install OpenCV, ikutin step by step di postingan install OpenCV dengan Visual Studio disini. Saya sarankan menggunakan OpenCV 2.1.0 karena saya menggunakan yang itu. (Biar sama :p)

2. Setelah selesai meng-install dan setting Project Directories kamu tinggal copy-paste kodingan di bawah :


#include "stdafx.h"
#include "cv.h"
#include "highgui.h"

void detect_and_draw(IplImage* img)
{
        //inisialisasi
        CvHaarClassifierCascade *cascade=0;
        CvHaarClassifierCascade *cascade1=0;
CvHaarClassifierCascade *cascade2=0;
        CvMemStorage *storage=0;

        IplImage* gray = img;

        //baca file xml untuk image detection
        if(!cascade)
        {
//untuk deteksi hidung
                char * file = "C:/OpenCV2.1/data/haarcascades/haarcascade_mcs_nose.xml";
//untuk deteksi mata
                char * file1 = "C:/OpenCV2.1/data/haarcascades/haarcascade_eye.xml";
//untuk deteksi mulut
char * file2 = "C:/OpenCV2.1/data/haarcascades/haarcascade_mcs_mouth.xml";

                cascade = (CvHaarClassifierCascade*) cvLoad(file,0,0,0);
                cascade1 = (CvHaarClassifierCascade*) cvLoad(file1,0,0,0);
cascade2 = (CvHaarClassifierCascade*) cvLoad(file2,0,0,0);
                storage = cvCreateMemStorage(0);
        }

        //mendeteksi image hidung
        CvSeq* noses =
                cvHaarDetectObjects(
                gray,
                cascade,
                storage,
                1.1,
                3,
                CV_HAAR_DO_CANNY_PRUNING,
                cvSize(10,10));

        //mendeteksi image mata
        CvSeq* eyes =
                cvHaarDetectObjects(
                gray,
                cascade1,
                storage,
                1.1,
                3,
                CV_HAAR_DO_CANNY_PRUNING,
                cvSize(20,20));

        //mendeteksi image mulut
        CvSeq* mouth =
                cvHaarDetectObjects(
                gray,
                cascade2,
                storage,
                1.1,
                3,
                CV_HAAR_DO_CANNY_PRUNING,
                cvSize(10,10));

        int i;

        //menggambar kotak merah pada bagian hidung yang ditemukan
        for(i = 0; i < (noses ? noses->total : 0); i++)
        {
                CvRect* r = (CvRect*) cvGetSeqElem(noses, i);
                cvRectangle(
                        img,
                        cvPoint(r->x, r->y),
                        cvPoint(r->x + r->width, r->y + r->height),
                        CV_RGB(255,0,0),
                        1, 20, 0
                );
        }

        //menggambar kotak biru laut pada bagian mata yang ditemukan
        for(i = 0; i < (eyes ? eyes->total : 0); i++)
        {
                CvRect* r = (CvRect*) cvGetSeqElem(eyes, i);
                cvRectangle(
                        img,
                        cvPoint(r->x, r->y),
                        cvPoint(r->x + r->width, r->y + r->height),
                        CV_RGB(0,255,255),
                        1, 20, 0
                );
        }

//menggambar kotak putih pada bagian mulut yang ditemukan
        for(i = 0; i < (mouth ? mouth->total : 0); i++)
        {
                CvRect* r = (CvRect*) cvGetSeqElem(mouth, i);
                cvRectangle(
                        img,
                        cvPoint(r->x, r->y),
                        cvPoint(r->x + r->width, r->y + r->height),
                        CV_RGB(255,255,255),
                        1, 20, 0
                );
        }

        //menampilkan gambar hasil deteksi
        cvNamedWindow("hasil");
        cvShowImage("hasil", img);

        cvWaitKey(0);
}

int main(array<System::String ^> ^args)
{
    //load image asli
        const char* filename = "dank3.jpg";
        IplImage* img = cvLoadImage(filename);

        //pemanggilan fungsi untuk deteksi wajah
        detect_and_draw(img);
}


3. Untuk yang berwarna merah sesuaikan dengan nama file foto yang sudah kalian masukkan di dalam projeknya. Kalau saya file fotonya ada di C:\Users\Ozi Priawadi\Documents\Visual Studio 2012\Projects\FaceDetection\FaceDetection\dank3.jpg. Kalau yang berwarna biru sesuaikan dengan folder instalan OpenCV yang sudah kamu buat.

4. Setelah selesai coba klik RUN projeknya dan hasilnya kira-kira seperti ini





Komentar

Postingan populer dari blog ini

10 Contoh Peluang Usaha Bagi Pengangguran || Tambah Wawasan

Contoh Peluang Usaha Bagi Pengangguran - Selamat Datang Pengunjung Budiman , Pada Kesempatan Kali Ini Kami Akan Membagikan Beberapa Referensi Bagi Anda Yang Membutuhkan Jenis Usaha Terutapa Bagi Pengangguran . Kami Akan Memberikan 10 Jenis Usaha Sebagai Referensi Sehingga Anda Dapat Memilah Usaha Mana Yang Cocok Untuk Di Jalankan.
Menjadi Seorang Usaha Memang Tidak Enak , Terkadang Kita Hanya Mendapatkan Pekerjaan Musiman Saja Dimana Apabila Lagi Sedang Tidak Musimnya Kita Akan Menganggur Atau Bekerja Ala Kadarnya.

Saat Ini Pengangguran Bisa Menyerang Siapa Saja , Baik Itu Mulai Yang Tidak Sekolah , Lulusan Sd , Smp Dan Sma/Smk Bahkan Orang Yang Sudah Mendapatkan Gelar Sarjana Pun Banyak Yang Menganggur.
Saat Ini Tingkat Persaingan Tenaga Kerja Sangatlah Kuat Dan Sulit Untuk Mendapatkan Pekerjaan Terlebih Lagi Bagi Anda Yang Tidak Tamat Sekolah Atau Hanya Mendapatkan Ijasah Maksimal Smp Tentu Hal Ini Menjadi Masalah Yang Sangat Besar.
Baca : Peluang Usaha Sampingan Bagi Pelajar Modal Keci…

Contoh Soal Psikotes Bank (Mandiri, BCA, BNI, Danamon, BTN) Jawabannya Seri Deret, Matematika 2016

Contoh Soal Psikotes Bank (Mandiri, BCA, BNI, Danamon, BTN) Jawabannya Seri Deret, Matematika
Kembali lagi kami update soal-soal psikotes terbaru sebagai latihan dalam persiapan seleksi lowongan kerja. Kali ini kami akan memberikan contoh soal psikotes bank secara gratis dan tidak perlu di download (ebook pdf). Soal latihan ini berisi soal psikotes seri deret dan matematika yang sering ditanyakan dalam ujian di bank seperti psikotes bank Mandiri, BCA, BNI, Danamon, BTN dan berlaku juga untuk yang syariah.
Contoh Soal Psikotes Bank (Mandiri, BCA, BNI, Danamon, BTN) Jawabannya Seri Deret, Matematika
Kisi-kisi soal ini sudah dilengkapi dengan kunci jawaban dan tidak ketinggalan pembahasan soalnya. Dan soal-soal psikotes ini merupakan bagian kecil dari paket kunpulan soal psikotes klik disini

Baiklah langsung kita ke topik kita mengenai soal-soal psikotes bank. Contoh Soal Psikotes Bank (Mandiri, BCA, BNI, Danamon, BTN)
01. 8, 17, 33, …, …, 257.
Bilangan yang tepat untuk mengisi tit…

Cara edit foto Blur effect seperti Kamera SLR [ PicsayPro ]

ASSALAMUALAIKUM ! hai sobat bog ! Salam Alwi art !
Balik lagi nih sama saya si so' editor tapi editannya jelek :D .


Kalian pernah melihat foto blur yang keren spt yang diatas ?? Dan kalian mau foto seperti itu tapi gak punya kemera untuk memotret nya ??? Yaa kalo kalian punya kamera bersukurlah kalian :). Tapi buat temen temen yang gak punya kamera dan cuman punya hape ANDROID , saya punya solusinya ! :D wow !! Hehe .. Kalo buat foto objek objek kecil spt pensil , jari tangan Dll itu masih bisa pake auto fokus dari bawaan hape , tapi untuk objek yang besar atau jauh seperti foto orang itu sulit kalo pake auto fokus bawaan hape.  Nih conto hasilnya :

Walaupun tidak sebagus hasil kamera SLR tapi lumayan lah.. hehe  Pake aplikasi apa ??? Ya ! PicsayPRO ! Memang aplikasi ini salahsatu aplikasi edit foto yang mengambil hati saya hehe selain mudah untuk edit foto aplikasi ini juga hemat memori guys! 
Yuk langsung saja !  
Bahan bahan :  1. Apk PicsayPro, Download disini. 2. Foto yang mau di edit
C…