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