Segmentasi Karakter Citra dengan CCL


Tulisan ini saya angkat dari skripsi S1 saya beberapa tahun lalu mengenai Pengenalan plat nomor kendaraan menggunakan Connected Component Labeling dan K-NN (lengkapnya dapat dibaca lewat Academia.edu).

Segmentasi karakter merupakan proses pembagian daerah dalam suatu citra untuk dikelompokan ke dalam segmen-segmen tertentu. Secara umum, segmentasi karakter dilakukan untuk memisahkan karakter dengan background pada suatu citra digital. Citra yang terdiri dari huruf, angka atau kalimat yang utuh akan dipisahkan menjadi karakter-karakter yang akan berdiri sendiri dan tidak menjadi bagian dari kalimat tertentu agar dapat dikenali misalnya seperti gambar dibawah ini
Gambar 1. Hasil segmentasi karakter

Banyak sekali metode deteksi yang ditawarkan dalam melakukan segmentasi, bisa menggunakan deteksi tepi (edge detection), metode thresholding otsu, growing, shapebased, dan sebagainya. CCL sendiri umumnya digunakan dalam computer vision untuk mendeteksi bagian region pada citra digital dalam bentuk biner. Secara umum, connected component labeling adalah proses pemberian label yang berbeda pada setiap karakter sehingga karakter yang satu dengan yang lain dapat dipisahkan berdasarkan label yang dimilikinya. Kelebihan dari metode connected component labeling ini sendiri adalah tidak terpengaruh pada kemiringan objek sehingga masih bisa memisahkan objek dengan baik walaupun posisi objek dalam image dalam keadaan miring (selama proses threshold berhasil memisahkan objek dengan jelas).
Menurut (Haralick et al, 1992), langkah-langkah dari algoritma iterative dalam CCL sebagai berikut:
a.         Langkah 1: Memberi label berbeda pada setiap pixel hitam. Label yang diberikan berupa angka dan diberikan secara berurutan mulai dari angka satu.
b.        Langkah 2: Penggantian nilai label dengan melakukan scan pada image secara mendatar dari kiri ke kanan, yang dimulai dari atas image hingga ke bawah image. Pada proses ini apabila ditemukan pixel hitam , akan dilakukan pengecekan nilai label dari pixel hitam tersebut dengan nilai pixel hitam disebelah kiri dan nilai label pada pixel hitam disebelah atas. Nilai label yang terkecil akan menggantikan nilai label dari dua pixel hitam yang lain.
c.         Langkah 3: Penggantian nilai label dengan melakukan scan pada image secara mendatar dari kanan ke kiri, yang dimulai dari bawah image hingga ke atas image. Pada proses ini apabila ditemukan pixel hitam , akan dilakukan pengecekan nilai label dari pixel hitam tersebut dengan nilai pada pixel hitam disebelah kanan dan nilai label pada pixel hitam disebelah bawah. Nilai label yang terkecil akan menggantikan nilai label dari dua pixel hitam yang lain.
d.        Langkah 4: Ulangi langkah 2 dan 3 hingga tidak ada nilai label yang berubah.
e.         Langkah 5: Memisahkan karakter yang satu dengan lainnya berdasarkan label yang dimiliki oleh karakter tersebut.
f.         Langkah 6: Berhenti.

Bagaimana CCL dapat digunakan untuk melakukan segmentasi? Seperti ini analoginya


CCL mengecek nilai hitam pixel pertama dengan scanline dari kiri kanan atas bawah. Apabila ditemukan nilai hitam berikutnya, maka akan dicek pixel hitam di kiri dan sebelah atas. Jika ditemukan pixel lain berwarna hitam maka masih dianggap dalam 1 region, jika tidak maka dicek lagi mendatar dari kiri ke kanan. Ulangi prosesnya hingga pemeriksaan tidak lagi menemui pixel hitam di bagian kiri atas, kiri kanan, kemudian segmentasi menjadi satu karakter terpisah.


Sekian tulisan dari saya. 
SELAMAT MENCOBA, SELAMAT BELAJAR


Previous
Next Post »

Translate This Site