Jumat, 15 Agustus 2014

4 TOOLS KOMPUTASI PENGOLAHAN CITRA DIGITAL


Saat ini, pengolahan citra digital merupakan salah satu bidang ilmu komputer yang sedang berkembang dengan pesat. Secara umum pengolahan citra digital dapat diartikan sebagai proses memanipulasi citra digital menggunakan bantuan perangkat komputer untuk keperluan tertentu. Pengolahan citra digital memiliki manfaat yang cukup luas dalam bidang sehari-hari, seperti dalam hal robotika, computer vision, pengenalan pola dan penginderaan jarak jauh.
Matlab merupakan salah satu perangkat lunak komersial yang sudah tidak asing lagi di dunia komputasi numerik di bidang ilmu matematika, teknik, statistik maupun bidang sains lainnya termasuk bidang pengolahan citra digital. Namun sebenarnya disamping Matlab, saat ini berkembang beberapa perangkat lunak yang cukup handal untuk keperluan komputasi dan berlisensi terbuka. Contohnya adalah Scilab yang dikembangkan oleh INRIA memiliki kemampuan yang tidak kalah dengan Matlab. Beberapa tools lainnya akan dijelaskan secara singkat dalam artikel ini.

1. Matlab

matlabMatlab merupakan bahasa pemrograman tingkat tinggi dengan kemampuan yang sangat baik untuk menyelesaikan suatu komputasi numerik baik sederhana maupun kompleks. Matlab memiliki kemampuan mengintegrasikan komputasi, visualisasi, dan pemrograman. Oleh karenanya, matlab banyak digunakan dalam bidang riset‐riset yang memerlukan komputasi numerik yang kompleks. Penggunaan Matlab meliputi bidang–bidang:
  • Matematika dan Komputasi
  • Pembentukan Algoritma
  • Akuisisi Data
  • Pemodelan, simulasi, dan pembuatan prototype
  • Analisa data, explorasi, dan visualisasi
  • ƒGrafik Keilmuan dan bidang Rekayasa
  • Pengolahan Citra Digital
Matlab sendiri merupakan kepanjangan dari Matrix Laboratory. Sesuai dengan namanya, struktur data yang terdapat dalam Matlab menggunakan matriks atau array berdimensi dua (double). Oleh karenanya penguasaan teori matriks mutlak diperlukan bagi pengguna pemula Matlab agar mudah dalam mempelajari dan memahami operasi‐operasi yang ada di Matlab.
Menurut website resminya, www.mathworks.com, Matlab pertama kali dikembangkan oleh Cleve Moler, seorang analis numerik di jurusan Ilmu Komputer Universitas New Mexico. Matlab memiliki lisensi tertutup dan merupakan aplikasi berbayar. Kemampuannya sudah tidak diragukan lagi karena sangat lengkap, dengan berbagai dukungan fitur (dikenal dengan toolbox), seperti toolbox Computer Vision, Image and Video Processing, Fuzzy Algorithm hingga toolbox untuk mengendalikan berbagai perangkat. Selain itu, Matlab juga didukung dengan kemampuan untuk membuat model dan simulasi yang dikenal dengan Simulink. Menggunakan Matlab versi terkini kita juga dapat mengeksport code yang dibuat ke dalam bahasa pemrograman lain seperti Java dan C++ serta dapat ditanamkan langsung ke dalam chip tertentu.

2. Scilab

Scilab merupakan perangkat lunak berlisensi terbuka yang dapat digunakan untuk keperluan proses komputasi numerik. Selain berlisensi terbuka (open source), Scilab juga dapat dijalankan di berbagai sistem operasi (cross-platform). Perintah-perintah yang digunakan juga mudah dipahami dan menggunakan istilah yang umumnya digunakan di bidang komputasi numerik dan teknik. Website resmi Scilab, www.scilab.org mengklaim bahwa sebagian besar perintah dan fitur-fitur yang ada di Scilab dikembangkan berdasarkan perintah dan fitur yang tersedia di Matlab. Bahkan Scilab menyediakan fitur code translator yang dapat mengkonversi code yang sudah dibuat di Matlab menjadi code yang dapat dijalankan di Scilab.
scilab_logo
Scilab pertama kali dikembangkan oleh INRIA, French National Research Institution di tahun 1990. Menurut website resminya, Scilab memiliki beberapa fitur utama antara lain ribuan fungsi matematika, bahasa pemrograman tingkat tinggi, visualisasi 2-D dan 3-D, komputasi numerik, analisis data, serta dapat berinteraksi dengan bahasa Fortran, C, C++ dan Java. Scilab dapat diunduh secara gratis di alamatwww.scilab.org/products/scilab/download dan dapat dipasang di komputer dengan sistem operasi Windows, Linux maupun Mac OS.
Selain fungsi dasar untuk komputasi numerik, kita juga dapat menambahkan modul-modul tambahan sesuai kebutuhan kita. Penambahan modul juga dapat dilakukan dengan mudah karena sudah disediakan fitur pengelolaan modul yang disebut ATOMS (AuTomatic mOdules Management for Scilab). Beberapa modul bawaan Scilab dapat dilihat dari menu “Application > module manager – ATOMS” seperti terlihat pada gambar berikut ini. Modul-modul tersebut secara default belum terinstall, namun untuk menginstall-nya mudah sekali, cukup memilih modul yang ingin diinstall dan klik tombol “Install”. Secara otomatis, Scilab akan mengunduh modul-modul yang diinginkan dan menginstallnya. Tutup dan buka kembali aplikasi Scilab dan modul tersebut akan di-load secara otomatis dan siap digunakan. Modul tersebut juga dapat diunduh melaluihttp://atoms.scilab.org/.
atoms

3. GNU Octave

octaveOctave merupakan perangkat lunak berlisensi terbuka (GNU) yang sangat bermanfaat untuk menyelesaikan berbagai masalah komputasi numerik. Perangkat lunak ini menawarkan kemudahan dan kesederhanaan dalam menyelesaikan permasalahan yang berhubungan dengan vektor dan matriks. Octave pertama kali dibangun oleh John W. Eaton dan diberi nama berdasarkan nama seorang profesor di bidang reaksi kimia dari Oregon State University yang bernama Octave Levenspiel.
Octave ditulis menggunakan bahasa pemrograman C++ dan dapat didownload secara gratis di situs www.octave.org atau dari situs http://sourceforge.net/projects/octave. Octave dapat berjalan dengan baik di sistem operasi berbasis Windows, Linux maupun Mac OS. Hal yang menarik dari perangkat komputasi Octave ini adalah perintah-perintahnya dibuat semirip mungkin dengan perintah Matlab. Bahkan ada yang menyatakan bahwa saat code yang kita buat di Matlab akan dapat dijalankan di Octave. Sebaliknya, kekurangan dari Octave adalah GUI belum tersedia dengan baik sehingga setiap code harus diketikkan di command line. Selain itu, modul tambahan untuk keperluan khusus seperti pengolahan citra digital, penerapan algoritma Fuzzy, pengolahan video dan analisis statistik, tersedia secara terpisah dan harus diunduh dan dipasang sendiri. Artinya, agak repot dari sisi pengelolaan modul. Namun demikian, karena Octave berlisensi terbuka, tidak menutup kemungkinan aplikasi ini akan berkembang di masa mendatang. Modul tambahan dari octave dapat ditemukan di lamanhttp://octave.sourceforge.net/packages.php.

4. FreeMat

FreeMat merupakan perangkat lunak komputasi numerik yang dirancang agar kompatibel dengan aplikasi lainnya seperti Matlab dan Octave. FreeMat dapat digunakan dengan baik pada sistem operasi Windows, Linux maupun Mac OS. Samit Basu, pengembang aplikasi FreeMat, berharap dapat merancang aplikasi komputasi numerik yang ramah dengan Matlab.
Pada website resminya, www.freemat.org dinyatakan bahwa beberapa fitur unggulan FreeMat meliputi dekomposisi nilai tunggal dan eigen, visualisasi grafik 2D/3D, pemrosesan paralel dengan MPI, pengelolaan grafik dan citra, fungsi pointer dan sebagainya. FreeMat dapat diunduh secara gratis di situs www.freemat.org atauhttp://sourceforge.net/projects/freemat.

Perbandingan Matlab, Scilab, Octave dan FreeMat

Memang agak susah jika harus membandingkan antara Matlab, Scilab, Octave dan FreeMat, mana yang lebih baik diantara yang lainnya. Namun demikian, berdasarkan studi yang berjudul “A Comparative Evaluation of Matlab, Octave, Freemat, and Scilab for Research and Teaching” oleh Neeraj Sharma dan Matthias K. Gobbert dari University of Maryland serta paper berjudul “A Comparative Evaluation of Matlab, Octave, FreeMat, and Scilab on Tara” yang ditulis oleh Matthew W. Brewster dan Matthias K. Gobbert terdapat beberapa hal menarik terkait perbandingan diantara keempat tools tersebut.
Berikut ini beberapa perbandingan diantara keempat tools tersebut yang bersumber dari paper dan studi di atas serta dari berbagai sumber lain yang relefan.
  1. Penulisan atau sintaks. Jika dilihat dari sisi sintaks atau perintahnya, tools Octave dan FreeMat memiliki sintaks yang mirip dengan sintaks yang dimiliki oleh Matlab. Bahkan Octave, FreeMat dan Matlab menghasilkan akhiran file yang sama, yaitu dot-m (.m). Octave juga konon dapat menjalankan dengan baik suatu code yang dibuat di Matlab. Sementara itu, Scilab memiliki sintaks yang agak berbeda dengan Matlab. Sebagai contoh, perintah untuk membaca suatu citra di Matlab menggunakan fungsi imread() sedangkan di Scilab menggunakan fungsi ReadImage().
  2. Fitur aplikasi. Tampaknya jika dilihat dari kelengkapan fitur yang dimiliki oleh masing-masing tools, Matlab merupakan perangkat lunak komputasi numerik dengan fitur yang paling lengkap. Bahkan paket lengkap termasuk aplikasi inti dan seluruh toolbox memiliki ukuran sekitar 4 GB. Lalu bagaimana dengan ketiga aplikasi yang lain? Diantara Scilab, Octave dan FreeMat, yang paling sedikit fiturnya adalah FreeMat dan paling kaya fitur adalah Scilab. Tentunya ini bisa dimaklumi jika melihat berapa jumlah pengembang aplikasi tersebut.
  3. Lisensi. Dari penjelasan di atas, cukup jelas bahwa diantara keempat perangkat lunak komputasi tersebut, hanya Matlab yang berlisensi tertutup. Walaupun berlisensi tertutup, pengguna tetap dapat berkontribusi dalam pengembangan Matlab melalui sarana kolaborasi yang disediakan oleh Matlab, yaitu www.mathworks.com/matlabcentral. Disini kita dapat menemukan dan berbagi code untuk berbagai keperluan. Sementara itu, ketiga tools lainnya memiliki lisensi terbuka sehingga lebih banyak orang yang mungkin terlibat dan berkontribusi dalam mengembangkan aplikasi tersebut. Perkembangan tool Scilab, Octave dan FreeMat cukup menjanjikan di masa mendatang.
  4. Pengguna aplikasi. Memang penulis tidak dapat menemukan data pasti mengenai berapa jumlah pengguna masing-masing aplikasi. Namun demikian, tampaknya pengguna Matlab-lah yang paling banyak mengingat tool ini diajarkan di banyak perguruan tinggi di dunia, terutama perguruan tinggi di Amerika. Walaupun saat ini terdapat kecenderungan di kalangan perguruan tinggi di Eropa yang lebih banyak menggunakan tool Scilab dibandingkan Matlab. Alasan utamanya tentu faktor lisensi dari keduanya yang berimplikasi pada biaya penggunaan tool tersebut.
  5. Dukungan sistem operasi. Baik Matlab, Scilab, Octave maupun FreeMat memang mendukung sistem operasi Windows, Linux dan Mac OS. Namun berdasarkan pengalaman penulis terutama terkait sistem operasi berbasis Windows dan Linux, keempat tool tersebut memiliki kecenderungan dukungan yang lebih baik pada sistem operasi tertentu. Matlab dapat berjalan dengan lebih baik jika dipasang di sistem operasi Windows, sedangkan Scilab, Octave dan FreeMat berjalan dengan lebih baik di sistem operasi berbasis Linux.
Lalu sebaiknya tool mana yang harus digunakan, terutama untuk keperluan pengolahan citra digital? Tidak ada rekomendasi pasti. Tetapi yang lebih penting pertimbangkan sisi kebutuhan dan tujuan dari penggunaan. Jika kita seorang pelajar yang baru belajar tool komputasi numerik, Matlab lebih disarankan karena alasan kemudahan penggunaannya. Apalagi jika kampus tempat Anda belajar memiliki lisensi resmi dari Matlab, tentu akan lebih nyaman lagi. Jika kita sudah belajar dasar-dasar perintah Matlab, ditambah lagi kita tidak memiliki lisensi resmi Matlab alias membajak, sebaiknya kita mulai coba beralih ke tool yang berlisensi terbuka dan halal untuk diunduh seperti Scilab, Octave dan FreeMat. Tentu lain cerita jika kita ingin membuat suatu aplikasi pengolahan citra digital dengan kebutuhan khusus dan akan didistribusikan, sebaiknya gunakan saja bahasa pemrograman seperti Java atau C++. :)

Kesimpulan

Dalam hal komputasi pengolahan citra digital, saat ini tersedia banyak tool yang dapat digunakan. Salah satu tool yang paling handal adalah Matlab, akan tetapi berlisensi tertutup. Alternatif tool lainnya yang tidak kalah handal namun berlisensi terbuka antara lain Scilab, Octave dan FreeMat.Semoga tutorial ini bermanfaat untuk kita semua dan berbagilah hal baik ke sebanyak-banyaknya orang maka kebahagiaan akan menghampiri Anda. Satu Karya untuk Indonesia!

Referensi Terkait

  1. http://en.wikipedia.org/wiki/List_of_numerical_analysis_software
  2. Modul 1: Pengenalan Matlab. http://lecturer.eepis-its.edu/~ira/materi/pengolahan%20sinyal%20digital/pengenalan%20matlab%20.pdf
  3. Buku Pengolahan Citra Digital. Abdul Kadir
  4. A Comparative Evaluation of Matlab, Octave, FreeMat, and Scilab on Tara http://userpages.umbc.edu/~gobbert/papers/BrewsterGobbertTR2011.pdf
  5. A Comparative Evaluation of Matlab, Octave, Freemat, and Scilab for Research and Teaching http://userpages.umbc.edu/~gobbert/papers/SharmaGobbertTR2010.pdf
  6. The best Matlab alternative. http://amca01.wordpress.com/2011/08/31/the-best-matlab-alternative/

Tidak ada komentar:

Posting Komentar