Deprecated: Assigning the return value of new by reference is deprecated in /home/wibirama/public_html/dip/wp-settings.php on line 468

Deprecated: Assigning the return value of new by reference is deprecated in /home/wibirama/public_html/dip/wp-settings.php on line 483

Deprecated: Assigning the return value of new by reference is deprecated in /home/wibirama/public_html/dip/wp-settings.php on line 490

Deprecated: Assigning the return value of new by reference is deprecated in /home/wibirama/public_html/dip/wp-settings.php on line 526

Deprecated: Assigning the return value of new by reference is deprecated in /home/wibirama/public_html/dip/wp-includes/cache.php on line 103

Deprecated: Assigning the return value of new by reference is deprecated in /home/wibirama/public_html/dip/wp-includes/query.php on line 21

Deprecated: Assigning the return value of new by reference is deprecated in /home/wibirama/public_html/dip/wp-includes/theme.php on line 618
Image Processing and Computer Vision Indonesia - DIP.WARRIOR - Category: C++

CImg Image Processing on C++

November 22nd, 2008 § 0

Website : http://cimg.sourceforge.net/index.shtml

The CImg Library is an open source C++ toolkit for image processing designed with these properties in mind :

Usefulness
CImg defines simple classes and methods aimed at manipulating generic images in your own C++ code : Load/save various file formats, access pixel values, display, resize/rotate/mirror/filter, draw primitives (text, faces, curves, 3D objects, …), compute statistics, manage user interactions, and so on…
Genericity
Provided image classes can represent datasets up to 4-dimension wide (from 1D scalar signals to 3D hyperspectral volumes), with template pixel types. Image collections and sequences are also supported.
Portability
CImg is self-contained and thus highly portable. It fully works on different operating systems (Unix, Windows, MacOS X, *BSD) with various C++ compilers (Visual C++, GNU g++, Intel icc, Borland bcc, …).
Simplicity
CImg is lightweight. It is made of a single header file CImg.h that must be included in your C++ source. It defines only four different classes. It can be compiled using a minimal set of standard C++ and system libraries. No need for exotic or complex dependencies.
Extensibility
Although not required, CImg can use functionalities of external tools/libraries such as ImageMagick, GraphicsMagick, XMedCon, FFMPEG, libpng, libjpeg, libtiff, Magick++, Lapack, Board or FFTW3. Moreover, a simple plug-in mechanism allows any user to directly enhance the library capabilities according to his needs.
Freedom
CImg is a free, open-source library distributed under the CeCILL-C (close to the GNU LGPL) or CeCILL (compatible with the GNU GPL) licenses. It can be used in commercial applications.

CImg stands for “Cool Image” : It is easy to use and efficient. It’s a very pleasant toolbox to code image processing stuffs in C++, and potentially covers a wide range of image processing applications. In the distributed package, a lot of examples are provided to help the developper in its first steps.

Authors :

David Tschumperl

OpenCV Beta 5

July 23rd, 2008 § 2

Beberapa hari ini saya dibuat bingung dengan beberapa error yang muncul saat saya meng-compile sebuah program yang melibatkan OpenCV dan Borland C++ builder v 6.0. Entah kenapa, compiler Borland saya mengeluarkan pesan “undefined function” untuk fungsi cvCreateCameraCapture( ), sebuah fungsi yang digunakan untuk mendapatkan capture file dari webcam. Padahal OpenCV yang saya gunakan adalah versi terbaru, yakni OpenCV 1.0. Anehnya lagi, di manual OpenCV tersebut juga dituliskan dokumentasi API-nya, termasuk fungsi cvCreateCameraCapture tersebut. Mengapa compiler tidak mendeteksinya ?

Saya curiga dengan karakteristik project OpenCV ini. Saya pun pernah mengalami hal serupa, saat saya mencoba menggeluti framework CakePHP. Masalah kompatibilitas fungsi yang ada di versi lama belum tentu ada di versi terbaru. Ya, saat itu saya kehilangan beberapa class PHP yang saya gunakan di framework lama karena saya mengupdate pustaka dengan framework yang baru. Masalah ini kemudian saya analogikan ke OpenCV ini. Saya menduga, ada beberapa library yang hilang dari OpenCV versi lama alias versi beta terakhir. Untuk memastikannya, satu-satunya cara adalah melakukan instalasi OpenCV versi beta dan menjalankannya.

Saya kemudian mencoba OpenCV versi beta 5. Setelah instalasi, saya mencoba mengganti fungsi cvCreateCaptureCamera dengan fungsi cvCaptureFromCAM(’-1′). Parameter -1 digunakan untuk menginisiasi webcam yang terhubung di komputer. Setelah beberapa kali menyesuaikan dan memasukkan kembali path-path integrasi OpenCV dan Borland C++ Builder, akhirnya program bisa berjalan dengan lancar

Tresholding Sederhana

July 22nd, 2008 § 0

Salah satu teknik dalam pemrosesan citra digital adalah tresholding. Tresholding sangat bermanfaat untuk mengubah image grayscale menjadi binary image, hanya hitam dan putih saja. Nah, kita bisa memberikan sebuah “batas” (treshold value) untuk menentukan kadar kehitaman gambar kita. Jika kadar grayscale gambar di atas treshold value, nilai piksel menjadi 1 (hitam). Jika di bawah treshold value, nilai piksel adalah 0 (putih). Berikut ini salah satu contoh penerapan tresholding menggunakan OpenCV dan C++ builder.

OpenCV & Borland C++ Builder

July 17th, 2008 § 4

Untuk sementara, dua bulan sudah berlalu. Banyak hal yang sudah saya pelajari dari image processing dan semua simulasi dilakukan dengan MATLAB. Untuk aplikasi dan penerapan beberapa metode image processing, saya menggunakan sistem operasi Windows XP, Borland C++ Builder versi 6, Video OCX, dan OpenCV Library. Borland C++ Builder digunakan sebagai IDE untuk developing interface aplikasi yang menerapkan beberapa metode riset yang akan diteliti. Video OCX adalah sebuah pustaka ActiveX yang mendukung image processing dan real-time capturing dari webcam (video camera digital yang melalui USB port). OpenCV Library digunakan sebagai pustaka utama pemrosesan citra. OpenCV atau Open Source Computer Vision Library mengandung lebih dari 300 kelas dan ratusan fungsi di dalamnya, yang sangat powerful untuk riset image processing. OpenCV juga mendukung beberapa pustaka untuk object recognition dan object tracking.

Berikut ini langkah-langkah instalasi Borland C++ Builder, Video OCX dan OpenCV Library :

I. Bahan-bahan :
1. Source installer Borland C++ Builder versi 6.0
2. Video OCX Installer
3. OpenCV Library

II. Proses Instalasi :
1. Instal ketiga bahan tersebut dengan mengeksekusi file executable yang tersedia.

2. Setelah ketiganya terinstal, kita akan mengintegrasikan VideoOCX dengan Borland C++ Builder. Berikut ini langkah-langkahnya :
a. Buka Borland C++ Builder (BCB).
b. Pada BCB, cari tab Component >> Import ActiveX control.
c. Browse beberapa komponen, temukan komponen VideoOCX dan VideoOCX Tools
d. Klik install. Lakukan secara berurutan untuk dua komponen tersebut.

3. Preintegrasi OpenCV dan BCB :
a. Buka folder C:\\Program Files\OpenCV\bin
b. Kopikan semua file *.dll dalam folder tersebut ke C:\\Windows\system32
c. Buka folder C:\\Program Files\highgui2\bin dan kopi file *.dll dalam folder tersebut
d. Pastekan juga file tadi ke ke C:\\Windows\system32

4. Integrasi OpenCV dan BCB. Kita akan memasukkan path dari pustaka OpenCV pada konfigurasi BCB. Berikut ini langkah-langkahnya :
a. Buka BCB, cari tab Project >> Options >> Directories >> Include Path
b. Kemudian klik simbol “…” untuk browsing file
c. Masukkan semua path di bawah ini :

C:\\Program Files\OpenCV\cv\include
C:\\Program Files\OpenCV\cvaux\include
C:\\Program Files\OpenCV\cxcore\include
C:\\Program Files\OpenCV\highgui2
C:\\Program Files\OpenCV\otherlibs\cvcam\include
C:\\Program Files\OpenCV\otherlibs\highgui
C:\\Program Files\OpenCV\highgui2\otherlibs\highgui2

c. Klik OK, dua kali supaya path tersimpan

d. Masukkan juga path library : View >> Project Manager >> Pilih Project1.exe (atau sesuai dengan nama project Anda) >> klik kanan >> Add (tambahkan library dari folder OpenCV/highgui2/lib) :
cv.lib
cvaux.lib
cxcore.lib
cvcam.lib
highgui.lib
highgui2.lib


e. Cek integrasi dengan compile (tekan F9) program OpenCV sederhana, semisal
cvNamedWindow(”test”,1);

Oya, jangan lupa memasukkan file-file *.h di bawah ini dalam source code Anda

Referensi :

1. Situs Resmi Intel Corporation, OpenCV Technology
2. Sourceforge OpenCV
3. CVS Reference
4. Mailing List OpenCV Yahoo.Com
5. Download Installer untuk Windows dan Linux
6. Manual lama (tahun 2001) (PDF, 3.4 MB)
7. Instalasi OpenCV di Windows (Leeds University)

Digital Image Processing …

July 17th, 2008 § 3

Akhirnya ….sempat juga menginstalasi wordpress untuk membuat log kecil-kecilan tentang riset yang saya lakukan. Ya, blog ini nantinya akan menampung semua catatan teknis tentang riset pemrosesan citra yang sedang saya lakukan di King Mongkut’s Institute of Technology, Ladkrabang. Mengapa saya memutuskan untuk membuatnya terpisah dengan blog pribadi saya. Alasannya simpel, supaya materi dalam blog ini lebih objektf…tidak tercampuri oleh urusan-urusan pribadi yang seharusnya tidak perlu dibaca. So, muga-muga bisa membantu rekan-rekan semua yang juga mendalami riset tentang image processing dan computer vision…

Where Am I?

You are currently browsing the C++ category at DIP.WARRIOR.