Pembaca yang budiman,
Kali ini kami akan membahas penggunaan OpenCV pada aplikasi Visual Studio yang dibangun dengan MFC. Kita mulai dari hal yang paling sederhana yaitu menampilkan gambar pada “Picture Box” MFC. Di sini kami menggunakan OpenCV 2.4.3 dan Visual C++ 2008 Pro (gratisan dari DreamSpark 😀)
Sebelumnya, ketika kita menggunakan “console-based programming” (kami pribadi lebih menyukai console programming daripada MFC-based programming, tentu saja karena prosesnya pemrogramannya lebih cepat 😀), menampilkan sebuah gambar menggunakan OpenCV sangatlah mudah, seperti contoh berikut:
// Header and Initialization
// ...
cv::namedWindow("Display",1);
// ...
// Read image and display it
cv::Mat img = cv::imread("image.png",1);
cv::imshow("Display",img);
cv::waitKey(1);
// ...
Program di atas jika dijalankan akan menghasilkan satu buah console command prompt dan satu window bernama “Display” yang menampilkan gambar “image.png”, seperti gambar berikut

Lalu bagaimana jika kita ingin membuat sebuah aplikasi yang terlihat “profesional” seperti aplikasi-aplikasi Windows pada umumnya yang memiliki GUI? Sebenarnya ada beberapa kemungkinan aplikasi yang bisa kita gunakan seperti Qt, WxWidget, MFC Visual Studio, dan sebagainya. Namun di sini kami mencoba menggunakan Visual Studio yang telah mafhum digunakan oleh banyak developer.
Ide dasar dari penampilan gambar pada Picture Box MFC adalah memindah handle dari OpenCV Window ke Picture Box. Ini dapat kita lakukan dengan code snippets berikut
// Initialization
// ...
cv::namedWindow("Display",CV_WINDOW_AUTOSIZE);
HWND hWnd = (HWND) cvGetWindowHandle("Display");
HWND hParent = ::GetParent(hWnd);
::SetParent(hWnd, GetDlgItem(IDC_STATIC)->m_hWnd); // IDC_STATIC is the handle of Picture Box
::ShowWindow(hParent, SW_HIDE);
// ...
Selanjutnya kita bisa memproses dan menampilkan image seperti biasa
// Read image and display it
cv::Mat img = cv::imread("image.png",1);
cv::imshow("Display",img);
// ...
dan akan kita dapatkan tampilan MFC seperti gambar berikut

Cukup sederhana bukan? Pada artikel berikutnya, kita akan membahas video processing menggunakan MFC dan OpenCV.
NB : Article ini ditujukan untuk para pembaca yang sudah mengerti MFC Programming dan “at least” sedikit pengetahuan tentang OpenCV. Jika Anda bukan pengguna MFC, sebaiknya mulailah belajar OpenCV dari “console-mode” yang sudah biasa digunakan dan banyak beredar.
