• Tidak ada hasil yang ditemukan

PENIPISAN CITRA AKSARA JAWA MENGGUNAKAN ALGORITMA NAGENDRAPRASAD-WANG-GUPTA

N/A
N/A
Protected

Academic year: 2019

Membagikan "PENIPISAN CITRA AKSARA JAWA MENGGUNAKAN ALGORITMA NAGENDRAPRASAD-WANG-GUPTA"

Copied!
188
0
0

Teks penuh

(1)

Skripsi

Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika

Oleh:

SASONGKO HADI

065314062

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(2)

A Thesis

Presented as a Partial Fulfillment of the Requirements To Obtain The Sarjana Teknik Degree

In Informatics Engineering

   

      By :

Sasongko Hadi 065314062

INFORMATICS ENGINEERING STUDY PROGRAM

INFORMATICS ENGINEERING DEPARTMENT

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

(3)
(4)
(5)

v

mendapatkan sebuah rangka yang memenuhi syarat one-pixel thickness dan connectivity. Tujuan penelitian ini adalah untuk mengetahui apakah algoritma Nagendraprasad-Wang-Gupta dapat menghasilkan kerangka yang baik jika diaplikasikan kepada sejumlah citra aksara jawa. Berdasarkan dokumentasi Nagendraprasad-Wang-Gupta, algoritma ini telah diketahui dapat digunakan untuk penipisan citra aksara latin dan memiliki kecepatan yang relatif lebih baik dari algoritma Wang-Zang.

Penelitian dilakukan dengan menganalisa citra rangka yang dihasilkan oleh algoritma Nagendraprasad-Wang-Gupta menurut beberapa parameter yaitu connectivity, one-pixel thickness, kecepatan proses penipisan, persentase jumlah piksel yang dihapus, ukuran file input dan output penipisan dan kompleksitas waktu algoritma. Selain itu sebagai tambahan disebarkan kuisioner kepada 50 orang responden untuk melihat kemiripan citra hasil penipisan dengan citra asli, dimana algoritma Rosenfeld digunakan sebagai pembanding karena algoritma ini telah diuji oleh Kristi Krisnawati dan menghasilkan rangka yang relatif baik ketika diaplikasikan pada citra aksara jawa. Penipisan dan pengujian secara otomatis dilakukan dengan membangun aplikasi berbasis Matlab.

(6)

vi

recognition. This thesis proposed Nagendraprasad-Wang-Gupta thinning algorithm to obtain skeleton of a digital image because this algorithm has proven generating a thin and connected skeleton. The aim of this research was finding whether Nagendraprasad-Wang-Gupta thinning algorithm can produces skeleton if using Javanese character image. Based on the documentation of Nagendraprasad-Wang-Gupta, this algorithm had been known that it was able to use in reducing thickness of character images. Besides, this algorithm has rapidity better than Wang-Zang algorithm.

This research was done by analyzing skeleton image which was produced by Nagendraprasad-Wang-Gupta algorithm. It was according to several parameters; connectivity, one-pixel thickness, rapidity of thinning process, and percentage of pixel which was deleted, file input dimension and output of the thinning, and algorithm time complexity. Besides, questionnaires as the instrument of this research were also distributed to 50 respondents to observe the resemblance of the result and the original images, which Rosenfeld algorithm was used to compare, in as much as this algorithm was tested by Kristi Krisnawati and produced skeletons which good quality when it applied to Javanese character images. Thinning and testing were done by building the application which had a Matlab-based application.

(7)

vii   

MOTTO

“Kalau Kamu Mau Pasti Mampu!”

(Doraemon: Petualangan Negeri Robot)

“Doing What You Can Doing!”

(Center Stage: Turn It Up)

“Believe!”

(8)
(9)
(10)

x   

Puji syukur kepada Allah SWT yang telah memberikan kesempatan, waktu, tenaga dan pikiran serta rasa, sehingga penulis dapat menyelesaikan tugas akhir yang berjudul “Penipisan Citra Aksara Jawa Menggunakan Algoritma Negendraprasad-Wang-Gupta” ini dengan baik.

Dalam pengerjaan tugas akhir ini, penulis tidak lepas dari bantuan sejumlah pihak, oleh karena itu penulis ingin mengucapkan terimakasih kepada:

1. Bapak dan Ibu tercinta, atas diberikannya kesempatan dan dukungan. 2. Anastasia Rita Widiarti, S.Si., M.Kom., selaku dosen pembimbing

tugas akhir, atas kesabarannya dalam membimbing penulis, memberikan waktunya, dukungan, serta saran yang sangat membantu penulis.

3. Ermilinda Y. Pati, Bayu Sanjaya dan Tulus Wardoyo, atas bantuan selama mengalami hambatan.

4. Responden Kuisioner, atas kerjasamannya dalam mengerjakan kuisioner pengamatan visual.

(11)

xi   

bermanfaat bagi kemajuan dan perkembangan ilmu pengetahuan serta berbagai pengguna pada umumnya.

Yogyakarta, 24 Agustus 2010

(12)

xii 

 

HALAMAN PERSETUJUAN PEMBIMBING……….. iii

HALAMAN PENGESAHAN……… iv

ABSTRAK……… v

ABSTRACT………. vi

MOTTO……… vii

PERNYATAAN KEASLIAN KARYA………. viii

PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS……….. ix

KATA PENGANTAR………. x

1.5 Metodologi Penelitian………... 3

1.6 Sistematika Penulisan………... 5

BAB II : LANDASAN TEORI……….. 7

2.1 Citra………... 7

2.1.1 Pengertian Citra……….. 7

2.1.2 Format Citra……… 8

2.2 Pemrosesan Citra………... 11

2.3 Penipisan/Thinning………... 13

(13)

xiii 

 

2.4.1.3 Analisa menurut Jang dan Chin (1990). 23

2.4.2 Kompleksitas Waktu……….. 29

2.4.2.1 Kompleksitas Waktu Asimtotik…… 29

2.5 Algoritma Rosenfeld………. 36

2.6 Aksara Jawa……… 37

BAB III : ANALISA DAN PERANCANGAN SISTEM………. 38

3.1 Gambaran Umum Sistem………. 38

3.2 Analisa Kebutuhan Proses……… 39

3.2.1 Proses Binerisasi………. 39

3.2.2 Proses Penipisan……….. 40

3.3 Perancangan Pengujian……… 41

3.5.1 Pengamatan Ukuran Citra……….. 41

3.5.2 Sum Template A dan Sum Not Critical Point…. 42

3.5.3 One-pixel Thickness………. 44

3.5.4 Sum of Pixel Object………. 46

3.5.5 Sum of Remove Pixel………... 47

3.5.6 Running Time………... 48

3.5.7 Connectivity………. 49

3.5.8 Waktu Asimtotik Algoritma……….. 50

3.5.9 Pengamatan Visual………. 50

3.4 Perancangan Tampilan Antarmuka………. 50

(14)

xiv 

 

4.1 Implementasi Algoritma Nagendraprasad-Wang-Gupta…. 57

4.2 Implementasi Binerisasi……… 59

4.3 Implementasi Pengujian……… 59

4.3.1 Implementasi Pengamatan Ukuran Citra…….. 60

4.3.2 Implementasi Sum Template A dan Sum Not Critical Point………... 60

4.3.3 Implementasi One-pixel thickness……….. 61

4.3.4 Implementasi Sum of Pixel Object………. 62

4.3.5 Implementasi Sum of Remove Pixel... 62

4.3.6 Implementasi Running Time……… 63

4.3.7 Implementasi Connectivity………. 63

4.3.8 Implementasi Waktu Asimtotik Algoritma….. 64

4.3.9 Implementasi Pengamatan Visual………. 65

4.4 Implementasi Interface………. 65

4.1.1 Halaman Utama……….. 66

4.1.2 Halaman Input Citra………... 67

4.1.3 Halaman Simpan Citra……… 68

4.1.4 Halaman About………... 69

4.1.5 Halaman Help………. 70

4.5 Implementasi Error-Handling……….. 71

4.2.1 Error-Handling Thining………. 71

4.2.2 Error-Handling Clear……….. 72

4.2.3 Error-Handling Save……… 73

4.2.4 Error-Handling Exit……… 73

BAB V: HASIL DAN PEMBAHASAN……… 76

5.1. Analisa Citra Hasil Penipisan……… 76

(15)

xv 

 

5.1.5. Pengujian Connectivity……… 96

5.2. Pengamatan Visual………. 108

5.3. Kompleksitas Waktu……….. 112

5.4. Rangkuman Perbandingan Algoritma Nagendraprasad-Wang-Gupta dengan Algoritma Rosenfeld. 117 BAB VI : PENUTUP……….. 118

6.1 Kesimpulan……… 118

6.2 Saran……….. 120

DAFTAR PUSTAKA……….. 121

(16)

xiv 

 

Gambar 2.2: Komposisi Citra Warna... 9

Gambar 2.3: Contoh Citra Grayscale... 10

Gambar 2.4: Contoh Citra Warna, Citra Grayscale dan Citra Biner... 10

Gambar 2.5: Hasil sebelum dan sesudah thinning... 14

Gambar 2.6: Gambar 8-tetangga... 15   

Gambar 2.7: Nilai c(p)……….. 16

Gambar 2.8: Citra Angka 3………... 17

Gambar 2.9: Algoritma Nagendraprasad-Wang-Gupta ……… 19

Gambar 2.10: B(p) bernilai 1 jika dilakukan penghapusan……….. 20

Gambar 2.11: B(p) bernilai 7 jika dilakukan penghapusan……….. 21

Gambar 2.18: (a) citra T. (b) 4-connected- component juga 8-connected- component dari S dan SC adalah

Gambar 2.20: (a) citra T, yang memuat anggota S (b) Bacground dari S. (c) Holes dari S……… 29

Gambar 2.21: Flowchart algoritma Rosenfeld (Krinawati, 2009)……….. 35

(17)

xv 

Gambar 4.1: Gambar citra asli, citra rangka sebelum ada D dan E dan citra rangka sesudah ada D dan E (Carasco,-)………. 58

Gambar 4.7: Error-Handling Thinning………. 72

Gambar 4.8: Error-Handling Thinning 2……….. 72

Gambar 4.9: Error-Handling Thinning 3……….. 73

(18)

xvi 

 

Gambar 5.4: Gambar Citra Ca_2 sesudah Binerisasi…………..………… 101

Gambar 5.5: Gambar Citra Ca_2 Asli/ Sebelum Binerisasi ……… 103

Gambar 5.6: Gambar Citra Da_2.JPG Asli/ Sebelum Binerisasi………… 105

Gambar 5.7: Gambar Citra Da_2.JPG Sesudah Binerisasi……….. 106

(19)

xvii 

 

DAFTAR TABEL

Tabel 2.1: Pengelompokan Algoritma Berdasarkan Notasi O-Besar…… 34

Tabel 5.1: Data Citra Input dan Output ……… 76

Tabel 5.2: Hasil Pengamatan Ukuran Citra ……….. 86

Tabel 5.3: Hasil Pengamatan Jumlah Piksel Terhapus………... 88

Tabel 5.4: Hasil Pengamatan Waktu Komputasi ………... 91

Tabel 5.5: Hasil Pengujian One-Pixel Thickness ………. 93

Tabel 5.6: Hasil Pengamatan Visual ……….. .. 108

Tabel 5.7: Persentase Hasil Pengamatan Visual ………….……….. 110

(20)

1

1.1 Latar Belakang

Bangsa Indonesia telah mengenal tulisan sejak waktu yang lampau. Salah satu tulisan lampau itu adalah tulisan aksara Jawa, seperti umumnya tulisan kuno, aksara jawa banyak ditulis pada buku, kertas dan lontar. Sebuah media yang memiliki kemungkinan untuk mengalami kerusakan, baik oleh rayap, sobek dan basah serta termakan oleh zaman. Selain itu, huruf-huruf kuno seiring perkembangan zaman menjadi sebuah huruf asing yang sudah tidak lagi dikenali oleh orang-orang sehingga banyak naskah-naskah kuno jawa tidak dapat dipahami.

Proses digitalisasi merupakan salah satu langkah penting yang dapat digunakan untuk mempermudah mengungkap isi dari naskah-naskah kuno dan melindungi naskah-naskah kuno jawa dari kemungkinan kerusakan. Salah satu bagian dari proses digitalisasi naskah-naskah kuno jawa adalah dengan penipisan. Proses penipisan adalah salah satu tahap untuk mendapatkan rangka/skeleton dari aksara jawa. Rangka ini memiliki fungsi sebagai informasi esensial dari aksara jawa agar dapat menjadi acuan untuk proses pengenalan karakter aksara jawa.

(21)

menggunakan algoritma Nagendraprasad-Wang-Gupta. Algoritma ini salah satu algoritma yang dapat digunakan untuk melakukan proses penipisan yang memiliki keunggulan dalam kecepatan yang lebih baik dibandingkan algoritma Wang-Zang ketika diuji cobakan pada huruf latin (Nagendraprasad, 1993). Sehingga algoritma Nagendraprasad-Wang-Gupta patut untuk di uji coba terhadap data citra aksara jawa utuk mendapatkan hasil skeleton yang lebih baik. Dalam hal ini penulis melakukan pengujian connectivity, ketebalan (One-pixel thickness), pengamatan ukuran citra, pengamatan jumlah piksel terhapus, pengamatan waktu komputasi, kompleksitas waktu dan pengamatan visual dengan menggunakan pembanding algoritma Rosenfeld yang telah terbukti dengan baik untuk melakukan penipisan citra aksara jawa (Krisnawati, 2009).

1.2 Rumusan Masalah

Dari latar belakang di atas, masalah dapat dirumuskan sebagai berikut: 1. Bagaimana cara kerja algoritma Nagendraprasad-Wang-Gupta?

2. Bagaimana mengimplementasikan algoritma Nagendraprasad-Wang-Gupta pada penipisan citra aksara jawa dengan matlab?

3. Apakah algoritma Nagendraprasad-Wang-Gupta dapat menghasilkan kerangka citra aksara jawa yang memenuhi kriteria operasi penipisan?

1.3 Tujuan

(22)

data citra berupa aksara jawa dengan membuat aplikasi Matlab, serta untuk mengetahui apakah algoritma Nagendraprasad-Wang-Gupta merupakan algoritma yang efektif untuk melakukan proses penipisan citra aksara jawa, sesuai dengan syarat-syarat penipisan yaitu connectivity, ketebalan (One-pixel thickness), dengan tambahan pengamatan ukuran citra, pengamatan

jumlah piksel terhapus, pengamatan waktu komputasi, kompleksitas waktu dan pengamatan visual dengan menggunakan pembanding algoritma Rosenfeld yang telah terbukti dengan baik untuk melakukan penipisan citra aksara jawa (Krisnawati, 2009).

1.4 Batasan Masalah

Dalam membuat program implementasi algoritma Nagendraprasad-Wang-Gupta pada penipisan citra aksara jawa ini ditentukan beberapa batasan masalah sebagai berikut:

1. Citra yang diproses adalah citra biner atau citra skala keabuan (grayscale) dengan ekstensi *.jpg.

2. Program dibuat dengan matlab.

3. Proses yang dilakukan program adalah proses penipisan sebagai proses tambahan adalah proses binerisasi. Proses ini dilakukan sebagai preprocessing dari citra masukan yang bukan biner sehingga dapat diproses oleh program.

4. Pengujian hasil penipisan yang dilakukan adalah pengujian connectivity, one-pixel thickness, pengamatan ukuran citra hasil

(23)

waktu komputasi/ running time, kompleksitas waktu dan pengamatan visual dengan pembanding algoritma Rosenfeld.

1.5 Metodologi Penelitian

Metodologi penelitian dilakukan sebagai berikut:

1. Studi pustaka yang bertujuan untuk mempelajari teori citra dan proses pengolahan citra digital untuk penipisan menggunakan algoritma Nagendraprasad-Wang-Gupta.

2. Pengembangaan program aplikasi menggunakan model Waterfall (Pressman, 1997).

Gambar 1.1: Model Waterfall

Tahapan:

- System Enginering

System Enginering adalah tahap untuk mengumpulkan dan

menentukan semua kebutuhan elemen sistem. - Analisis

Analisis adalah tahap untuk menentukan analisis terhadap permasalahan yang dihadapi dan menentukan kebutuhan software.

(24)

Kebutuhan tersebut meliputi performance dan interfacing. - Desain

Desain adalah proses menterjemahkan kebutuhan sistem ke dalam sebuah gambaran program.

- Implementasi

Implementasi merupakan proses penterjemahan desain ke dalam bentuk yang dapat dieksekusi.

- Pengujian

Pengujian memastikan apakah semua fungsi-fungsi program berjalan dengan baik dan menghasilkan output yang sesuai dengan yang dibutuhkan.

3. Menganalisa hasil yang diperoleh dari penipisan dengan syarat-syarat hasil penipisan citra yang sudah ditentukan sebelumnya dan mengambil kesimpulan dari percobaan yang telah dilakukan.

1.6 Sistematika Penulisan

Berikut ini akan dijabarkan sistematika penulisan sebagai berikut:

BAB I: PENDAHULUAN

Bab ini berisi tentang latar belakang masalah, rumusan masalah, tujuan penelitian, batasan masalah, metodologi penelitian dan sistematika penulisan.

BAB II : LANDASAN TEORI

(25)

BAB III : ANALISA DAN PERANCANGAN SISTEM

Bab ini berisi rancangan aplikasi yang akan dibuat. Hal-hal yang akan dirancang seperti algoritma program, diagram alir dari algoritma program dan desain user interface aplikasi yang akan dibuat.

BAB IV : IMPLEMENTASI

Berisi tentang implementasi hasil dari analisis dan perancangan sistem dalam bentuk program (proses, interface dan cara kerja program).

BAB V : HASIL DAN PEMBAHASAN

Bab ini menyajikan hasil penelitian berupa hasil percobaan dan kuisioner, dan analisa terhadap hasil penelitian tersebut yang ditinjau dari syarat-syarat penipisan citra.

BAB VI : PENUTUP

(26)

7

Dalam bab ini dituliskan landasan teori yang menjadi acuan pengerjaan

skripsi:

2.1 Citra

2.1.1 Pengertian Citra

Citra adalah gambar pada bilangan dwi matra (dua dimensi)

(Munir, 1994). Citra terbagi menjadi dua yaitu citra kontinyu dan citra

diskrit, agar semua citra dapat diolah dengan komputer digital, maka

suatu citra harus direpresentasikan secara numerik dengan nilai-nilai

diskrit. Representasi citra dari fungsi malar (kontinyu) menjadi

nilai-nilai diskrit disebut dengan digitalisasi citra dan citra yang dihasilkan

disebut dengan citra digital. Pada umumnya citra digital terbentuk

empat persegi panjang dengan dimensi ukuran dinyatakan sebagai

tinggi x lebar (atau lebar x panjang) (Munir, 2004) seperti yang

ditunjukkan pada gambar Gambar 2.1.

Gambar 2.1: Bentuk citra digital Tinggi

Lebar

Lebar

(27)

2.1.2 Format Citra Digital

Menurut intensitas warna format citra digital dapat dikategorikan

seperti berikut:

1. Citra RGB (True Color)

Citra RGB merupakan citra yang memiliki 3 komponen

channel yaitu Red, Green dan Blue. Setiap channel memiliki nilai

intensitas yang berbeda, tergantung warna yang direpresentasikan.

Untuk monitor komputer, nilai rentang 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

komponen R(ed), G(reen), B(lue). Jadi, sebuah jenis warna dapat dituliskan sebagai berikut: warna = RGB (30, 75, 255). Putih =

(28)

Gambar 2.2: Komposisi Citra Warna

(Sumber: www.ittelkom.ac.id)

2. Citra Grayscale

Citra grayscale merupakan citra menggunakan fungsi

intensitas untuk menentukan warna. Fungsi intensitas yang

digunakan adalah fungsi intensitas warna keabuan (hitam-putih).

Fungsi intensitas warna yang digunakan pada citra grayscale

memiliki kedalaman piksel yang berbeda-beda. Namun, pada

kebanyakan aplikasi, citra grayscale dikuantisasi pada level 256

dan membutuhkan 1 byte (8 bit) untuk merepresentasikan setiap

(29)

Gambar 2.3: Contoh Citra Grayscale

(Sumber: www.ittelkom.ac.id)

3. Citra Biner

Citra biner atau citra monokrom merupakan citra yang

memiliki 2 kemungkinan warna pada setiap pikselnya. Citra biner

hanya dikuantisasikan pada 2 level yaitu 0 dan 1, sehingga setiap

piksel pada citra cukup direpresentasikan dengan 1 bit (0 dan 1).

Gambar 2.4: Contoh Citra Warna, Citra Grayscale dan Citra Biner

(Sumber: www.ittelkom.ac.id)

Jika =0 dan = 1, maka operasi ini akan

mentransformasikan suatu citra menjadi citra biner. Misal suatu

(30)

citra memiliki gray level 256, dipetakan menjadi citra biner, maka

fungsi trasformasinya adalah sebagai berikut:

piksel-pikselyang nilai intensitasnya di bawah 128 diubah menjadi

hitam (nilai intensitas = 0), sedangkan piksel-piksel yang nilai

intensitasnya di atas 128 diubah menjadi putih (nilai intensitas =1).

2.2 Pemrosesan Citra

Analisa dokumen citra memiliki tujuan untuk mengenali komponen

tulisan dan gambar yang terkandung dalam citra serta mengambil informasi

yang ada dalam citra. Analisa citra dokumen mempunyai 2 komponen penting

yaitu tekstual dan pemrosesan grafis.

Pemrosesan citra merupakan salah satu tahap dalam analisa dokumen

citra yang berfungsi untuk mempersiapkan citra untuk dianalisa. Pemrosesan

citra sendiri mempunyai tujuan agar citra dapat lebih mudah untuk diproses.

Dalam pemrosesan citra, beberapa tahap yang akan dilakukan dapat

dijabarkan sebagai berikut:

1. Grayscaling

Citra grayscale merupakan citra dimana representasi setiap piksel

diwakili dengan hanya satu jenis atau satu nilai warna dalam skala

keabuan. Untuk mendapatkan nilai intensitas keabuan, maka dapat

(31)

dihitung dengan menjumlahkan 30% dari nilai channel red pada citra

RGB, 59% channel green, dan 11% channel blue. Hasil penjumlahan dari

setiap elemen tersebut yang kemudian direpresentasikan dalam setiap

channel red, green dan blue dengan intensitas yang sama.

2. Tresholding

Tresholding yang disebut juga dengan gray-level segmentation

(pemisahan warna dalam skala keabuan) merupakan proses pengubahan

dari sebuah citra dengan skala keabuan menjadi citra biner atau citra

dengan 2 intensitas warna yaitu hitam dan putih.

Salah satu algoritma yang digunakan untuk tresholding adalah

algoritma Otsu. Tujuan dari metode Otsu adalah membagi histogram citra

gray level ke dalam dua daerah yang berbeda secara otomatis tanpa

membutuhkan bantuan user untuk memasukkan nilai ambang. Pendekatan

yang dilakukan oleh metode Otsu adalah dengan melakukan analisis

diskriminan yaitu menentukan suatu variabel yang dapat membedakan

antara dua atau lebih kelompok yang muncul secara alami. Analisis

Diskriminan akan memaksimumkan variable tersebut agar dapat membagi

piksel citra on (foreground) dan latarbelakang (background).

Formulasi dari metode Otsu adalah sebagai berikut. Nilai Ambang

yang akan dicari dari suatu citra gray level dinyatakan dengan k. Nilai k

berkisar antara 1 sampai dengan L, dengan nilai L = 255. Probabilitas

(32)

dengan :

ni menyatakan jumlah piksel pada level ke i

N menyatakan total jumlah piksel pada citra.

Nilai Zeroth Cumulative Moment, First Cumulative Moment, dan total

nilai mean berturut-turut dapat dinyatakan dengan rumus berikut:

Nilai ambang k dapat ditentukan dengan memaksimumkan

persamaan :

2.3 Penipisan

Secara umum penipisan dapat dinyatakan sebagai proses pereduksian

wilayah dari tepi objek berupa citra hingga yang tersisa merupakan garis

……….. (2.3)

……….. (2.4)

(33)

tengahnya saja atau dapat disebut juga sebagai rangka atau skeleton.

Penipisan memiliki definisi sebagai proses pengurangan pola (pattern) yang

secara umum diperpanjang (elongated) ke representasi yang menyerupai garis

(Lam et al.,1992). Sedangkan menurut Rinaldi Munir, penipisan adalah

operasi pemrosesan citra biner dimana piksel citra on direduksi menjadi

rangka yang menghampiri garis sumbu piksel citra (Munir, 2004). Skeleton

atau kerangka menurut J.R. Perker (1997), diasumsikan sebagai representasi

bentuk dari suatu piksel citra on dalam jumlah piksel on yang relatife kecil,

yang dimana kesemuanya merupakan bagian yang struktural dan oleh karena

itu representasi itu dibutuhkan. Sebuah kerangka diharapkan dapat

memberikan representasi bentuk dari piksel citra on dalam jumlah piksel on

yang lebih kecil.

Dalam konsep yang telah dikembangkan oleh banyak orang, J.R. Parker

(1997), mengatakan bahwa 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

rangka/skeleton hasil dari proses penipisan ditunjukkan pada Gambar 2.5.

Gambar 2.5: Hasil sebelum dan sesudah penipisan

(34)

2.4 Algoritma Nagendraprasad-Wang-Gupta

Algoritma Nagendraprasad-Wang-Gupta merupakan algoritma penipisan

yang dikembangkan dari algoritma Wang-Zhang (1989) yang memiliki fungsi

untuk membentuk rangka yang memiliki konektivitas dari suatu citra yang

dibentuk kerangkanya (Carasco, -). Algoritma ini merupakan algoritma

penipisan paralel, dimana 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 setiap piksel

terhubung dengan 8 titik tetangga seperti pada gambar Gambar 2.6.

Gambar 2.6: Gambar 8-tetangga

Dalam melakukan pemrosesan, citra akan disimpan dalam matrik

Q dan mengikuti fungsi yang diberikan melalui algoritma dengan langkah

sebagai berikut:

1. awal: fungsi bahwa:

a. menghitung jumlah contour loop m;

b. menghitung contour point pertama FIRST[k], dan titik sebelumnya,

PREV[ k], untuk setiap contour loop L[k], (k = 1, 2,..., m); dan

c. set nilai awal dari variabel loop decision untuk h [k] =1. h[k]= 1 berarti

(35)

2. loop-end-test (k): fungsi untuk uji coba apakah k contour loop diakhiri.

3. Countour (p): sebuah fungsi untuk melihat dimana sebuah titik ada pada

garis atau tepi citra atau tidak.

4. Successor (z,p): fungsi yang menghitung titik penerus dari titik

sebelumnya (x) sesuai dengan urutan searah jarum jam sekitar tetangga p

untuk memenuhi titik gelap pertama.

5. Deletion (Q,p): sebuah fungsi yang digunakan untuk menghapus sebuah

titik p di dalam Q (merubah piksel 1 menjadi 0) jika memenuhi 2 kondisi:

a. 1<B(p)<7; dan

b. (A(p) = 1 or C(p) = 1) and (p[2] +p[4])*p[0]*p[6] =0 atau (A(p) = i or

C(p) = 1) and ( p[0] + p[6])*p[2]* P[4] =0),

Dimana B(p) adalah jumlah tetangga dari p yang tidak bernilai 0. Untuk

A(p) adalah total piksel disekitar p dari off ke on transisi dimana tetangga

diambil dari perputaran disekitar p, dengan nilai c(p) sebagai berikut:

Gambar 2.7: Nilai c(p)

Dalam algoritma NWG dikenal pula contour, yang disebut dengan

contour adalah piksel-piksel yang berada di tepi suatu citra atau memiliki

ketetanggaan putih seperti yang ditunjukan pada Gambar 2.8 berupa citra

(36)

contour adalah piksel-piksel a hingga g. Piksel-piksel tersebut adalah piksel

yang akan dilakukan penghapusan terlebih dahulu, jika piksel-piksel tersebut

telah berhasil dihapus barulah piksel “1” dilakukan penghapusan, tentu dalam

hal ini yang memenuhi nilai B(p), A(p) atau C(p).

Gambar 2.8: Citra angka 3

Algoritma Nagendraprasad-Wang-Gupta diberikan pada Gambar

2.9.

Definisi dan Notasi Dasar yang digunakan pada algoritma

Nagendraprasad-Wang-Gupta adalah sebagai berikut:

Definisi 1: tetangga piksel, p: [i, j], diidentifikasikan oleh delapan arah, [-i 1,

j], [i-1,] tl, [i, j +1], [i-tl,] tl, [i-tl, j], [i-tl, 11, [i, 11, [i-1,

j-11, k = 0,. . . , 8, p [8] = p [O], seperti ditunjukkan pada Gambar

2.6.

Definisi 2: countour point dari beberapa pola digital piksel didefinisikan

sebagai tetangga yang setidaknya satu tetangga putih seperti pada

Gambar 2.8 berupa piksel a hingga g.

(37)

loop c; adalah tetangga ci+1 untuk 1 ≤ i < n dan cn adalah tetangga

c1. Kami menggunakan L (1),..., L (m) untuk label contour loop

yang berbeda dari pola, di mana m adalah jumlah contour loop,

pada Gambar 2.8 nilai m=1.

Definisi 4: Ketika sebuah countour point U diproses, countour point untuk

diproses, v, disebut sebagai countour point penerus U dan U

disebut countour point sebelumnya v.

Definisi 5: Misalkan p menjadi countour point yang sedang diproses. Biarkan

x menjadi countour point sebelumnya p, dan z menjadi penerus

countour point. Maka s akan disebut fungsi pengganti jika z = s

(x, p) adalah fungsi dari x sesuai dengan urutan searah jarum jam

(38)

Gambar 2.9: Algoritma Nagendraprasad-Wang-Gupta

(Sumber: Algoritma For Thinning and Rethickening Binary Digital

Patern.pdf)

Keterangan Gambar 2.9:

1. g adalah sebuah variable untuk menentukan case suatu piksel yang akan

dilakukan penipisan. Nilai g akan berubah-ubah dari 0 ke 1 dan 1 ke 0.

Untuk pertamakali nilai g akan menjadi 0, atau dalam hal ini penipisan

pada iterasi pertama akan menggunakan penipisan yang ada pada case 0,

jika iterasi pertama sudah dilakukan maka nilai g akan menjadi 1, yang

artinya penipisan berikutnya atau iterasi kedua akan dilakukan pada

(39)

ditipiskan sesudah iterasi kedua selesai dan iterasi ketiga dijalankan maka

kondisi penghapusan akan kembali pada case 0.

2. h adalah variable penentu sampai kapan pemeriksaan tiap-tiap piksel

dilakukan, dalam hal ini pemeriksaan akan dihentikan jika sudah tidak ada

satupun piksel yang dapat dihapus atau nilai h=0, selama ada piksel yang

dihapus nilai h adalah 1.

3. Q dan Q1 adalah matrik citra, dengan Q adalah citra asli dan Q1 adalah

citra yang ditipiskan atau yang mengalami penghapusan piksel.

4. B(p) adalah jumlah tetangga dari piksel p yang bernilai on, nilai B(p)

harus lebih besar dari satu dan kurang dari 7. Hal ini dikarenakan jika

bernilai 1 seperti pada Gambar 2.10 jika dilakukan penghapusan maka

akan membuat piksel menjadi tidak bersisa yang akan mengakibatkan

bentuk kerangka kurang terjaga atau juga jika B(p) bernilai 0 maka akan

membuat semua piksel akan terhapus. Demikian pula jika B(p) bernilai 7

akan memberikan hasil kerangka yang kurang baik seperti pada Gambar

2.11 yaitu citra akan menjadi berlubang, hal ini juga akan terjadi jika nilai

B(p) adalah 8.

(40)

5. A(p) adalah variabel yang digunakan untuk menemukan jumlah transisi

piksel on ke off dari tetangga p. Dalam algoritma nilai A(p) harus

bernilai 1 agar piksel p dapat dilakukan penghapusan. Hal ini

dikarenakan jika nilai A(p) lebih dari 1 misal berjumlah 4 seperti pada

Gambar 2.12 dapat memberikan hasil kerangka yang kurang baik, karena

ada kemungkinan p adalah critical point seperti pada gambar Gambar

2.12.

6. c(p) adalah nilai suatu piksel agar dapat dihapus selain nilai A(p), jika

nilai A(p) tidak terpenuhi. Untuk melakukan penghapusan piksel, nilai

c(p) harus 1. Untuk nilai c(p) bernilai 1 dpat dilihat pada Gambar 2.7.

Gambar 2.11: B(p) bernilai 7 jika dilakukan penghapusan p

Gambar 2.12: A(p) bernilai 4 jika dilakukan penghapusan,

(41)

Hal ini dikarenakan saat c(p) bernilai 1, p adalah critical point sehingga

perlu dilakukan penghapusan seperti pada Gambar 2.13.

2.4.1 Analisa Algoritma Penipisan

Suatu algoritma penipisan dapat dinyatakan baik jika memenuhi

beberapa syarat seperti One-pixel thickness dan connectivity oleh karena itu

diperlukan suatu analisa untuk membuktikan, hal ini dilakukan untuk

menunjukan 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

Nagendraprasad-Wang-Gupta yang akan digunakan sebagai algoritma

penipisan citra aksara jawa, perlu dilakukan analisis sebagai berikut: p

Gambar 2.13: c(p) bernilai 1

(42)

2.4.1.1. Connectivity: Suatu kerangka hasil penipisan (I) yang memiliki

Connectivity dengan citra asli (S) harus memiliki homotopy yang

sama (dua himpunan berhingga dikatakan homotopy jika terdapat

koresponden satu-satu antara connected component dari S dan I ).

Maka dari itu I adalah 8-connected dan komplemennya mengandung

4-connected component.

2.4.1.2. One-Piksel Thickness: Sebuah kerangka yang dibentuk dari proses

penipisan harus memiliki kriteria one-pixel thickness, atau memiliki

ketebalan 1 piksel. Syarat sebuah kerangka dapat disebut one-pixel

thickness adalah sebagai berikut:

1. Bila tidak memuat templates A= { A1, A2, A3 , A4 } yang

berukuran 2x2 dengan struktur ditunjukkan pada Gambar 2.10.

A1 A2 A3 A4

Gambar 2.14: Struktur template A

Susunan Gambar 2.14 adalah susunan pola yang ditemukan

dalam komponen-komponen terhubung yang bukan merupakan

rangka.

2. Apabila satu atau lebih templates A (A1, A2, A3 , A4 ) terdapat

(43)

tersebut bukan rangka dengan ketebalan 1 piksel atau rangka

merupakan critical point atau jika piksel-piksel tersebut dihapus

akan menyebabkan piksel-piksel yang lain menjadi tidak

terhubung atau menghasilkan lubang. Suatu kerangka dikatakan

critical point bila sekurang-kurangnya memenuhi struktur

templates B yang memiliki struktur B = ( B1, B2, B3 , B4), ataupun

C yang membuat struktur ke empat templates A seperti pada

Gambar 2.15.

B1 B2 B3 B4

C

Gambar 2.15: Struktur template B dan C

2.4.1.3. Analisa menurut Jang dan Chin (1990):

• Sebuah titik p memiliki 4 tetangga yaitu atas, bawah, kiri dan

kanan, yang diinisialisasikan sebagai a, b, c dan d seperti pada

(44)

Gambar 2.16: Gambar Inisialisasi a, b, c, d

Titik-titik ini disebut 4-neigbors dari p (atau 4-adjacent dari p).

Jika U,VS dan beberapa titik dari U adalah 4-adjacent

terhadap beberapa titik dari V, maka U dikatakan 4-adjacent dari

V.

• Sebuah titik p mempunyai 4 tetangga diagonal, yaitu titik e, f, g

dan h seperti pada Gambar 2.16. Ke empat titik tersebut,

bersama dengan titik 4-neigbors seperti yang disebutkan pada

Gambar 2.16 , maka akan disebut 8-neigbors dari p ( atau

8-neigbors dari p). Misal U,VS dan beberapa titik dari U adalah

8- adjacent terhadap beberapa titik dari V, maka U dikatakan 8-

adjacent terhadap V.

• Sebuah 8-path ataupun 4-path yang disebut πn (x,y) yaitu

panjang n dari x ke y adalah sebuah urutan dari titik-titik (x = x0,

x1, x2, …, xn = y ), dimana xi adalah 8-neigbors atau 4-neigbors

(45)

Gambar 2.17: 8-path ataupun 4-path

πn (x,y) merupakan 8-path atau 4-path dengan panjang n = 6

dari x ke y dengan urutan x0, x1, x2, …, x6 dimana xi merupakan

8-neigbors dari x1, x3 merupakan dari x4, begitu seterusnya

hingga x6.

• Misal x dan y adalah 2 titik yang berbeda dalam S. Titik x

disebut merupakan 8-path-connected atau 4-path-connected

terhadap y, jika terdapat sebuah 8-path ataupun 4-path, πn

(x,y), dalam S. Definisi ini menyiratkan bahwa x adalah

4-path-connected terhadap y, maka x juga 8-path-connected terhadap y.

Namun keadaan sebaliknya tidak selalu terpenuhi.

• Misalkan x ∈ S, 8-component (terkadang disebut juga sebagai

8-connected-component atau 4- component dari S, KS (x),

dedefinisikan sebagai: KS (x)= { yS: y adalah 8-path-connected

ataupun 4-path-connected terhadap x}, seperti pada Gambar

(46)

(a) (b)

(c)

Gambar 2.18: (a) citra T. (b) 4-connected- component juga 8-connected-

component dari S dan SC adalah 4-connected. (c) 8-connected- component

juga 8-connected- component dari S dan SC adalah 4-connected

S adalah 8-connected ataupun 4-connected jika S hanya

mempunyai satu 8-component ataupun 4-component.

Border dari S disebut ∂S, yang definisikan oleh S = { x : x

adalah 4-adjacent terhadap y, x S, y SC }. Interior dari S

didefiniskan sebagai himpunan perbedaan antara S dan

(47)

(a) (b)

(c)

Gambar 2.19: (a) citra T, yang memuat anggota S (b) Border dari S. (c)

Interior dari S

Pada (a) piksel-piksel objek bernilai ‘1’ adalah anggota S, maka

(b) piksel-piksel objek yang termasuk border dan merupakan

4-adjacent terhadap piksel berwarna putih (SC), sedangkan (c)

piksel-piksel objek yang termasuk interior dari S, yaitu

piksel-piksel yang merupakan anggota S tetapi bukan border.

• Komponen dari SC, K Sc yang mengandung baris-baris teratas

dan dasar (baris pertama dan baris terakhir) maupun kolom

paling kiri dan paling kanan (kolom pertama dan terakhir) dari

(48)

disebut latar dari S. Seperti yang ditunjukkan pada Gambar

2.20.

(a) (b)

(c)

Gambar 2.20: (a) citra T, yang memuat anggota S (b) Bacground dari

S. (c) Holes dari S

Pada gambar (a) piksel-piksel objek bernilai ‘1’ adalah anggota

S, maka (b) piksel-piksel latar berwarna putih, diluar piksel

objek bernilai ‘1’ adalah background dari S, sedangkan (c)

piksel-piksel berwarna kuning adalah lubang dari S dan bukan

latar.

2.4.2 Kompleksitas Waktu

Kompleksitas waktu diperlukan dalam menganalisis algoritma, hal ini

(49)

melakukan proses tetapi juga diketahui tingkat efektifitasnya. Dalam hal ini

algoritma diukur dari jumlah waktu dan ruang (space) memori yang

dibutuhkan untuk menjalankannya.

Algoritma dikatakan efisien jika suatu algoritma mampu

meminimumkan kebutuhan waktu dan ruang. Kebutuhan waktu dan ruang

suatu algoritma bergantung pada ukuran masukan (n), yang menyatakan

jumlah data yang diproses. Dalam praktik, dapat diukur waktu yang

diperlukan oleh sebuah algoritma dengan menghitung banyaknya

operasi/instruksi yang dieksekusi. Jika mengetahui besaran waktu (dalam

satuan detik) untuk melaksanakan sebuah operasi tertentu, maka dapat

dihitung berapa waktu sesungguhnya untuk melaksanakan algoritma tersebut.

Dalam melakukan perhitungan perlu diperhatikan model abstrak

pengukuran waktu/ruang yang harus independen dari pertimbangan mesin dan

compiler apapun. Besaran yang dipakai untuk menerangkan model abstrak

pengukuran waktu/ruang ini adalah kompleksitas algoritma. Ada dua macam

kompleksitas algoritma, yaitu: kompleksitas waktu dan kompleksitas ruang.

Kompleksitas waktu, T(n), diukur dari jumlah tahapan komputasi yang

dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan

n. Kompleksitas ruang S(n), diukur dari memori yang digunakan oleh struktur

data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n.

Dengan menggunakan besaran kompleksitas waktu/ruang algoritma, kita dapat

menentukan laju peningkatan waktu (ruang) yang diperlukan algoritma

(50)

Dalam praktek, kompleksitas waktu dihitung berdasarkan jumlah

operasi abstrak yang mendasari suatu algoritma, dan memisahkan analisis dari

implementasi.

2.4.2.1 Kompleksitas Waktu Asimptotik

Kompleksitas waktu detail dari sebuah algoritma, terkadang

tidak terlalu diperlukan yang diperlukan adalah besaran dari kompleksitas

waktu yang mendekati besarnya kompleksitas waktu yang sebenarnya.

Kompleksitas waktu yang demikian disebut dengan kompleksitas waktu

asimtotik yang dinotasikan dengan notasi “O” disebut notasi “O-Besar”

(Big-O).

Aturan Untuk Menentukan Kompleksitas Waktu Asimptotik

adalah sebagai berikut:

1. Jika kompleksitas waktu T(n) dari algoritma diketahui,

(51)

(iv) pada algoritma selection_sort

Penjelasannya adalah sebagai berikut:

T(n) = (n + 2) log(n2 + 1) + 5n2

2. Menghitung O-Besar untuk setiap instruksi di dalam algoritma

dengan panduan di bawah ini, kemudian menerapkan teorema O

-Besar.

(a) Pengisian nilai (assignment), perbandingan, operasi aritmetik,

read, write membutuhkan waktu O(1).

(b) Pengaksesan elemen larik atau memilih field tertentu dari sebuah

……….. (2.10)

(52)

record membutuhkan waktu O(1).

(e) if C then S1 else S2; membutuhkan waktu

(53)

(d) Kalang for. Kompleksitas waktu kalang for adalah jumlah

pengulangan dikali dengan kompleksitas waktu badan (body)

kalang.

Kompleksitas waktu asimptotik:

nO(n) = O(n.n) = O(n2)

(e) While C do S; dan repeat S until C; Untuk kedua buah kalang,

kompleksitas waktunya adalah jumlah pengulangan dikali

dengan kompleksitas waktu badan C dan S.

(54)

jumlah:=jumlah + a[i]; O(1)

Pengelompokan Algoritma Berdasarkan Notasi O-Besar

Tabel 2.1: Pengelompokan Algoritma

Berdasarkan Notasi O-Besar

Kelompok Algoritma Nama

O(1)

Urutan spektrum kompleksitas waktu algoritma adalah :

O1(41)4<O4(log44n4)<4O4(n4)<4O4(n2log44n)4<O4(4n24)<4O4(n43)4<4...3<O1(4 22n4)<4 3O4(n!)

algoritma polinomial algoritma eksponensial

(55)

2.5 Algoritma Penipisan Rosenfeld

Menurut (Toussaint, -), algoritma Rosenfeld merupakan algoritma paralel

yang bekerja dengan secara berturut-turut membuang subset dari boundary /

batas dari region objek atau yang disebut juga contour pixelatau contour point

(piksel luar / tepi). Algoritma ini digunakan sebagai pembanding untuk

pengamatan visual, algoritma ini dipilih dikarenakan telah teruji untuk

melakukan penipisan citra aksara jawa dengan terpenuhinya syarat

connectivity dan One-pixel thickness sebesar 99.98% (Krinawati, 2009).

(56)
(57)

Keterangan :

Pada subiterasi 1 kondisi yang harus dipenuhi adalah : Citra[i,j] adalah obyek

Citra[i,j] bukan isolate atau end pixel, yaitu B(b)>1 Citra[i,j] adalah simple, yaitu XH(p) = 1

Citra[i,j] adalah north border

Pada subiterasi 2 kondisi yang harus dipenuhi adalah : Citra[i,j] adalah obyek

Citra[i,j] bukan isolate atau end pixel, yaitu B(b)>1 Citra[i,j] adalah simple, yaitu XH(p) = 1

Citra[i,j] adalah east border

Pada subiterasi 3 kondisi yang harus dipenuhi adalah : Citra[i,j] adalah obyek

Citra[i,j] bukan isolate atau end pixel, yaitu B(b)>1 Citra[i,j] adalah simple, yaitu XH(p) = 1

Citra[i,j] adalah south border

Pada subiterasi 4 kondisi yang harus dipenuhi adalah : Citra[i,j] adalah obyek

Citra[i,j] bukan isolate atau end pixel, yaitu B(b)>1

(58)

iterasi tidak terdapat perubahan nilai piksel dari obyek ke latar maka nilai

variabel n ini akan tetap sama dengan 0. Iterasi akan dilakukan selama masih

ada piksel yang diubah dari piksel objek menjadi piksel latar (nilai n>0).

Dengan kata lain iterasi akan dihentikan jika tidak ada lagi piksel obyek yang

berubah menjadi piksel, yaitu nilai variabel n=0.

2.6 Aksara Jawa

Aksara jawa dalam lafalan (wanda) baku memiliki urutan tertentu yang

diwakili oleh 20 aksara dasar (Ha, Na, Ca, Ra, Ka, Da, Ta, Sa, Wa, La, Pa,

Dha, Ja, Ya, Nya, Ga, Ba, Tha, Nga) seperti yang ditunjukkan pada gambar

Gambar 2.16.

Gambar 2.21: Aksara Jawa

(59)

40

Analisa dan perancangan sistem digunakan untuk menggambarkan sistem yang akan dibangun, dalam hal ini adalah proses-proses yang dibutuhkan dalam penelitian, perangkat lunak yang dibutuhkan dalam pengerjaan program, informasi perangkat keras yang digunakan untuk melakukan penelitian serta rancangan interface yang akan dibangun dalam sistem.

3.1 Gambaran Umum Sistem

Secara umum sistem yang akan dibangun adalah sistem yang menitik-beratkan pada operasi algoritma Nagendraprasad-Wang-Gupta terhadap citra masukan berupa citra aksara jawa yang akan dikenai penipisan. Sistem yang dibangun menggunakan user interface Matlab sebagai tempat pengoperasian penipisan.

Aktivitas yang dilakukan oleh sistem ditunjukkan pada Gambar 3.1.

Gambar 3.1: Diagram Konteks

Sistem Penipisan

Citra Aksara User

(60)

3.2 Analisa Kebutuhan Proses

Dari uraian mengenai gambaran umum sistem pada Gambar 3.1, terdapat beberapa proses yang harus dilakukan oleh sistem yaitu proses melakukan pengubahan citra menjadi citra biner (jika citra bukan merupakan citra biner), kemudian melakukan proses penipisan.

Dari penjelasan proses pada Gambar 3.1 maka didapatkan Data Flow Diagram(DFD) level 1 ditunjukkan pada Gambar 3.2.

Gambar 3.2: DFD level 1

3.2.1 Proses Binerisasi

Proses binerisasi adalah salah satu proses yang harus dilakukan, hal ini dikarenakan untuk melakukan proses penipisan citra masukan yang diperlukan berupa citra biner (bernilai 0 dan 1 dalam piksel gambar). Proses binerisasi yang dirancang dapat dilihat pada Gambar 3.3.

User

1

Binerisasi Citra Biner Penipisan Citra 2 Citra Tipis

Informasi Hasil Penipisan

(61)

Gambar 3.3: Proses Binerisasi

Keterangan:

• Proses binerisasi dilakukan pada citra asli menggunakan

perintah yang sudah ada di dalam matlab yaitu im2bw yang digunakan untuk melakukan proses binerisasi atau mengubah piksel citra menjadi 0 atau 1. Sebelum proses im2bw dilakukan, proses graythresh dilakukan terlebih dahulu.

Graythresh adalah perintah yang sudah ada di dalam matlab yang dapat digunakan untuk menentukan nilai ambang piksel citra untuk diubah menjadi 0 atau 1.

3.2.2 Proses Penipisan

Proses penipisan adalah proses utama yang dilakukan, dalam hal ini penipisan yang dilakukan adalah penipisan

Mulai

Citra asli

threshold = graythresh(Citra asli)

image_biner = im2bw(originalImage,threshold)

(62)

Nagendraprasad-Wang-Gupta. Hasil penipisan inilah yang akan disimpan oleh user berupa citra penipisan, selain itu disertai pula informasi mengenai hasil penipisan seperti persentase One-Pixel Thickness (persentase memenuhi syarat One-pixel thickness), Sum

Of Object (jumlah piksel on citra sebelum ditipiskan), Sum Of

Remove Pixel (jumlah piksel citra yang dihapus), Sum Of

Templates A (jumlah piksel citra yang mengandung Templates A),

Sum Of Not Critical Point (jumlah piksel citra yang merupakan Not Critical Point) dan Running Time (lama waktu proses

penipisan) yang dapat dilihat oleh user.

3.3 Perancangan Pengujian Sistem

Salah satu syarat utama sebuah kerangka adalah keterhubungan/connectivity dan one-pixel thickness. Untuk mengetahui apakah citra hasil penipisan memiliki hasil yang baik atau tidak diperlukan pengujian, berikut adalah pengujian yang dilakukan:

3.3.1 Pengamatan Ukuran Citra

(63)

benar-benar mengalami penipisan atau tidak. Jika ukuran semakin bertambah besar atau tetap maka dapat dipastikan piksel citra tidak mengalami penghapusan piksel.

3.3.2 Sum Template A dan Sum Not Critical Point

Sum Template A dan Sum Not Critical Point digunakan untuk

mendeteksi dan mencari jumlah citra hasil penipisan yang memiliki templateA dan bukan merupakan critical point. Flow cart dapat

(64)

Gambar 3.4: Pengujian Sum Template A dan Sum Not Critical Point

Keterangan:

• Pencarian piksel yang mengandung templateA dilakukan dengan

(65)

yaitu dengan melihat apakah piksel memiliki karakter seperti yang ada dalam Gambar 2.9, jika kondisi dalam gambar

Gambar 2.9 terpenuhi maka “TemplateA=TemplateA+1” akan

dieksekusi sehingga nilai TemplateA akan bertambah.

• Jika TemplateA telah diketahui maka selanjutnya dilakukan

eksekusi apakah TemplateA tersebut mengandung TemplateB atau TemplateC seperti yang ada pada Gambar 2.10. Jika kondisi template pada Gambar 2.10 tidak terpenuhi maka piksel adalah piksel not critical point.

3.3.3 One-pixel Thickness

One-pixel thickness digunakan untuk melihat apakah citra

(66)

Gambar 3.5: One-pixel thickness

Keterangan:

One-pixel thickness didapatkan dari jumlah piksel citra hasil

penipisan dikurangi dengan jumlah piksel yang merupakan not critical point yang didapat seperti pada Gambar 3.4. Dari hasil pengurangan tersebut akan diketahui jumlah piksel yang merupakan critical point atau memenuhi syarat ketebalan satu piksel (One-pixel thickness).

• Setelah diketahui jumlah piksel yang memenuhi syarat ketebalan

satu piksel (One-pixel thickness) selanjutnya jumlah tersebut dirata-rata dengan cara dibagi dengan jumlah piksel keseluruhan pada citra hasil penipisan yang didapat seperti pada Gambar 3.6. Selanjutnya jumlah yang didapat dikalikan 100, jumlah inilah

Mulai

(67)

yang menjadi persentase dari One-pixel thickness yang berhasil dipenuhi pada citra hasil penipisan.

3.3.4 Sum of Pixel Object

Pengujian Sum of Pixel Object digunakan untuk mengetahui jumlah piksel citra sebelum dilakukan penipisan. Untuk mendapatkan Sum of Pixel Object ditunjukkan pada Gambar 3.6.

Gambar 3.6: Sum of Pixel Object

Keterangan:

• Proses Sum of Pixel Object dilakukan pada citra asli yang telah

(68)

dahulu, selanjutnya dilakukan eksekusi pada piksel citra yang “on” dengan membaca setiap baris dan kolom dari citra. Jika piksel adalah piksel “on” maka dilakukan eksekusi pada count sehingga nilainya bertambah, begitu seterusnya hingga seluruh piksel dieksekusi.

3.3.5 Sum of Remove Pixel

Pengujian Sum of Remove Pixel digunakan untuk mengetahui jumlah piksel citra sebelum dilakukan penipisan. Untuk mendapatkan Sum of Remove Pixel ditunjukkan pada Gambar 3.7.

Gambar 3.7: Sum of Remove Pixel

Mulai

Result= Sum of Pixel Object-count

(69)

Keterangan:

• Proses Sum of Remove Pixel dilakukan pada citra asli yang telah

dikenai proses binerisasi. Citra ini dibaca dimensinya terlebih dahulu, selanjutnya dilakukan eksekusi piksel citra yang “on” dengan membaca setiap baris dan kolom dari citra. Jika piksel adalah piksel “on” maka dilakukan eksekusi pada count sehingga nilainya bertambah, begitu seterusnya hingga seluruh piksel dieksekusi.

• Hasil eksekusi yang berupa nilai count, kemudian digunakan

untuk operasi pengurangan dengan mengurangi Sum of Pixel Object yang didapat dengan cara pada Gambar 3.8. Hasil dari operasi ini adalah Sum of Remove Pixel.

3.3.6 Running Time

Pengujian Running Time digunakan untuk melihat kecepatan yang dilakukan oleh algoritma dalam melakukan proses penipisan. Proses dalam melakukan pengujian Running Time diberikan pada

(70)

Gambar 3.8: Running Time

Keterangan:

• Pengujian Running Time menggunakan perintah yang sudah ada

di dalam matlab yaitu tic sebagai awal dimulai waktu dan toc sebagai akhir dari waktu eksekusi.

3.3.7 Connectivity

Pengujian Connectivity digunakan untuk melihat apakah citra hasil 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 Connectivity dilakukan dengan melakukan pengamatan langsung dari tiap-tiap citra rangka dan citra masukan secara langsung.

Mulai

tic

Prose Penipisan

tac Time=tac;

(71)

3.3.8 Waktu Asimtotik Algoritma

Pengujian Waktu Asimtotik Algoritma digunakan untuk mengetahui keefektifan algoritma. Pengujian dilakukan dengan melakukan perhitungan tiap-tiap bagian algoritma NWG dengan menggunakan ketentuan yang ada pada 2.4.2.1 Kompleksitas

Waktu Asimptotik pada halaman 29.

3.3.9 Pengamatan Visual

Pengujian dengan pengamatan visual dilakukan dengan membagi 50 kuisioner berisikan citra hasil penipisan dan citra asli algoritma NWG dengan pembanding algoritma Rosenfeld yang telah terbukti menghasilkan rangka yang memenuhi One-pixel thickness dan connectivity (Krisnawati, 2009). Kuisoner dibagikan secara random kepada 50 responden, dari hasil 50 responden ini dilakukan perhitungan jumlah citra yang dianggap mirip dan citra yang dianggap lumayan serta citra yang dianggap tidak mirip.

3.4 Perancangan Tampilan Antar-Muka

Rancangan tampilan antar-muka pada program ini adalah sebagai berikut:

3.4.1Halaman Utama

(72)

Gambar 3.9: Halaman Utama

Pada halaman utama yang merupakan halaman tempat dilakukan proses penipisan dilakukan, akan memiliki 3 buah tombol yaitu tombol thinning yang digunakan untuk melakukan proses penipisan, tombol clear yang digunakan untuk melakukan reset dan tombol Save yang digunakan untuk menyimpan citra hasil penipisan serta terdapat menu file, about dan help.

3.4.2Halaman About

Rancangan halaman About dapat dilihat pada Gambar 3.10.

File About Help

Thinning Clear Save

(73)

Gambar 3.10: Halaman About

Halaman about digunakan untuk memberikan informasi mengenai pembuat program dan kontak yang dapat dihubungi. Pada halaman ini hanya akan berisi informasi mengenai pembuat program.

3.4.3Halaman Help

Rancangan halaman help dapat dilihat pada Gambar 3.11. About

PENIPISAN CITRA AKSARA JAWA MENGGUNAKAN ALGORITMA NWG

OLEH : SASONGKO HADI NIM : 065314062

PEMBIMBING: A.RITA WIDIARTI

TEKNIK INFORMATIKA FAK.SAINS DAN TEKNOLOGI

UNIVERISTAS SANATA DHARMA YOGYAKARTA

(74)

Gambar 3.11: Halaman Help

Halaman Help digunakan untuk memberikan informasi mengenai program, dalam halaman ini hanya akan ada informasi mengenai program.

3.4.4Halaman Input Citra

Rancangan halaman input citra dapat dilihat pada Gambar 3.12. Help

Cara penggunaan Aplikasi:

1. Pilihlah sebuah citra aksara jawa.

2. Kemudian lakukan proses penipisan dengan menekan tombol ‘Proses Penipisan’. Maka hasil penipisan akan muncul di area ‘Citra Hasil Penipisan’.

3. Untuk menyimpan citra hasil penipisan, anda dapat lakukan denganmenekan tombol ‘Save’. Tentukan direktori dan nama file yanganda ingini.

4. Untuk keluar dari program tekanlah tombol ‘Keluar’.

(75)

Gambar 3.12: Halaman Input Citra

Halaman Input citra digunakan untuk memilih citra yang akan diproses di halaman utama. Dalam halaman ini terdapat dua buah tombol, cancel jika user tidak jadi memasukan citra dan open jika user jadi memilih sebuah citra yang akan diproses.

3.4.5Halaman Simpan Citra

Rancangan halaman simpan citra dapat dilihat pada Gambar 3.13. LOOK UP

File Name File Type

Open

(76)

Gambar 3.13: Halaman Simpan Citra

Halaman Input citra digunakan untuk menyimpan citra yang telah diproses dalam halaman utama. Dalam halaman ini terdapat dua buah tombol, cancel jika user tidak jadi menyimpan citra dan Save jika user jadi menyimpan sebuah citra yang telah diproses.

3.4.6Halaman Keluar Aplikasi

Rancangan halaman keluar aplikasi dapat dilihat pada Gambar 3.14.

Gambar 3.14: Halaman Keluar Aplikasi

Save Is

File Name File Type

Save

Cancel

Anda Yakin Untuk Keluar?

(77)

Halaman ini adalah halaman berupa pesan konfirmasi apakah user benar-benar ingin keluar dari program atau tidak. Dalam konfirmasi terdapat dua buah tombol, yes jika user benar-benar ingin keluar dari program dan program akan keluar. Cancel jika user tidak jadi keluar dari program.

3.5 Kebutuhan Perangkat Lunak dan Kebutuhan Perangkat Keras

Spesifikasi yang digunakan untuk membuat tugas akhir ini adalah sebagai berikut:

Processor : AMD Atlon 64 X2 2.01 GHz

• Memory : RAM 2.5 GB

• Operating System : Windows Xp versi 2

(78)

59   

Dalam bab ini akan dibahas mengenai implementasi yang telah dilakukan sebagai berikut:

4.1 Implementasi Algoritma Nagendraprasad-Wang-Gupta

Implementasi algoritma Nagendraprasad-Wang-Gupta digunakan untuk melakukan proses penipisan citra, berikut adalah pseudocode untuk proses penipisan mengunakan algoritma Nagendraprasad-Wang-Gupta:

Implementasi algoritma Nagendraprasad-Wang-Gupta: 1. Input/Q = array citra biner

2. Inisialisasi g sama dengan 1, dan h sama dengan 1

3. Jika nilai h lebih besar dari 0 lakukan langkah 4, jika tidak lakukan langkah 5.

4. Untuk setiap piksel (p) pada baris dan kolom pada input lakukan langkah 4.1 dan 4.2.

4.1 Set nilai h menjadi 0, g =1-g dan Q=Q1 dengan Q1 adalah array citra biner yang ditipiskan.

4.2 Uji apakah p = 0 (merupakan piksel obyek) jika ya lakukanlangkah 4.3 sampai 4.8 jika tidak lakukan langkah 4. 4.3 Hitung B atau jumlah 8-tetangga p yang “on”

4.4 Hitung A atau jumlah piksel 8-tetangga p dari “on” ke “off” 4.5 Hitung C atau jumlah piksel 8-tetangga p yang memiliki nilai

sebagai berikut:

(P(1)+P(2)+P(3)+P(6)==0)&(P(5)==1)&(P(7)==1)) atau

((P(3)+P(4)+P(5)+P(8)==0) & (P(7)==1) & (P(1)==1))

4.6 Hitung D atau jumlah piksel 8-tetangga p yang memiliki nilai

sebagai berikut:

((P(2)+P(5)+P(6)+P(7)==0)&(P(1)==1)&(P(3)==1)) atau

((P(1)+P(4)+P(7)+P(8)==0) & (P(3)==1) & (P(5)==1))

(79)

4.8 Uji apakah g bernilai 0 atau bernilai 1, jika bernilai 0 lakukan langkah 4.8.1 dan jika bernilai 1 lakukan langkah 4.8.2

4.8.1Jika B bernilai lebih besar dari 1 dan kurang dari 7 dan A

bernilai 1 atau E bernilai 1 dan

((P(3)+P(5))*P(1)*P(7))==0) maka lakukan langkah

4.8.1.a, jika tidak lakukan langkah 4.8.1.b.

a. Lakukan penghapusan pada piksel p pada citra Q1 dan set nilai h dengan h+1.

b. Kembali lakukan langkah 4.

4.8.2Jika B bernilai lebih besar dari 1 dan kurang dari 7 dan A

bernilai atau E bernilai 1 dan

((P(7)+P(1))*P(3)*P(5))==0) maka lakukan langkah

4.8.2.a jika tidak lakukan langkah 4.8.2.b.

a. Lakukan penghapusan pada piksel p pada citra Q1 b. Kembali lakukan langkah 4 dan set nilai h dengan h+1.

5. Proses penipisan selesai

(80)

(1-4.2 Implementasi Binerisasi

Implementasi Binerisasi dilakukan dengan menggunakan metode Otsu, metode ini telah ada dalam matlab sehingga tinggal menggunakan fungsi yang ada di dalam matlab. Implementasi binerisasi terdapat pada pseudocode berikut:

Implementasi Binarisasi:

1. Cari nilai intensitas citra terbesar (max)

2. Bandingkan nilai max dengan 1, jika max=1 proses binarisasi selesai, jika max > 1 lakukan langkah 3

3. Cari varian antar kelas terbesar dari nilai intensitas citra (sigma)

4. Bandingkan tiap nilai intensitas pada citra (intens_citra) dengan sigma, jika intents_citra > sigma maka intents_citra = 1, jika tidak maka intents_citra = 0

Proses binerisasi dilakukan pada citra asli menggunakan perintah yang sudah ada di dalam matlab yaitu im2bw yang digunakan untuk mengubah nilai piksel menjadi 0 dan 1. Input dari im2bw didapat dari variabel threshold yang berisikan perintah graythresh dengan inputan citra asli yang

digunakan untuk mendapatkan nilai ambang batas dari piksel citra. Nilai ambang batas yang didapatkan digunakan untuk menentukan piksel yang akan diubah menjadi bernilai 1 atau 0.

4.3 Implementasi Pengujian

Implementasi pengujian yang dilakukan meliputi Running Time yang digunakan untuk menghitung lama waktu proses penipisan, Sum of Remove

Pixel yang digunakan untuk menghitung jumlah piksel sesudah proses

(81)

piksel citra sebelum penipisan, One-pixel thickness yang digunakan untuk mengetahui persentase piksel yang memenuhi syarat One-pixel thickness, Sum Template A yang digunakan untuk mengetahui jumlah Template A dan

Sum Not Critical Point yang digunakan untuk mengetahui jumlah piksel

yang bukan critical point.

4.3.1 Implementasi Pengamatan Ukuran Citra

Implementasi Pengamatan Ukuran Citra tidak dilakukan dengan

coding matlab, namun dilakukan dengan pengamatan secara

langsung terhadap tiap-tiap citra asli dan citra rangka. Setelah melakukan pengamatan, data yang dihasilkan dilakukan perhitungan dan mendapatkan rata-rata ukuran citra asli dan citra rangka.

4.3.2 Implementasi Sum Template A dan Sum Not Critical Point

Implementasi Sum Template A dan Sum Not Critical Point ditunjukkan pada pseudocodeberikut ini:

Implementasi Sum Template A dan Sum Not Critical Point: 1. Inisialisasi variabel contain_A = 0

2. Untuk setiap titik obyek pada citra rangka lakukan langkah 3 3. Uji apakah merupakan template A1, jika ya lakukan langkah

3.a jika tidak lakukan langkah 4.

a.Uji apakah merupakan template B1 atau C,

i. Jika ya, not critical point bertambah 1dan lakukan langkah 4.

ii. Jika tidak , nilai contain_A bertambah 1, lakukan langkah 4 4. Uji apakah merupakan template A2, jika ya lakukan langkah

4.a jika tidak, lakukan langkah 5.

(82)

i. Jika ya not critical point bertambah 1 lakukan langkah 5

ii. Jika tidak nilai contain_A bertambah 1, lakukanlangkah 5

5. Uji apakah merupakan template A3, jika ya lakukan langkah 5.a jika tidak lakukan langkah 6.

a. Uji apakah merupakan template B3 atau C

i. Jika ya not critical point bertambah 1 dan lakukan langkah 6

ii. Jika tidak nilai contain_A bertambah 1, lakukan langkah 6

6. Uji apakah merupakan template A4, jika ya lakukan langkah 6.a

a. Uji apakah merupakan template B4 atau C, i. Jika ya nilai not critical point bertambah 1 ii. Jika tidak nilai contain_A bertambah 1

4.3.3 Implementasi One-pixel thickness

Implementasi One-pixel thickness akan menghasilkan persentase piksel citra hasil penipisan yang memenuhi syarat One-pixel

thickness. Implementasi One-pixel thickness ditunjukkan pada

pseudocodeberikut ini:

Implementasi 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 notCriticalPoint.

4. Hitung persentase OnePixelThickness dengan cara

OnePixelThickness dibagi SumOfPixelSkeleton dikali 100%.

(83)

Selanjutnya dari Implementasi Sum Template A dan Sum Not Critical

Point dimana akan diketahui jumlah piksel yang merupakan Not Critical Point, piksel ini akan dijadikan pengurang pada jumlah

piksel citra hasil penipisan. Hasil perhitungan tersebut kemudian diketahui persentasenya dengan cara pengurangan antara jumlah piksel citra hasil penipisan dan piksel Not Critical Point dibagi dengan jumlah piksel citra hasil penipisan.

4.3.4 Implementasi Sum of Pixel Object

Implementasi Sum of Pixel Object ditunjukkan pada pseudocode berikut ini:

Implementasi 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.1Uji apakah piksel(p) bernilai 0, jika ya lakukan langkah a, jika tidak lakukan langkah a, jika tidak kembali lakukan langkah 4.

a. Nilai count bertambah 1.

Proses Sum of Pixel Object dilakukan dengan membaca dimensi citra terlebih dahulu, dimensi ini digunakan untuk menentukan batas perulangan for. Jika terdapat piksel 0 atau “on”, maka count akan ditambah satu hingga semua piksel pada citra dieksekusi.

4.3.5 Implementasi Sum of Remove Pixel

Gambar

Gambar 2.2: Komposisi Citra Warna
Gambar 2.5: Hasil sebelum dan sesudah penipisan
Gambar 2.9: Algoritma Nagendraprasad-Wang-Gupta
Gambar 2.16: Gambar Inisialisasi a, b, c, d
+7

Referensi

Dokumen terkait

Kenaikan produksi kedelai tahun 2009 terbesar terjadi pada panen subround September-Desember sebesar 916 ton biji kering atau 85,69 persen dibandingkan dengan periode yang sama

Pengaruh nilai hematologisayam petelur fase layer pada THI yang rendah dengan THI yang tinggi tidak menunjukkan perbedaan yang dilihat dari jumlah eritrosit, nilai hematokrit,

Semua kegiatan pemantauan pertumbuhan dan pemantauan perkembangan dicatat pada Formulir Deteksi Dini Tumbuh Kembang Anak, Rekapitulasi Deteksi Dini Tumbuh Kembang, kohort

Karena kartu negatif yang tertinggal dalam kotak tidak sesuai dengan yang diharapkan maka kita tambahkan lagi 2 pasang kartu positif dan negatif.. Kartu yang diinginkan

Metode yang dilakukan pada riset ini adalah mempelajari literatur untuk pemodelan data dari karakteristik material pembentuk beton, tabel referensi dan grafik

Pembangunan HTI menggunakan jenis asli dikombinasikan dengan hutan rakyat merupakan salah satu alternatif yang dapat dilakukan swasta untuk merehabilitasi hutan rawa

Sumber Penelitian.. Sumber penelitian ini adalah narasumber atau informan sebagai sumber diperolehnya data yang diperlukan untuk mengetahui pelaksanaaan peran kepala

Hasil penelitian menunjukkan bahwa (1)Kumcer Seekor Bebek yang Mati di Pinggir Kali karya Puthut EA memberikan perspektif tentang sebuah wacana yang dihubungkan