PE IPISA CITRA AKSARA JAWA
ME GGU AKA ALGORITMA GE ERIC
THI
I G
Oleh:
DA IEL A TO IUS KRISTA TO
075314050
PROGRAM STUDI TEK IK I FORMATIKA
JURUSA TEK IK I FORMATIKA
FAKULTAS SAI S DA TEK OLOGI
U IVERSITAS SA ATA DHARMA
YOGYAKARTA
THE THI
I G OF JAVA ESE CHARACTER
IMAGE USI G GE ERIC THI
I G
ALGORITHM
! "#
$ %
By:
DA IEL A TO IUS KRISTA TO
075314050
I FORMATICS E GI EERI G STUDY PROGRAM
I FORMATICS E GI EERI G DEPARTME T
FACULTY OF SCIE CE A D TECH OLOGY
SA ATA DHARMA U IVERSITY
! "
#
$ %& % & %' '
(
#
)*
+) ,+- %
.**- %
* ( %
' %(
/*
,/-$ %& % %
* **)0+
% 1+
! "
# # $ "
%
! " &' ( )*&&
+
,-, ,. / , ,
0 ( /
" , ( 1
ama : Daniel Antonius Kristanto
IM : 075314050
( "
, ( 2 1
3Penipisan Citra Aksara Jawa Menggunakan Algoritma Generic Thinning”
. 4 5% (
, ( "
" !
" # "
6
! #
%
( %
! " &' ( )*&&
KATA PE
GA
TAR
! " # $ % & '
() *+ ! , -$ . ) $ $
/ 0 ) 1
$ &
2
* , & &
3 4 5 ) ) # $ $
"
6 . "
'
8 $
9 )
"
)
$
DAFTAR ISI
LEMBAR JUDUL... i
HALAMA PERSETUJUA PEMBIMBI G... iii
HALAMA PE GESAHA ...iv
ABSTRAK... v
ABSTRACT... vi
MOTTO... vii
PER YATAA KEASLIA HASIL KARYA... viii
PER YATAA PERSETUJUA PUBLIKASI KARYA ILMIAH U TUK KEPE TI GA AKADEMIS... ix
KATA PE GA TAR... x
DAFTAR ISI...xii
DAFTAR GAMBAR... xv
DAFTAR TABEL... xvii
( ( '
Connecitivity
One pixel Thickness +
( $ , #
Line of Points Determine Skew Angle
0% ! / 1
GrandUniforming +
FinalThinImage #
* ! 2
. " 2
Sum of Pixel Object &
Sum of Remove Pixel
Sum Template A Sum )ot Critical Point One pixel Thickness
Running Time
+ Connectivity
/ - / - /
BAB IV:IMPLEME TASI... 46
3 '
3 ' ( ) *
4
3 ' FinalThinImage &
3 ' GrandUniforming
3 '
3 ' . "
3 ' Sum of Pixel Object...
3 ' Sum of Remove Object
3 ' Sum Template A Sum )ot Critical Point
3 ' One pixel Thickness +
3 ' Connectivity 2
+ 3 ' Running Time. &
BAB V: HASIL DA PEMBAHASA ... 61
( " 5 '
. " +&
Sum of Remove Pixel... +
Running Time ... +
One pixel Thickness ++
Connectivity +2
waterfall
grayscale
! " ! #
$
! ! %
! ! MakeTwoTone &
! "# $ %
& % '
( ) # * &
+ ,! ,* - .# / - 0 1
BAB I
PE DAHULUA
1.1 Latar Belakang
!
! "
!
!
# !
#
$ %
! " !
# $ # %! et al && '
connectivity
Sum Template A Sum ot Critical Point One pixel Thickness Sum of
Pixel Object Sum of Remove Pixel Running Time
( ) % &*&' + # %, &&-'
1.1 Rumusan Masalah
+ 1
* $ 2
$
2 0
2 3
( )
+ # ) . . ! 2
1.3 Tujuan
1
* /
/
# #
0 /
3 /
( ) + # )
1.4 Batasan Masalah
1
* 4
(
) + # ) . . ! 4
%grayscale' 5
connectivity
Sum Template A Sum ot Critical Point One pixel
Thickness Sum of Pixel Object Sum of Remove Pixel %
' Running Time.
0 /
3
preprocessing
1.5 Metodologi Penilitian
1
* /
/
/ / waterfall
Gambar 1.1: / waterfall
1
System Engineering
8
9
System Engineering
8
/ # #
output
0 / output
1.6 Sistematika Penulisan
! 1
BAB I: PE$DAHULUA$ $
BAB II: LA$DASA$ TEORI $
BAB III: A$ALISA DA$ PERA$CA$GA$ SISTEM $
BAB IV: IMPLEME$TASI $
% '
BAB V: HASIL DA$ PEMBAHASA$ $
BAB II
LA DASA TEORI
2.1 Citra
!
" # $
% $ %
& '
( (
! )
* )& # ++,* " #
#
) # ++ * !
# #
y
lebar
x x1
y1
Pada umumnya citra digital berbentuk persegi panjang dengan dimensi ukuran dinyatakan sebagai panjang lebar atau tinggi lebar
(Munir, 2004) seperti yang ditunjukkan pada Gambar 2.1.
Dimensi citra digital
Citra digital dapat didefinisikan sebagai fungsi dua variabel, yaitu , di mana dan adalah koordinat spasial dan
nilai adalah intensitas citra pada koordinat tersebut (Simanjuntak, 2009), hal tersebut diilustrasikan pada Gambar 2.2 di bawah ini.
Contoh koordinat pada citra tinggi
panjang lebar
Pertemuan antara kedua garis putus)putus menunjukkan koordinat piksel citra digital, yaitu pada . Nilai merupakan
intensitas citra pada koordinat tersebut .
2.1.2 Jenis Citra Digital
Menurut intensitas warna, citra digital dapat dikategorikan sebagai berikut:
1. Citra RGB (True Color)
Citra RGB merupakan citra digital yang mengandung matriks data berukuran m x n x 3 yang merepresentasikan warna merah,
hijau, dan biru untuk setiap pikselnya. Setiap warna dasar diberi rentang nilai (Simanjuntak, 2009).
Monitor komputer mempunyai nilai rentangnya paling kecil = 0 dan paling besar = 255. Pilihan skala 256 ini didasarkan pada cara mengungkap 8 digit bilangan biner yang digunakan oleh mesin
komputer. Dengan cara ini, akan diperoleh warna campuran sebanyak 256 x 256 x 256 = 1677726 jenis warna. Sebuah jenis
warna, dapat dibayangkan sebagai sebuah vektor di ruang 3 dimensi yang biasanya dipakai dalam matematika, koordinatnya dinyatakan dalam bentuk tiga bilangan, yaitu komponen)x, komponen)y dan
komponen)z. Misalkan sebuah vektor dituliskan sebagai r (x,y,z). Untuk warna, komponen)komponen tersebut digantikan oleh
dituliskan sebagai berikut: warna = RGB(30, 75, 255) (Rachmawati, 2008).
Komposisi Citra Warna (sumber:
http://www.ittelkom.ac.id/, diakses tanggal 20 Februari 2011)
Gambar 2.3 menunjukkan beberapa contoh warna yang
ditulis menurut komponen RGB. Warna tersebut antara lain kuning = (255,255,0), hijau = (0,255,0), cyan = (0,255,255), biru = (0,0,255),
2. Citra
Citra atau citra beraras keabuan adalah citra yang
hanya menggunakan warna pada tingkatan warna abu)abu. Warna abu)abu adalah satu)satunya warna pada ruang RGB mempunyai intensitas yang sama (Febrianty, 2008), misalnya abu)abu = RGB
(127,127,127). Oleh karena itu, citra disebut juga citra intensitas. juga dapat dikatakan sebagai warna)warna
piksel yang berada dalam rentang gradasi warna hitam dan putih (Rachmawati, 2008).
3. Citra Biner
Citra biner atau citra monokrom merupakan citra yang
memiliki 2 kemungkinan warna pada setiap pikselnya. Citra biner hanya dikuantisasikan pada 2 , yaitu 0 dan 1, sehingga setiap piksel pada citra cukup direpresentasikan dengan 1 bit (0 atau 1)
(Hadi, 2010). Citra biner merupakan citra yang telah melalui proses pemisahan piksel ) piksel berdasarkan derajat keabuan yang dimiliki.
Pembentukan citra biner memerlukan nilai batas keabuan yang akan digunakan sebagai nilai patokan. dengan derajat keabuan lebih besar dari nilai batas akan diberi nilai 1 dan sebaliknya piksel dengan
Contoh citra warna, citra dan citra biner
(sumber: http://www.ittelkom.ac.id/, diakses tanggal 20 Februari 2011)
...(2.1) Jika a1 =0, a2 = 1, dan T adalah nilai intensitas warna, maka operasi ini akan mengubah suatu citra menjadi citra biner. Misal
suatu citra memiliki level 256, dipetakan menjadi citra biner, maka fungsi)fungsi transformasinya adalah sebagai berikut:
...(2.2) yang nilai intensitasnya di bawah 128 diubah menjadi hitam (nilai intensitas = 0), sedangkan yang nilai
205 128 0
215 127 100
99 129 254
Contoh citra warna dalam bentuk digital yang diubah menjadi citra biner
Gambar 2.5 menunjukkan contoh citra warna yang diubah menjadi citra biner. Piksel yang intensitasnya di bawah 128 diubah
menjadi hitam (intensitas=0), sedangkan yang di atas atau sama dengan 128 diubah menjadi putih (intensitas=1).
Pengolahan citra digital merupakan proses yang bertujuan untuk
memanipulasi dan menganalisis citra dengan bantuan komputer. Pengolahan citra digital dapat dikelompokkan dalam dua jenis kegiatan :
1. Memperbaiki kualitas suatu gambar, sehingga dapat lebih mudah
diinterpretasi oleh mata manusia.
2. Mengolah informasi yang terdapat pada suatu gambar untuk keperluan
pengenalan obyek secara otomatis (Kausari, 2009).
Pemrosesan citra merupakan salah satu tahap dalam analisa citra yang berfungsi untuk mempersiapkan citra untuk dianalisa. Tujuan
mempersiapkan citra agar, citra dapat lebih mudah untuk diproses.
1 1 0
1 0 0
Tahap)tahap yang akan dilakukan dalam pemrosesan citra antara lain sebagai berikut.
1.
adalah proses mengubah sebuah citra menjadi citra
. Citra merupakan citra yang representasi setiap piksel diwakili dengan satu nilai warna dalam skala keabuan. Proses untuk
mendapatkan nilai intensitas keabuan adalah dengan menjumlahkan 30% dari nilai , 50% , dan 11% pada citra RGB. Hasil penjumlahan tersebut kemudian direpresentasikan dalam intensitas yang
sama pada dan .
2.
merupakan proses mengubah sebuah citra
menjadi citra biner atau citra dengan 2 intensitas warna yaitu hitam dan
putih. disebut juga dengan .
adalah pemisahan warna dalam skala keabuan (Hadi,
2010).
Penipisan atau adalah proses mereduksi piksel sebanyak mungkin dari sebuah pola tanpa merubah bentuk umum dari pola
citra direduksi menjadi rangka yang menghampiri garis sumbu piksel citra (Munir, 2004). Kerangka atau diasumsikan sebagai representasi
bentuk dari suatu piksel citra dalam jumlah piksel yang relatif kecil, yang mana semuanya merupakan bagian yang struktural dan oleh karena itu representasinya dibutuhkan (Parker, 1997). Dengan kata lain, setelah
mereduksi piksel, pola tersebut harus tetap bisa dikenali. Hasil penipisan harus setipis mungkin, tetap tersambung ( , memenuhi syarat )
dan rangka merupakan bagian tengah dari pola yang ditipiskan seperti pada Gambar 2.6. Citra sesudah penipisan tersebut terlihat merupakan bagian tengah dari pola citra aslinya.
Banyak orang mengembangkan konsep penipisan, namun menurut J.R. Parker (1997), tidak semua piksel citra dapat dikenai operasi penipisan,
dan hasil dari operasi penipisan yang disebut sebagai kerangka mempunyai kemungkinan untuk tidak berfungsi di semua situasi.
Contoh citra sebelum dan sesudah penipisan (sumber:
Algoritma Generic Thinning merupakan algoritma penipisan yang
diusulkan oleh S. Ahmed, M. Sharmin dan Chowdhury Mofizur Rahman (2002). Algoritma Generic Thinning memiliki beberapa langkah, yaitu:
1. ! "
! " adalah proses pertama dari langkah penipisan.
Proses yang dilakukan adalah mengubah citra masukan seperti pada
Gambar 2.7 menjadi citra baru yang disimpan ke dalam array dua dimensi yang hanya terdiri dari warna hitam dan putih. Diasumsikan warna putih (0) merepresentasikan latar ( ) dan warna hitam (1)
merepresentasikan warna obyek ( ) seperti pada Gambar 2.8 berikut ini.
Citra setelah dikenai proses ! " (sumber: http://netfiles.uiuc.edu/, diakses tanggal 17 Februari 2011)
2. Proses #
Proses selanjutnya adalah proses . Proses adalah proses mengubah array gambar sedemikian rupa sehingga jika ada piksel berwarna putih dan setidaknya +1 piksel di sekitarnya adalah
berwarna hitam, maka piksel warna putih tersebut diubah menjadi warna hitam. Namun hal ini tidak akan dilakukan pada piksel berwarna hitam.
Sebelum (a) Sesudah
Sebelum (b) Sesudah
! (a) Citra yang memenuhi syarat proses (b) Citra yang tidak memenuhi syarat proses ( =3)
(sumber: http://netfiles.uiuc.edu/, diakses tanggal 17 Februari 2011)
3. Proses
Proses bertujuan untuk melakukan pemeriksaan apakah sebuah piksel layak berwarna hitam atau tidak. Oleh karena itu, jika di sekitar piksel berwarna hitam terdapat piksel warna hitam yang jumlahnya
melebihi , maka biarkan piksel itu layak berwarna hitam. Apabila sebaliknya, maka ubahlah piksel hitam tersebut menjadi putih seperti pada
Sebelum (a) Sesudah
Sebelum (b) Sesudah
" (a) Citra piksel yang layak dibiarkan berwarna hitam (b) Citra piksel yang tidak layak dibiarkan berwarna hitam ( =3)
(sumber: netfiles.uiuc.edu)
Setelah menerapkan proses , citra array tidak akan menjadi citra
yang sebenarnya lagi, tetapi akan menjadi citra array versi pembesaran dan mewakili/merepresentasikan citra array yang sebenarnya.
Proses dan akan dilakukan pada citra array dua warna untuk beberapa kali. Namun proses akan lebih banyak
4. Proses $
Proses $ akan diterapkan pada citra array yang akan dijelaskan
kemudian. Proses ini akan membuat seluruh citra menjadi miring ( " ) seperti pada Gambar 2.11.
Sebelum Sesudah
Citra yang telah dimiringkan ( " ) (sumber: http://netfiles.uiuc.edu/, diakses tanggal 17 Februari 2011)
5. % & " ' (Menentukan Sudut Kemiringan)
Untuk mengatasi masalah kemiringan ini, diperlukan pendeteksian besar
sudut pada citra yang miring. Proses ini disebut " ( Langkah pertama dari proses ini adalah menentukan setiap garis yang ada di dalam array citra yang telah ditipiskan dan citra yang telah mengalami
proses zoom)in. Garis)garis ini disebut dengan ) . Kemudian menentukan besar sudut antara masing)masing ) dengan garis
...(2.9) dengan:
) (
ψ = besar sudut putar
x(i) = ) ke)i
n = jumlah keseluruhan ) t = nilai dari jumlah )
Besar sudut antara ) dan garis horisontal (ψ( ())) dapat
dihitung dengan persamaan (2.10) di mana piksel pertama (x1, y1) dan
piksel terakhir (x2, y2) untuk masing)masing ) .
...(2.10)
6. & " (Perbaikan kemiringan)
Proses yang akan dilakukan selanjutnya adalah memperbaiki kemiringan citra. Jika besar sudut putar yang didapat tidak begitu kecil, maka citra
array dua warna harus diputar berdasarkan ψ( ) untuk memperbaiki
7. #
Proses yang akan dilakukan selanjutnya adalah # .
Sebenarnya proses ini sangat mirip dengan proses yang telah dijelaskan sebelumnya. Namun pada proses ini terdapat ketentuan tambahan pada pengecekan piksel tetangga. Ketentuan yang dimaksud
adalah memeriksa apakah ada lebih dari satu kombinasi warna putih)hitam di sekitar piksel warna putih atau tidak. Jika terdapat lebih dari satu
kombinasi warna putih)hitam, maka piksel tersebut harus diubah menjadi piksel warna hitam, seperti pada Gambar 2.12(a). Tetapi jika kombinasi warna putih)hitam tidak lebih dari satu, maka piksel tersebut akan tetap
(a)
Sebelum (b) Sesudah
(a) Citra piksel yang layak diubah menjadi hitam
(b) Citra piksel yang tidak layak diubah menjadi hitam ( =3) (sumber: netfiles.uiuc.edu)
8. Proses * $
Proses terakhir adalah proses $ seperti yang telah disebutkan
sebelumnya. Proses ini memeriksa apakah masih ada piksel hitam yang dapat dihilangkan dengan tepat atau tidak. Langkah pertama adalah
memeriksa jumlah piksel hitam yang melebihi di sekitar sebuah piksel hitam. Jika terdapat kurang dari 2, maka piksel tersebut tidak layak dihapus (diubah menjadi warna putih). Tetapi jika terdapat lebih dari 2,
maka harus dilakukan penghitungan jumlah kombinasi warna putih)hitam di sekitar piksel hitam tersebut. Jika jumlah kombinasi putih)hitam kurang
kombinasi warna putih)hitam, maka harus dilakukan satu dari dua jenis pengecekan, yaitu pengecekan dan
. Jika (i,j) merupakan piksel berwarna hitam (lihat Gambar 2.13), maka dilakukan , yaitu akan menjadi putih jika salah satu dari (i,j+1), atau (i+1,j), atau kedua (i)1,j) dan (i,j)1) berwarna putih.
Sedangkan , yaitu akan menjadi putih jika salah satu dari (i)1,j), atau (i,j)1), atau kedua (i,j+1) dan (i+1,j) adalah putih.
i)1, j)1 i)1, j i)1, j+1
i, j i, j i, j+1
i+1, j)1 i+1, j i+1, j+1
Array 3x3 dari piksel yang akan diubah
beserta 8 piksel disekitarnya
(sumber: http://netfiles.uiuc.edu/, diakses tanggal 17 Februari 2011)
Jadi keseluruhan algoritma Generic Thinning dapat dituliskan
sebagai berikut:
1. Generic Thinning
2. Melakukan proses ! " pada citra 3. for i=1 to 3 do
4. {
5. for j=1 to 7 do
7. lakukan proses 15. putar seluruh citra sebesar ) ψ
16. lakukan proses #
17. lakukan $ sebanyak 20 kali
Suatu algoritma penipisan dapat dinyatakan baik jika memenuhi beberapa syarat seperti + dan . Hal ini dilakukan
untuk menunjukkan suatu algoritma penipisan selalu menghasilkan rangka yang saling terhubung seperti bentuk citra yang asli serta memiliki ketebalan
sebesar 1 piksel (Jang dan Chin, 1990). Oleh karena itu, algoritma Generic Thinning yang akan digunakan sebagai algoritma penipisan citra aksara Jawa, perlu dilakukan analisis sebagai berikut:
(dua himpunan berhingga disebut jika terdapat koresponden satu)satu antara dari & dan $). Maka dari itu $
adalah 8) dan komplemennya mengandung 4) .
2.5.2+ : Sebuah kerangka yang dibentuk dari proses penipisan harus memiliki kriteria , atau memiliki
ketebalan 1 piksel. Syarat sebuah kerangka dapat disebut adalah sebagai berikut:
1. Bila tidak memuat A = { A1, A2, A3, A4 } yang berukuran
2x2 dengan struktur ditunjukkan pada Gambar 2.14 berikut ini.
A1 A2 A3 A4
Struktur template A
Susunan Gambar 2.13 adalah susunan pola yang ditemukan dalam komponen)komponen terhubung yang bukan merupakan rangka. 2. Apabila satu atau lebih A (A1, A2, A3, A4) terdapat rangka
menyebabkan piksel)piksel yang lain menjadi tidak terhubung atau menghasilkan lubang. Suatu kerangka dikatakan bila
sekurang)kurangnya memenuhi struktur templates B yang memiliki struktur B = (B1, B2, B3, B4), ataupun C yang memuat keempat struktur templates A seperti pada Gambar 2.15
B1 B2 B3 B4
C
Struktur template B dan C
# $ %
Aksara hanacaraka Jawa memiliki 20 huruf dasar, 20 huruf yang berfungsi menutup bunyi vokal, 8 huruf "utama" (
, ada yang tidak ber ), 8 huruf utama, lima aksara
swara (huruf vokal depan), lima aksara rekan dan lima pasangannya, beberapa sebagai pengatur vokal, beberapa huruf khusus, beberapa tanda baca, dan beberapa tanda pengatur tata penulisan ( ).
Aksara Jawa hanacaraka baku terdiri dari 20 huruf dasar (aksara ), seperti pada Gambar 2.16 berikut ini.
BAB III
A ALISA DA PERA CA GA SISTEM
3.1 Gambaran Umum Sistem
!
" #
$
" %
Gambar 3.1: & '
Gambaran umum dari aktivitas yang akan dilakukan antara user dan
sistem adalah user memasukkan input berupa citra aksara Jawa ke sistem
penipisan, kemudian citra hasil penipisan akan ditampilkan kepada user.
Beberapa proses yang harus dilakukan oleh sistem menurut uraian
mengenai gambaran umum sistem pada Gambar 3.1, yaitu proses melakukan
pengubahan citra menjadi citra biner (jika masukan bukan merupakan citra
biner). Proses binerisasi pada algoritma Generic Thinning juga disebut proses
MakeTwoTone. Setelah itu dilakukan proses penipisan.
Berdasarkan penjelasan proses pada Gambar 3.1, maka didapat Data
Flow Diagram (DFD) level 1 seperti pada Gambar 3.2 berikut ini.
Data Flow Diagram level 1
3.2.1 Proses Binerisasi
Mengingat citra yang diperlukan dalam proses pinipisan citra
adalah citra biner, maka proses yang harus dilakukan adalah mengubah
citra masukan menjadi citra biner. Proses ini disebut juga dengan proses Citra tipis
binerisasi. Pada algoritma Generic Thinning, proses ini disebut juga
proses MakeTwoTone. Proses MakeTwoTone yang akan dilakukan
ditunjukkan pada perancangan berikut ini.
Rancangan binerisasi ini menggunakan perintah Matlab, yaitu im2bw.
Inisialisasi array2 dengan citra masukkan, kemudian lakukan binerisasi
dengan menginisialisasi result dengan im2bw(array2). Maka hasil
binerisasi adalah result.
3.2.2 Proses Penipisan
Proses penipisan adalah proses utama yang akan dilakukan.
Proses ini dilakukan dengan menggunakan algoritma Generic Thinning.
Proses penipisan algoritma Generic Thinning yang akan dilakukan dapat
dituliskan sebagai berikut:
1. Generic Thinning
2. for i=1 to 3 do
3. {
4. for j=1 to 7 do
5. {
6. lakukan proses uniforming
7. }
8. lakukan proses zoom in Perancangan MakeTwoTone:
9. }
10. lakukan proses ThinImage sebanyak 3 kali
11. cari semua Line of Points
12.Determine Skew Angle (Menentukan Sudut Kemiringan) ψ
13. melakukan proses MakeTwoTone lagi
14. putar seluruh citra sebesar 9 ψ
15. lakukan proses GrandUniforming
16. lakukan ThinImage sebanyak 20 kali
3.2.2.1Uniforming
Proses Uniforming yang akan dilakukan ditunjukkan pada
perancangan berikut ini.
Proses uniforming dilakukan dengan menentukan nilai threshold
terlebih dahulu, kemudian membaca dimensi citra. Dimensi ini
digunakan untuk menentukan batas perulangan for (looping).
Jika terdapat piksel 1 atau off, maka dilakukan pengecekan Perancangan Uniforming:
1. Inisialisasi array2 dengan array citra biner. 2. Inisialisasi threshold dengan 3.
3. Inisialisasi dimensi citra.
4. Untuk setiap piksel (p) pada baris dan kolom pada input, lakukan langkah 4.1.
4.1 Uji apakah piksel (p) bernilai 1 (off), jika ya maka lakukan langkah a, jika tidak maka kembali lakukan langkah 4.
a. Hitung jumlah piksel on pada 89tetangga. Jika lebih banyak dibandingkan threshold, maka lakukan langkah b.
jumlah piksel on pada 89tetangga. Jika jumlah piksel on pada 89
tetangga lebih banyak dibandingkan nilai threshold, maka piksel
tersebut diubah menjadi warna hitam atau on.
3.2.2.2Zoom in
Proses zoom in yang akan dilakukan ditunjukkan pada
perancangan berikut ini.
Proses zoom in dilakukan dengan menentukan nilai threshold
terlebih dahulu, kemudian membaca dimensi citra. Dimensi ini
digunakan untuk menentukan batas perulangan for (looping).
Jika terdapat piksel 0 atau on, maka dilakukan pengecekan
jumlah piksel on pada 89tetangga. Jika jumlah piksel on pada 89
tetangga lebih sedikit dari nilai threshold, maka piksel tersebut
diubah menjadi warna putih atau off. Perancangan Zoom in:
1. Inisialisasi array2 dengan array citra biner. 2. Inisialisasi threshold dengan 3.
3. Inisialisasi dimensi citra.
4. Untuk setiap piksel (p) pada baris dan kolom pada input, lakukan langkah 4.1.
4.1 Uji apakah piksel (p) bernilai 0 (on), jika ya maka lakukan langkah a, jika tidak maka kembali lakukan langkah 4.
a. Hitung jumlah piksel on pada 89tetangga. Jika lebih sedikit dibandingkan threshold, maka lakukan langkah b.
3.2.2.3ThinImage
Proses ThinImage yang akan dilakukan ditunjukkan pada
perancangan berikut ini.
Proses ThinImage dilakukan dengan menginisialisasi array2
dengan citra biner masukkan. Kemudian memutar citra array2
sekitar 20 derajat. Setelah itu citra akan dikenai proses zoom in.
3.2.2.4Line of Points dan Determine Skew Angle (Deteksi Sudut
Kemiringan)
Proses Line of Points berguna untuk mengetahui garis9garis yang
akan menjadi patokan pengukuran sudut kemiringan. Sedangkan
Determine Skew Angle adalah menentukan berapa besar sudut
kemiringan pada citra masukkan berdasarkan garis9garis patokan
yang didapat dari proses Line of Points. Kedua proses ini
berfungsi untuk besar sudut putar yang terdapat pada citra untuk
memperbaiki kemiringan citra masukkan. Oleh karena itu, kedua
proses ini akan diganti dengan proses mendeteksi kemiringan
pada citra dokumen menggunakan Pendekatan Titik Pusat
Gravitasi mengingat hal ini telah dilakukan pada oleh Niko
Kurdianata pada Deteksi Kemiringan Pada Citra Dokumen Teks Perancangan ThinImage:
1. Inisialisasi array2 dengan array citra biner. 2. Putar citra array2 sekitar 20 derajat.
Sastra Jawa Menggunakan Pendektan Titik Pusat Gravitasi
(Center of Gravity), 2010. Proses yang akan dilakukan tersebut
ditunjukkan pada perancangan berikut ini.
Perancangan Deteksi Kemiringan:
1. Inisialisasi array2 dengan array citra biner. 2. Inisialisasi dimensi citra.
3. Inisialisasi jum_-, jum_m, jum_n dengan 0.
4. Untuk setiap piksel (p) pada baris dan kolom pada input, lakukan langkah 4.1.
7.1 Uji apakah piksel (p) bernilai on, jika ya maka lakukan langkah a, jika tidak maka kembali lakukan langkah 4.
a. Tambahkan nilai jum_- dengan 1, jum_m dengan indeks baris, dan jum_n dengan indeks kolom.
5. Inisialisasi m_aksen dengan hasil pembagian nilai jum_n dengan jum_-.
6. Inisialisasi n_aksen dengan hasil pembagian nilai jum_n dengan jum_-.
7. Inisialisasi miu_11, miu_20, dan miu_02 dengan 0. 8. Untuk setiap piksel (p) pada baris dan kolom pada
input, lakukan langkah 7.1.
7.1 Uji apakah piksel (p) bernilai on, jika ya maka lakukan langkah a, b dan c, jika tidak maka kembali lakukan langkah 7.
a. Tambahkan nilai miu_11 dengan hasil perkalian antara indeks baris dikurang m_aksen dengan indeks kolom dikurangi n_aksen.
b. Tambahkan nilai miu_20 dengan hasil perkalian antara indeks baris dikurang m_aksen dengan indeks kolom dikurangi m_aksen.
c. Tambahkan nilai miu_02 dengan hasil perpangkatan dari hasil indeks kolom dikurangi n_aksen.
3.2.2.5GrandUniforming
Proses GrandUniforming yang akan dilakukan ditunjukkan pada
perancangan berikut ini.
Proses GrandUniforming dilakukan dengan menentukan nilai
threshold terlebih dahulu, kemudian membaca dimensi citra.
Dimensi ini digunakan untuk menentukan batas perulangan for
(looping). Jika terdapat piksel 1 atau off, maka dilakukan
pengecekan jumlah piksel on pada 89tetangga. Jika jumlah piksel
on pada 89tetangga lebih banyak dibandingkan nilai threshold,
maka dilakukan pengecekan kombinasi putih hitam (off on) pada
89tetangga. Jika jumlah kombinasi lebih dari 1, maka piksel
tersebut diubah menjadi warna hitam atau on. Perancangan GrandUniforming:
1. Inisialisasi array2 dengan array citra biner. 2. Inisialisasi threshold dengan 3.
3. Inisialisasi dimensi citra.
4. Untuk setiap piksel (p) pada baris dan kolom pada input, lakukan langkah 4.1.
4.1 Uji apakah piksel (p) bernilai off, jika ya maka lakukan langkah a, jika tidak maka kembali lakukan langkah 4.
a. Hitung jumlah piksel on pada 89tetangga. Jika lebih banyak dibandingkan threshold, maka lakukan langkah b.
b. Hitung jumlah kombinasi putih9hitam (off on) pada 89tetangga. Jika jumlah kombinasi lebih dari 1, maka lakukan langkah c.
3.2.2.6FinalThinImage
Proses FinalThinImage yang akan dilakukan ditunjukkan pada
perancangan berikut ini.
Proses FinalThinImage dilakukan dengan menentukan nilai
threshold terlebih dahulu, kemudian membaca dimensi citra.
Dimensi ini digunakan untuk menentukan batas perulangan for
(looping). Jika terdapat piksel 0 atau on, maka dilakukan
pengecekan jumlah piksel on pada 89tetangga. Jika jumlah piksel
on pada 89tetangga lebih banyak atau sama dengan nilai
threshold, maka hitung jumlah kombinasi putih9hitam pada 89
tetangga. Jika jumlah kombinasi sama dengan 1, maka lakukan
pengecekan firstTypeChecking dan secondTypeChecking. Perancangan FinalThinImage:
1. Inisialisasi array2 dengan array citra biner. 2. Inisialisasi threshold dengan 3.
3. Inisialisasi dimensi citra.
4. Untuk setiap piksel (p) pada baris dan kolom pada input, lakukan langkah 4.1.
4.1 Uji apakah piksel (p) bernilai on, jika ya maka lakukan langkah a, jika tidak maka kembali lakukan langkah 4.
a. Hitung jumlah piksel on pada 89tetangga. Jika lebih banyak atau sama dengan threshold, maka lakukan langkah b.
b. Hitung jumlah kombinasi putih9hitam (off on) pada 89tetangga. Jika jumlah kombinasi sama dengan 1, maka lakukan langkah c dan d. c. Lakukan pengecekan firstTypeChecking. Jika
memenuhi syarat firstTypeChecking, maka piksel (p) dihapus (off).
Sebuah piksel (i,j) memenuhi syarat firstTypeChecking apabila
piksel tetangga (i,j+1) atau (i+1,j), atau kedua dari (i91,j) dan (i,j9
1) berwarna putih (off).
Sebuah piksel (i,j) memenuhi syarat secondTypeChecking apabila
piksel tetangga (i91,j) atau (i,j91), atau kedua dari (i,j+1) dan
(i+1,j) berwarna putih (off).
Jika memenuhi syarat firstTypeChecking atau
secondTypeChecking, maka piksel tersebut diubah menjadi
warna putih atau off.
Kerangka hasil proses penipisan harus memenuhi syarat utama
sebuah kerangka, yaitu one pixel thickness dan connectivity. Oleh karena itu,
diperlukan pengujian dari citra hasil penipisan untuk mengetahui apakah citra
tersebut baik atau tidak. Pengujian yang akan dilakukan sebagai berikut:
3.3.1 Pengamatan Ukuran Citra
Pengamatan Ukuran Citra berguna untuk mengetahui
perbandingan ukuran antara citra asli dan citra rangka. Citra rangka yang
mengalami proses penipisan akan mengalami pengurangan jumlah piksel
on. Pengurangan jumlah piksel on akan membuat ukuran citra menjadi
lebih tipis/kecil, sehingga dari pengamatan ini dapat diketahui apakah
menjadi semakin tebal/besar, atau tetap maka dapat dipastikan citra tidak
mengalami penghapusan piksel.
3.3.2Sum of Pixel Object
Perancangan Sum of Pixel Object ditunjukkan pseudocode
berikut ini.
Proses Sum of Pixel Object dilakukan dengan membaca
dimensi citra terlebih dahulu, dimensi ini digunakan untuk menentukan
batas perulangan for (looping). Jika terdapat piksel 0 atau “on”, maka
count akan ditambah satu hingga semua piksel pada citra dieksekusi. Perancangan Sum of Pixel Object:
1. Inisialisasi temp dengan array citra biner. 2. Inisialisasi dimensi citra.
3. Inisialisasi count dengan 0.
4. Untuk setiap piksel(p) pada baris dan kolom pada input, lakukan langkah 4.1.
4.2 Uji apakah piksel(p) bernilai 0, jika ya maka lakukan langkah a, jika tidak maka kembali lakukan langkah 4.
3.3.3Sum of Remove Pixel
Perancangan Sum of Remove Pixel ditunjukkan pseudocode
berikut ini.
Sebelum melakukan perhitungan Sum of Remove Pixel, terlebih
dahulu dilakukan perhitungan pada jumlah piksel citra sebelum
dilakukan penipisan dan menghitung jumlah piksel citra hasil penipisan.
3.3.4Sum Template A dan Sum -ot Critical Point
Perancangan Sum Template A dan Sum -ot Critical Point
ditunjukkan pseudocode berikut ini.
Peracangan Sum of Remove Pixel:
1. Hitung jumlah SumOfPixelObject seperti pada implementasi Sum of Pixel Object.
2. Hitung jumlah SumOfPixelSkeleton seperti pada implementasi Sum of Pixel Object dengan citra inputan adalah citra rangka.
Perancangan Sum Template A dan Sum -ot Critical Point: 1. Inisialisasi variabel contain_A=0
2. Inisialisasi variabel notCriticalPoint=0
3. Untuk setiap piksel obyek pada citra rangka, lakukan langkah 4
4. Uji apakah merupakan template A1, jika ya lakukan langkah 4.a, jika tidak lakukan langkah 5.
a. Uji apakah merupakan template B1 atau C,
i. jika ya, notCriticalPoint bertambah 1 dan lakukan langkah 5.
ii.jika tidak, nilai contain_A bertambah 1, lakukan langkah 5.
5. Uji apakah merupakan template A2, jika ya lakukan langkah 5.a, jika tidak lakukan langkah 6.
a. Uji apakah merupakan template B2 atau C,
i. jika ya, notCriticalPoint bertambah 1 dan lakukan langkah 6.
ii.jika tidak, nilai contain_A bertambah 1, lakukan langkah 6.
6. Uji apakah merupakan template A3, jika ya lakukan langkah 6.a, jika tidak lakukan langkah 7.
a. Uji apakah merupakan template B3 atau C,
i. jika ya, notCriticalPoint bertambah 1 dan lakukan langkah 7.
ii.jika tidak, nilai contain_A bertambah 1, lakukan langkah 7.
7. Uji apakah merupakan template A4, jika ya lakukan langkah 7.a.
3.3.5One pixel Thickness
Perancangan One pixel thickness akan menghasilkan
persentase piksel citra hasil penipisan yang memenuhi syarat One pixel
thickness. Perancangan One pixel thickness ditunjukkan pseudocode
berikut ini:
Sebelum menemukan persentase One pixel thickness
sebelumnya harus dilakukan perhitungan pada jumlah piksel citra hasil
penipisan. Selanjutnya dari implementasi Sum Template A dan Sum -ot
Critical Point didapat jumlah piksel yang merupakan -ot Critical Point,
piksel ini akan dijadikan pengurang pada jumlah piksel citra hasil
penipisan. Persentase One pixel thickness didapat dari mengurangi
jumlah piksel citra hasil penipisan dengan jumlah piksel -ot Critical
Point, kemudian dibagi dengan jumlah piksel citra hasil penipisan. Hasil
pembagian ini kemudian dikalikan dengan 100%. Perancangan One pixel thickness:
1. Hitung jumlah piksel citra rangka (sumOfPixelSkeleton) dengan cara yang sama pada implementasi sum of pixel object.
2. Hitung jumlah notCriticalPoint seperti pada implementasi sum template A dan sum not critical point.
3. Hitung OnepixelThickness dengan cara sumOfPixelSkeleton dikurangi dengan notCriticalPoint.
3.3.6Running Time
Perancangan Running Time yang akan dilakukan pada
ditunjukkan pada pseudocode berikut ini:
Perintah tic digunakan untuk memulai perhitungan waktu dan
toc untuk mengakhiri waktu eksekusi penipisan.
3.3.7Connectivity
Pengujian connectivity digunakan untuk melihat apakah citra
rangka serupa dengan bentuk asli dari citra masukan. Misal jika suatu
citra aksara memiliki lubang maka citra hasil juga harus memiliki lubang,
demikian juga jika citra asli tidak memiliki suatu piksel yang tidak putus
maka citra rangka juga tidak boleh putus.
Pengujian ini dilakukan dengan melakukan pengamatan
langsung dari tiap9tiap citra rangka dan citra masukan secara langsung. Perancangan Running Time:
1. Inisialisasi perintah “tac” sebelum implementasi algoritma Generic Thinning.
2. Inisialisasi perintah “toc” setelah implementasi algoritma Generic Thinning.
Spesifikasi perangkat keras yang akan digunakan untuk membuat
aplikasi dan proses penipisan ini adalah sebagai berikut;
1. Processor : Intel Core 2 Duo CPU P8600 @ 2.40GHz (2 CPUs)
2. Memory : 2042 MB (2 GB)
3. Operating System : Windows Vista Home Premium SP 1
Copyright © 2007 Microsoft Corporation. All
Rights Reserved
BAB IV
IMPLEME TASI
4.1 Implementasi Binerisasi
! "#
$ %
4.2 Implementasi Algoritma Generic Thinning & '
!
"
! "
#
$
$
!
$ $"
$
$
! "
! # $
%
& "
' ( ' (
' (
' ( & LA_3.jpg' ( & LA_3.jpg
' ( &
GrandUniforming
% GrandUniforming
GrandUniforming off ! on ! !
on + threshold,
+ "
! Sum of
Remove Pixel ! Sum of Pixel Object !
Running Time * Sum Template A ! Template A One pixel thickness
One pixel thickness Sum *ot
Critical Point ! critical point
" / &
/ &
% 0
+
Sum of Pixel Object
! Sum of Pixel Object !
Sum of Pixel Object
1 2
" Sum of Pixel Object
3
on 4
on 5 count
%
, 6 ,. ,"
7, 8
!7, 8
' !(,,.
, 9"
0
!,"
Sum of Remove Pixel
! Sum of Remove Pixel !
Sum of Remove
Pixel !
! Sum of Remove Pixel
%
, 6 ,. ,"
7, 8
!7, 8
' !(,,.
, 9"
0
1 2
" Sum of Remove Pixel
#
Sum of Pixel Object
on 4 on 5 count
Sum of Pixel Object
! Sum of Pixel Object'! ( 5 count '!
( 0
Sum of Remove Pixel
Sum Template A Sum *ot Critical Point
! Sum Template A Sum *ot Critical Point
!
templateA critical point Sum Template A Sum
! Sum Template A Sum *ot Critical Point
%
," $,. & ,.
;
7, 8
!7, 8 !,"; , 9";
& < !=,,.8
& $8
$, $9"
& 8
!,!9"
& , & 9"
1 2
" % ! templateA
" $ "
5 templateA 'templateA=templateA+1(
4 templateA
critical point
templateB templateC "- $
templateB templateC
not critical point
'notCriticalPoint=notCriticalPoint+1(
- One pixel Thickness
! One pixel thickness
"
1 " !
-1 2
" ! one pixel thickness
!
! not critical point
!
critical point
'one pixel thickness(
one pixel thickness
!
one pixel thickness !
"..> %
4 ;
4 not critical point;
one pixel thickness,! +! not critical point
One pixel thickness,' one pixel
thickness/! (?"..
0
: Connectivity Connectivity
+
template A
critical point
template A *
template A critical point !
0 !
4
* !
!
!
+ 4
!
Running Time
! running time *
Running
time ! :
running time
1 2
" running time
% tic * *
toc @ *
%
* ,
BAB V
HASIL DA PEMBAHASA
5.1 Analisa Citra Hasil Penipisan
!" " # " " $ " % " & " " ' " ( " ) " * " & " + " , " # " - " " " " #
. / ! "
&
Penipisan Citra Aksara Jawa
Menggunakan Algoritma agendraprasad Wang Gupta 0 " 1"
Penipisan Citra Aksara Jawa Menggunakan Algoritma Rosenfeld0% " 21" Penipisan Citra Aksara Jawa Menggunakan Algoritma Wang Zhang
0- " 1" Penipisan Citra Aksara Jawa Menggunakan Algoritma
Zhang Suen0% " 21
* threshold
threshold
Tabel 5.1: Data Citra Input dan Output
No. Nama file Citra asli Citra biner Citra rangka
Generic Thinning (threshold=3)
Citra rangka Generic Thinning (threshold=2)
1. HA_1.JPG
HA_2.JPG
HA_3.JPG
2. NA_1.JPG
NA_2.JPG
NA_3.JPG
CA_2.JPG
CA_12.JPG
4. RA_1.JPG
RA_2.JPG
RA_3.JPG
5. KA_1.JPG
KA_2.JPG
6. DA_1.JPG
DA_2.JPG
DA_3.JPG
7. TA_1.JPG
TA_2.JPG
TA_3.JPG
8. SA_1.JPG
SA_3.JPG
9. WA_1.JPG
WA_2.JPG
WA_3.JPG
10. LA_1.JPG
LA_2.JPG
LA_3.JPG
PA_2.JPG
PA_4.JPG
12. DHA_1.JPG
DHA_2.JPG
DHA_15.JPG
13. JA_1.JPG
JA_2.JPG
14. YA_1.JPG
YA_2.JPG
YA_3.JPG
15. NYA_1.JPG
NYA_2.JPG
NYA_15.JPG
16. MA_2.JPG
MA_4.JPG
17. GA_1.JPG
GA_2.JPG
GA_3.JPG
18. BA_1.JPG
BA_2.JPG
BA_3.JPG
THA_2.JPG
THA_14.JPG
20. NGA_1.JPG
NGA_2.JPG
NGA_3.JPG
Dari pengamatan langsung pada hasil penipisan yang ditunjukkan
Tabel 5.1 di atas, dapat dilihat bahwa citra rangka dengan menggunakan nilai
threshold=2 lebih baik dibandingkan dengan citra rangka menggunakan
threshold=3. Maka hasil yang akan diuji dan diamati adalah citra rangka hasil
penipisan algoritma Generic Thinning dengan menggunakan nilai threshold=2.
Tingkat keberhasilan penipisan algoritma Generic Thinning terhadap
citra aksara Jawa ditunjukkan melalui pengujian dan pengamatan sebagai
5.1.1 Pengamatan Ukuran Citra
Pengamatan ukuran citra berguna untuk mengetahui ukuran
citra aksara sesudah dan sebelum dilakukan proses penipisan. Hasil dari
pengamatan ukuran citra terdapat pada Tabel 5.2 berikut ini.
Tabel 5.2: Hasil Pengamatan Ukuran Citra
30. LA_3.JPG 13,5 1,44
Tabel 5.2 menunjukkan bahwa ukuran citra setelah penipisan
rata<rata menjadi 11,41% dari citra asli. Hal ini terjadi karena perubahan
piksel on menjadi off. Berkurangnya piksel on membuat ukuran citra
menjadi berkurang.
Citra hasil penipisan menggunakan algoritma Generic Thinning
Nagendraprasad<Wang<Gupta sebesar 89,83% (Hadi, 2010), algoritma
Rosenfeld sebesar 89,77% (Krisnawati, 2009), algoritma Zhang Suen
sebesar 90,39% (Marwadi, 2010), dan algoritma Wang<Zhang sebesar
90,13% (Kurnianita, 2009).
5.1.2 Pengamatan
Pengamatan Sum of Remove Pixel berguna untuk mengetahui
berapa banyak piksel sebelum dan sesudah proses penipisan dilakukan.
Hal ini berguna juga untuk mengetahui berapa banyak piksel yang telah
dihapus. Penghapusan ini erat kaitannya dengan apakah citra yang
dihasilkan memenuhi syarat one pixel thickness atau tidak. Apabila
jumlah piksel yang sudah terhapus lebih dari setengahnya, maka
kemungkinan syarat one pixel thickness akan terpenuhi.
Hasil pengamatan jumlah piksel citra sebelum dah sesudah
proses penipisan ditunjukkan pada Tabel 5.3 berikut ini.
Tabel 5.3: Hasil Pengamatan Jumlah Piksel Terhapus
51. GA_3.JPG 72 72 1471 210 1261 85,72
Tabel 5.3 menunjukkan rata<rata piksel yang berhasil dihapus
dengan menggunakan algoritma Generic Thinning sebesar 86,38%,
sedangkan algoritma Nagendraprasad<Wang<Gupta sebesar 84,12%
(Hadi, 2010), algoritma Rosenfeld sebesar 84,12% (Krisnawati, 2009),
algoritma Zhang Suen sebesar 82,08% (Mawardi, 2010), dan algoritma
Wang<Zhang sebesar 82,08% (Kurnianti, 2009).
5.1.3 Pengamatan Running Time
Pengamatan Running Time berguna untuk melihat berapa lama
waktu yang diperlukan pada proses penipisan terhadap suatu citra. Hasil
pengamatan waktu komputasi algoritma Generic Thinning ditunjukkan
41. YA_2.JPG 72 72 0.653029
Rata<rata 0,511893
Tabel 5.4 menunjukkan bahwa algoritma Generic Thinning
memiliki kecepatan yang lebih lambat dibandingkan lainnya, yaitu
0,511893 detik, sedangkan algoritma Nagendraprasad<Wang<Gupta
memiliki kecepatan rata<rata 0.00678 detik (Hadi, 2010), algoritma
Rosenfeld rata<rata 0,053488 detik (Krisnawati, 2009), algoritma Zhang
Suen rata<rata 0,029 detik (Mawardi, 2010), dan algoritma Wang<Zhang
5.1.4 Pengujian
One pixel thickness berguna untuk melihat apakah citra hasil
penipisan memiliki ketebalan satu piksel atau tidak. Hasil pengujian one
pixel thickness ditunjukkan pada Tabel 5.5 berikut ini.
Tabel 5.5: Hasil Pengujian one pixel thickness
29. LA_2.JPG 323 8 0 323 100
Tabel 5.5 menunjukkan presentase rata<rata citra rangka yang
memenuhi syarat one pixel thickness adalah 100%. Disimpulkan bahwa
algoritma Generic Thinning memenuhi syarat one pixel thickness.
Persentase ini lebih baik dibandingkan dengan algoritma lainnya.
99.64% (Hadi, 2010), algoritma Rosenfeld sebesar 99,88% (Krisnawati,
2009), algoritma Zhang Suen sebesar 90,26% (Mawardi, 2010), dan
algoritma Wang<Zhang sebesar 90,26% (Kurnianti, 2009).
5.1.5 Pengujian
Connectivity mengharuskan suatu citra hasil penipisan
mempertahankan keterhubungannya (connectivity), sehingga tidak ada
bagian yang seharusnya tidak terputus menjadi terputus yang
mengakibatkan citra rangka yang dihasilkan menjadi tidak serupa lagi
dengan citra aslinya. Hal ini membuat syarat connectivity menjadi salah
satu syarat utama seperti halnya one pixel thickness.
Connectivity citra berdasarkan hasil pengamatan secara
langsung ditunjukkan pada Tabel 5.6 berikut ini.
Tabel 5.6: Hasil pengamatan secara langsung pengujian connectivity
No Nama file Tidak
terputus Terputus
59. NGA_2.JPG √
60. NGA_3.JPG √
Jumlah 59 1
Tabel 5.6 menunjukkan jumlah citra rangka yang terputus
hanya ada 1 citra rangka, sedangkan citra rangka yang tidak terputus
sebanyak 59 dari 60 citra atau sebesar 98,33%.
Syarat connectivity pada rangka citra yang dihasilkan dengan
menggunakan algoritma Generic Thinning akan selalu terpenuhi sebab
jika menggunakan nilai threshold=2, maka proses penghapusan piksel on
pada FinalThinImage tidak akan dilakukan jika jumlah piksel on pada 8<
tetangga tidak lebih dari 1 (minimal 2 piksel on). Kondisi tersebut
menunjukkan syarat connectivity yang digunakan untuk
mempertahankan keterhubungan antar piksel<piksel obyek, di mana jika
menghilangkan suatu piksel on yang mempunyai jumlah piksel on pada
8<tetangga hanya 1, maka rangka akan menjadi terputus.
Citra rangka “CA_2.JPG” terdapat bagian yang terputus seperti
yang ditunjukkan pada Gambar 5.1. Hal ini terjadi karena kondisi
sejumlah piksel citra asli mendekati nilai piksel off seperti yang terlihat
pada Gambar 5.2, sehingga piksel tersebut akan diubah menjadi piksel
off ketika dilakukan proses MakeTwoTone atau binerisasi. Citra tersebut
memang telah putus seperti yang ditunjukkan Gambar 5.3, sehingga
dapat disimpulkan bahwa penyebab putusnya citra hasil penipisan
“CA_2.JPG” dikarenakan oleh proses binerisasi, bukan disebabkan oleh
Gambar 5.2: Citra asli CA_2.JPG
Citra mendekati warna putih Citra mendekati warna putih Citra mendekati warna putih
Citra biner “(GA_2.JPG” pada Gambar 5.3 dan citra rangka
“(GA_2.JPG” pada Gambar 5.4 terdapat daerah D2 dan daerah D3. Daerah D2
merupakan daerah citra yang membentuk pola secara vertikal seperti Gambar 5.5
berikut ini.
0 1 0
0 0 0
0 1 0
0 0 0
0 1 0
0 0 0
0 1 0
Gambar 5.5: Pola vertikal daerah D2
Pola yang mirip dengan “anak tangga” ini terbentuk dikarenakan proses
GrandUniforming. Proses GrandUniforming adalah proses mengubah sebuah
piksel off menjadi on jika terdapat jumlah kombinasi piksel putih<hitam di 8<
tetangga melebihi satu kombinasi. Hal ini ditunjukkan pada Gambar 5.6 berikut
0 1 0
Gambar 5.6: (a) Pola “anak tangga”
(b) Pola setelah mengalami proses FinalThinImage dan sebelum proses
GrandUniforming (c) pola “anak tangga” terbentuk setelah proses
GrandUniforming
Daerah D3 merupakan daerah hasil penipisan yang paling optimal
(menyisakan 1 piksel). Hasil penipisan yang optimal ini terjadi jika terdapat pola
piksel on yang membentuk garis vertikal dengan ketebalan rata<rata 2 piksel. Hal
ini ditunjukkan pada Gambar 5.7 berikut ini.
(a) (b)
Gambar 5.7: (a) Daerah D3 ketebalan rata<rata 2 piksel pada citra asli
(b) Hasil penipisan optimal daerah D3 (menyisakan 1 piksel)
5.2 Rangkuman Perbandingan Algoritma Generic Thinning dengan
)agendraprasad Wang Gupta, Rosenfeld, Zang Suen dan Wang Zhang
Kesimpulan perbandingan algoritma Generic Thinning dari uraian
pada tabel<tabel sebelumnya dengan Nagendraprasad<Wang<Gupta (Hadi,
2010), Rosenfeld (Krisnawati, 2009), Zhang Suen (Marwadi, 2010), dan
Wang<Zhang (Kurnianita, 2009) ditunjukkan pada Tabel 5.7 berikut ini.
Tabel 5.7: Perbandingan Algoritma Generic Thinning dengan
Nagendraprasad<Wang<Gupta, Rosenfeld, Zhang Suen, dan Wang<Zhang
)o. Pembanding Generic
Thinning
)WG Rosenfeld Zhang
Suen
Wang
Zhang
1. Persentase rata<rata
berkurangnya ukuran citra
88,59% 89,83% 89,77% 90,39% 90,13%
2. Persentase jumlah
piksel terhapus
86,38% 84,12% 84,12% 82,08% 82,08%
3. Rata<rata waktu
proses penipisan
4. Persentase rata<rata
piksel memenuhi
one pixel thickness
100% 99,64% 99,88% 90,26% 90,26%
5. Rata<rata jumlah
template A
6. Jumlah rata<rata
piksel not critical
point
7. Memenuhi syarat
keterhubungan
Algoritma Generic Thinning relatif lebih baik dibandingkan dengan
keempat algoritma lainnya jika ditinjau dari persentase jumlah piksel terhapus,
persentase rata<rata piksel memenuhi one pixel thickness, dan jumlah rata<rata
piksel not critical point. Sedangkan jika ditinjau dari persentase rata<rata
berkurangnya ukuran citra, algoritma Zhang Suen relatif lebih baik
dibandingkan algoritma lainnya. Jika ditinjau dari rata<rata waktu proses
penipisan, algoritma Nagendraprasad<Wang<Gupta relatif lebih baik
dibandingkan algoritma lainnya. Algoritma Rosenfeld memiliki hasi yang
relatif lebih baik dibandingkan dengan algoritma lainnya jika ditijau dari
jumlah rata<rata piksel not critical point. Namun, kelima algoritma tersebut
BAB VI
PE UTUP
6.1 Kesimpulan
!
""!# $ %
& & % !
'!( $ )* ! +' ',
+
"-!("$ . %
( !
'!# " (
.
/
!
"
# $
% & "
' " #& () !
*
% $
!
"
+
, "
- ! .
$ $ !
$ "
"
1
A
Generic Thinning Algorithm with Better Performance
! " # $ ## ! %&
1 2 !! . Hilditch’s Algorithm for Skeletonization.
0 #$ % Penipisan Citra Aksara Jawa Menggunakan Algoritma
#agendraprasad$Wang$Gupta = - $ $ , $ ' $ !
- $ ! # > 8 2 $
= # ) .? ! - % Analysis of thinning Algorithms
Using Mathematical Morphology IEEE transaction on Pattern Analysis
and Machine Intelligence @ ! % A / = % +B%.++%
? !$ Pengolahan Citra Digital
!$ " ! ( 6 78 9 "! :" 9%+
. !: 9B5B # ! ." .
# !: 9" ;" :, 9%+ $ ## ! ' (
%% , - $ ! # - !$
? ? Penipisan Citra Aksara Jawa Menggunakan Algoritma
Rosenfeld = - $ $ , $ ' $ ! - $ ! #
> 8 2 $
? # Penipisan Citra Aksara Jawa
Menggunakan Algoritma Zhang Suen = - $ $ , $ ' $ !
- $ ! # > 8 2 $
% Penipisan Citra Aksara Jawa Menggunakan
Algoritma Wang$Zhang = - $ $ , $ ' $ !
- $ ! # > 8 2 $
! Pengolahan Citra Digital dengan Pendekatan Algoritmik
) # , $ ) #
* $ = % & Algorithm for Image Processing and Computer Vision A
* # % & Software Enginering: a Practitioner’s Approach
"< .0 !! , "
" 5 Citra Digital
!$ " ! ( 6 78 9 "! :" 9%+
. !: 9B " . # !: 9" ;" :, 9%+
$ ## ! ' ( %% , - $ ! # - !$
3 $ ' Pengolahan citra digital
!$ " ! ( 6 78 9 "! :" 9%+
. !: 9B5B # ! ." .
# !: 9" ;" :, 9%+ $ ## ! ' (
%% , - $ ! # - !$
D ) E ? * F 0 3 F * % Pengenalan
Citra Dokumen Teks Sastra Jawa Modern ' $ ! - $ ! #
L.2
ALGORITMA GE ERIC THI I G YA G ME GALAMI
PE YESUAIA
Tahap tahap Algoritma Generic Thinning yang terdapat pada 3.2.2
Proses Penipisan yaitu:
1. Algoritma Generic Thinning
2. for i=1 to 3 do
3. {
4. for j=1 to 7 do
5. {
6. lakukan proses
7. }
8. lakukan proses
9. }
10. lakukan proses sebanyak 3 kali
11. cari semua
12. (Menentukan Sudut Kemiringan) ψ
13. melakukan proses lagi
14. putar seluruh citra sebesar ψ
15. lakukan proses
L.3
Tahap tahap di atas dapat dituliskan dengan modul sebagai berikut:
Tahap tahap ini menghasilkan citra rangka yang kurang optimal seperti
yang ditunjukkan pada gambar berikut ini:
(a) (b)
Gambar: (a) Citra asli !"#
(b) Citra rangka sesuai 3.2.2 Proses Penipisan ! "
" #
"
$
% & ' (
) " # )
L.4
Oleh karena itu, maka dilakukan proses penyesuaian tahapan algoritma Generic
Thinning.
Penyesuaian dimulai dari menghilangkan proses ,
, dan putar seluruh citra sebesar – ψ. Hal ini dilakukan
karena ketiga proses tersebut digunakan untuk memperbaiki citra masukkan yang
mengalami kemiringan, sedangkan semua citra asli yang digunakan untuk
masukkan telah tegak (tidak mengalami kemiringan). Maka ketiga proses ini tidak
dilakukan.
Rangkaian tahapan algoritma Generic Thinning setelah menghilangkan
ketiga proses tersebut, menjadi seperti berikut ini:
! " * #
" #
"
(
) " # )
L.5
Citra rangka yang dihasilkan oleh modul di atas masih belum optimal
seperti yang ditunjukkan pada gambar berikut ini.
Gambar: (a) Citra rangka !"# setelah menghapus proses ,
, dan proses putar seluruh citra sebesar – ψ.
Langkah penyesuaian tahapan algoritma Generic Thinning yang
selanjutnya adalah menghilangkan proses karena merupakan proses
penambahan piksel . Proses penambahan piksel akan menghasilkan citra
yang lebih tebal.
Rangkaian tahapan algoritma Generic Thinning setelah menghilangkan
proses , menjadi seperti berikut ini:
! " * #
" #
"
(
) " # )
L.6
Penyesuaian tahapan algoritma Generic Thinning ini menghasilkan citra
rangka seperti yang ditunjukkan pada gambar berikut ini:
Gambar: Citra rangka !"# setelah menghapus proses
Citra rangka yang ditunjukkan pada gambar di atas cukup optimal karena
jika diamati secara langsung, citra rangka sudah cukup tipis dan relatif mirip
dengan citra aslinya.
Tahapan penyesuaian ini sudah dapat menghasilkan citra rangka aksara
Jawa yang relatif baik, namun perulangan ( $ ) pada modul tersebut belum
tentu cukup atau mungkin terlalu banyak jika citra masukkan berbeda (sangat
tebal atau sangat tipis). Maka diperlukan penyesuaian jumlah $ .
Jumlah $ pada proses penipisan pada umumnya akan terus
dilakukan hingga citra yang dihasilkan tidak berbeda dengan citra yang dihasilkan
pada $ sebelumnya. Modul yang mengalami penyesuaian jumlah $
L.7
Masing masing $ pada modul penyesuaian ini terdapat varibel
bantu (variabel % & dan '). Variabel bantu ini masing masing akan bernilai 1
ketika citra yang dihasilkan sama dengan citra yang dihasilkan pada $
sebelumnya. Jika kondisi ini terpenuhi maka proses $ akan dihentikan.
ALGORITMA GE ERIC THI I G
a. Modul Algoritma Generic Thinning
!" # $ %%
&
!' ( # $ %% )
" )
*
" " *
* *
" " *
* *
" " *
* *
" " *
* *
" " *
* *
" " *
*
" " *
*
" " *
' "
(
$ %
!" # $ %%
+
' (
$ " , %
$, $ " , % )
)
*
*
-$,
$, $ " , % )
)
* - *
% . %
!" # $ %%
+
' (
PE IPISA CITRA AKSARA ALFABET