• Tidak ada hasil yang ditemukan

BAB II. LANDASAN TEORI

2.4. Penipisan

2.4.1. Algoritma Penipisan Zhang Suen

Citra digital biner didefinikan dengan sebuah matrik IT, dimana tiap piksel dari matrik IT (i, j) bernilai 0 atau 1. Pola dari piksel yang menjadi obyek memiliki nilai 1. Diasumsikan bahwa tetangga dari titik (i, j) adalah (i-1, j), (i-1,

j+1), (i, j+1), (i+1, j+1), (i+1, j), (i +1, j-1), (i, j-1) and (i-1, j-1), seperti ditunjukan pada Gambar 2.8.

Algoritma zhang suen termasuk kedalam algoritma penipisan paralel, dimana pada algoritma ini, nilai baru yang diberikan untuk sebuah titik pada iterasi sekarang (iterasi ke- n) tergantung pada nilai yang dihasilkan pada iterasi sebelumnya (iterasi ke-(n-1)), dimana seluruh titik yang mewakili citra tersebut diproses secara serentak, dengan asumsi bahwa menggunakan jendela 3x3 dan tiap titik terhubung dengan 8 titik tetangga.

Gambar 2.8. Notasi 8 Titik Tetangga dari Titik (i, j) Pada Jendela 3x3 (Zhang dan Suen, 1984)

Algoritma oleh Zhang dan Suen (Zhang dan Suen, 1984), menghilangkan titik-titik batas yang teridentifikasi dari pola citra, kecuali titik-titik yang termasuk kerangka dari citra. Agar dapat menghasilkan rangka dengan tetap mempertahankan hubungan antar piksel-piksel sebuah rangka, maka setiap iterasi

(i-1, j-1) (i-1, j) (i-1, j+1)

(i, j-1) (i, j+1)

dibagi kedalam dua subiterasi.

Subiterasi pertama menentukan titik-titik batas yang terletak pada batas selatan-timur dan ujung-ujung utara-barat. Subiterasi kedua menentukan titik-titik batas yang terletak pada batas utara-barat dan ujung-ujung selatan-timur. Kedua subiterasi tersebut dibutuhkan dan harus dipenuhi untuk menjaga hubungan dari pola utama pada kerangka-kerangkanya karena titik-titik yang teridentifikasi dipindah-pindahkan secara paralel. Proses penipisan selesai apabila tidak ada titik batas yang teridentifikasi untuk dihapus sesuai dengan kedua ketentuan subiterasi tersebut.

Langkah pada subiterasi pertama adalah menandai semua titik kontur untuk dihapus, jika titik kontur tersebut memenuhi seluruh kondisi dibawah ini (Zhang dan Suen, 1984):

(1). 2 B(P1) 6

B(P1) adalah banyaknya titik tetangga dari titik P1yang bukan nol / nonzero

(Zhang dan Suen, 1984), yaitu: B(P1) = P2+ P3+ P4+... + P8+ P9. Seperti tampak pada Gambar 2.9.

(2). A (P1) = 1

A (P1) adalah banyaknya transisi pola 0 ke 1 dari nilai piksel P2, P3, P4, ... , P8, P9, P10 (P10 = P2) secara berurutan, untuk operasi terhubung 8 (8 titik tetangga). Seperti tampak pada Gambar 2.10.

(3). P2

.

P4

.

P6 = 0

Kondisi (1), digunakan untuk menunjukkan bahwa tidak ada titik terisolasi ataupun titik ujung yang terkikis, serta untuk mencegah pengecilan rangka (-,2008). Titik terisolasi adalah titik obyek yang semua tetangganya adalah titik latar atau dengan kata lain banyaknya B(P1) = 0, seperti pada Gambar 2.9 (a). Sedangkan titik ujung adalah titik obyek yang mempunyai tepat sebuah tetangga yang merupakan titik obyek juga atau dengan kata lain banyaknya B(P1) = 1, seperti pada Gambar 2.9 (b). Demikian juga titik yang berada dalam obyek, atau dengan kata lain B(P1) = 8, seperti pada Gambar 2.9 (d), sedangkan titik obyek yang memiliki tetangga berjumlah 7 titik, dimana ketujuh titik tersebut juga merupakan titik obyek, atau dengan kata lain banyaknya B(P1) = 7, seperti pada Gambar 2.9 (c)., tidak boleh dihilangkan untuk mencegah pengecilan rangka (-, 2008).

Kondisi (1) dilanggar jika titik P1memiliki hanya satu atau tujuh tetangga, bahkan tidak memiliki tetangga dari 8-tetangganya yang pikselnya merupakan titik obyek.

Kondisi (2), digunakan untuk mempertahankan keterhubungan antar piksel-piksel obyek (-,(2008)) (Martin dan Tosunoglu, -), di mana ketika nilai A(P1) = 0 seperti pada Gambar 2.11 (a), maka titik P1 akan dihapus sebab merupakan titik terasing, namun kondisi A(P1) = 0 tidak mungkin terjadi sebab tidak memenuhi kondisi 1 karena seluruh tetangganya merupakan latar, jika A(P1) = 1 seperti pada Gambar 2.11 (b), titik P1 dihapus maka tidak akan mempengaruhi keterhubungan antara kanan dan kiri, namun bila kita

menghilangkan suatu titik yang mempunyai nilai A(P1) lebih dari 1, seperti pada Gambar 2.11 (c) nilai A(P1) = 2, Gambar 2.11 (d) nilai A(P1) = 3, dan Gambar 2.11 (e) nilai A(P1) = 4, maka pola atau kerangka akan menjadi terputus. Dengan demikian titik P1 pada kemungkinan tersebut tidak boleh dihapus.

Kondisi (3) dan (4) pada subiterasi pertama dipenuhi jika minimal

P4= 0 atau P6= 0 atau (P2= 0 dan P8= 0). Kedua kondisi ini menunjukkan bahwa titik yang akan dihapus berada pada batas tepi selatan-timur atau ujung-ujung utara-barat.

(a) B(P1) = 0 (b) B(P1) = 1 (c) B(P1) = 7 (d) B(P1) = 8

Gambar 2.9. Contoh Titik yang tidak memenuhi kondisi (1) (- , 2008) 1

A(P1) = 2

2

Gambar 2.10. Penghitungan Transisi Pola 0-1 dari Urutan Piksel

P2,P3, P4, P5, P6,P7, P8, P9 (Zhang dan Suen, 1984)

0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 0 0 11

(a) A(P1) = 0 (b) A(P1) = 1 (c) A(P1) = 2 (d) A(P1) = 3

(e) A(P1) = 4

Gambar 2.11. Kemungkinan-kemungkinan Jumlah A(P1) (Martin dan Tosunoglu, -)

Misalnya, untuk nilai P2, P3,P4,... , P8,P9, seperti pada 0.

Gambar 2.12. Contoh Penghitungan B(P1) dan A(P1)

0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1

Setelah subiterasi pertama selesai, hapus seluruh titik yang telah ditandai, kemudian dilanjutkan dengan subiterasi kedua, yang diterapkan terhadap titik kontur dari hasil subiterasi pertama (sebelumnya), dimana hanya kondisi (3) dan (4) yang akan diubah, sedangkan kondisi (1) dan (2) sama seperti pada subiterasi pertama:

(3'). P2

.

P4

.

P8 = 0

(4'). P2

.

P6

.

P8 = 0

Kondisi (3‟) dan (4‟) pada subiterasi kedua terpenuhi jika minimal (P4 = 0 dan P6= 0) atau P2= 0 atau P8= 0. Kedua kondisi tersebut menunjukkan bahwa titik yang akan dihapus berada pada batas ujung-ujung selatan-timur atau batas tepi utara-barat.

Subiterasi pertama diterapkan ke seluruh titik batas pada citra biner. Jika satu atau lebih syarat dari kondisi (1), (2), (3), dan (4) tidak dipenuhi, titik tersebut tidak ditandai untuk dihapus. Sebaliknya, jika semua kondisi terpenuhi, maka titik tersebut ditandai untuk dihapus. Titik–titik batas tersebut tidak dihapus terlebih dahulu, sampai semua titik batas dievaluasi pada subiterasi pertama. Hal ini mencegah perubahan struktur data selama eksekusi algoritma. Setelah subiterasi pertama selesai dievaluasi terhadap semua titik batas, titik-titik yang diberi tanda dihapus (misalnya dengan cara mengubah obyek menjadi latar atau mengubah nilai piksel dari 1 ke 0).

Setelah subiterasi pertama selesai dilakukan, maka proses akan dilanjutkan ke subiterasi kedua yang diterapkan untuk citra biner hasil proses dari

subiterasi pertama. Pada subiterasi kedua, titik-titik batas juga tidak akan dihapus terlebih dahulu, sampai semua titik dievaluasi. Selama proses evaluasi, titik hanya akan ditandai untuk dihapus jika titik tersebut memenuhi seluruh kondisi pada subiterasi kedua. Setelah seluruh titik pada subiterasi kedua selesai dievaluasi, maka titik yang telah ditandai, akan dihapus.

Subiterasi pertama dan kedua diterapkan berulang-ulang, sampai tidak ada lagi titik yang dapat dihapus.

Dari keterangan di atas, dapat diambil kesimpulan bahwa satu iterasi pada algoritma penipisan ini terdiri atas 6 langkah, yaitu:

1. Membaca seluruh titik pada citra biner, untuk setiap titik yang merupakan obyek citra terapkan subiterasi pertama.

2. Jika sebuah titik memenuhi ke-4 kondisi pada subiterasi pertama, tandai titik tersebut sebagai titik yang akan dihapus.

3. Menghapus seluruh titik yang sudah diberi tanda.

4. Membaca seluruh titik citra hasil subiterasi pertama, untuk setiap titik yang merupakan obyek citra terapkan subiterasi kedua.

5. Jika sebuah titik memenuhi ke-4 kondisi pada subiterasi kedua, tandai titik tersebut sebagai titik yang akan dihapus.

Langkah 1-6 akan terus berulang hingga tidak ada lagi titik yang dapat dihapus. Gambar 2.13 merupakan contoh hasil dari implementasi algoritma

penipisan zhang suen, dimana piksel yang ditandai dengan simbol “

.

” merupakan

piksel yang akan dihapus.

Pada Lampiran 3. – Lampiran 14. akan ditunjukkan proses penipisan huruf jawa „Ra‟ dengan menggunakan algoritma zhang suen. Melalui proses tersebut, penipisan citra biner dengan obyek huruf jawa „Ra‟ yang berukuran 31x21 piksel, membutuhkan 3 kali iterasi dengan 6 kali subiterasi. Pada iterasi ke-3 dan subiterasi ke-2, ketika seluruh piksel dievaluasi, ternyata tidak ditemukan piksel yang akan dihapus, dengan kata lain rangka sudah terbentuk dan proses pun berakhir.

(a) (b)

(c) (d)

Gambar 2.13. (a) Citra Awal, (b) Citra Hasil Subiterasi I,

(c) Citra Hasil Subiterasi II, (d) Hasil akhir Setelah Melalui Beberapa Iterasi (Zhang dan Suen, 1984)

Dokumen terkait