Jumat, 04 November 2016

Segmentasi Citra Biner Menggunakan Algoritma Connected Component Labeling

1 komentar:

Pengolahan citra adalah salah satu cabang dari ilmu informatika yang berkutat pada usaha untuk melakukan transformasi suatu citra/gambar menjadi citra lain dengan menggunakan teknik tertentu. Salah satu bentuk operasi pengolahan citra adalah segmentasi citra digital. Segmentasi citra digital adalah pembagian daerah citra digital menjadi bagian-bagian daerah yang lebih kecil berdasarkan letak piksel dan intensitasnya yang masih berdekatan. Ada beberapa algoritma yang digunakan dalam proses segmentasi citra, diantaranya algoritma Region Growing, JSEG, Watershead,  K-Mean Clustering, Connected Component Labeling dan lain sebagainya.

Dalam tulisan ini akan dibahas mengenai proses segmentasi yang memisahkan objek – objek yang ada pada citra biner yang berupa gumpalan-gumpalan piksel (pixel blobs) yang berbentuk objek yang memiliki arti dan menghasilkan objek citra biner baru yang bersifat independen. Dalam tulisan ini pula akan membahas tentang teknik Croping Image pada pengolahan citra.
 

Algoritma 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 pikselpada citra. Piksel-pikseldalam region disebut connected (ada konektifitasnya atau connectivity) bila mematuhi aturan adjacency atau aturan “kedekatan” piksel . Aturan kedekatan pikselini 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 monokrom atau citra biner. Ketetanggaan harus memiliki panjang atau jarak 1 unit (langsung antara piksel dengan piksel tanpa ada perantara nya). Menurut Gonzales dan Woods (1992, p40), ada dua jenis konektivitas yang digunakan pada citra dua dimensi.

4-Konektivitas (4-Connected Neighbors)

Piksel-piksel yang berdekatan dikatakan memiliki hubungan 4-konektivitas jika piksel-piksel tersebut terletak berdampingan secara horizontal dan vertikal N4(P). Kumpulan dari piksel-piksel ini disebut dengan 4 neighbors of P. “Pada konsep 4-Connected Neighbors bila terdapat 2 pixel yang bersinggungan secara diagonal maka akan dianggap 2 objek” .

8-Konektivitas (8-Connected Neighbors)
Piksel-piksel yang berdekatan dikatakan memiliki hubungan 8-konektivitas jika piksel-piksel tersebut terletak berdampingan secara horizontal dan vertikal N8(P) atau disebut juga empat diagonal neighbors. “Pada konsep 8-Connected Neighbors bila terdapat 2 pixel yang bersinggungan baik secara diagonal maupun secara horizontal dan vertikalmaka akan dianggap 1 objek” (Mozef, 2003:22). Pada dasarnya dalam pemberian label untuk piksel yang terkoneksi, kita melakukan scanning terhadap semua piksel citra dari piksel paling atas yaitu mulai dari kiri ke kanan dan dari atas ke bawah. Tujuan dari aktifitas ini adalah untuk menemukan cluster terhadap region-region di dalam citra biner.

Dalam proses pelabelan piksel, digunakan pendekataan 4-connected neighbors untuk menghubungkan antara piksel yang memiliki nilai sama dan menggunakan teknik flood fill untuk mengisi warna acak pada piksel terpilih ke sebuah matrix penampung yang biasa disebut matrix mapping. Sebelum melakukan proses scanning dan labeling, terlebih dahulu harus kita defenisikan bahwa objek gambar/piksel yang akan kita ambil adalah tipe foreground dan yang kita tinggalkan merupakan background. Adapun langkah-langkah dalam proses scanning, labeling dan merging adalah sebagai berikut :

1. Buat dua buah matrix, matrix pertama merepresentasikan objek gambar/citra biner yang akan diolah dan matrix kedua merupakan matrix tempat meletakkan piksel-piksel terpilih yang disebut dengan matrix mapping.
2. Lakukan scanning piksel-piksel terhadap citra foreground mulai sisi atas matrix yaitu dari kiri ke kanan dan dari atas ke bawah.
Jika ditemukan piksel foreground, maka lakukan pelabelan terhadap piksel tersebut, sebagai contoh label 1 (satu) dan pindahkan piksel pertama ke matrix mapping. Selanjutnya ubah nilai piksel pertama pada matrix original yang telah ditemukan tadi dengan nilai 0.

3. Lakukan pendekatan 4-connected neighbors secara berulang-ulang terhadap piksel-piksel yang memiliki kedekatan dan kesamaan nilai intensitas sampai tidak ada lagi kedekatan secara 4-connected neighbors antara piksel-piksel yang telah dilabeli dengan label (1) satu.





Jika sudah tidak ditemukan lagi piksel-piksel tetangga yang terdapat kedekatan secara 4-connected neighbors, maka lakukan proses merging pada matrix mapping.

4. Lakukan lagi scanning terhadap citra foreground untuk mendapatkan karakter objek yang lain.
Jika ditemukan piksel foreground, maka lakukan pelabelan terhadap piksel tersebut, sebagai contoh label 2 (dua) dan pindahkan piksel pertama ke matrix mapping. Selanjutnya ubah nilai piksel pertama pada matrix original yang telah ditemukan tadi dengan nilai 0.

5. Lakukan pendekatan 4-connected neighbors secara berulang-ulang terhadap piksel-piksel yang memiliki kedekatan dan kesamaan nilai intensitas sampai tidak ada lagi kedekatan secara 4-connected neighbors antara piksel-piksel yang telah dilabeli dengan label (2) dua.

Jika sudah tidak ditemukan lagi piksel-piksel tetangga yang terdapat kedekatan secara 4-connected neighbors, maka lakukan proses merging pada matrix mapping.

Periksa kembali piksel pada matrix original dengan melakukan pelacakan atau scanning piksel – piksel citra foreground, jika tidak ditemukan, maka selesailah proses scanning, labeling dan merging.

gambar hasil akhir bisa dilihat pada gambar dibawah ini :
Implementasi pada program
Berikut ini merupakan implementasi proses segmentasi citra biner menggunakan algoritma Connected Component Labeling yang dibuat menggunakan bahasa C #.


Download program dan ilustrasi dari proses algoritma Connected Component Labeling http://www.4shared.com/rar/-3Zrzjcnce/CCL.html

1 komentar: