Friday, October 14, 2016

EmguCV dengan C# - Tutorial Part 3 : Membuat Aplikasi Sederhana

Aplikasi Deteksi Wajah Sederhana


Download source code : https://goo.gl/rbJg2t

Pada tutorial kali ini kita akan membuat aplikasi sederhana untuk deteksi wajah. Input berupa berkas citra yang mengandung wajah.


  • Pertama-tama buatlah form dengan satu Button dan satu ImageBox dengan layout seperti ini :

  • Kemudian copy dan paste code di bawah ini :
using Emgu.CV;
using Emgu.CV.Structure;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TutorialPart1
{
    public partial class MainForm : Form
    {
        CascadeClassifier cascade;
        public MainForm()
        {
            InitializeComponent();
            cascade = new CascadeClassifier("haarcascade_frontalface_default.xml");
        }

        private void buttonBrowse_Click(object sender, EventArgs e)
        {
            OpenFileDialog OF = new OpenFileDialog();
            if(OF.ShowDialog() == DialogResult.OK)
            {
                Mat picture = new Mat(@OF.FileName, Emgu.CV.CvEnum.LoadImageType.AnyColor);
                Rectangle[] detectedFaces = cascade.DetectMultiScale(picture);
                foreach (Rectangle r in detectedFaces)
                {
                    CvInvoke.Rectangle(picture, r, new Bgr(Color.Red).MCvScalar, 2);
                }
                imageBox1.Image = picture;
            }
        }
    }
}


MENGATASI ERROR "TypeInitializationException"
PERHATIAN!!! LANGKAH DI BAWAH WAJIB DILAKUKAN SETIAP KALI MEMBUAT PROJECT BARU.

Jangan lupa untuk mengcopy berkas "cvextern.dll", "msvcp120.dll", dan "msvcr120.dll" dari "libemgucv-windesktop-3.1.0.2282\bin\x86" (atau x64 jika solution platform menggunakan 64 bit) ke folder output (lihat path folder output di Project->Properties->Build->Output Path). Jika sobat tidak mengcopy berkas-berkas tersebut akan ada error "TypeInitializationException" atau "Unable to load dlls".


  • Oh ya, jangan lupa juga untuk mengcopy berkas "haarcascade_frontalface_default.xml" dari folder "libemgucv-windesktop-3.1.0.2282\etc\haarcascades". Berkas tersebut merupakan classifier jadi yang digunakan untuk deteksi wajah, kita tinggal pakai saja.
  • Setelah itu coba run aplikasi yang sudah kita buat. Sebagai contoh, saya memakai citra "lena.jpg" yang ada di "libemgucv-windesktop-3.1.0.2282\bin", berikut hasilnya :

Sampai di sini dulu tutorial untuk kali ini. Tutorial berikutnya kita akan mencoba membuat aplikasi dengan input webcam.

Salam luar biasa,
ErinQvnm

No comments:

Post a Comment