region clustering dengan mengunakan connected component labeling pada citra digital
TRANSCRIPT
Pengolahan citra digital by Jans Hendry / S2 TE UGM 09
1
CLUSTERING DENGAN MEMANFAATKAN CONNECTED
COMPONENT LABELING
Connected component labeling merupakan teknik yang juga bisa digunakan untuk mengklasifikasikan
region atau objek dalam citra digital. Teknik ini memanfaatkan teori connectivity piksel pada citra.
Piksel-piksel dalam region disebut connected (ada konektifitasnya atau connectivity) bila mematuhi
aturan adjacency atau aturan “kedekatan” piksel. Aturan kedekatan piksel ini memanfaatkan sifat
ketetanggaan piksel. Dengan demikian piksel-piksel yang di katakan connected pada dasarnya
memiliki sifat adjacency satu sama lain karena mereka masih memiliki hubungan neighbourhood atau
ketetanggaan.
Misalkan sebuah symbol V menyatakan nilai intensitas piksel. Anggap saja nilai tersebut dari (0,1).
Perlu diingat, bahwa citra yang bisa diolah dengan menggunakan metode ini adalah citra
grayscale atau citra biner. Ketetanggaan harus memiliki panjang atau jarak 1 unit (langsung
antara piksel dengan piksel tanpa ada perantara nya).
Seperti diketahui bahwa adjacency piksel terbagi atas 3 jenis. Misalkan piksel yang akan dijadikan
contoh adalah p dan q.
• 4-adjacency
Piksel p dan q dengan nilai keduanya didefinisikan dalam V adalah 4-adjacency bila q
merupakan tetangga dalam rupa 4-neighbourhood dengan p. Bisa saja sebaliknya.
• 8-adjacency
Piksel p dan q dengan nilai keduanya didefinisikan dalam V adalah 8-adjacency bila q
merupakan tetangga dalam rupa 8-neighbourhood dengan p. Bisa saja sebaliknya.
• m-adjacency
Piksel p dan q dengan nilai keduanya didefinisikan dalam V adalah m-adjacency bila:
o q merupakan tetangga dalam rupa 4-neighbourhood dengan p. Bisa saja sebaliknya,
atau
o q merupakan anggota diagonal neighbourhood dari p dan tidak boleh ada tetangga
dalam rupa 4-neighbourhood dalam irisan antara p dan q. Apabila ada (maksudnya
sesuai dengan nilai V), maka tidak boleh ada path atau jalur yang diletakkan di antara
piksel tersebut dengan p dan piksel tersebut dengan q.
m-adjacency pada dasarnya digunakan untuk memperbaiki ambiguitas dari ketetanggaan yang
disebabkan oleh penggunaan 8-neighbourhood.
Perhatikan bentuk-bentuk ketetanggaan berikut:
4-neighbourhood 8-neighbourhood
p
q
p
q
diagonal-
neighbourhood
p
q
Pengolahan citra digital by Jans Hendry / S2 TE UGM 09
2
Bagaimanakah connected component labeling bekerja?
Pada dasarnya dalam pemberian label untuk piksel-piksel yang terkoneksi, kita melakukan scanning
terhadap semua piksel citra dari piksel paling atas. Tujuan dari aktifitas ini adalah untuk menemukan
cluster terhadap region-region di dalam citra.
Langkah-langkahnya adalah sebagai berikut:
o Sebagai langkah awal, kita harus membuat menyediakan dua buah matriks. Matriks pertama
merupakan nilai intensitas yang didapat ketika membaca citra original. Matriks yang kedua
merupakan matriks “0” yang ukuran nya sama dengan citra original atau disebut saja dengan
matriks mapping. Tujuannya adalah untuk menyimpan label dari matriks original.
o Dengan melakukan scanning, maka didapat piksel pertama yang memiliki intensitas 1.
Kemudian tandai piksel tersebut, dan cari tetangga nya berupa 4-neighbourhood yang bukan
nol. Kemudian nilai piksel referensi tadi di label kan dengan 1, dan label tersebut disimpan
pada matriks mapping pada lokasi yang sama. Jangan lupa untuk mengganti piksel yang
menjadi referensi tadi menjadi 0.
o Kemudian tetangga yang telah terdeteksi tadi diganti menjadi 0 dan dicari lagi tetangga nya
yang memiliki nilai intensitas tidak nol. Kemudian set label dari tetangga-tetangga baru
tersebut dan tuliskan di matriks mapping. Label yang diberi tetap 1 atau sama dengan label
yang sebelumnya karena masih memiliki adjacency atau kedekatan sebesar 1 unit.
Matriks original Matriks mapping
Pengolahan citra digital by Jans Hendry / S2 TE UGM 09
3
o Kemudian piksel tadi diberi nilai 0, dan dicari tetangganya. Lalu berikan label untuk piksel
tetangga tersebut.
o Langkah selanjutnya adalah dengan mengubah nilai piksel tadi menjadi 0 dan mencari
tetangganya. Kemudian diberi label dan diletakkan pada matriks mapping. Hal ini terus
berlangsung hingga semua piksel tidak nol di dalam matriks original menjadi 0. Dengan
demikian piksel-piksel di dalam matriks original telah diberikan label yang sesuai.
o Hasil akhir dari pemberian label.
Teori di atas bisa diimplementasikan dalam matlab agar mempermudah pengerjaan. Tapi matlab juga
sudah menyediakan toolbox yang dapat digunakan langsung untuk melabelkan region-region piksel
dalam citra.
Toolbox matlab yang bisa digunakan adalah:
cc = bwconncomp(I); L=labelmatrix(cc);
Pengolahan citra digital by Jans Hendry / S2 TE UGM 09
4
Keterangan:
� Baris pertama maksudnya adalah menghitung berapa banyak foreground (bukan
background) yang terdeteksi dengan menggunakan teknik connected component.
� Baris kedua artinya membuat matriks dengan ukuran citra original yang isinya adalah label
dari piksel-piksel tersebut sesuai dengan posisi dari piksel-piksel pada citra original.
Langkah-langkah pemrograman dalam matlab.
� Baca informasi citra.
I=imread('cluster','jpg'); imshow(I);
� Jadikan citra menjadi grayscale.
I=rgb2gray(I);
� Pastikan citra hanya terdiri dari dua nilai intensitas, nilai 0 dan 1. Hal ini dilakukan bila
ternyata hasil dari grayscale kurang memuaskan. Pendekatan yang bisa dilakukan adalah
dengan memberikan threshold filtering.
[bar kol]=size(I); for xi=1:bar for yi=1:kol if I(xi,yi)<230 I(xi,yi)=255; else I(xi,yi)=0; end end end
� Lakukan pelabelan piksel dengan menggunakan fungsi matlab yang sudah ada.
cc = bwconncomp(I); L=labelmatrix(cc);
� Fungsi matlab untuk pelabelan, dengan sendirinya akan mengembalikan jumlah region yang
terdeteksi disjoint (tidak terkoneksi). Dengan demikian, kita bisa mengetahui bentuk objek
beserta labelnya. Sehingga bisa dipanggil hanya dengan menggunakan label dari objek atau
region tersebut.
jum=cc.NumObjects; % menampilkan objek yang diinginkan disp('Jumlah Objek dalam Citra = '); disp(jum); k=5; [r,c]=find(L==k); % ganti k dari 1 hingga jumlah objek rc=[r,c]; [bar,kol]=size(rc); for xi=1:bar xx=rc(xi,1); yy=rc(xi,2); img(xx,yy)=255; end
Pengolahan citra digital by Jans Hendry / S2 TE UGM 09
5
figure, imshow(img,[]), title('Objek Dengan Label yang dipilih');
Hasil eksekusi program di atas:
k = 5
k = 7
Pengolahan citra digital by Jans Hendry / S2 TE UGM 09
6
Sejauh ini, teknik cluster dengan menggunakan connected component labeling tampak berhasil. Tapi
jika anda perhatikan dengan baik, bahwa warna yang dihasilkan akan berupa hitam putih. Untuk itu
dibutuhkan teknik clustering yang lain bila memang warna juga menjadi salah satu parameter dari
objek dalam citra digital. Pada artikel selanjutnya akan dibahas mengenai clustering K-Means, C-
Means. Dan apa saja yang terkait dengan hal itu.
TERIMA KASIH
Referensi:
- R. Gonzalez and R. Woods. Digital Image Processing. Addison Wesley
- http://blogs.mathworks.com/steve/2007/04/15/connected-component-labeling-part-4/
- my email : [email protected]