Friday, September 21, 2012

Ekstraksi Fitur Bentuk menggunakan moment invariant

Ekstraksi Fitur  Bentuk citra menggunakan Moment invariant
Edisi kali ini pada computer vision - olah citra, kita akan membahas suatu ekstraksi ciri (fitur citra), anggap saja saya mempunyai beragam bentuk dari suatu objek dan tugas dari algoritma untuk computer vision yaitu mampu mengenali beberapa tipe objek yaitu
  1. Donat (tengah berlubang)
  2. Lingkaran, elipse, dan persegi penuh

 


Berikut adalah citra nya (dijadikan satu citra)




Kami melakukan labelling dan operasi lainnya untuk “menemukan” tiap objek dan menghitung moment citra  nya



Friday, September 14, 2012

Sekilas Tentang Accord.net dan AForge.net


Jika anda menggunakan tools C# (languange) sebagai olah citra dan Framework AForge.Net dan Accord.Net lumayan lengkap

lanjut..

Setelah melakukan explore (hanya karena) ingin mengetahui nilai pixel dari suatu citra, mereka  (framework AForge.Net dan Accord.Net) tidak satupun menyediakan class untuk itu. Hampir semua operasi olah citra menggunakan argument class Image.  Misalkan filter (menggunakan convolution)

AForge.Imaging.Filters.Dilatation dilation=new AForge.Imaging.Filters.Dilatation();
dilation.Apply(image)


atau menggunakan cara berikut
// define emboss kernel
            int[,] kernel = {
                        { -2, -1,  0 },
                        { -1,  1,  1 },
                        {  0,  1,  2 } };
            // create filter
            AForge.Imaging.Filters.Convolution filter = new AForge.Imaging.Filters.Convolution( kernel );

Dikarenakan semua menggunakan Class Image

Monday, September 10, 2012

Problem grayscale 8bit di GdiPluss version 1.0


Penulis sedang terkendala! Hal ini terjadi dikarenakan GDI Plus tidak support 8bit untuk grayscale! Semula niat ingin  (library hanya untuk proses read and create image via value pixel - setelah googling untuk AForge.Net dan Accord.Net tidak ada - belum ada untuk proses read and create - karena sudah biasa menggunakan Java dan Matlab).
membuat citra dari array2D dengan format grayscale Format8bppIndexed (8bit) malah yang tampil seperti ilustrasi diatas!.

Mbah google menjadi ajang wangsit dan menemukan jawabannya yaitu di
see more
http://stackoverflow.com/questions/4679827/c-sharp-why-bitmap-save-ignores-pixelformat-of-bitmap

ternyata GDI+versi 1.0 tidak (belum) mendukung format grayscale 8bit (harus 24 bit alias RGB).. hal ini tentu menjadi sangat boros dan menjadi membingungkan! (dikarenakan matlab dan java pun bisa melakukan hal demikian)

Dari pada pusing, kita dapat menggunakan library AForge.Net untuk melakukan konversi 24bit menjadi 8bit. Jadi skema nya adalah kita tetap membuat code untuk image 24bit tapi setelah itu langsung di konvert ke 8bit. 
lihat ilustrasi diatas (hanya untuk menyajikan format citra grayscale dalam harus 24bit menghasilkan file size 191kB)

Kita akan menggunakan  AForge.Net yaitu
AForge.Imaging.Filters.Grayscale.CommonAlgorithms.RMY.Apply(bitmap);
sehingga akan menghasilkan (8bit dan file size 64.9kB)


kemudian....(akan terjadi masalah dikarenakan konvert tidak equal). Mungkin AForge menggunakan mekanisme yang berbeda..