Modul Proses Thinning Modul Proses Segmentasi

64 P5 P4 P3 Apabila nilai tetangga = 0, dan piksel P1 adalah latar, maka piksel P1 diubah menjadi obyek. 8. Apabila j = lebar, maka P1 berada di batas baris paling bawah dari citra, hitung nilai tetangga dari P1, P6 P2 P3 P5 P1 P4 Apabila nilai tetangga = 5, dan piksel P1 adalah latar, maka piksel P1 diubah menjadi obyek. 9. Apabila i ≠ 1 dan i ≠ tinggi, dan apabila j ≠ 1 dan j ≠ lebar, hitung nilai tetangga dari P1, P9 P2 P3 P8 P1 P4 P7 P6 P5 Apabila nilai tetangga = 8, dan piksel P1 adalah latar, maka piksel P1 diubah menjadi obyek.

d. Modul Proses Thinning

Modul untuk untuk proses thinning dipergunakan untuk menemukan kerangka dari setiap citra karakter di dalam citra dokumen. Keterangan modul Thinning selengkapnya adalah sebagai berikut: • Fungsi: Membuat matriks kerangka untuk setiap karakter dalam citra dokumen • Input: matriks yang sudah menjalani proses penghilangan noise • Output: matriks kerangka dari citra dokumen 65 • Algoritma: 1. Mulai dari i=1 sampai dengan tinggi matriks input 2. Mulai dari j=1 sampai dengan lebar matriks input. 3. Dengan mempergunakan algoritma Hilditch, periksa apakah titik dalam citra yang ditemukan memenuhi keempat kondisi hilditch. Jika ya maka titik tersebut harus diubah menjadi titik latar. 4. Ulangi langkah 4 sampai semua titik sudah diperiksa.

e. Modul Proses Segmentasi

Modul untuk proses segmentasi binarisasi terdiri dari enam buah submodul. Submodul yang pertama adalah submodul ProyeksiVertikal, yang dipergunakan untuk mencari histogram baris dari citra dokumen. Histogram baris ini kemudian akan dipakai untuk proses pencarian indek baris dari setiap baris kalimat dari citra dokumen, seperti tertuang dalam submodul CariIndekBaris. Indek baris ini berisi keterangan awal dan akhir indek setiap baris kalimat. Indeks baris tersebut kemudian dipergunakan oleh submodul PotongBaris untuk mendapatkan baris-baris citra pembentuk citra dokumen. Kemudian dengan mempergunakan submodul ProyeksiHorisonal dicari histogram kolom dari setiap baris citra yang ditemukan. Setelah histogram kolom untuk setiap baris kalimat diperoleh, maka kemudian dicari indek kolom untuk setiap baris citra seperti tertuang dalam submodul CariIndekKolom. Proses pemisahan karakter dari karakter yang lain kemudian dilakukan dalam submodul PotongKarakter. 66

1. Submodul ProyeksiVertikal

• Fungsi: Membuat profil proyeksi vertikal dari citra • Input: matriks yang sudah menjalani proses pengerangkaan • Output: matriks histogram vertikal • Algoritma: 1. Set k = tinggi matriks output = i 2. Inisialisasi matriks output hisver dengan [0] 3. Mulai dari i=1 sampai dengan tinggi matriks input 4. Mulai dari j=1 sampai dengan lebar matriks input. 5. Cari jumlahan piksel yang bernilai 1 pada setiap i

2. Submodul CariIndekBaris

• Fungsi: mencari indek baris-baris citra teks • Input: histogram baris hasil proses profil proyeksi vertikal hisver • Output: indeks koordinat batas atas dan batas bawah dari setiap baris kalimat dari citra dokumen • Algoritma: 1. Set t=tinggi matriks input, j = 0 2. Mulai dari i=1 sampai dengan t 3. Set indeks = [0 0] 4. Jika hisi ≠ 0, maka naikkan j dengan 1, dan catat i sebagai indeks j,1 5. Tambahkan i dengan 1 6. Selama hisi ≠ 0, naikkan i dengan 1. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 67 7. Jika hisi = 0, catat i-1 dalam indeks j,2 8. Tambahkan i dengan 1

9. Ulangi langkah 3 – 7 sampai i =

t

3. Submodul PotongBaris

• Fungsi: membagi citra dokumen ke dalam baris-baris teks • Input: file indek baris yang disimpan dalam file indekbaris, dan file hasil proses thinning thin.mat • Output: baris-baris citra dokumen yang disimpan dalam file baris.mat • Algoritma: 1. Buka file indekbaris 2. Buka file thin.mat 3. Set t=tinggi matriks indekbaris 4. Mulai dari i = 1 sampai dengan t 5. Ambil thinindekbaris[ i , 1 ]: indekbaris[i , 2], 6. Simpan dalam file baris.mat

4. Submodul ProyeksiHorisontal

• Fungsi: Membuat profil proyeksi horisontal dari citra baris-baris teks • Input: indeks hasil proses Baris indeks, dan matriks hasil pengerangkaan thin • Output: matriks histogram horizontal hishor • Algoritma: 1. Set k = tinggi matriks indeks, dan u = 0 2. Inisialisasi matriks output dengan hishor = [0] 68 3. Mulai dari i=1 sampai dengan k 4. Set baris[i] =thin[indeks[i,1]:indeks[i,2],:] 5. Mulai dari j=1 sampai dengan lebar matriks baris[i] 6. Mulai dari z=1 sampai dengan tinggi matriks baris[i] 7. Cari jumlahan piksel yang bernilai 1 pada setiap baris[i] di posisi lebar tinggi z = jumpik. Naikkan u dengan 1. Catat jumpik di hishor[u] 8. Ulangi langkah 12 sampai j = lebar matriks baris[i] 9. Ulangi langkah 9 sampai dengan 13 sampai i = k

5. Submodul CariIndekKolom

• Fungsi: mencari indek kolom-kolom citra teks • Input: histogram baris hasil proses profil proyeksi horisontal hishor • Output: indeks koordinat batas kiri dan batas kanan dari setiap citra karakter dari setiap baris citra • Algoritma: 1. Set t=tinggi matriks input, j = 0 2. Mulai dari i=1 sampai dengan t 3. Set indeks = [0 0] 4. Jika hisi ≠ 0, maka naikkan j dengan 1, dan catat i sebagai indeks j,1 5. Tambahkan i dengan 1 6. Selama hisi ≠ 0, naikkan i dengan 1. 7. Jika hisi = 0, catat i-1 dalam indeks j,2 PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 69 8. Tambahkan i dengan 1

9. Ulangi langkah 3 – 7 sampai i =

t 6. Submodul PotongKarakter • Fungsi: membuat batas-batas citra karakter • Input: indek kolom hasil proses submodul CariIndekKolom, dan baris- baris citra karakter yang tersimpan dalam file baris.mat. • Output: citra-citra karakter yang kemudian disimpan dalam file dokumen.mat • Algoritma: 1. Buka file indek kolom 2. Set t=tinggi matriks indek kolom 3. Buka file baris 4. Mulai dari i = 1 sampai dengan t 5. Ambil citrakarakter = baris : , indekkolom[ i , 1 ]: indekkolom[i , 2] dan kemudian simpan dalam file dokumen.mat 6. Tambahkan i dengan 1

f. Modul Proses Pengenalan Karakter