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
Tampilkan postingan dengan label OpenCV. Tampilkan semua postingan
Tampilkan postingan dengan label OpenCV. Tampilkan semua postingan
Senin, 05 November 2012
Simple Face Detection using OpenCV | Visual Studio
Hmm... Bingung mau nulis kata pengantarnya (:p). Langsung aja kali ya?? Hehe, kali ini saya mau sharing kodingan Simple Face Detection using OpenCV | Visual Studio. Nah lhoo apa itu OpenCV? Biar lebih jelasnya mengenai apa itu OpenCV kalian tinggal baca aja postingan saya sebelumnya tentang apa itu OpenCV disini. Nahh kalau mengenai projek yang bakalan kita bikin adalah sebuah projek sederhana untuk mendeteksi wajah dari foto yang sudah kita tentukan. Kenapa menggunakan OpenCV? Jawabannya simple, karena lebih mudah dan Open Source!! haha
Oke langsung saja ke tahapan membuat projeknya :
1. Bagi kamu yang belum install OpenCV kamu ikutin langkah-langkah pada postingan saya sebelumnya dan saya sarankan menggunakan OpenCV 2.1.0 karena saya menggunakan yang 2.1.0. Postingannya install OpenCV-nya disini. Untuk nama projeknya terserah kalian, tapi kalau saya namanya FaceDetection.
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"
//fungsi deteksi wajah
void detect_and_draw(IplImage* img){
//inisialisasi
CvHaarClassifierCascade *cascade=0;
CvMemStorage *storage=0;
IplImage* gray=img;
//baca file xml u/ image detection
if(!cascade){
char * file="C:/OpenCV2.1/data/haarcascades/haarcascade_frontalface_alt.xml";
cascade=(CvHaarClassifierCascade*) cvLoad(file, 0, 0, 0);
storage=cvCreateMemStorage(0);
}
//deteksi wajah
CvSeq* faces=cvHaarDetectObjects(
gray,
cascade,
storage,
1.1,
3,
CV_HAAR_DO_CANNY_PRUNING,
cvSize(10, 10));
int i;
//menggambar kotak merah pd bagian wajah yg ditemukan
for(i=0; i<(faces ? faces->total : 0) ; i++){
CvRect* r=(CvRect*) cvGetSeqElem(faces, i);
cvRectangle(img,
cvPoint(r->x, r->y),
cvPoint(r->x + r->width, r->y + r->height),
CV_RGB(255, 0, 0),
1, 8, 0
);
}
//menampilkan gambar hasil deteksi
cvNamedWindow("hasil");
cvShowImage("hasil", img);
cvWaitKey(0);
}
int main(array<System::String ^> ^args){
//load image asli
const char* filename="dank.jpg";
IplImage* img=cvLoadImage(filename);
//panggil fungsi
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\dank.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
Selasa, 04 September 2012
Install OpenCV dengan Visual C++ | Visual Studio
Setelah kemaren saya panjang lebar menjelaskan apa itu OpenCV. Nahh untuk postingan kali ini saya ingin berbagi pengetahuan bagaimana cara menginstall OpenCV dengan Visual C++ pada Visual Studio. Gimana caranya? Cekibrott....
1. Download OpenCV setelah itu install. Lalu buka Microsoft Visual Studio (Mau yang 2005, 2008, ataupun 2010 sama aja).
2. File -> New -> Project
3. Setelah itu pilih Win32 Console Application
4. Beri nama OpenCV (Bisa diganti sesuka kamu)
5. Setelah itu kita setting Project Directories
Pada Microsoft Visual Studio 2005 & 2008
Tools -> Options -> Projects and Solutions -> VC++ Directories
Pada Microsoft Visual Studio 2010
Project -> Properties -> Configuration Properties -> VC++ Directories
Selanjutnya kita include :
- Include Directories tambahkan 'C:\OpenCV2.1\include\opencv;'
- Library Directories tambahkan 'C:\OpenCV2.1\lib;'
- Source Directories tambahkan 'C:\OpenCV2.1\src\cv; C:\OpenCV2.1\src\cvaux; C:\OpenCV2.1\src\cxcore; C:\OpenCV2.1\src\highgui; C:\OpenCV2.1\src\ml;'
Setelah itu jangan lupa setting Linker :
Linker -> Input -> Additional Dependencies
Untuk Debug Builds tambahkan 'cv210d.lib; cxcore210d.lib; highgui210d.lib;'
Untuk Release Builds tambahkan 'cv210.lib; cxcore210.lib; highgui210.lib;'
6. Buat program (Misalnya menampilkan gambar, sebelumnya copy file gambar ke project yang sudah dibuat)
#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
int _tmain(int argc, _TCHAR* argv[])
{
IplImage *img = cvLoadImage("funny-pictures-cat-goes-pew.jpg");
cvNamedWindow("Image", CV_WINDOW_AUTOSIZE);
cvShowImage("Image", img);
cvWaitKey(0);
return 0;
}
Nanti hasilnya kira-kira seperti ini :
Keterangan :
- cvLoadImage : Fungsinya untuk membaca citra. Fungsi ini dapat membaca citra dalam berbagai format seperti BMP, DIB, JPEG, JPE, PNG, PBM, PGM, PPM, SR, RAS, and TIFF.
- cvNamedWindow : Fungsinya untuk membuka window pada layar yang akan berisi citra untuk ditampilkan.
- CV_WINDOW_AUTOSIZE : Properti dari window yang akan mengatur ukuran window sama dengan ukuran citra yang akan ditampilkan.
- cvShowImage : Fungsinya untuk menampilkan citra pada window yang telah dibuka.
- cvWaitKey : Fungsinya akan meminta program untuk berhenti dan menunggu keystroke. Jika argumen yang diberikan positif, program akan menunggu selama milidetik argumen. Jika argumen diatur ke 0 atau ke angka negatif, program akan menunggu sampai suatu tombol ditekan.
Sumber : biomaterial.lipi.go.id
Senin, 03 September 2012
OpenCV
![]() |
OpenCV sendiri terdiri dari 5 library, yaitu :
- CV : untuk algoritma Image processing dan Vision.
- ML : untuk machine learning library
- Highgui : untuk GUI, Image dan Video I/O.
- CXCORE : untuk struktur data, support XML dan fungsi-fungsi grafis.
- CvAux
Struktur dan Konten OpenCV :
Langganan:
Postingan (Atom)
Popular Posts
-
Cara Menjalankan Smartphone Asus Zenfone 4,5 dan 6 dari Komputer - Menjalankan sebuah smartphone android dari komputer merupakan hal yang sa...
-
Blogspot bisa dijadikan alternatif pertama buat para blogger yang baru mencoba menulis. Karena blogspot selain domain gratis juga mudah digu...
-
3rdbell Responsive Video Blogger Template Platform Blogger Template Name 3rdbell Responsive Video Blogger Template Designer M...





