Monday, June 6, 2011

VB net Face Detection

Sample Face Detection with VB net 2010
Sample Face Detection
I write this code using VS 2010, and my OS is Windows 7. This code was used library of the Open Source Computer Vision (OpenCV) and EmguCV. see this:

Create new WindowsForm Project, and drop a PictureBox Control.
You must add the Emgu libraries, by adding reffences of this DLL:
- Emgu.CV.dll
- Emgu.CV.UI.dll
- Emgu.Util.dll

Write this code:

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

When you execute your program, this DLL file must in the same folder of your exe file:
- cvextern.dll
- Emgu.CV.dll
- Emgu.CV.UI.dll
- Emgu.Util.dll

if you need to download this project, DOWNLOAD HERE

2 comments:

  1. In the part:
    For Each m In GrayImage.DetectHaarCascade(HaarXML)(0)
    ImgGraphics.DrawRectangle(MPen, m.rect)
    Next

    What is "m"?
    For each "what?"

    :)

    ReplyDelete
  2. I am getting error as type haarcascade is not defined ;(

    ReplyDelete