Pengenalan Computer Vision dengan EmguCV di C#.net – Webcam Application
Persiapan
Tentu saja Anda harus mempersiapkan webcam yang bekerja, Visual Studio dengan EmguCV seperti pada artikel sebelumnya.Pembuatan Project
Buat sebuah project C# baru menggunakan Visual Studio.Seperti biasanya tambahkan refeensi ke dalam project baru ini. Pada Solution Explorer, klik kanan pada node References > Add Reference . . .
Akan muncul sebuah dialog Reference Manager, lalu pilih Browse … (dalam kasus ini penulis mempergunakan Visual Studio 2012 yang tampilan Reference Manager nya berbeda dengan versi Visual Studio yang lain). Untuk Visual Studio 2010, pada dialog Add Reference, pilih tab Browse..) dan cari ketiga file library EmguCV seperti pada gambar. Ketiga file ini biasanya terdapat dalam folder \bin di instalasi EmguCV (dalam kasus penulis C:\Emgu\emgucv-windows-x64-gpu 2.4.2.1777\bin )
Pilih OK untuk memasukkan ketiganya dalam references
Perbesar ukuran windows form dan ubah text judul menjadi Camera Capture
Sekarang waktunya menambahkan control ke dalam Panel toolbox Visual Studio. Untuk itu klik kanan pada panel toolbox (biasanya terletak di sebelah kiri layar Visual Studio) dan pilih Choose Item …
Akan muncul dialog Choose Toolbox Items, Pilih Browse (pada Visual Studio 2010 dan 2008 tampilan akan berbeda dengan tampilan pada gambar berikut ini)
Pilih EmguCV.UI.dll dari folder \bin dari folder instalasi EmguCV (pada kasus penulis adalah C:\Emgu\emgucv-windows-x64-gpu 2.4.2.1777\bin ) Kemudian klik tombol OK
Buka toolbox panel pada bagian kiri dan scroll ke bagian bawah, dan Anda akan menemukan control ImageBox, klik dua kali untuk memasukkan control tersebut ke project Anda dengan nama defaultnya, ImageBox1 ( jika control ini masih belum ada, maka periksa kembali bahwa EmguCV.UI.dll telah di load dengan benar pada langkah sebelumnya )
Seret sebuah button dari toolbox ke dalam project dan ubah nama button menjadi btnCapture dan ubah juga text property dari btnCapture menjadi ambil gambar. Perbesar juga ukuran form sehingga berbentuk seperti gambar berikut.
Klik dua kali pada button untuk membuka halaman source dari project Anda (Form1.cs) dan tambahkan perintah berikut dibawah using System.Windows.Forms:
1
2
3
4
5
| using Emgu.Util; using Emgu.CV; using Emgu.CV.Structure; |
1
2
| private Capture capture; private bool captureInProgress; |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| private void btnCapture_Click(object sender, EventArgs e) { try { capture = new Capture(); } catch (Exception error) { MessageBox.Show(error.Message); } if (capture != null) { if (captureInProgress) { btnCapture.Text = "Ambil gambar" ; Application.Idle -= Process; } else { btnCapture.Text += "Stop" ; Application.Idle += Process; } captureInProgress = !captureInProgress; } } |
1
2
3
4
5
6
7
8
9
10
| private void ReleaseData() { if (capture != null) capture.Dispose(); } private void Process(object sender, EventArgs args) { Image<Bgr, Byte> capturedImage = capture.QueryFrame(); imageBox1.Image = capturedImage; } |
Mengatasi EmguCV.InvokeError
Pada bagian sebelumnya, kita menyaksikan salah satu pesan kesalahan yang muncul dari EmguCV, pesan tersebut tidak lah terlalu menjelaskan penyebab sebenarnya dari kemunculan EmguCV.Invoke Error. Pesan kesalahan ini dapat muncul dari berbagai sebab, karenanya penulis akan menguraikan penyebab error ini muncul.- Cek kode sebelumnya, pastikan tidak terjadi kesalahan ketik sebelumnya. Banyak dari pesan kesalahan dari EmguCV hanya di jelaskan dengan Invoke Error sekalipun kesalahan tersebut dapat berbeda-beda setiap saat.
- Periksa apakah ketiga file library (.dll) sudah di reference dengan
benar. Jika benar maka Anda akan melihat tampilan seperti dibawah ini.
Jika tidak ada, maka ulangi langkah sebelumnya mengenai cara menambahkan
reference ke dalam project.
- Pastikan bahwa pada artikel sebelumnya ( Hello World ) sample yang Anda buka dapat dijalankan. Jika pada artikel sebelumnya tidak dapat dijalankan silahkan kembali pada artikel sebelumnya.
- Setelah pengecekan pada tiga langkah sebelumnya dilakukan, kini saatnya menerapkan solusi untuk error ini. Pertama yang dilakukan adalah meng-import keseluruhan library EmguCV ke dalam project kita. Kenapa melakukan hal ini? Mudah, EmguCV ( setidaknya pada versi penulis, yaitu : emgucv-windows-x64-gpu 2.4.2.1777) memerlukan pemanggilan library file (.dll file) saat running, sehingga kita harus memasukkan file dll tersebut bersama dengan file executable (.exe) yang dihasilkan oleh Visual Studio pada folder /bin.
- Untuk itu, bukalah folder /bin pada instalasi EmguCV Anda (dalam
kasus penulis C:\Emgu\emgucv-windows-x64-gpu 2.4.2.1777\bin dan pada
kasus 32 bit maka x64 akan diganti dengan x86). Akan terdapat sebuah
folder dengan nama x64 atau x86 ( tergantung jenis EmguCV yang Anda
pasang ), copy folder tersebut ke dalam /bin project Anda.
- Setelah itu, pastikan juga bahwa project Anda di compile sesuai
dengan platform sistem operasi Anda, karena EmguCV sangat bergantung
kepada platform (32 atau 64 bit). Buka Properties project dengan cara
klik dua kali dari Solution Explorer (lihat gambar).
- Buka bagian Build dan hilangkan centang Prefer 32 bit dan pilih Platform Target dengan Any CPU (lihat gambar berikut).
- Sekarang setelah Anda mengatur bagaimana aplikasi yang akan dibuat nanti di-compile maka klik F5 atau Debug > Start Debugging
dan jika semuanya benar maka Anda akan mendapati tampilan sebagai
berikut. Selamat Anda telah berhasil membuat aplikasi pertama dengan
EmguCV!
0 komentar:
Posting Komentar