Sunday 14 December 2014

VSC++ :: 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

VSC++ :: Simple Face Detection using OpenCV | Visual Studio

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. Untuk nama projeknya terserah kalian, tapi kalau saya namanyaFaceDetection.

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. 

INFO :: Pengertian OpenCV



OpenCV (Open Computer Vision) adalah sebuah API (Application Programming Interface) Library yang sudah sangat familiar pada Pengolahan Citra Computer VisionComputer Vision itu sendiri adalah salah satu cabang dari Bidang Ilmu Pengolahan Citra (Image Processing) yang memungkinkan komputer dapat melihat seperti manusia. Dengan vision tersebut komputer dapat mengambil keputusan, melakukan aksi, dan mengenali terhadap suatu objek. Beberapa pengimplementasian dari Computer Vision adalah Face Recognition, Face Detection, Face/Object Tracking, Road Tracking, dllOpenCVadalah library Open Source untuk Computer Vision untuk C/C++, OpenCV didesain untuk aplikasi real-time, memiliki fungsi-fungsi akuisisi yang baik untuk image/video.


OpenCV sendiri terdiri dari 5 library, yaitu :
  1. CV :  untuk algoritma Image processing dan Vision. 
  2. ML : untuk machine learning library 
  3. Highgui : untuk GUI, Image dan Video I/O. 
  4. CXCORE : untuk struktur data, support XML dan fungsi-fungsi grafis. 
  5. CvAux

Struktur dan Konten OpenCV :

FLASH :: Download Komponen Face recognition menggunakan flash Action Script 3.0

Filename Summary + Labels Uploaded ReleaseDate Size DownloadCount ...
 DownloadFaceRecognitionLib v1.3.zipFaceRecognitionLib v1.3 compiled SWC for Flex SDK 4.6 or later   Featured EigenfacesComputer Vision Haar Cascade detection recognitionOct 2013Oct 2013157 KB1044
 DownloadFaceRecognitionLib v1.2.zipFaceRecognitionLib v1.2 compiled SWC for Flex SDK 4.6 or laterApr 2012Apr 201251.7 KB1357
 DownloadFaceRecognitionLib.swcFaceRecognitionLib v1.0 compiled SWC for Flex SDK 3.5 to 4.5   AS3 ComputerVisionEigenfaces Face RecognitionJul 201058.9 KB1208
 DownloadFaceRecognizerForBrowserUsingCameraV1_3_A3.fxpExample 2 - FaceRecognizerForBorowserUsingCamera using lib in version v1.3 Alpha 3  FeaturedSep 2012Sep 20127.3 MB1458
 DownloadExample_FaceRecognizerForBrowser.zipExample 1 - FaceRecognizerForBrowser_SDK_3.5 in ZIP - library in v1.0   example Featuredface recognition eigenface FaceRecognitionLibJul 20101.5 MB3949
 DownloadFaceRecognizerForBrowser.fxpExample 1 - FaceRecognizerForBrowser_SDK_3.5 in FXP (Flash Builder 4 Project)  Eigenface face recognition Flex Adobe AS3 ActionScriptJul 20107.7 MB1203
 Downloadface-recognition-library-as3-asdoc-polish.zipDocumentation in Polish language   documentation polish FeaturedAug 2010524 KB771
 Downloadface-recognition-library-as3-asdoc-english-alpha version.zipDocumentation in English language   FeaturedMar 2011Mar 2011218 KB1993
 Downloadface_recognition_lib_uml_rev9.pngClass diagram for some of classes in package com.oskarwicha.image.FaceRecognitionApr 2011Apr 2011325 KB1353
 Downloadface.zipArchive with Haar Cascades needed if using "FaceDetector" object in v1 and v1.2Jun 2012Jun 2012103 KB795

VB6.0 :: Deteksi Tepi (Edge Detection)


Deteksi tepi (Edge Detection) pada suatu citra adalah suatu proses yang menghasilkan tepi-tepi dari obyek-obyek citra, tujuannya adalah :
o Untuk menandai bagian yang menjadi detail citra
o Untuk memperbaiki detail dari citra yang kabur, yang terjadi karena error atau adanya efek dari proses akuisisi citra

Suatu titik (x,y) dikatakan sebagai tepi (edge) dari suatu citra bila titik tersebut mempunyai perbedaan yang tinggi dengan tetangganya Ada beberapa macam metode deteksi tepi antara lain sebagai berikut :

1. Metode Robert
Metode Robert adalah nama lain dari teknik differensial yang dikembangkan di atas, yaitu differensial pada arah horisontal dan differensial pada arah vertikal, dengan ditambahkan proses konversi biner setelah dilakukan differensial. Teknik konversi biner yang disarankan adalah konversi biner dengan meratakan distribusi warna hitam dan putih [5], seperti telah dibahas pada bab 3. Metode Robert ini juga disamakan dengan teknik DPCM (Differential Pulse Code Modulation) Kernel filter yang digunakan dalam metode Robert ini adalah: 


2.Metode Prewitt
Metode Prewitt merupakan pengembangan metode robert dengan menggunakan filter HPF yang diberi satu angka nol penyangga. Metode ini mengambil prinsip dari fungsi laplacian yang dikenal sebagai fungsi untuk membangkitkan HPF. Kernel filter yang digunakan dalam metode Prewitt ini adalah: 

3.Metode Sobel
Metode Sobel merupakan pengembangan metode robert dengan menggunakan filter HPF yang diberi satu angka nol penyangga. Metode ini mengambil prinsip dari fungsi laplacian dan gaussian yang dikenal sebagai fungsi untuk membangkitkan HPF. Kelebihan dari metode sobel ini adalah kemampuan untuk mengurangi noise sebelum melakukan perhitungan deteksi tepi. Kernel filter yang digunakan dalam metode Sobel ini adalah: 

Berikut ini adalah hasil dari ketiga metode tersebut di atas: 
Berikut ini adalah program deteksi tepi yang dibuat dengan Visual Basic 6 :
1. Deteksi Tepi Robert
2. Deteksi Tepi Prewitt
3. Deteksi Tepi Sobel
Semoga bermanfaat Yaa...!!!

FLASH :: Flash AS3 face detection and recognition library


Today I am showing you a nice AS3 library which allows face detection and recognition in a photo. I already blogged about a similar topic in PHP face detection class post, but this time we’ll work with AS3 and face recognition.
You may say: is there a difference between face detection and face recognition? Or are you just using these words randomly?
There is a slight difference, let me explain:
Face detection looks for some features which distinguish an human face from the rest of stuff in a photograpy: usually when we have a pair of eyes, nose, and a mouth we may say we are in front of a face (ok, I made it a bit simpler than it really is, but this is the concept behind it). Let’s think about the Facebook tag option when you upload a new photo.
Face recognition looks for A SPECIFIC face in a photo, just like cameras in an airport looking for some most wanted terrorist faces. With some tweakings, face recognition can be used as face detection.
Oskar Wicha’s ActionScript 3 library allow us to do both things using Eigenfaces concept, basically some patterns which should match a human face.
The following script wants the path of an image in the input text at the bottom of the stage and once you click anywhere, it loads the image and places a tag on any face it recognizes.


And you will get something like that:

It’s just an image because I cannot load external image due to cross domain policy, but try it by yourself, just enter an url and click with the mouse anywhere we running your Flash IDE
Remember that face detection and recognition could be no that accurate, so in some cases it will miss faces, in some other cases it will detect false positive faces.
Download the source code with the library and a zipped file with Eigenfaces data which must be placed in the same folder of your main file. Also, you’ll probably have to customize the path to your FaceRecognitionLib.swc library.