The CImg Library is an open source C++ toolkit for image processing designed with these properties in mind :
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…
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.
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, …).
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.
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.
Learning OpenCV puts you right in the middle of the rapidly expanding field of computer vision. Written by the creators of OpenCV, the widely used free open-source library, this book introduces you to computer vision and demonstrates how you can quickly build applications that enable computers to “see” and make decisions based on the data.
Computer vision is everywhere — in security systems, manufacturing inspection systems, medical image analysis, Unmanned Aerial Vehicles, and more. It helps robot cars drive by themselves, stitches Google maps and Google Earth together, checks the pixels on your laptop’s LCD screen, and makes sure the stitches in your shirt are OK. OpenCV provides an easy-to-use computer vision infrastructure along with a comprehensive library containing more than 500 functions that can run vision code in real time. With Learning OpenCV, any developer or hobbyist can get up and running with the framework quickly, whether it’s to build simple or sophisticated vision applications.
ImageJ adalah sebuah tool ringkas untuk melakukan image processing secara cepat. Tool ini sangat berguna untuk membandingkan hasil yang didapatkan apabila kita melakukan pemrosesan citra menggunakan aplikasi engineering (MATLAB / C) dan ingin mengetahui hasil yang didapatkan untuk mengecek proses yang pemrosesan citra yang kita lakukan. Tool ini dibuat dengan menggunakan bahasa pemrograman Java, namun available untuk cross platform (Windows, Mac OS X, dan Linux). Untuk lebih lengkapnya, silahkan download dan kunjungi situs resminya di sini :
Untuk Anda yang belajar OpenCV Library, selain situs resmi OpenCV di sourceforge, ada beberapa situs lain yang patut Anda ketahui pula. Situs-situs di bawah ini menyediakan referensi sourcecode yang cukup lengkap, bahkan beberapa di antaranya menyertakan pembahasan, berikut video / gambar hasil source code tersebut :
1. OpenCV Japan : berbahasa jepang, namun Anda bisa mendapatkan contoh-contoh penggunaan script dasar dari OpenCV. Sangat bagus dan bermanfaat untuk pemula (*seperti saya). Untuk memudahkan Anda, Anda bisa menggunakan fasilitas translator dari Google.
2. HCI Class of Iowa State University : situs yang cukup komprehensif, karena menyediakan sourcecode dari contoh-contoh aplikasi OpenCV tingkat lanjut. Anda bisa menemukan berbagai macam project / aplikasi OpenCV di sini.
3. Situs Dr. Alex Stoytchev : adalah sebuah situs pribadi seorang dosen computer science. Di situs ini (bagian lecture codes) Anda bisa menemukan contoh source code dari Pak Alex ini.
4. OpenCV Wordpress : berisi tutorial OpenCV berikut sourcecode-nya. Oleh karena halaman ini adalah halaman pribadi, agak kurang terstruktur isinya. Namun masih bermanfaat kok. Silahkan dibuka.
5. YahooGroups OpenCV : inilah mailing list resmi OpenCV dimana banyak ahli OpenCV berdiskusi dan saling bertukar pengalaman di milis ini. Pastikan Anda bergabung dalam milis ini dan sekaligus sebagai sebuah media untuk mencoba beberapa contoh sourcecode yang sudah diupload oleh anggota milis.
Setelah sekian lama berkutat dengan source code OpenCV, akhirnya saya diminta oleh advisor saya untuk mempraktekkan konsep template matching pada gambar yang bergerak. Sebelumnya, saya sudah mempelajari template matching sederhana pada gambar tak bergerak. » Read the rest of this entry «
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