Selasa, 07 Juni 2011

Membuat Program Pendeteksi Wajah Dengan VB net

By: Klampok_Child
Contoh Program Pendeteksi Wajah - Timnas Indoensia
Contoh Program Pendeteksi Wajah

wew? apakah mungkin program kita bisa mencari wajah yang ada di dalam gambar?? lalu menandainya?? hhmmm.. mungkin. dan itu bisa. itu sudah terbukti.
kita bisa saja membuat algoritma pendeteksi wajah itu di program kita. namun itu akan sangat sulit, butuh banyak percobaan dan memakan banyak waktu. tapi, sekarang ada solusinya. ada sebuah program opensource yang mebahas tentang ini. yaitu OpenCV dan EmguCV.

By: Klampok_Child
  • OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision. 
  • Emgu CV is a cross platform .Net wrapper to the Intel OpenCV image processing library. Allowing OpenCV functions to be called from .NET compatible languages such as C#, VB, VC++, IronPython etc. The wrapper can be compiled in Mono and run on Linux / Mac OS X.
Dari pengertian di atas telah diberikan deskripsi dari kedua opensource tersebut. OpenCV itu adalah librari dari fungsi-fungsi pemrograman yang mengenai tentang Computer-Vision. kalau ga salah ini diprakarsai oleh Intel. dan EmguCV adalah perantara dari librari pengolah gambar dari OpenCV agar bisa dipanggil dalam pemrograman [dot]net, salah satunya VB net.

Bentuk dari librari OpenCV dan EmguCV adalah file .dll. file ini harus di sertakan satu folder dengan file .exe program kita. OK. lets Try..

Buka Visual Studio, 2008/ 2010 sama aja. trus buat project baru "Windows Form Application", lalu masukan sebuah pictureBox.
Attribut PictureBox1
  • Dock: Fill
  • Size Mode: Zoom
Trus, Import references dari Dll milik EmguCV:

- Emgu.CV.dll
- Emgu.CV.UI.dll
- Emgu.Util.dll
Caranya:
  • lihat pada sisi kiri (jendela Visual Studio), pada solution explorer, klik kanan di "references" -> pilih "Add Reference"
  • Pilih Tab "Browse" (Saya sarankan anda telah mengkopi dll yang diperlukan: cvextern.dll, Emgu.CV.dll, Emgu.CV.UI.dll, dan Emgu.Util.dll ke dalam folder "bin\debug") tambahkan satu persatu dll nya ke dalam reference, kecual "cvextern.dll".
cvextern.dll tidak bisa di load ke visual studio karena dll ini tidak di desain untuk itu, tapi dengan dll dari EmguCV, kita jadi bisa dengan mudah menggunakan fungsi-fungsi milik cvextern.dll (milik OpenCV) ke dalam project [dot]net kita.
Tapi kenapa cvextern.dll perlu juga di masukan satu folder dengan dll lainya?? yaitu karena dll milik EmguCV membutuhkan cvextern.dll untuk meload fungsi-fungsi grafis.

Setelah itu, Masukan code ini di dalam Form1.vb:

Imports Emgu.CV
Imports Emgu.Util
Imports Emgu.CV.Structure
Imports Emgu.CV.UI
Public Class Form1
    Private Sub Form1_Load() Handles MyBase.Load
        Dim p As String = Application.StartupPath
        PictureBox1.Image = Image.FromFile("image.jpg")
        Dim ImageBgr As New Image(Of Bgr, Byte)(PictureBox1.Image)
        Dim HaarXML As New HaarCascade("haarcascade_frontalface_alt_tree.xml")
        Dim GrayImage As Image(Of Gray, Byte) = ImageBgr.Convert(Of Gray, Byte)()
        Dim ImgGraphics As Graphics = Graphics.FromImage(PictureBox1.Image)
        Dim MPen As New Pen(Brushes.YellowGreen, 8)
        ' Will take a several minute.. please wait..
        For Each m In GrayImage.DetectHaarCascade(HaarXML)(0)
            ImgGraphics.DrawRectangle(MPen, m.rect)
        Next
    End Sub
End Class

[!] Aku ingetin lagi, saat menjalankan program percobaan anda, pastikan dll ini berada satu folder dengan exe file anda:
- cvextern.dll
- Emgu.CV.dll
- Emgu.CV.UI.dll
- Emgu.Util.dll

Untuk lebih jelas, silahkan DOWNLOAD PROJEKNYA DISINI

2 comments:

my new blog mengatakan...

om projek antum ga bsa d download

my new blog mengatakan...

om project antum ga bsa d download hehe

Klampok Child | XKom | Win7Aero