Seharusnya saya tidak berada di sini, seharusnya saya mengerjakan yang lain. Itulah yang ada pada benak saya ketika menulis blog post ini. Karena sebenarnya saya sedang dikejar deadline atau dateline (yang mana sih yang bener? Deadline atau Dateline? Tapi saya lebih memilih mengejanya Deadline karena ketika Deadline datang memang kadang-kadang rasanya mau mati saja sehingga pantas disebut garis kematian). Pelatihan Software GMM (Gema Mahasiswa Matematika) adalah minggu ini! Dan saya harus membuat modul dengan deadline hari ini! Dan bahkan saya belum menyentuh pembuatan modul ini sedikit pun! But whatever lah, nanti sore saya bakal mengerjakan modulnya digeder sampai malam hari, sekarang OpenCV masih terlalu menarik untuk ditinggalkan sementara. Ya, OpenCV telah membuatku tertarik untuk mendalaminya beberapa hari ini sehingga melupakan unsur-unsur kehidupan lainnya. Dan sekarang saya ingin coba berbagi bagaimana membuat aplikasi sederhana penampil gambar menggunakan C++ dan OpenCV.
Saya menggunakan Microsoft Visual Studio 2010 Ultimate, OpenCV versi 2.1, dan Windows 7 Ultimate x64. Saya anggap Anda sekalian sudah bisa menginstall OpenCV di komputer Anda, lalu membuat proyek baru C++ Win32 Console Application di Visual Studio, lalu menghubungkan VS dengan OpenCVnya. Jika belum, silahkan kunjungi postingan blog saya yang membahasnya disini.
Setelah OpenCV diinstall dan proyek kita pada VS telah dihubungkan dengan OpenCVnya silahkan berikan skrip berikut pada aplikasi Anda.
#include “StdAfx.h”
#include “highgui.h”
int main( int argc, char** argv )
{
IplImage* gbr = cvLoadImage( “D:/KEMAKOM.jpg”,1 );
cvNamedWindow(“Logo Kemakom”, CV_WINDOW_AUTOSIZE );
cvShowImage(“Logo Kemakom”, gbr );
cvWaitKey(0);
cvReleaseImage( &gbr );
cvDestroyWindow(“Logo Kemakom”);
}
Silahkan dijalankan (F5).Dasarnya, aplikasi ini mengambil gambar dari direktori “D:/KEMAKOM.jpg”, lalu membuat suatu jendela bernama “Logo Kemakom” dengan ukuran yang disesuaikan, lalu menampilkan gambar yang tadi telah diambil ke suatu jendela bernama “Logo Kemakom”.
Mari kita lihat baris programnya satupersatu:
IplImage* gbr = cvLoadImage( “D:/KEMAKOM.jpg”,1 );
Baris ini berguna untuk membuka gambar dan menyimpannya pada variabel gbr. Fungsi cvLoadImage adalah fungsi yang dapat menentukan format berkas berdasarkan dari nama berkasnya dan juga secara otomatis mengalokasikan memori yang diperlukan untuk struktur data gambar. Sebagai catatan bahwa cvLoadImage() dapat membaca berbagai macam format gambar yaitu BMP, DIB, JPEG, JPE, PNG, PBM, PGM, PPM, SR, RAS, dan TIFF.
cvNamedWindow(“Logo Kemakom”, CV_WINDOW_AUTOSIZE );
cvNamedWindow() membuka jendela pada layar sehingga dapat mengandung dan menampilkan gambar. Fungsi ini didukung oleh library HighGUI dari OpenCV, dan langsung memberi nama pada jendela tersebut, pada contoh ini “Logo Kemakom”. Untuk selanjutnya untuk memanggil jendela ini menggunakan nama ini. CV_WINDOW_AUTOSIZE artinya ukuran dari jendela akan disesuaikan dengan konten yang ada di jendela tersebut.
cvShowImage(“Logo Kemakom”, gbr );
Baris ini untuk menampilkan suatu gambar yang telah dideklarasikan oleh pointer IplImage*.
cvShowImage() memerlukan parameter nama dari suatu jendela yang sudah ada (atau jika belum ada maka akan dibuatkan baru), lalu nama variabel gambar yang akan ditampilkannya.
cvWaitKey(0);
Baris ini untuk menunggu suatu Keystroke selama milidetik sejumlah parameter yang diisikan. Jika tidak ada Keystroke maka aplikasi akan dilanjutkan.
cvReleaseImage( &gbr );
cvDestroyWindow(“Logo Kemakom”);
Kedua baris ini adalah untuk membebaskan memori kembali. Walau sebenarnya ketika kita menutup aplikasi kita sistem operasi akan secara otomatis melakukannya, tapi tak ada salahnya kita tulis kedua baris ini.
Oh sh*t, Tugas Kelompok PLSBT pun belum dikerjakan! Padahal Jum’at minggu ini presentasi! Damn.