PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ANALISIS DAN IMPLEMENTASI ALGORITMA PENIPISAN KWON-GIKANG PADA AKSARA SUNDA SKRIPSI Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
Oleh:
Michael Kevin 125314053
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2016
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ANALISIS DAN IMPLEMENTASI ALGORITMA PENIPISAN KWON-GIHALAMAN JUDUL
KANG PADA AKSARA SUNDA SKRIPSI
Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik
Program Studi Teknik Informatika
Oleh:
Michael Kevin 125314053
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2016
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ANALYSIS AND IMPLEMENTATION OF KWON-GI-KANG THINNING TITLE PAGE
ALGORITHM ON AKSARA SUNDA A THESIS
Presented as a Partial Fullfillment of The Requiments to Obtain The Sarjana Teknik Degree
in Informatics Engineering Study Program
Created by :
Michael Kevin 125314053
INFORMATICS ENGINEERING STUDY PROGRAM FACULTY OF SAINS AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2016
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN MOTTO DAN PERSEMBAHAN
Janganlah takut, sebab Aku menyertai engkau, janganlah
bimbang, sebab Aku ini Allahmu; Aku akan meneguhkan, bahkan akan menolong engkau; Aku akan memegang engkau dengan tangan kanan-Ku yang membawa kemenangan. (Yesaya 41:10)
Karya ini saya persembahkan kepada: Tuhan Yesus Kristus Kedua Orang Tuaku Ketiga adikku, Denny, Valerian, David
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PERNYATAAN KEASLIAN HASIL KARYA Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis
ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana hasil karya ilmiah. Yogyakarta, 29 Juli 2016 Penulis
Michael Kevin
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma Yogyakarta :
Nama : Michael Kevin NIM
: 125314053
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul:
“ANALISIS DAN IMPLEMENTASI ALGORITMA PENIPISAN KWONGI-KANG PADA AKSARA SUNDA”
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan
kepada Universitas Sanata Dharma untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikannya
secara terbatas, dan mempublikasikannya di internet atau media lain untuk
kepentingan akademis tanpa perlu minta ijin dari saya maupun memberikan royality kepada saya selama tetap mencantumkan nama saya sebagai penulis. Demikian pernyataan ini saya buat dengan sebenarnya.
Yogyakarta, 29 Juli 2016 Penulis
(Michael Kevin)
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAK Pengetahuan tentang aksara Sunda masih belum diketahui oleh masyarakat luas. Apabila aksara Sunda dapat didigitalkan, maka akan banyak manfaat yang dapat diraih guna pelestarian dan penyebarluasan pengetahuan tentang aksara Sunda, misalnya untuk transliterasi naskah beraksara Sunda berbantuan komputer. Terdapat rangkaian proses dalam transliterasi naskah berbantuan komputer, salah satunya adalah tahap pra pemrosesan, yang bisa jadi memuat proses penipisan citra untuk menemukan kerangka bentuk aksara. Paper ini menyodorkan hasil kajian penggunaan algoritma Kwon-Gi-Kang untuk menipiskan aksara Sunda. Berdasarkan percobaan dengan menggunakan 40 citra aksara Sunda, diperoleh informasi bahwa rata-rata persentase pengurangan piksel sebesar 90,6459 %, rata-rata persentase piksel hasil yang mempunyai ketebalan 1 piksel adalah 81,4668 %, rata-rata thinning rate sebesar 0,9955 dari skala 1, dengan lama proses rata-rata thinning per aksara sebesar 0,1838 detik. Dari hasil percobaan dapat disimpulkan bahwa algoritma Kwon-Gi-Kang dapat dipergunakan untuk penipisan aksara Sunda. Kata Kunci: Thinning, Aksara Sunda, Kwon-Gi-Kang
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT
Knowledge of Sundanese script is still unknown by the public. If the Sundanese script can be digitized, it will be a lot of benefits that can be achieved the purpose of preserving and disseminating knowledge of the Sundanese script, for example, for the transliteration script Sunda beraksara computer-assisted. There is a series of processes in the computer-assisted text transliteration, one of which is the pre-processing stage, which may contain the image thinning process to find the skeleton shape of the characters. Paper is presenting results of the study of the use of Kwon-Gi-Kang algorithms to attenuate Sundanese script. Based on experiments using 40 images Sundanese script, there was information that the average percentage of 90.6459% reduction of pixels, the average percentage of pixels results that have a thickness of 1 pixel is 81.4668%, average thinning rate of 0.9955 from scale 1, with an average processing time per character thinning of 0.1838 seconds. From the experimental results it can be concluded that the Kwon-Gi-Kangalgorithms can be used for thinning Sundanesescript. Keywords: Thinning, Sundanese script, Kwon-Gi-Kang
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR Puji syukur saya haturkan kepada Tuhan Yang Maha Esa atas segala
berkat-Nya saya dapat mengerjakan tugas akhir yang berjudul “Analisis Dan
Implementasi Algoritma Penipisan Kwon-Gi-Kang Pada Aksara Sunda” ini dengan baik. Dalam menyelesaikan seluruh penyusunan tugas akhir ini, penulis
tak lepas dari doa, bantuan, dukungan, dan motivasi dari banyak pihak. Oleh karena itu, penulis ingin mengucapkan banyak terima kasih kepada: 1.
Tuhan Yesus Kristus, atas berkat dan anugerah yang dicurahkan kepada saya
2.
Bapak Tedi Wijaya dan Ibu Leny Waty yang telah selalu mendoakan dan
3.
dalam menyelesaikan tugas akhir ini.
mendukung saya selama masa perkuliahan dan hingga tugas akhir ini.
Ibu Dr. Anastasi Rita Widiarti selaku dosen pembimbing tugas akhir, yang telah memberika saran, dan memotivasi sehingga dapat menyelesaikan tugas
akhir ini. Terima kasih atas bimbingan dan dukungannya selama proses 4. 5.
6. 7. 8.
penyelesaian tugas akhir ini.
Segenap dosen yang telah membimbing selama perkuliahan.
Teman-teman sesama tugas akhir thinning, Laurensia Eva, dan Febrina
Cornelia yang telah bersama-sama menyemangati dan memotivasi dalam menyelesaikan tugas akhir.
Mas Eric, Echo, dan pius yang telah membantu menyelesaikan tugas akhir ini.
Yosefine Ratna Mintarsih yang selalu menginspirasi dan mendukung untuk menyelesaikan tugas akhir ini. Terima kasih na.
Teman-teman angkatan 2012, kakak ,dan adik tingkat, mari berjuang sukses di TI.
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9.
Semua pihak yang tidak dapat disebutkan satu persatu, yang telah mendukung selama penyusunan tugas akhir ini.
Yogyakarta, 29 Juli 2016 Penulis,
Michael Kevin
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI HALAMAN JUDUL .............................................................................................. i TITLE PAGE ........................................................................................................ ii
HALAMAN PERSETUJUAN ............................................................................ iii HALAMAN PENGESAHAN .............................................................................. iv
HALAMAN MOTTO DAN PERSEMBAHAN ................................................. v PERNYATAAN KEASLIAN HASIL KARYA ................................................. vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI ........................... vii
ABSTRAK .......................................................................................................... viii ABSTRACT .......................................................................................................... ix
KATA PENGANTAR ........................................................................................... x DAFTAR ISI ........................................................................................................ xii DAFTAR GAMBAR............................................................................................xv
DAFTAR TABEL ............................................................................................. xvii DAFTAR LAMPIRAN.....................................................................................xviii
BAB IPENDAHULUAN ....................................................................................... 1
1. 1. Latar Belakang Masalah ........................................................................... 1 1. 2. Rumusan Masalah .................................................................................... 2
1. 3. Tujuan Penelitian ...................................................................................... 2
1. 4. Manfaat Penelitian .................................................................................... 2
1. 5. Batasan Masalah ....................................................................................... 3 1. 6. Metodologi Penelitian .............................................................................. 3
1. 7. Sistematika Penulisan ............................................................................... 4
BAB II LANDASAN TEORI ............................................................................... 6 2. 1. Pengolahan Citra Digital .......................................................................... 6 xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2. 2. Pengolahan Preprocesing ....................................................................... 12
2. 3. Pengertian Thinning ............................................................................... 16
2. 4. Algoritma Thinning Kwon-Gi-Kang ...................................................... 17
2. 5. Data Aksara Sunda ................................................................................. 19 2. 6. Teori Alat Uji Thinning .......................................................................... 21
BAB III METODE PENELITIAN .................................................................... 24 3. 1. Bahan ...................................................................................................... 24
3. 2. Alat ......................................................................................................... 25 3. 3. Skenario Sistem Program ....................................................................... 25
3. 4. Cara Melakukan PengujianThinning ...................................................... 27
3. 5. Desain User Interface Sistem ................................................................. 29 3. 6. Spesifikasi Software dan Hardware ....................................................... 30
BAB IV IMPLEMENTASI SISTEM ................................................................ 31 4. 1. Implementasi Load Citra ........................................................................ 31
4. 2. Implementasi Grayscaling ..................................................................... 32
4. 3. Implementasi Binerisasi ......................................................................... 32 4. 4. Implementasi Reduksi Noise .................................................................. 33 4. 5. Implementasi Thinning Metode Kwon-Gi-Kang ................................... 34
4. 6. Implementasi Langkah Pengujian .......................................................... 38 4. 7. Implementasi User Interface Sistem ...................................................... 44
BAB V HASIL DAN ANALISIS........................................................................ 47 5. 1. Hasil Citra Thinning ............................................................................... 47 5. 2. Analisis Presentase Jumlah Piksel Berkurang ........................................ 48
5. 3. Analisis Waktu Proses Thinning ............................................................ 49 5. 4. Analisis Presentase One Pixel Thickness ............................................... 50 xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5. 5. Analisis Thinning Rate ........................................................................... 50 5. 6. Analisis Algoritma Rosenfeld ................................................................. 51
BAB VIKESIMPULAN DAN SARAN ............................................................. 54 6. 1. Kesimpulan ............................................................................................. 54
6. 2. Saran ....................................................................................................... 55
DAFTAR PUSTAKA .......................................................................................... 56 LAMPIRAN ......................................................................................................... 57
xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR Gambar 2. 1 Koordinat citra digital (Putra, 2010) .................................................. 6 Gambar 2. 2 Voxel dari citra tiga dimensi (Putra, 2010) ........................................ 7
Gambar 2. 3 Citra biner (Putra, 2010)..................................................................... 9
Gambar 2. 4 Citra grayscale (Putra, 2010) ............................................................. 9 Gambar 2. 5 Visualisasi 256 Aras Keabuan (Putra, 2010) ................................... 13 Gambar 2. 6 Posisi picture elemen (i,j) (Putra, 2010) .......................................... 14
Gambar 2. 7 3 x 3 mask posisi piksel (Kwon, Gi, and Kang, 2001). .................... 18 Gambar 2. 8 Pola perubahan 0→1 (Kwon, Gi, and Kang, 2001). ........................ 18
Gambar 2. 9 Pola menghapus kondisi 2 (a) (Kwon, Gi, and Kang, 2001). .......... 19
Gambar 2. 10 Pola menghapus kondisi 2 (b) (Kwon, Gi, and Kang, 2001). ........ 19 Gambar 2. 11 Prasati Kawali 2 (Munawar, 2012) ................................................ 20 Gambar 2. 12 Piagam Kebantenan (Munawar, 2012) ........................................... 20
Gambar 2. 13 Struktur template A (Kurnianita, 2009) ......................................... 22 Gambar 2. 14 Struktur template B dan C (Kurnianita, 2009) ............................... 22
Gambar 2. 15 Pola piksel segitiga ......................................................................... 23
Gambar 3. 1 Aksara Swara (Munawar, 2012) ...................................................... 24 Gambar 3. 2 Aksara Ngalagena (Munawar, 2012) ............................................... 24
Gambar 3. 3 Angka (Munawar, 2012) .................................................................. 25
Gambar 3. 4 Diagram Konteks.............................................................................. 25 Gambar 3. 5 Diagram alur sistem program ........................................................... 26 Gambar 3. 6 Form Menu Utama ........................................................................... 29 Gambar 4. 1 Implementasi load citra dan pilih file citra ...................................... 31
Gambar 4. 2 Hasil grayscaling dengan rgb2gray ................................................. 32
Gambar 4. 3 Hasil binerisasi dengan im2bw ......................................................... 32 Gambar 4. 4 Hasil reduksi noise menggunakan medfilt2...................................... 33 Gambar 4. 5 Hasil thinning menggunakan metode Kwon-Gi-Kang ..................... 35 Gambar 4. 6 Implementasi menu utama ............................................................... 45
Gambar 4. 7 Form untuk menyimpan citra hasil thinning .................................... 45 xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4. 8 Implementasi ketika batal menyimpan citra......................................46 Gambar 4. 9 Implementasi peringatan citra tidak disimpan ..................................46 Gambar 5.1 Grafik perbandingan presentase jumlah piksel berkurang.................52 Gambar 5.2 Grafik perbandingan waktu...............................................................52
Gambar 5.3 Grafik perbandingan one pixel thickness...........................................53
Gambar 5.4 Grafik perbandingan thinning rate.....................................................53
xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL
Tabel 5. 1 Contoh hasil citra thinning ....................................................................47
Tabel 5. 2 Contoh hasil presentase jumlah piksel berkurang .................................49 Tabel 5. 3 Contoh hasil lama waktu proses thinning .............................................49 Tabel 5. 4 Contoh hasil presentase one pixel thickness . .......................................50
Tabel 5. 5 Contoh asil presentase thinning rate . ...................................................51 Tabel 5. 6 Hasil rata-rata dan standar deviasi alat uji algoritma Rosenfeld...........51 Tabel 5. 7 Perbandingan hasil Kwon-Gi-Kang dan Rosenfeld..............................52
xvii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR LAMPIRAN Lampiran 1. Citra hasil thinning metode Kwon-Gi-Kang..............................L - 1 Lampiran 2. Hasil alat uji terhadap metode Kwon-Gi-Kang .........................L - 8
Lampiran 3. Citra hasil thinning metode Rosenfeld .....................................L - 16 Lampiran 4. Hasil alat uji terhadap metode Rosenfeld.................................L - 23 Lampiran 5. Source code algoritma Kwon-Gi-Kang ...................................L - 31 Lampiran 6. Source code algoritma Rosenfeld.............................................L - 51
xviii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I
PENDAHULUAN 1. 1. Latar Belakang Masalah
Semakin berkembangnya arus globalisasi dalam berbagai bidang
kehidupan bermasyarakat
berdampak terhadap lemahnya penggunaan,
pemeliharaan, dan pengembangan Aksara Sunda.
Pada akhir Abad XX
timbul kesadaran akan adanya sebuah Aksara Sunda yang merupakan identitas khas masyarakat Sunda. Pemerintah Daerah Provinsi Jawa Barat menetapkan Perda No. 6 tahun 1996 tentang Pelestarian, Pembinaan dan Pengembangan Bahasa, Sastra, dan Aksara Sunda yang digantikan oleh Perda
No. 5 tahun 2003 tentang Pemeliharaan Bahasa, Sastra, dan Aksara Daerah. Aksara Sunda telah disosialisasikan Pemerintah Provinsi Jawa Barat yang
ditandai dengan pemasangan aksara Sunda Kaganga sebagai papan nama jalan di sejumlah jalan. Sunda Kaganga atau huruf sunda lama (buhun) terdiri dari 32 huruf, yang dibangun oleh 7 huruf vokal mandiri dan 25 huruf konsonan (ngalegena).
Pengetahuan tentang aksara Sunda masih belum diketahui oleh
masyarakat luas. Dalam era teknologi informasi yang semakin canggih,
aksara sunda akan terlupakan jika tidak dilestarikan juga dalam bentuk informasi digital. Banyak peninggalan manuskrip yang sudah rapuh dan perlu di simpan dalam bentuk digital. Dalam proses menerjemahkan dan membaca
data digital dari aksara sunda tidak dibutuhkan tebal dan tipisnya tulisan. Semakin tipis aksara digital maka akan mempercepat proses komputasi dalam pengolahan data digital aksara Sunda.
Penulis melakukan pemrosesan citra non digital menjadi citra digital
pada aksara Sunda. Proses Penerjemahan dan pengenalan pola aksara Sunda salah satu langkahnya adalah melakukan proses thinning. Citra ditipiskan
hingga tersisa single pixel. Kemudian hasil penipisan tersebut adalah skeleton dari citra tersebut. Penelitian yang sudah pernah ada terkait dengan penelitian
thinning ini adalah An Enchanced Thinning Algorithm Using Parallel 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
Processing (Kwon,Gi, dan Kang, 2001). Kwon, Gi, dan Kang (2001:
755) menuliskan bahwa efek menyusut hingga titik akhir luar biasa, dan
kerangka penipisan memiliki lebar 1 piksel dan memiliki 8 konektivitas tetangga, maka penulis akan mengimplementasikan proses thinning dengan metode Kwon-Gi-Kang terhadap aksara Sunda. 1. 2. Rumusan Masalah
Permasalahan yang akan diselesaikan dari pengerjaan tugas akhir ini :
1. Bagaimana mengimplementasikan penggunaan thinning dengan metode Kwon-Gi-Kang terhadap aksara Sunda ?
2. Berapa hasil akurasi thinning dengan metode Kwon-Gi-Kang?
3. Berapa lama waktu thining dengan metode Kwon-Gi-Kang terhadap aksara Sunda?
1. 3. Tujuan Penelitian
Tujuan dari tugas akhir ini adalah sebagai berikut:
1. Mengimplementasikan proses thinning menggunakan metode Kwon-GiKang terhadap aksara Sunda.
2. Menganalisis hasil akurasi thinning dengan metode Kwon-Gi-Kang terhadap aksara Sunda tersebut.
3. Menganalisis lama waktu thining dengan metode Kwon-Gi-Kang terhadap aksara Sunda
1. 4. Manfaat Penelitian
Penelitian ini diharapkan dapat memberikan manfaat:
1. Peneliti dapat mengetahui tentang kekurangan dan kelebihan metode Kwon-Gi-Kang yang dipakai untuk tugas akhir.
2. Menyediakan hasil data dari data aksara Sunda hasil Tugas Akhir ini
dalam bentuk digital untuk diproses lebih lanjut dalam ektraksi ciri aksara Sunda dan transliterasi aksara Sunda.
3. Melestarikan aksara Sunda dengan pendokumentasian manuskrip menjadi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
data digital. 1. 5. Batasan Masalah
Batasan masalah pada skripsi ini yaitu :
1. Data digital Aksara Sunda yang digunakan adalah aksara Swara, aksara Ngalagena,dan angka.
2. Data Aksara Sunda dalam bentuk cetak. 3. File berformat .png.
1. 6. Metodologi Penelitian
1. Studipustaka dan Literatur
Melakukan pencarian dan pembelajaran secara mandiri dari berbagai
sumber mengenai thinning, metode Kwon-Gi-Kang, serta aksara Sunda.
2. Konsultasi
Konsultasi dan diskusi dengan dosen pembimbing tugas akhir mengenai
tugas akhir yang dikerjakan.
3. Perancangan Sistem
Perancangan dari sistem Thinning akan dibangun sebagai berikut:
3. 1 Input image aksara Sunda. 3. 2Preprocessing. 3. 3 Thinning.
3. 4 Menguji hasil citra thinning.
3. 5 Output Image citra thinning aksara Sunda. 4. Implementasi Thinning
Sistem Thinning dengan metode Kwon-Gi-Kang yang dirancang akan di
implementasikan dengan menggunakan MATLAB.
5. Desain Alat Uji
Dilakukan perancangan alat uji yang akan digunakan untuk mengukur
keakuratan Thinning dengan metode Kwon-Gi-Kang terhadap aksara Sunda.
6. Analisa hasil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
Analisis sistem Thinning dan hasil data dari alat uji terhadap aksara Sunda. 7. Penyusunan Laporan Tugas Akhir
Membuat penulisan dari semua tahapan pengerjaan tugas akhir ini, mulai
dari dasar teori yang digunakan, proses pembuatan sistem Thinning, hingga hasil implementasi dan analisis yang dilakukan. 1. 7. Sistematika Penulisan
Dalam penyusunan laporan tugas akhir ini terdiri dari lima bab,
dengan menggunakan sistematika dan spesifikasi sebagai berikut : BAB 1: PENDAHULUAN
Bab ini meliputi latar belakang masalah, rumusan masalah, tujuan
penelitian, manfaat penelitian, batasan masalah, metode penelitian, dan sistematika penulisan.
BAB II: LANDASAN TEORI
Bab ini membahas teori yang berhubungan dengan aksara Sunda,
segmentasi citra, dan thinning dengan metodeKwon-Gi-Kang. BAB III: METODE PENELITIAN
Bab ini berisi Gambaran umum, penjelasan data, perencanaan
pengumpulan data, skenario sistem program, alat uji thinning, desain user interface sistem, dan spesifikasi Software dan Hardware. BAB IV: IMPLEMENTASI SISTEM
Bab ini berisi implementasi dari thinning dengan metode Kwon-Gi-
Kang. Dalam bab ini meliputi implementasi sistem program, alat uji, dan implementasi tampilan user interface.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
BAB V: HASIL DAN ANALISIS
Bab ini berisi hasil dari thinning terhadap aksara Sunda, dan analisa
hasil alat uji terhadap citra hasil thinning.
BAB VI: KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan atas hasil penelitian dan saran berdasarkan
kekurangan dan kelebihan Thinning dengan metode Kwon-Gi-Kang terhadap aksara Sunda.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II
LANDASAN TEORI 2. 1. Pengolahan engolahan Citra Digital
2. 1. 1 Pengertian Citra Digital
Secara umum, pengolahan citra digital menunjuk pada pemrosesan
gambar dua dimensi menggunakan komputer. Dalam konteks yang lebih luas, pengolahan citra digital mengacu pada pemrosesan setiap data dua dimensi.
Citra ra digital merupakan larik (array) yang berisi nilai – nilai real maupun komplek yang direpresentasikan dengan deretan bit tertentu.
Suatu citra dapat didefinisikan sebagai fungsi f(x, y) berukuran M
baris dan N kolom, dengan x dan y adalah koordinat spasial, dan amplitudo f
di titik koordinat (x, y) dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Apabila nilai x, y, dan nilai amplitudo f secara
keseluruhan berhingga (finite) dan bernilai diskrit maka dapat dikatakan bahwa citra ra tersebut adalah citra digital.
Gambar 2. 1 Koordinat citra digital (Putra, Putra, 2010) 6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
Citra digital dapat ditulis dalam bentuk matrik sebagai berikut. ( , )=
(0,0) (1,0) ⋮ ( − 1,0)
(0,1) (1,1) ⋮ ( − 1,1)
…
… …
(0, − 1) (1, − 1) ⋮ ( − 1, − 1)
(1)
Nilai pada suatu irisan antara baris dan kolom (pada posisi x, y)
disebut dengan picture element, image element, pels, atau pixel. pixel Istilah terakhir (pixel) paling sering digunakan pada citra digital. 2. 1. 2. Pixel dan Voxel
Setiap pixel mewakili tidak hanya satu titik dalam sebuah citra
melainkan sebuah bagian berupa kotak yang merupakan bagian terkecil (sel). Nilai dari sebuah pixel haruslah dapat menunjukkan nilai rata – rata yang sama untuk seluruh bagian dari sel te tersebut.
Pada citra 3D satuan atau bagian terkecilnya bukan lagi sebuah pixel
melainkan sebuah voxel. Voxel adalah singkatan dari volume element. Posisi dalam voxel ditentukan dengan tiga buah variabel yaitu k yang menyatakan
kedalaman (depth), m menyatakan posisi baris, dan n yang menyatakan posisi kolom. Penggambaran dapat dilakukan dengan sumbu kartesian.
Gambar 2. 2 Voxel dari citra tiga dimensi (Putra, Putra, 2010)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
2. 1. 3. Resolusi Citra
Resolusi citra merupakan tingkat detail suatu citra. Semakin tinggi
resolusi citra maka akan semakin tinggi pula tingkat detail dari citra tersebut.
Satuan dalam pengukuran resolusi citra dapat berupa ukuran fisik (jumlah garis per mm/jumlah garis per inchi) ataupun dapat juga berupa ukuran citra
menyeluruh (jumlah garis per tinggi citra). Resolusi sebuah citra dapat diukur dengan berbagai cara sebagai berikut. a.
Resolusi pixel
c.
Resolusi spektral
b. d. e.
Resolusi spasial
Resolusi temporal
Resolusi radiometrik
2. 1. 4. Jenis Citra
Nilai suatu memiliki nilai dalam rentangf tertentu, dari nilai minimum
sampai nilai maksimum. Jangkauan yang digunakan berbeda – beda
tergantung dari jenis warnanya. Namun secara umum jangkauannya adalah 0
– 255. Citra dengan penggambaran seperti ini digolongkan ke dalam citra integer. Berikut adalah jenis – jenis citra berdasarkan nilai pixelnya. 2. 1. 4. 1. Citra Biner
Citra biner adalah citra digital yang hanya memiliki dua kemungkinan
nilai pixel yaitu hitam dan putih. Citra biner juga disebut sebagai citra B&W
(black and white) atau citra monokrom. Hanya dibutuhkan 1 bit untuk mewakili nilai setiap pixel dari citra biner.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
Gambar 2. 3 Citra biner (Putra, 2010) 2. 1. 4. 2 Citra Grayscale
Citra grayscale merupakan citra digital yang hanya memiliki satu nilai
kanal pada setiap pixelnya, dengan kata lain nilai bagian RED = GREEN = BLUE. Nilai tersebut digunakan untuk menunjukan tingkat intensitas. Warna
yang dimiliki adalah warna dari hitam, keabuan, dan put putih. Tingkatan
keabuan di sini merupakan warna abu dengan berbagai tingkatan dari hitam
hingga mendeakati putih. Citra grayscale berikut memiliki kedalaman warna 8 bit (256 kombinasi warna keabuan).
Gambar 2. 4 Citra grayscale (Putra, 2010)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
2. 1. 5. Format File Citra 2. 1. 5. 1 Bitmap (.bmp)
Format bmp adalah format penyimpanan standar tanpa kompresi yang
umum dapat digunakan untuk menyimpan citra biner hingga citra warna.
Format ini terdiri dari beberapa jenis yang setiap jenisnya ditentukan dengan jumlah bit yang digunakan untuk menyimpan sebuah nilai pixel. 2. 1. 5. 2 Tagged Image Format (tif, .itiff)
Format .tif merupakan format penyimpanan citra yang dapat
digunakan untuk menyimpan citra bitmap hingga citra dengan warna palet
terkompresi.Format ini juga dapat digunakan untuk menyimpan citra yang tidak terkompresi dan juga citra terkompresi.
2. 1. 5. 3 Portable Network Graphics (.png)
Format .png adalah format penyimpanan citra terkompresi.Format ini
dapat digunakan pada citra grayscale, citra dengan palet warna, dan juga citra fullcolor. Format .png juga mampu untuk menyimpan informasi hingga kanal alpha dengan penyimpanan sebesar 1 hingga 16 bit perkanal. 2. 1. 5. 4 JPEG (.jpg)
.jpg adalah format yang sangat umum digunakan untuk transmisi
citra.Format ini digunakan untuk menyimpan citra hasil kompresi dengan metode JPEG.
2. 1. 5. 5 MPEG (.mpg)
Format ini digunakan di dunia internet dan diperuntukkan sebagai
format penyimpanan citra bergerak (video).
2. 1. 5. 6 Graphics Interchange Format (.gif)
Format ini dapat digunakan pada citra warna dengan palet 8
bit.Penggunaan umumnya pada aplikasi web kualitas yang rendah
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
menyebabkan format ini tidak terlalu popular dikalangan peneliti pengolahan citra digital.
2. 1. 5. 7 RGB (.rgb)
Format ini merupakan format penyimpanan citra yang dibuat oleh
silicon graphics untuk menyimpan citra berwarna. 2. 1. 5. 8 RAS (.ras)
Format .ras digunakan untuk menyimpan citra dengan format RGB
tanpa kompresi.
2. 1. 5. 9 Postscript (.ps, .eps, .epfs)
Format ini diperkenalkan sebagai format untuk menyimpan citra buku
elektronik. Dalam format ini, citra dipresentasikan ke dalam deret nilai decimal atau hexadecimal yang dikodekan ke dalam ASCII. 2. 1. 5. 10 Portable Image File Format
Format ini memiliki beberapa bagian diantaranya adalah portable
bitmap, portable graymap, portable pixmap, dan portable network map dengan format berturut-turut adalah .pbm, .pgm, .ppm dan .pnm.Format ini baik digunakan untuk menyimpan dan membaca kembali data citra. 2. 1. 5. 11 PPM
PPM terdiri dari dua bagian umum yaitu bagian pendahuluan dan
bagian data citra.Bagian pendahuluan memiliki tiga bagian kecil, yaitu pertama adalah pengenal PPM yang dapat berupa p3 (untuk citra ASCII) dan p6 (untuk citra binary).Bagian pendahuluan yang kedua adalah ukuran
panjang dan lebar citra. Bagian ketiga dari pendahuluan adalah nilai maksimum dari komponen warna .keistimewaannya adalah dalam data citra dapat disimpan komentar dengan memberikan tanda “#” sebelum komentar.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
2. 1. 5. 12 PGM
Format ini hampir mirip dengan format PPM hanya saja format ini
menyimpan informasi grayscale (satu nilai per pixel).Pengenal yang digunakan adalah p2 dan p5.PBMPBM digunakan untuk menyimpan citra biner. Hampir sama dengan PPM dan PGM,format PBM ini memiliki
pendahuluan, hanya saja pendahuluannya tidak memilikibagian ketiga (penjelasan nilai maksimum pixel). Pengenal yang digunakan adalah p1. 2. 2. Pengolahan Preprocesing 2. 2. 1. Grayscaling
Citra grayscale merupakan citra digital yang hanya memiliki satu nilai
kanal pada setiap pikselnya, artinya nilai dari Red = Green = Blue. Nilai-nilai tersebut digunakan untuk menunjukkan intensitas warna.
Citra yang ditampilkan dari citra jenis ini terdiri atas warna abu-abu,
bervariasi pada warna hitam pada bagian yang intensitas terlemah dan warna
putih pada intensitas terkuat. Citra grayscale berbeda dengan citra ”hitamputih”, dimana pada konteks komputer, citra hitam putih hanya terdiri atas 2 warna saja yaitu ”hitam” dan ”putih” saja. Pada citra grayscale warna bervariasi antara hitam dan putih, tetapi variasi warna diantaranya sangat
banyak. Citra grayscale seringkali merupakan perhitungan dari intensitas cahaya pada setiap piksel pada spektrum elektromagnetik single band.
Citra grayscale disimpan dalam format 8 bit untuk setiap sample
piksel, yang memungkinkan sebanyak 256 intensitas. Untuk mengubah citra berwarna yang mempunyai nilai matrik masing-masing R, G dan B menjadi citra grayscale dengan nilai X, maka konversi dapat dilakukan dengan mengambil rata-rata dari nilai R, G dan B sehingga dapat dituliskan menjadi:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
X = (R+G+B)/3
Warna = RGB(X, X, X)
(2)
Gambar 2. 5 Visualisasi 256 Aras Keabuan (Putra, 2010) 2. 2. 1. 1 Nilai minimum dan maksimum
Citra skala keabuan mempunyai nilai minimum (biasanya=0) dan
nilai maksimum. Banyaknya kemungkinan nilai minimum dan maksimum
bergantung pada jumlah bit yang digunakan (umumnya menggunakan 8 bit). Contohnya untuk skala keabuan 4 bit, maka jumlah kemungkinan nilainya
adalah 24 = 16, dan nilai maksimumnya adalah 24-1 = 15, sedangkan untuk skala keabuan 8 bit, maka jumlah kemungkinan nilainya adalah 28 = 256, dan nilai maksimumnya adalah 28 – 1 = 255. 2. 2. 1. 2 Array Grayscales
Secara digital suatu grayscale image dapat direpresentasikan dalam
bentuk array dua dimensi. Tiap elemen dalam array menunjukkan intensitas
(greylevel) dari image pada posisi koordinat yang bersesuaian. Apabila suatu citra direpresentasikan dalam 8 bit maka berarti pada citra terdapat 28 atau 256 level grayscale, (biasanya bernilai 0 – 255), dimana 0 menunjukkan level
intensitas paling gelap dan 255 menunjukkan intensitas paling terang. Tiap elemen pada array diatas disebut sebagai picture elemen atau sering dikenal sebagai pixel. Dengan melakukan perubahan pada intensitas pada masing-
masing pixel maka representasi citra secara keseluruhan akan berubah. Citra
yang dinyatakan dengan matrik M x N mempunyai intensitas tertentu pada pixel tertentu. Posisi picture elemen (i,j) dan koordinat (x,y) berbeda.
Jumlah pixel dimulai dari sudut kiri atas sedangkan koordinat x dan y
berada pada sudut kiri bawah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
Gambar 2. 6 Posisi picture elemen (i,j) (Putra, 2010) Format citra ini disebut skala keabuan karena pada umumnya
warnayang dipakai adalah antara hitam sebagai warna minimal dan warna putih sebagai warna maksimal sehingga warna antaranya adalah abu-abu. 2. 2. 1. 3 Konversi Citra Berwarna Menjadi Citra Keabuan
Persamaan yang digunakan untuk mengkonversi citra berwarna
menjadi citra skala keabuan adalah sebagai berikut: Gray = ( R + G + B ) / 3
(3)
Konversi informasi suatu citra warna ke skala keabuan dapat juga
dilakukan dengan cara member bobot pada setiap elemen warna, sehingga persamaan diatas dimodifikasi menjadi : Gray =wRR + wGG + wBB
(4)
dengan wR, wG, dan wB masing-masing adalah bobot untuk elemen
warna merah, hijau dan biru. NTSC (National Television System Committee) mendefinisikan bobot untuk konversi citra warna ke skala keabuan adalah sebagai berikut :
wR = 0,299
wG = 0,587
wB = 0,114
Untuk citra berwarna nilai dari suatu pixel misal adalah X, maka untuk
mendapat nilai Red, Green, Bluedapat menggunakan rumus :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Blue = X / 216
(5)
Green = (X – Blue * 216) / 28
(6)
Red = X – Blue * 216 – Green * 28
(7)
2. 2. 2. Binerisasi
Citra biner adalah citra yang memiliki dua nilai tingkat keabuan yaitu
hitam dan putih. Dalam sebuah citra biner, setiap piksel hanya mempunyai
dua kemungkinan nilai, seperti on dan off. Sebuah citra biner disimpan dalam
matriks dengan nilai 0 (off) dan 1(on). Secara umum proses binersisasi citra gray scale untuk menghasilkan citra biner adalah sebagai berikut. g( , ) =
1 0
( , )≥ ( , 1) <
(8)
dengan g(x,y) adalah citra biner dari citra gray scale f(x,y) dan T
menyatakan nilai ambang.Nilai T dapat ditentukan dengan salah satu dari 3 cara berikut.
1. Nilai Ambang Global (Global Threshold) T = T{f(x,y)}
(9)
dengan T tergantung pada nilai gray level dari pixel pada posisi x,y. 2. Nilai Ambang Lokal (Local Threshold) T = T{A(x,y), f(x,y)}
(10)
dengan T tergantung pada properti pixel tetangga. A(x,y) menyatakan
nilai pixel tetangga.
3. Nilai Ambang dinamis (Dynamic Threshold) T = T{x,y, A(x,y), f(x,y)}
dengan T tergantung pada koordinat-koordinat pixel.
(11)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
2. 2. 3. Reduksi Noise
Metode atau filtering yang terbaik tergantung dengan situasi dari citra
dan jenis derau atau degradasi yang terdapat pada citra. Ada beberapa filter, yaitu filter linear, filter median, dan filter Wiener. Penulis menggunakan filter
median karena filtertersebut adalah yang paling efektif untuk menghilangkan derau salt dan pepper (Wijaya dan Prijono, 2007). 2. 2. 3. 1 Filter Median
Filter Median sangat bermanfaat untuk menghilangkan outliers, yaitu
nilai – nilai piksel yang ekstrim. Filter Median menggunakan sliding neighborhoods untuk memproses suatu citra, yaitu suatu operasi di mana
filter ini akan menentukan nilai masing – masing piksel keluaran dengan
memeriksa tetangga m x n di sekitar piksel masukan yang bersangkutan. Filtering Median mengatur nilai – nilai piksel dalam suatu tetangga dan memilih nilai tengah atau median sebagai hasil. 2. 3. Pengertian Thinning
Thinning merupakan suatu operasi morphologi, terkadang seperti erosi
atau opening. Thinning mengubah bentuk asli citra biner menjadi citra yang menampilkan batas – batas objek / foreground hanya setebal satu pixel.
Sepintas, thinning mempunyai kemiripan dengan deteksi tepi dalam hal output dari citra yang dihasilkan. Kedua proses tersebut sama - sama
menampilkan batas obyek pada citra. Namun, tetap saja ada perbedaan antara thinning dengan deteksi tepi dari sisi cara kerjanya sebagai berikut.
Deteksi tepi: mengubah gray level atau intensitas citra menjadi
citra yang menampilkan batas – batas / boundaries obyek berdasarkan kekontrasan warna antar pixel.
Thinning: mereduksi pixel pada objek biner menjadi pixel yang bernilai sama dengan pixel pada background. Keluaran berupa citra biner dengan informasi berupa batas – batas objek berdasarkan pixel dengan ketebalan satu pixel.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
Tujuan thinning adalah untuk menghilangkan pixel obyek (foreground
object) pada citra biner. Thinning biasanya digunakan pada proses skeletonisasi (Putra, 2010).
Dalam Widiarti, AR. dan Rudatyo H. (2013), O’Gorman dan Kasturi
menyatakan bahwa penipisan tergolong dalam operasi preprocessing citra,
dimana objek citra direduksi menjadi garis tengah, yang disebut rangka, dari objek citra tersebut. Maka hasil dari proses penipisan disebut sebagai rangka (skeleton). Tujuan dari penipisan adalah mereduksi komponen objek citra
menjadi suatu informasi yang sifatnya esensial atau mendasar sehingga proses analisis lebih lanjut dapat terfasilitasi. Informasi tersebut mungkin
terdiri atas struktur – struktur dari suatu objek seperti persimpangan
(junctions), titik akhir (end point), dan titik hubung (connection points) (Widiarti, AR. dan Rudatyo H., 2013).
2. 4. Algoritma Thinning Kwon-Gi-Kang
Dalam algoritma thinning ini melakukan penipisan citra melalui dua
iterasilangkah-langkah oleh kondisi 1, dan melakukan lagi penipisan dengan menggunakan mengikuti kondisi tambahan 2. Kondisi 1 :
Iterasi Pertama : 1. 2 ≤ B(Pi) ≤ 6 2. A(Pi) = 1
3. P2*P4*P6 = 0
4. P4*P6*P8 = 0 Iterasi Kedua :
1. 3 ≤ B(Pi) ≤ 6 2. A(Pi) = 1
3. P2*P4*P8 = 0 4. P2*P6*P8 = 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
Disini [B(Pi)] adalah jumlah piksel yang bernilai 1 dari 8-tetangga
piksel. [A (Pi)] adalah piksel denganperubahan 0→1pola(di sini, 0: latar belakang, 1: foreground) adalah 1 didefinisikan sebagai batas pixel.
Gambar 2. 7 3 x 3 mask posisi piksel (Kwon, Gi, and Kang, 2001).
Gambar 2. 8 Pola perubahan0→1(Kwon, Gi, and Kang, 2001). Kondisi 2 :
Iterasi Pertama :
1. P1 * P8 * P6 = 1 & P3 = 0 2. P3 * P4 * P6 = 1 & P1 = 0 Iterasi Kedua :
1.P5 * P6 * P8 = 1 & P3 = 0 2. P4 * P6 * P7 = 1& Pl = 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
Semua piksel yang memenuhi kondisi pertama di atas akan terhapus
dan kondisi 2 untuk menghapus piksel dengan lebar 2 piksel. Dengan demikian, proses ini dilakukan untuk membuat garis 2 piksel menjadi garis 1 piksel. Dalam kondisi 2, P1 atau P3 harus nol. Karena, P1 dan P3 tidak
terhubung ke titik lain dari garis miring. Jika ada adalah setiap piksel di posisi itu (PI atau P3), Pi adalah terhubung titik dan tidak boleh dihapus.
Akibatnya, diusulkan algoritma thinning yang dapat membuat
sempurna 1 piksel baris dengan konektivitas 8-tetangga. Bila ada titik akhir
ada di ujung kiri atau ujung kanan garis miring, maka akan menghapus piksel Pi untuk membuat 1 baris pixel.
Gambar 2. 9 Pola menghapus kondisi 2 (a) (Kwon, Gi, and Kang, 2001).
Gambar 2. 10 Pola menghapus kondisi 2 (b) (Kwon, Gi, and Kang, 2001). 2. 5. Data Aksara Sunda
Aksara Sunda pada masa silam lebih dikenal dengan sebutan akssara
Sunda kuno, aksara Ratu Pakuan, atau juga aksara Kaganga. Disebut aksara
Sunda kuno, secara sederhana karena sebagai pembeda dengan aksara Sunda yang sekarang ini telah distandarisasi sekaligus sudah diresmikan
penggunaannya untuk kepentingan masyarakat banyak. Sebutan aksara Ratu
Pakuan karena terdapat naskah Sunda kuno dengan judul naskah Carita Ratu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
Pakuan yang ditulis menggunakan aksara Sunda kuno. Sedangkan sebuatan aksara Kaganga karena abjad aksara Sunda kuno dimulai dari aksara ngalagena /ka/, /ga/, dan /nga/.
Di bawah ini adalah contoh prasasti, piagam yang ditulis
menggunakan aksara Sunda kuno:
Gambar 2. 11 Prasati Kawali 2 (Munawar, 2012)
Gambar 2. 12 Piagam Kebantenan (Munawar, 2012) Cara penulisan aksara Sunda dimulai dari kiri ke kanan sama halnya
dengan sistem tata cara tulis aksara latin. Aksara Sunda berjumlah 30 buah
aksara yang terdiri dari 7 buah aksara swara ‘vokal’ (a, é, i, o, u, e dan eu) dan 23 buah aksara ngalagena ‘konsonan bervokal /a/’ (ka, ga, nga, ca, ja,
nya, ta, da, na, pa, ba, ma, ya, ra, la, wa, sa, ha, fa, va, qa, xa, za). Aksara swara adalah aksara yang melambangkan bunyi vokal secara mandiri sebagai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
sebuah suku kata yang bisa menempati posisi awal, tengah, maupun akhir
sebuah kata. Sedangkan aksara ngalagena adalah aksara yang melambangkan bunyi konsonan secara silabis, yaitu bunyi kosonan diikuti bunyi vokal /a/,
sebagai sebuah kata maupun suku kata yang bisa menempati posisi awal, tengah, maupun akhir sebuah kata.
Sistem tata tulis aksara Sunda dilengkapi juga dengan lambang –
lambang bilangan mulai dari angka 0 sampai dengan angka 9. Secara fisik, beberapa lambang bilangan identik dengan aksara swara atau aksara ngalagena. Sebagai pembeda agar tidak terjadi kekeliruan, setiap penulisan lambang bilangan mulai dari angka satuan, puluhan, ratusan, dan seterusnya
harus diapit dengan garis vertikal yang lebih tinggi dari lambang bilangan tersebut.
2. 6. Teori Alat Uji Thinning 2. 6. 1.One Pixel Thickness
One Pixel Thicknessadalah pengujian untuk menemukan dan
mengetahui piksel hasil thinning mempunyai ketebalan satu piksel atau tidak satu piksel. Persentase One Pixel Thicknessdi dapatkan dari hasil Critical Point di bagi jumlah citra hasil penipisan lalu di kalikan seratus.
Dalam Widiarti dan Rudatyo H. (2013), Jang dan Chin menyatakan
bahwa suatu rangka hasil penipisan dikatakan memiliki ketebalan 1 piksel bila tidak memuat salah satu atau semua template A, dimana A adalah suatu
bentuk citra yang berukuran 2x2. Struktur template A adalah susunan pola yang ditemukan dalam komponen – komponen terhubung yang bukan
merupakan rangka. Bentuk citra template Aada 4 buah, yaitu A1, A2, A3, dan A4.
Namun ada kemungkinan lain suatu rangka dikatakan memiliki
ketebalan 1 piksel padahal rangka tersebut memuat template A, yaitu apabila
piksel – piksel pada rangka tersebut merupakan critical point. Sebuah piksel disebut critical point jika piksel tersebut dihapus, akan menyebabkan piksel –
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
piksel yang lain menjadi tidak terhubung atau dengan kata lain menghasilkan lubang.
Gambar 2. 13 Struktur template A (Kurnianita, 2009)
Piksel – piksel pada rangka hasil penipisan dikatakan critical point
bila sekurang – kurangnya memuat struktur template B ataupun template C.semua konfigurasi yang mungkin dari critical point, yang memuat satu dari template A, terdapat dalam struktur template B = {B1, B2, B3, B4} dan
template C. Struktur template B1 memuat struktur template A1, template B2
memuat struktur template A2, template B3 memuat struktur template A3, template B4 memuat struktur template A4, sedangkan struktur template C memuat keempat struktur template A.
Gambar 2. 14Struktur template B dan C (Kurnianita, 2009) Piksel – piksel diluar struktur template A, B, dan C adalah piksel 0
(nol). Sedangkan piksel – piksel yang dilingkari pada masing – masing template adalah pusat dari template tersebut. Piksel “X” pada masing – masing struktur template adalah piksel yang diabaikan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
2. 6. 2.Thinning Rate
Banyak algoritma menggunakan aturan dantemplate, yang didasarkan
pada menemukan segitiga untuk menghapus piksel yang berlebihan. Prinsip yang digunakan oleh persamaan ini:
TR = 1 – Triangle After / Triangle Before
(12)
Dan untuk menghitung pola segitiganya: Triangle count (P[i][j]) = (P(i,j)* P(i,j-1)* P(i-1,j-1))+(P(i,j)* P(i-1,j-
1)* P(i-1,j))+(P(i,j)* P(i-1,j)* P(i-1,j+1))+(P(i,j)* P(i1,j+1)* P(i,j+1))
(13)
Operator: “*” dan ”+” adalah operasi aritmatika. Berikut di bawah ini adalah pola segitiga :
Gambar 2. 15 Pola piksel segitiga Ketika setiap piksel pola memenuhi di dalam citra maka bernilai 1 dan
jika tidak memenuhi maka bernilai 0.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III
METODE PENELITIAN 3. 1. Bahan
Dalam proses menerjemahkan dan membaca data digital dari aksara
sunda tidak dibutuhkan tebal dan tipisnya tulisan. S Semakin emakin tipis aksara digital maka akan mempercepat proses komputasi dalam pengolahan data digital
aksara Sunda.Penulis Penulis memperoleh data aksara Sunda dari buku “Panduan Baca Tulis Aksara Sunda Untuk Siswa SMA/MA/SMK, Mahasiswa, dan Umum”” karangan Munawar (2012). 3. 1. 1.Pengumpulan Pengumpulan Data
Penulis melakukan scanning Buku terhadap “Panduan Baca Tulis
Aksara SundaUntuk Untuk Siswa SMA/MA/SMK, Mahasiswa, dan Umum Umum” karanganMunawar (2012) untuk memperoleh data aksara Sunda. Citra aksara
Sunda yang digunakan berjumlah 40, untuk 7 aksara Swara, 23 aksara Ngalagena, dan 10 angka. angka.Berikut ini adalah hasil scanning untuk data aksara Sunda:
Gambar 33.1 Aksara Swara (Munawar, 2012)
Gambar 33. 2 Aksara Ngalagena (Munawar, 2012) 24
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Gambar 3. 3 Angka (Munawar, 2012) Setelah melakukan scanning penulis melakukan croping terhadap data
aksara Sunda hingga berjumlah 40 hasil crop aksara Sunda. 3. 2. Alat
Dalam melakukan proses scanning untuk mendapatkan data digital
aksara Sunda menggunakan alat, yaitu printer Canon seri E400. Lalu
menggunakan aplikasi snipping tools untuk melakukan pemotongan setiap aksara Sunda dari hasil scanning. 3. 3. Skenario enario Sistem Program
3. 3. 1. Gambaran Umum Sistem
Skenario sistem dimulai dari user memasukkan data citra berupa citra
Aksara Sunda dengan format .PNG, dan keluaran dari sistem adalah hasil
citra thinning aksara Sunda. Berikut adalah diagram konteks dari sistem yang akan dibuat:
Gambar 3. 4 Diagram Konteks
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
3. 3. 2. Alur Sistem
Alur sistem dimulai dari user memasukan gambar aksara Sunda
dengan format .png. Dilanjutkan dengan sistem melakukan grayscaling gambar dan menjadikan gambar menjadi biner dengan proses binerisasi, lalu
melakukan proses reduksi noise, dan proses thinning dilakukan, lalu sistem
menghasilkan citra baru yang sudah di proses thinning dengan metodeKwonGi-Kang.Berikut ini adalah diagram alur program:
Gambar 3. 5 Diagram alur sistem program 3. 3. 2. 1. Masukan Citra
User pertama kali melakukan pemilihan citra aksara Sunda, dan
memasukan citra aksara Sunda yang sudah dipilih ke dalam sistem. Sistem membaca file data aksara Sunda yang dimasukan oleh user. 3. 3. 2. 2. Grayscaling
Kemudian sistem mengubah file citra aksara Sunda yang telah
dimasukan menjadi citra grayscale, dengan menggunakan fungsi dari matlab, yaitu rgb2gray untuk mengubah citra berwarna menjadi abu-abu. 3. 3. 2. 3. Binerisasi
Tahap selanjutnya adalah melakukan binerisasi citra hasil grayscaling,
proses binerisasi diperlukan untuk proses penipisan karena citra biner
bernilai 1 dan 0. Proses binerisasi dalam sistem menggunakan fungsi dari matlab, yaitu im2bw.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
3. 3. 2. 4. Reduksi Noise
Setelah dilakukan proses binerisasi sistem melakukan reduksi noise.
Dalam beberapa citra masih terdapat noise, maka dalam sistem perlu
dilakukan reduksi noise untuk menghilangkan piksel yang tidak termasuk aksara Sunda. Penulis menggunakan fungsi yang ada di dalam matlab, yaitu medfilt2.
3. 3. 2. 5. Proses Thinning
Setelah menghilangkan noise di dalam citra biner, maka sistem akan
melakukan proses thinning. Proses thinning adalah proses utama yang dilakukan di dalam sistem, proses thinning menggunakan metode Kwon-Gi-
Kang. Di dalam proses inilah maka akan menghasilkan citra rangka dengan ketebalan satu piksel.
3. 3. 2. 6. Proses Alat Uji Thinning
Setelah diperoleh citra rangka, maka sistem melakukan perhitungan
akurasi dan lama waktu komputasi untuk citra hasil proses thinning.
Pengujian dilakukan dengan empat alat uji, yaitu presentase jumlah piksel berkurang, waktu komputasi, one pixel thickness, thinning rate. 3. 3. 2. 7. Keluar Hasil Citra Thinning
Setelah melakukan semua tahap di dalam sistem dimulai dari
memasukan citra aksara Sunda hingga melakukan pengujian citra thinning,
maka tahap terakhir dalam sistem adalah menampilkan hasil citra thinning aksara Sunda.
3. 4. Cara Melakukan Pengujian Thinning
Ada berbagai macam alat uji untuk menguji hasil proses thinning,
disini penulis menggunakan 4 alat uji yang di pakai di dalam sistem sebagai berikut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
3. 4. 1. Jumlah Persentase Piksel Berkurang
Menghitung jumlah persentase jumlah piksel yang berkurang, untuk
mendapatkannya maka:
Jumlah presentase piksel berkurang =
–
x 100%
(14)
Jumlah piksel awal: jumlah piksel hitam sebelum proses thinning. Jumlah piksel akhir: jumlah piksel hitam setelah proses thinning. 3. 4. 2. Waktu
Pengujian menghitung waktu proses algoritma thinning, dengan
menggunakan fungsi dari matlab, yaitu tic dan toc. Tic menandakan di mulainya hitungan waktu dan toc menandakan berakhirnya hitungan waktu. 3. 4. 3. One Pixel Thickness
One pixel thickness didapatkan dari : ℎ
=
x 100%
(15)
Hasil ini yang menjadi presentase one pixel thickness. Critical Point
didapatkan dari bila sekurang-kurangnya memuat struktur template B, ataupun template C seperti pada Gambar 2.17. 3. 4. 4. Thinning Rate
Thinning RatePengujian kinerja untuk hasil penipisan citra. Tingkat
piksel objek dikatakan menipis dapat diukur dari segi Thinning Rate. TR = 1 −
(16)
TR = Thinning Rate.
Triangle Before = Total perhitungan segitiga citra sebelum thinning. Triangle After = Total perhitungan segitiga citra setelah thinning.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
3. 4. 5. Membandingkan Dengan Algoritma Rosenfeld
Penulis akan membandingkan hasil akurasi dan lama komputasi
algoritma Kwon-Gi-Kang dengan algoritma Rosenfeld. Widiarti (2011: 567)
menuliskan bahwa algoritma Rosenfeld menghasilkan citra dengan ketebalan 1 piksel yang terbaik dibandingkan dengan algoritma Hilditch, Zhang-Suen,
dan Nagendraprasad-Wang-Gupta. Hal ini dilakukan untuk mengetahui
apakah algoritma Kwon-Gi-Kang lebih baik dari algoritma Rosenfeld dalam akurasi dan lama waktu komputasi.
3. 5. Desain User Interface Sistem 3. 5. 1Form Menu Utama Sistem
Form menu utama merupakan form dengan semua interface yang
menampilkan : Citra asli, citra biner, citra reduksi noise, citra hasil, dan hasil dari alat uji untuk hasil thinning.
Gambar 3. 6 Form Menu Utama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
3. 6 Spesifikasi Software dan Hardware 3. 6. 1. Software
Perangkat lunak yang digunakan untuk membuat dan memproses
sistem program thinning adalah MATLAB versi R2012b 3. 6. 2. Hardware i.
ii.
iii.
iv. v.
Processor
: Intel Core i5 5200u ( 2, 2 Ghz )
Grafiks
: AMD R5 M230 2 Gb
Harddisk
: 500 Gb SATA
Memory Layar
: 4 Gb DDR3
: 14’’ HD 1366 x 768
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV
IMPLEMENTASI SISTEM Pada penelitian tugas akhir ini membahas tentang penggunaan
thinning pada aksara Sunda menggunakan metode Kwon-Gi-Kang. Implementasi program akan di bahas dan di jelaskan di dalam bab ini. 4. 1. Implementasi Load Citra
Di dalam form menu utama ada push button load citrauntuk memilih
dan memasukan citra aksara Sunda untuk proses thinning. Menggunakan
fungsi dari matlab, yaitu uigetfile untuk memilih citra, dan fungsi imread untuk membaca data file citra yang sudah dipilih.
Gambar 4. 1 Implementasi load citra dan pilih file citra [filename, pathname] = uigetfile('*.PNG','Pilih filenya:'); addpath(pathname); data=imread(filename); imshow(data);
31
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
4. 2. Implementasi Grayscaling
Dalam implementasi grayscaling citra penulis menggunakan fungsi
yang sudah ada di dalam matlab. Penulis menggunakan fungsi rgb2gray, yaitu mengubah citra file berwarna menjadi citra abu-abu.
Gambar 4. 2 Hasil grayscaling dengan rgb2gray 4. 3. Implementasi Binerisasi
Dalam implementasi binerisasi citra penulis menggunakan fungsi
yang sudah ada di dalam matlab. Ada 2 fungsi penting dalam proses diatas
yaitu thresh=graythresh(gray); graythreshdigunakan untuk mendapatkan nilai ambang batas dan imbw=im2bw(gray,thresh); yang melakukanproses binerisasi citra itu sendiri.
Gambar 4. 3 Hasil binerisasi dengan im2bw
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Dari hasil binerisasi dengan menggunakan fungsi im2bw di dalam
matlab di peroleh hasil yang sudah baik dalam mengubah citra berwarna menjadi citra hitam putih dan berbentuk biner. Algoritma untuk proses binerisasi:
thresh=graythresh(data1);
data2=im2bw(data1,thresh); 4. 4. Implementasi Reduksi Noise
Setelah melakukan binerisasi di dalam citra beberapa aksara masih
terdapat piksel noise yang tidak termasuk dalam aksara Sunda, maka di
lakukan proses reduksi noise menggunakan fungsi dari dalam matlab, yaitu fungsi Medfilt2.
Gambar 4. 4 Hasil reduksi noise menggunakan medfilt2 Proses dari reduksi noise terhadap citra aksara Sunda sudah
mendapatkan hasil yang baik dan menghilangkan piksel noise. Algoritma untuk proses reduksi noise:
reduksi=medfilt2(double(data2),’indexed’);
Memproses data2 sebagai gambar diindeks dan mempunyai variabel
double.Dalam proses reduksi menggunakan ‘indexed’, yang berarti sintaks
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
yang digunakan, dalam hal ini Output gambar reduksi adalah dari kelas yang sama seperti data2.
4. 5. Implementasi Thinning Metode Kwon-Gi-Kang
Implementasi thinning algoritma Kwon-Gi-Kangdilakukan terhadap
aksara Sunda.
Gambar 4. 5 Hasil thinning menggunakan metode Kwon-Gi-Kang Berikut ini adalah pseudocode algoritma Kwon-Gi-Kanguntuk sistem
penipisan citra aksara Sunda.
1. Input citra
2. Membalik biner citra, untuk biner 1 adalah hitam dan 0 adalah background putih originalBWImage = (not(reduksi));
3. Deklarasi Changing adalah 1
4. Hitung kolom dengan baris [rows, columns] = size(originalBWImage); 5. Deklarasi thinnedImage = originalBWImage;
6. Deklarasi deletedBWImage = ones(rows, columns);
7. Selama while changing adalah 0, maka melakukan perintah 7.1 7.1. Selama i=2:rows-1, maka melakukan perintah 7.1.1
7.1.1. Selama j=2:columns-1, maka melakukan perintah 7.1.1.1 7.1.1.1.
Membuat masking P = [thinnedImage(i,j)
thinnedImage(i-1,j-1) thinnedImage(i-1,j) thinnedImage(i1,j+1) thinnedImage(i,j+1) thinnedImage(i+1,j+1) thinnedImage(i+1,j) thinnedImage(i+1,j-1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
thinnedImage(i,j-1) thinnedImage(i-1,j-1)];
7.1.1.2.
Jika (thinnedImage(i,j)==1 && (sum(P(2:end))>=2
&& sum(P(2:end))<=6) && P(3)*P(5)*P(7)==0 &&
P(5)*P(7)*P(9)==0), maka melakukan perintah 7.1.1.2.1
7.1.1.2.1. 7.1.1.2.2.
Maka melakukan Deklarasi A = 0;
Selama k=2:size(P,2)-1, maka melakukan
7.1.1.2.2.1
7.1.1.2.2.1.
Jika P(k)==0 && P(k+1)==1, maka
melakukan perintah 7.1.1.2.2.1.1
7.1.1.2.2.1.1. Maka melakukanA = A + 1;
7.1.1.2.3.
Jika (A==1), maka melakukan perintah
7.1.1.2.3.1
7.1.1.2.3.1.
Maka melakukan deletedBWImage(i,j)
7.1.1.2.3.2.
Deklarasi changing = 1;
= 0;
7.2. Penghapusan dilakukan setelah semua piksel dikunjungi thinnedImage = thinnedImage.*deletedBWImage;
7.3. Selama i=2:rows-1, maka melakukan perintah 7.3.1
7.3.1. Selama j=2:columns-1, maka melakukan perintah 7.3.1.1 7.3.1.1.
Membuat masking P = [thinnedImage(i,j)
thinnedImage(i-1,j-1) thinnedImage(i-1,j) thinnedImage(i1,j+1) thinnedImage(i,j+1) thinnedImage(i+1,j+1) thinnedImage(i+1,j) thinnedImage(i+1,j-1)
thinnedImage(i,j-1) thinnedImage(i-1,j-1)];
7.3.1.2.
Jika (thinnedImage(i,j)==1 && (sum(P(2:end))>=3
&& sum(P(2:end))<=6) && P(3)*P(5)*P(9)==0 &&
P(3)*P(7)*P(9)==0), maka melakukan perintah 7.3.1.2.1
7.3.1.2.1. 7.3.1.2.2.
Maka melakukan Deklarasi A = 0;
Selama k=2:size(P,2)-1, maka melakukan
7.3.1.2.2.1
7.3.1.2.2.1.
Jika P(k)==0 && P(k+1)==1, maka
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
melakukan perintah 7.3.1.2.2.1.1
7.3.1.2.2.1.1. Maka melakukanA = A + 1;
7.3.1.2.3.
Jika (A==1), maka melakukan perintah
7.3.1.2.3.1
7.3.1.2.3.1.
Maka melakukan deletedBWImage(i,j)
7.3.1.2.3.2.
Deklarasi changing = 1;
= 0;
7.4. Penghapusan dilakukan setelah semua piksel dikunjungi thinnedImage = thinnedImage.*deletedBWImage;
8. Deklarasi changing = 1;
9. Selama while changing adalah 0, maka melakukan perintah 9.1 9.1. Selama i=2:rows-1, maka melakukan perintah 9.1.1
9.1.1. Selama j=2:columns-1, maka melakukan perintah 9.1.1.1 9.1.1.1.
Membuat masking P = [thinnedImage(i,j)
thinnedImage(i-1,j-1) thinnedImage(i-1,j) thinnedImage(i1,j+1) thinnedImage(i,j+1) thinnedImage(i+1,j+1) thinnedImage(i+1,j) thinnedImage(i+1,j-1)
thinnedImage(i,j-1) thinnedImage(i-1,j-1)];
9.1.1.2.
Jika (thinnedImage(i,j)==1 && (sum(P(2:end))>=2
&& sum(P(2:end))<=6) && (P(2)*P(9)*P(7)==1 &&
P(4)==0) && (P(4)*P(5)*P(7)==1 && P(2)==0)), maka melakukan perintah 9.1.1.2.1
9.1.1.2.1. 9.1.1.2.2.
Maka melakukan Deklarasi A = 0;
Selama k=2:size(P,2)-1, maka melakukan
9.1.1.2.2.1
9.1.1.2.2.1.
Jika P(k)==0 && P(k+1)==1, maka
melakukan perintah 9.1.1.2.2.1.1
9.1.1.2.2.1.1. Maka melakukan A = A + 1;
9.1.1.2.3.
Jika (A==1), maka melakukan perintah
9.1.1.2.3.1
9.1.1.2.3.1.
Maka melakukan deletedBWImage(i,j)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
= 0;
9.1.1.2.3.2.
Deklarasi changing = 1;
9.2. Penghapusan dilakukan setelah semua piksel dikunjungi thinnedImage = thinnedImage.*deletedBWImage;
9.3. Selama i=2:rows-1, maka melakukan perintah 9.3.1
9.3.1. Selama j=2:columns-1, maka melakukan perintah 9.3.1.1 9.3.1.1.
Membuat masking P = [thinnedImage(i,j)
thinnedImage(i-1,j-1) thinnedImage(i-1,j) thinnedImage(i1,j+1) thinnedImage(i,j+1) thinnedImage(i+1,j+1) thinnedImage(i+1,j) thinnedImage(i+1,j-1)
thinnedImage(i,j-1) thinnedImage(i-1,j-1)];
9.3.1.2.
Jika (thinnedImage(i,j)==1 && (sum(P(2:end))>=3
&& sum(P(2:end))<=6) && (P(6)*P(7)*P(9)==1 &&
P(4)==0) && (P(5)*P(7)*P(8)==1 && P(2)==0)), maka melakukan perintah 9.3.1.2.1
9.3.1.2.1. 9.3.1.2.2.
Maka melakukan Deklarasi A = 0;
Selama k=2:size(P,2)-1, maka melakukan
9.3.1.2.2.1
9.3.1.2.2.1.
Jika P(k)==0 && P(k+1)==1, maka
melakukan perintah 9.3.1.2.2.1.1
9.3.1.2.2.1.1. Maka melakukan A = A + 1;
9.3.1.2.3.
Jika (A==1), maka melakukan perintah
9.3.1.2.3.1
9.3.1.2.3.1.
Maka melakukan deletedBWImage(i,j)
9.3.1.2.3.2.
Deklarasi changing = 1;
= 0;
9.4. Penghapusan dilakukan setelah semua piksel dikunjungi thinnedImage = thinnedImage.*deletedBWImage;
10. Finish
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
4. 6. Implementasi Langkah Pengujian
Implementasi alat uji untuk menghitung akurasi dan lama waktu
proses thinning yang dilakukan terhadap citra aksara Sunda. Ada 10 alat uji dalam sistem untuk menghitung akurasi dan lama waktu proses thinning. 4. 6. 1. Jumlah Piksel Awal
Dalam menghitung jumlah piksel awal implementasi alat uji
menghitung jumlah semua piksel yang berwarna hitam atau mempunyai angka
biner
1.
Perhitungan
dilakukan
sebelum
proses
thinning
dilakukan.Berikut ini adalah pseudocode untuk menghitung jumlah piksel hitam, dan jumlah piksel awal .
1. Mengitung [baris,kolom]=size(file); 2. Deklarasi jumlah=0; 3. Selama i=1:baris
3.1. Selama j=1:kolom
3.1.1. Jika file(i,j)==1
3.1.2. Maka jumlah=jumlah+1;
Untuk menghitung jumlah piksel awal berikut adalah pseudocodenya.
jumlahpikselawal = hitungjumlahpikselhitam(thinnedImage); 4. 6. 2. Jumlah Piksel Akhir
Dalam menghitung jumlah piksel akhir implementasi alat uji
menghitung jumlah semua piksel yang berwarna hitam atau mempunyai
angka biner 1. Perhitungan dilakukan setelah proses thinning dilakukan. Untuk menghitung jumlah piksel awal berikut adalah pseudocodenya. jumlahpikselakhir = hitungjumlahpikselhitam(thinnedImage);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
4. 6. 3. Jumlah Persentase Piksel Berkurang
Setelah mendapatkan hasil dari jumlah piksel awal dan jumlah piksel
akhir, maka proses alat uji yang selanjutnya adalah menghitung jumlah persentase piksel yang berkurang. Berikut ini adalah pseudocode dari jumlah persentase piksel berkurang.
Jumlahpikselberkurang = (jumlahpikselawal - jumlahpikselakhir) / jumlahpikselawal * 100;
4. 6. 4. Waktu
Implementasi untuk menghitung lama waktu proses thinning
menggunakan fungsi yang sudah ada di matlab, yaitu tic toc. Berikut adalah pseudocode untuk menghitung lama waktu proses thinning.
Mengitung waktu di awal sebelum proses thinning:waktu=tic;
Mengitung waktu di akhir setelah proses thinning: selesai = toc(waktu);
4. 6. 5. One Pixel Thickness
Implementasi untuk mengetahui ketebalan 1 piksel dan menghitung
presentase One Pixel Thickness dilakukan setelah mengetahui jumlah critical point. Berikut ini adalah pseudocode untuk mengetahui One Pixel Thickness. OnePixelThicknes = (jumlahpikselakhir notCriticalPoint)/jumlahpikselakhir*100;
4. 6. 6. Critical Point
Implementasi untuk menghitung jumlah critical point dilakukan
setelah mengetahui jumlah not critical pointdan jumlah piksel akhir. Berikut ini adalah pseudocode untuk mengetahui jumlah critical point.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
CriticalPoint = jumlahpikselakhir - notCriticalPoint;
4. 6. 7. Not Critical Point
Implementasi untuk menghitung jumlah Not critical point dilakukan
dengan mengecek setiap piksel, jika memuat template A1, maka akan mengecek ke dalam template B1 atau template C. Jika memenuhi template di
atas maka not critical pointbertambah 1. Sistem juga akan mengecek ke dalam template A2, A3, atau A4 jika di dalam template A1 tidak terpenuhi dan di lanjutkan mengecek ke dalam B2, B3, B4, atau C. Berikut ini pseudocode untuk mencari not critical point.
1. Deklarasi template A 1.1. A1 = [0 0 ; 0 1]; 1.2. A2 = [0 0 ; 1 0]; 1.3. A3 = [1 0 ; 0 0]; 1.4. A4 = [0 1 ; 0 0];
2. Deklarasi template B
2.1. B1 = [0 1 1 ; 1 0 0 ; 1 0 1]; 2.2. B2 = [1 1 0 ; 0 0 1 ; 1 0 1]; 2.3. B3 = [1 0 1 ; 0 0 1 ; 1 1 0]; 2.4. B4 = [1 0 1 ; 1 0 0 ; 0 1 1];
3. Deklarasi template C = [1 0 1 ; 0 0 0 ; 1 0 1];
4. Mengecek semua piksel [height,width]=size(thinnedImage); 5. Deklarasi latar belakang citra fGround = 0; 6. Deklarasi temp = thinnedImage; 7. Deklarasi sumTemplateA = 0;
8. Deklarasi sumTemplateBC=0;
9. Selama i=2:height-1, maka melakukan 9.1
9.1. Selama for j=2:width-1, maka melakukan 9.1.1
9.1.1. Jika (temp(i,j) == fGround), maka melakukan 9.1.1.1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
9.1.1.1.
Jika
(((temp(i,j)==A1(1,1))&&(temp(i,j+1)==A1(1,2))&&(temp (i+1,j)==A1(2,1)))||((temp(i,j)==A2(1,2))&&(temp(i,j1)==A2(1,1))&&(temp(i+1,j)==A2(2,2)))|| ((temp(i,j)==A3(2,2))&&(temp(i1,j)==A3(1,2))&&(temp(i,j-
1)==A3(2,1)))||((temp(i,j)==A4(2,1))&&(temp(i-
1,j)==A4(1,1))&&(temp(i,j+1)==A4(2,2)))), maka melakukan 9.1.1.1.1 dan 9.1.1.1.2
9.1.1.1.1.
Penjumlahan untuk sumTemplateA =
9.1.1.1.2.
Jika if(((temp(i-1,j-1)==B1(1,1))&&(temp(i-
sumTemplateA+1;
1,j)==B1(1,2))&&(temp(i,j-
1)==B1(2,1))&&(temp(i,j)==B1(2,2))&&(temp(i,j+1) ==B1(2,3))&&(temp(i+1,j)==B1(3,2)))||((temp(i1,j)==B2(1,2))&&(temp(i-
1,j+1)==B2(1,3))&&(temp(i,j-
1)==B2(2,1))&&(temp(i,j)==B2(2,2))&&(temp(i,j+1) ==B2(2,3))&&(temp(i+1,j)==B2(3,2)))||((temp(i1,j)==B3(1,2))&&(temp(i,j-
1)==B3(2,1))&&(temp(i,j)==B3(2,2))&&(temp(i,j+1) ==B3(2,3))&&(temp(i+1,j)==B3(3,2))&&(temp(i+1,j +1)==B3(3,3)))||((temp(i-1,j)==B4(1,2))&&(temp(i,j-
1)==B4(2,1))&&(temp(i,j)==B4(2,2))&&(temp(i,j+1) ==B4(2,3))&&(temp(i+1,j-
1)==B4(3,1))&&(temp(i+1,j)==B4(3,2)))||((temp(i1,j)==C(1,2))&&(temp(i,j-
1)==C(2,1))&&(temp(i,j)==C(2,2))&&(temp(i,j+1)== C(2,3))&&(temp(i+1,j)==C(3,2)))), maka melakukan 9.1.1.1.2.1
9.1.1.1.2.1.
Menghitung jumlah sumTemplateBC =
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
9.1.1.1.3.
sumTemplateBC+1;
Menghitung jumlah sumTemplateA =
sumTemplateA+sumTemplateBC;
9.1.1.1.4.
Menghitung jumlah notCriticalPoint =
sumTemplateA;
4. 6. 8. Triangle Before
Implementasi untuk menemukan jumlah piksel yang membentuk
segitiga sebelum dilakukan proses thinning terhadap citra aksara Sunda. Berikut ini adalah pseudocode untuk Triangle Before. 1. Deklarasi totalbefore=0;
2. Selama i=2:rows-1, maka melakukan 2.1
2.1. Selama j=2:columns-1, maka melakukan 2.1.1
2.1.1. Syarat yang memenuhi trianglebefore =
(originalBWImage(i,j)*originalBWImage(i,j1)*originalBWImage(i-1,j-
1))+(originalBWImage(i,j)*originalBWImage(i-1,j1)*originalBWImage(i-
1,j))+(originalBWImage(i,j)*originalBWImage(i1,j)*originalBWImage(i-
1,j+1))+(originalBWImage(i,j)*originalBWImage(i-
1,j+1)*originalBWImage(i,j+1)); jika memenuhi maka melakukan 2.1.1.1
2.1.1.1.
Menghitung totalbefore= totalbefore+trianglebefore;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
4. 6. 9. Triangle After
Implementasi untuk menemukan jumlah piksel yang membentuk
segitiga setelah dilakukan proses thinning terhadap citra aksara Sunda. Berikut ini adalah pseudocode untuk Triangle After.
1. Deklarasi totalafter=0;
2. Selama i=2:rows-1, maka melakukan 2.1
2.1. Selama j=2:columns-1, maka melakukan 2.1.1
2.1.1. Syarat yang memenuhi trianglebefore =
(originalBWImage(i,j)*originalBWImage(i,j1)*originalBWImage(i-1,j-
1))+(originalBWImage(i,j)*originalBWImage(i-1,j1)*originalBWImage(i-
1,j))+(originalBWImage(i,j)*originalBWImage(i1,j)*originalBWImage(i-
1,j+1))+(originalBWImage(i,j)*originalBWImage(i-
1,j+1)*originalBWImage(i,j+1)); jika memenuhi maka melakukan 2.1.1.1
2.1.1.1.
Menghitung totalafter= totalafter+triangleafter;
4. 6. 10. Thinning Rate
Implementasi untuk menghitung jumlah Thinning Rate dilakukan
setelah mengetahui jumlah total piksel segitiga sebelum dan setelah
melakukan proses thinning terhadap aksara Sunda. Berikut ini adalah pseudocode untuk menghitung Thinning Rate. Thinningrate=1-(totalafter/totalbefore);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
4. 7. Implementasi User InterfaceSistem
4. 7. 1. Implementasi Menu Utama Sistem
Menu utama adalah Tampilan GUI yang berisi seluruh proses
penipisan citra aksara Sunda. Menu utama ditunjukan dalam Gambar 4. 6
terdapat 6 tombol, yaitu tombol Load Citra, tombol Binerisasi, tombol
Reduksi Noise, tombol Thinning, tombol Save, dan tombol Close. Terdapat
juga pilihan tombol radio untuk menentukan melakukan proses thinning dengan metode Kwon-Gi-Kang atau dengan metode Rosenfeld. Tombol load
citra berfungsi untuk membuka dan memilih file aksara Sunda yang akan di proses dalam sistem. Ketika user selesai memilih aksara Sunda maka akan di tampilkan di citra asli. Tombol binerisasi berfungsi untuk mengubah citra asli
aksara Sunda yang sudah di pilih menjadi citra hitam putih berupa piksel biner 1 dan 0. Tombol reduksi noise berfungsi untuk mereduksi piksel noiseyang ada di citra aksara Sunda setelah melakukan proses binerisasi.
Tombol thinning berfungsi untuk melakukan penipisan citra aksara
Sunda hasil dari hasil reduksi noise. Citra penipisan akan ditampilkan di citra hasil, dan sistem juga akan menampilkan data hasil alat uji pada kolom masing – masing ke sepuluh alat uji.
Tombol save berfungsi untuk menyimpan citra hasil penipisan
terhadap aksara Sunda. Proses penyimpanan citra ditunjukan dalam Gambar 4.7, dan file citra penipisan akan di simpan di dalam folder.Ketika userbatal untuk menyimpan citra hasil penipisan klik tombol cancel dan akan muncul
form pertanyaan untuk menanyakan user yakin atau tidak batal menyimpan citra, form ditunjukan di dalam Gambar 4.8.
Ketika user yakin batal
menyimpan citra, maka akan muncul form pemberitahuancitra tidak disimpan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
Gambar 4. 6 Implementasi menu utama 4. 7. 2. Implementasi save citra
Di dalam form menu utama ada push button save untuk menyimpan
hasil citra thinning aksara Sunda untuk proses thinning.
Gambar 4. 7 Form untuk menyimpan citra hasil thinning 4. 7. 2. 1Implementasibatal menyimpancitra
Ketika batal untuk menyimpan citra hasil thinning maka akan muncul
form seperti di bawah ini:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
Gambar 4. 8Implementasi ketika batal menyimpan citra 4. 7. 2. 2 Implementasi pemberitahuan batal menyimpancitra
Ketika klik button Yes maka berhasil untuk tidak menyimpan citra,
tetapi jika klik button No maka akan kembali ke form menyimpan citra.
Gambar 4. 9Implementasiperingatan citra tidak di simpan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V
HASIL DAN ANALISIS Dalam bab ini membahas hasil penelitian penipisan aksara Sunda
dengan metode Kwon Kwon-Gi-Kang. 5. 1. Hasil Citra Thinning
Total citra yang di proses di dalam sistem ada 40 buah citra aksara
Sunda, yaitu (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, ba, ca, da, e, e’, eu, fa, ga, ha, i, ja,
ka, la, ma, na, nga, nya, o, pa, qa, ra, sa, ta, u, va, wa, xa, ya, za). Contoh citra diproses menggunakan gunakan metode Kwon-Gi-Kang,, dan hasil penipisan di tunjukan dalam Tabel 5. 1.
Tabel 5. 1 Contoh hasil citra thinning Nama file
Gambar Hasil Thinning
Gambar Asli
'0.PNG'
'1.PNG'
'2.PNG'
47
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
Nama file
Gambar Asli
Gambar Hasil Thinning
'3.PNG'
'4.PNG'
'5.PNG'
5. 2. Analisis Presentase Jumlah Piksel Berkurang
Contoh ppengamatan terhadap jumlah piksel awal citra aksara Sunda
sebelum di lakukan proses penipisan, jumlah piksel akhir setelah di lakukan
proses penipisan, dan mengamati presentase jumlah piksel berkurang, hasil
tersebut di tunjukan di dalam Tabel 5. 2.. Penelitian terhadap terhad presentase jumlah piksel berkurang dalam proses penipisan aksara Sunda dengan metode Kwon-Gi-Kangmenghasilkan menghasilkan rata rata-rata 90,6459 %, dengan nilai terendah
adalah 88,9666 %, dan nilai tertinggi 91,6141 %. Standar deviasi untuk presentase jumlah piksel berk berkurang urang adalah 0,6869 penyimpangan terendah adalah 89,959, dan untuk penyimpangan tertinggi 91, 3328.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
Tabel 5. 2 Contoh hasil presentase jumlah piksel berkurang Nama file '0.PNG' '1.PNG' '2.PNG' '3.PNG' '4.PNG' '5.PNG'
Jumlah piksel awal
Jumlah piksel akhir
Presentase Jumlah piksel berkurang (%)
2125
206
90,3059
1922 1626 2052 1451 2363
204 151 178 138 227
89,3861 90,7134 91,3255 90,4893 90,3936
5. 3. Analisis Waktu Proses Thinning
Contoh pengamatan waktu yang di butuhkan dalam proses penipisan
dengan algoritma Kwon-Gi-Kang di tunjukan di dalam Tabel 5. 3. Percobaan di lakukan terhadap 40 citra aksara Sunda membutuhkan waktu rata-rata
0,1838 second, untuk nilai terendah 0,1310 second, dan nilai tertinggi adalah
0,3359 second. Standar deviasi untuk lama waktu proses thinning adalah 0,0393 penyimpangan terendah adalah 0,0917, dan untuk penyimpangan tertinggi 0,1703.
Tabel 5. 3 Contoh hasil lama waktu proses thinning Nama file
Waktu(s)
‘1.PNG’
0,1912
‘0.PNG’ ‘2.PNG’ ‘3.PNG’ ‘4.PNG’ ‘5.PNG’
0,1361 0,1564 0,1639 0,1471 0,1845
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
5. 4. Analisis Presentase One Pixel Thickness
Contoh pengamatan one pixel thickness dalam proses penipisan
dengan algoritma Kwon-Gi-Kang di tunjukan di dalam Tabel 5. 4. Percobaan di lakukan terhadap 40 citra aksara Sunda, dan menghasilkan ketebalan
rangka 1 piksel, yaitu dengan rata-rata 81,4668 %, untuk nilai terendah 26,4957 %, dan nilai tertinggi adalah 94,6667 %. Standar deviasi untuk one
pixel thickness adalah 10,6271 penyimpangan terendah adalah 70,8397, dan untuk penyimpangan tertinggi 92,0939.
Tabel 5. 4 Contoh hasil presentase one pixel thickness Nama file
Critical Point
Not Critical Point
One Pixel Thickness (%)
'1.PNG'
181
25
87,8641
'0.PNG' '2.PNG' '3.PNG' '4.PNG' '5.PNG'
146 130 159 119 190
58 21 19 19 37
71,5686 86,0927 89,3258 86,2319 83,7004
5. 5. Analisis Thinning Rate
Contoh Pengamatan thinning rate dalam proses penipisan dengan
algoritma Kwon-Gi-Kang di tunjukan di dalam Tabel 5. 5. Percobaan di lakukan terhadap 40 citra aksara Sunda, dan menghasilkan rata-rata thinning rate adalah 0,9955, untuk nilai terendah 0,9913 %, dan nilai tertinggi adalah 0,9987 %. Standar deviasi untuk thinning rate adalah 0,0019 penyimpangan terendah adalah 0,9936, dan untuk penyimpangan tertinggi 0,9974.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
Nama file '0.PNG' '1.PNG' '2.PNG' '3.PNG' '4.PNG' '5.PNG'
Tabel 5. 5 Contoh hasil presentase thinning rate Triangle before
Triangle after
Thinning Rate
7557
26
0,9966
6837 5765
58
0,9915
22
7349
0,9962
21
5151
0,9971
21
8412
0,9959
37
0,9956
5. 6. Analisis Algoritma Rosenfeld
Pengamatan alat uji dalam proses penipisan dengan algoritma
Rosenfeld di tunjukan di dalam Tabel 5. 6. Percobaan di lakukan terhadap 40
citra aksara Sunda. Hasil tersebut menunjukan bahwa algoritma Rosenfeld lebih
baik
dibandingkan
metode
Kwon-Gi-Kang
dalam
presentase
pengurangan jumlah piksel, waktu, one pixel thickness, dan thinning rate.
Tabel 5. 6 Hasil rata-rata dan standar deviasi alat uji algoritma Rosenfeld Rata - rata
Standar deviasi
Presentase jumlah One Pixel Waktu(s) piksel berkurang (%) thickness (%) 91,4104 0,0800 99,5280 0,5916
0,0169
0,8658
Thinning rate 0,9999 0,0001
Dalam Tabel 5. 7 dapat dilihat perbandingan antara hasil rata-rata dan
standar deviasi untuk metode Kwon-Gi-Kang dan algoritma Rosenfeld. Hasil Kwon-Gi-Kang kurang baik dibandingkan dengan hasil algoritma Rosenfeld,
dalam hasil alat uji presentase jumlah piksel berkurang, waktu komputasi, one pixel thickness, dan thinning rate.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Tabel 5. 7 Perbandingan hasil Kwon-Gi-Kang dan Rosenfeld
Presentase jumlah piksel berkurang (%) Waktu (s) One Pixel thickness (%) Thinning rate
Rata-rata Kwon-GiRosenfeld Kang
Standar Deviasi Kwon-GiRosenfeld Kang
90,6459 0,1838
91,4104 0,08
0,6869 0,0393
0,5916 0,0169
81,4668 0,9955
99,528 0,9999
10,6271 0,0019
0,8658 0,0001
Berikut ini adalah hasil perbandingan dalam bentuk grafik.
93
Presentase jumlah piksel berkurang (%)
92,5 92
91,5 91
90,5 90
91,4104 90,6459 Pemrosesan parallel
Rosenfeld
Gambar 5. 1 Grafik perbandingan presentase jumlah piksel berkurang
0,2
0,1838
Waktu (s)
0,15 0,1
0,08
0,05 0
Pemrosesan parallel
Rosenfeld
Gambar 5. 2 Grafik perbandingan waktu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
120 100
80
One Pixel Thickness (%) 99,528
81,4668
60 40 20
0
Pemrosesan parallel
Rosenfeld
Gambar 5. 3 Grafik perbandingan one pixel thickness
1,1 1 0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1 0
0,9955
Thinning Rate
Pemrosesan parallel
0,9999
Rosenfeld
Gambar 5. 4 Grafik perbandingan thinning rate
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB VI
KESIMPULAN DAN SARAN
Dalam bab ini membahas kesimpulan dan saran dari penelitian
penipisan aksara Sunda dengan metode Kwon-Gi-Kang. 6. 1. Kesimpulan
Kesimpulan yang dapat di ambil dari hasil penelitian penipisan citra
aksara Sunda menggunakan algoritma Kwon-Gi-Kang adalah:
1. Penulis sudah dapat mengimplementasikan algoritma Kwon-Gi-Kang
untuk melakukan penipisan terhadap aksara Sunda. Hal ini dapat ditinjau dari sistem thinning aksara Sunda yang berhasil dibuat.
2. Ditinjau presentase jumlah piksel yang berkurang, algoritma Kwon-Gi-
Kang rata-rata mampu menghapus jumlah piksel hitam 90,6459 %, dan standar deviasi nya sebesar 0,6869.
3. Ditinjau lama waktu komputasi algoritma Kwon-Gi-Kang menggunakan
spesikasi laptop penulis sebagai berikut, Processor : Intel Core i5 5200u (
2, 2 Ghz), Memory: 4 Gb DDR3, dan Grafiks: AMD R5 M230 2 Gb membutuhkan waktu proses rata-rata 0,1838 second, dan standar deviasi untuk lama waktu proses thinning adalah 0,0393.
4. Ditinjau dari pengujian one pixel thickness menghasilkan ketebalan rangka 1 piksel, yaitu dengan rata-rata 81,4668 %, dan standar deviasi untuk one pixel thickness adalah 10,6271.
5. Ditinjau dari pengujian thinning rate menghasilkan rata-rata sebesar 0,9955, dan standar deviasi untuk thinning rate adalah 0,0019.
6. Berdasarkan tinjauan hasil alat uji thinning terhadap metode Kwon-GiKang dengan metode Rosenfeld,
a. Dari rata-rata presentase jumlah piksel berkurang untuk metode pemrosesan adalah 90,6459 %, dan metode Rosenfeld adalah 91,4104 %.
b. Dari rata-rata lama waktu komputasi untuk metode pemrosesan adalah 0,1838
second,
dan
metode
54
Rosenfeld
adalah
0,08
second.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
c. Dari rata-rata one pixel thickness untuk metode pemrosesan adalah 81,4668 %, dan metode Rosenfeld adalah 99,528 %.
d. Dari rata-rata thinning rate untuk metode pemrosesan adalah 0,9955, dan metode Rosenfeld adalah 0,9999.
maka dapat disimpulkan bahwa hasil citra thinning yang dihasilkan oleh metode Kwon-Gi-Kang kurang baik dibandingkan dengan hasil metode Rosenfeld. 6. 2. Saran
Dalam proses penipisan terhadap aksara Sunda menggunakan metode
Kwon-Gi-Kangtelah terbukti mampu menghasilkan citra dengan ketebalan 1 piksel yang cukup baik, dengan pengujian persentase jumlah piksel berkurang, one pixel thickness, dan thinning rate. Namun dari hasil pengujian
masih ada piksel-piksel yang tidak memiliki ketebalan 1 piksel, dan masih dapat
dihapus.
Sehingga
dibutuhkan penelitian
lebih
lanjut
untuk
mendapatkan persentase one pixel thickness, dan thinning rate yang lebih baik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA Anonim.
2014.
Peraturan
Daerah
Provinsi
Jawa
Barat,
http://www.jdih.setjen.kemendagri.go.id/files/P_JABAR_14_2014.pdfdi akses 28 september 2015 18:23
Darma, P. 2010. Pengolahan Citra Digital.Yogyakarta:Penerbit Andi.
Kwon, JS, Gi, JW, and Kang, EK.2001. An Enhanced Thinning Algorithm Using
Parallel
Processing, Proc. of 11th IEEE International
Conference on Image Processing, vol. III, Thessaloniki Greece, Oct. 2001, pp. 752-755.
Karne, Ashwini S and Navalgund, S.S. 2013. Implementation of an Image Thining Algorithm using Verilog and MATLAB. Internasional Journal of Curtent Engineering and Technology.
Marwadi, AA. 2010. Penipisan Citra Aksara Jawa Menggunakan Algoritma Wang-Zhang. Yogyakarta : Skripsi.
Munawar, T C. 2012. Panduan Baca Tulis Aksara Sunda Untuk Siswa SMA/MA/SMA, Mahasiswa, dan Umum.Bandung: Yrama Widya.
Ng, GS, Zhou, RW, and Quek,C. 1994. A Novel Single Pass Thining Algorithm. IEEETransaction on System Man and Cybernetics, 1994.
Tarabek, P. 2008, Performance Measurement Of Thinning Algorithms. Journal of Information, Control and Management Systems,No:2, Vol: 6, 2008 125-132.
Widiarti, AR. 2011. Comparing Hilditch, Rosenfeld, Zhang-Suen,
and Nagendraprasad - Wang-Gupta Thinning. World Academy of
Science, Engineering and Technology International Journal of Computer,
Electrical,
Automation,
Engineering,No:6, Vol:5563-567.
Control
and
Information
Widiarti, AR, dan Rudatyo Ag., H.2013, Teori dan Aplikasi Pengolahan Citra Digital. Yogyakarta:Lintang Pustaka Utama.
Wijaya Ch., M, dan PrijonoA. 2007. Pengolahan Citra Digital Menggunakan Matlab.
Bandung
:
56
Penerbit
Informatika.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
LAMPIRAN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-1
Lampiran 1. Citra hasil thinning metode Kwon-Gi-Kang Nama file
'0.PNG'
'1.PNG'
'2.PNG'
'3.PNG'
'4.PNG'
'5.PNG'
Gambar Asli
Gambar Hasil Thinning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-2
Nama file
'6.PNG'
'7.PNG'
'8.PNG'
'9.PNG'
'a.PNG'
'ba.PNG'
'ca.PNG'
Gambar Asli
Gambar Hasil Thinning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-3
Nama file
'da.PNG'
'e.PNG'
'e''.PNG'
'eu.PNG'
'fa.PNG'
'ga.PNG'
Gambar Asli
Gambar Hasil Thinning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-4
Nama file
'ha.PNG'
'i.PNG'
'ja.PNG'
'ka.PNG'
'la.PNG'
'ma.PNG'
Gambar Asli
Gambar Hasil Thinning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-5
Nama file
'na.PNG'
'nga.PNG'
'nya.PNG'
'o.PNG'
'pa.PNG'
'qa.PNG'
Gambar Asli
Gambar Hasil Thinning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-6
Nama file
'ra.PNG'
'sa.PNG'
'ta.PNG'
'u.PNG'
'va.PNG'
'wa.PNG'
Gambar Asli
Gambar Hasil Thinning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-7
Nama file
'xa.PNG'
'ya.PNG'
'za.PNG'
Gambar Asli
Gambar Hasil Thinning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-8
Lampiran 1. Citra hasil thinning metode Kwon-Gi-Kang Nama file '0.PNG' '1.PNG' '2.PNG' '3.PNG' '4.PNG' '5.PNG' '6.PNG' '7.PNG' '8.PNG' '9.PNG' 'a.PNG'
'ba.PNG'
Jumlah piksel awal
Jumlah piksel akhir
Presentase Jumlah piksel berkurang (%)
2125
206
90,3059
1922 1626 2052 1451 2363 1923 2663 2310 2017
2534
3149
204 151 178 138 227 183 244 248 202
234
286
89,3861 90,7134 91,3255 90,4893 90,3936 90,4836 90,8374 89,2641 89,9851
90,7656
90,9178
'ca.PNG'
2268
243
89,2857
'e.PNG'
2184
185
91,5293
'da.PNG'
1996
174
91,2826
'e''.PNG'
2750
256
90,6909
'fa.PNG'
2122
192
90,9519
'ha.PNG'
2314
213
90,7952
'ja.PNG'
2478
209
91,5658
'eu.PNG' 'ga.PNG' 'i.PNG'
'ka.PNG'
2302 1869 1381
2025
234 171 128
175
89,8349 90,8507 90,7314
91,3580
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-9
Nama file 'la.PNG'
'ma.PNG' 'na.PNG'
Jumlah piksel awal
Jumlah piksel akhir
Presentase Jumlah piksel berkurang (%)
2026
192
90,5232
2484
1586
250
133
89,9356
91,6141
'nga.PNG'
1703
150
91,1920
'o.PNG'
2003
221
88,9666
'qa.PNG'
2478
258
89,5884
'nya.PNG' 'pa.PNG' 'ra.PNG'
'sa.PNG' 'ta.PNG'
3493 2319
1699
2444
2314
294 199
152
211
219
91,5832 91,4187
91,0536
91,3666
90,5359
'u.PNG'
1940
180
90,7216
'wa.PNG'
1808
177
90,2102
'va.PNG'
'xa.PNG' 'ya.PNG' 'za.PNG'
1846
2437
2518
1906
170
90,7909
229
90,6032
176
90,7660
221
Rata – rata Presentase Jumlah piksel berkurang (%)
Standar Deviasi Presentase Jumlah piksel berkurang (%)
91,2232
90,6459 0,6869
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 10
Nama file
Waktu(s)
'1.PNG'
0,1912
'0.PNG' '2.PNG' '3.PNG' '4.PNG' '5.PNG' '6.PNG' '7.PNG' '8.PNG' '9.PNG' 'a.PNG'
'ba.PNG'
0,1361 0,1564 0,1639 0,1471 0,1845 0,2247 0,1928 0,1939 0,1646
0,2090
0,2159
'ca.PNG'
0,1887
'e.PNG'
0,1471
'da.PNG'
0,1985
'e''.PNG'
0,2545
'fa.PNG'
0,1729
'ha.PNG'
0,1793
'ja.PNG'
0,2015
'la.PNG'
0,2059
'eu.PNG' 'ga.PNG' 'i.PNG'
'ka.PNG' 'ma.PNG'
0,1689 0,1380 0,1579
0,1463
0,1629
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 11
Nama file
Waktu(s)
'nga.PNG'
0,1310
'o.PNG'
0,1483
'qa.PNG'
0,1956
'na.PNG'
'nya.PNG' 'pa.PNG' 'ra.PNG'
'sa.PNG' 'ta.PNG'
0,1526
0,3359 0,1830
0,1822
0,1745
0,1945
'u.PNG'
0,1534
'wa.PNG'
0,2028
'va.PNG'
'xa.PNG' 'ya.PNG' 'za.PNG'
Rata – rata Waktu (s)
Standar Deviasi waktu
0,1582
0,2636
0,2198
0,1537
0,1838 0,0393
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 12
Nama file
Critical Point
Not Critical Point
One Pixel Thickness (%)
'1.PNG'
181
25
87,8641
'0.PNG' '2.PNG' '3.PNG' '4.PNG' '5.PNG' '6.PNG' '7.PNG' '8.PNG' '9.PNG' 'a.PNG'
'ba.PNG'
146 130 159 119 190 144 214 184 164
184
228
58 21 19 19 37 39 30 64 38
50
58
71,5686 86,0927 89,3258 86,2319 83,7004 78,6885 87,7049 74,1935 81,1881
78,6325
79,7203
'ca.PNG'
177
66
72,8395
'e.PNG'
132
53
71,3514
'da.PNG'
145
'e''.PNG'
190
'fa.PNG'
164
'ha.PNG'
29
83,3333
66
74,2188
28
85,4167
170
43
79,8122
'ja.PNG'
149
60
71,2919
'la.PNG'
205
45
82,0000
'eu.PNG' 'ga.PNG' 'i.PNG'
'ka.PNG' 'ma.PNG'
62
172
150
21
106
151
169
22
24
23
26,4957 87,7193 82,8125
86,2857
88,0208
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 13
Nama file
Critical Point
Not Critical Point
One Pixel Thickness (%)
'nga.PNG'
142
8
94,6667
'o.PNG'
171
50
77,3756
'qa.PNG'
221
37
85,6589
'na.PNG'
'nya.PNG' 'pa.PNG' 'ra.PNG'
'sa.PNG' 'ta.PNG'
115
234 180
133
179
192
18
60 19
19
32
27
86,4662
79,5918 90,4523
87,5000
84,8341
87,6712
'u.PNG'
145
35
80,5556
'wa.PNG'
159
18
89,8305
'va.PNG'
'xa.PNG' 'ya.PNG' 'za.PNG'
149
201
175
146
21
87,6471
28
87,7729
30
82,9545
46
Rata – rata One Pixel Thickness (%)
Standar Deviasi One Pixel Thickness
79,1855 81,4668
10,6271
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 14
Nama file
Triangle before
Triangle after
Thinning Rate
'1.PNG'
7557
26
0,9966
'0.PNG' '2.PNG' '3.PNG' '4.PNG' '5.PNG' '6.PNG' '7.PNG' '8.PNG' '9.PNG' 'a.PNG'
6837 5765 7349 5151 8412 6855 9489 8183 7160
9099
'ba.PNG'
11316
'da.PNG'
7146
'ca.PNG' 'e.PNG'
58 22 21 21 37 40 31 66 35
52
60
0,9915 0,9962 0,9971 0,9959 0,9956 0,9942 0,9967 0,9919 0,9951
0,9943
0,9947
8074
68
0,9916
7867
53
0,9933
30
0,9958
'e''.PNG'
9870
69
0,9930
'fa.PNG'
7596
24
0,9968
'ha.PNG'
8281
36
0,9957
'ja.PNG'
8869
36
0,9959
'la.PNG'
8814
46
0,9948
'eu.PNG' 'ga.PNG' 'i.PNG'
'ka.PNG'
8119 6673 4934
7187
71 22 23
24
0,9913 0,9967 0,9953
0,9967
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 15
Nama file
Triangle before
Triangle after
Thinning Rate
'na.PNG'
5707
19
0,9967
'ma.PNG'
'nga.PNG'
7221
6083
'nya.PNG'
12631
'pa.PNG'
8297
'o.PNG'
'qa.PNG' 'ra.PNG'
'sa.PNG' 'ta.PNG'
24 8
62
0,9967
0,9987
0,9951
7132
52
0,9927
8756
38
0,9957
5997
8708
8236
19
10
28
28
0,9977
0,9983
0,9968
0,9966
'u.PNG'
6923
35
0,9949
'wa.PNG'
6404
19
0,9970
'va.PNG'
'xa.PNG' 'ya.PNG' 'za.PNG'
6581
8788
9029
6808
Rata – rata Thinning Rate
Standar Deviasi Thinning Rate
21
0,9968
22
0,9975
31
0,9954
47
0,9948
0,9955
0,0019
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 16
Lampiran 3.. Citra hasil thinning metode Rosenfeld Nama file
'0.PNG'
'1.PNG'
'2.PNG'
'3.PNG'
'4.PNG'
'5.PNG'
Gambar Asli
Gambar Hasil Thinning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 17
Nama file
'6.PNG'
'7.PNG'
'8.PNG'
'9.PNG'
'a.PNG'
'ba.PNG'
Gambar Asli
Gambar Hasil Thinning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 18
Nama file
'ca.PNG'
'da.PNG'
'e.PNG'
'e''.PNG'
'eu.PNG'
'fa.PNG'
Gambar Asli
Gambar Hasil Thinning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 19
Nama file
'ga.PNG'
'ha.PNG'
'i.PNG'
'ja.PNG'
'ka.PNG'
'la.PNG'
Gambar Asli
Gambar Hasil Thinning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 20
Nama file
'ma.PNG'
'na.PNG'
'nga.PNG'
'nya.PNG'
'o.PNG'
'pa.PNG'
Gambar Asli
Gambar Hasil Thinning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 21
Nama file
'qa.PNG'
'ra.PNG'
'sa.PNG'
'ta.PNG'
'u.PNG'
'va.PNG'
Gambar Asli
Gambar Hasil Thinning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 22
Nama file
'wa.PNG'
'xa.PNG'
'ya.PNG'
'za.PNG'
Gambar Asli
Gambar Hasil Thinning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 23
Lampiran 4. Hasil alat uji terhadap metode Rosenfeld Nama file '0.PNG' '1.PNG' '2.PNG' '3.PNG' '4.PNG' '5.PNG' '6.PNG' '7.PNG' '8.PNG' '9.PNG' 'a.PNG'
'ba.PNG'
Presentase jumlah piksel awal (%)
Jumlah piksel akhir
Jumlah piksel berkurang
2125
199
90,6353
1922 1626 2052 1451 2363 1923 2663 2310 2017
2534
3149
176 148 167 133 212 161 234 224 183
193
255
90,8429 90,8979 91,8616 90,8339 91,0284 91,6277 91,2129 90,3030 90,9271
92,3836
91,9022
'ca.PNG'
2268
211
90,6966
'e.PNG'
2184
162
92,5824
'da.PNG'
1996
159
92,0341
'e''.PNG'
2750
217
92,1091
'fa.PNG'
2122
178
91,6117
'ha.PNG'
2314
193
91,6595
'ja.PNG'
2478
193
92,2115
'la.PNG'
2484
224
90,9823
'eu.PNG' 'ga.PNG' 'i.PNG'
'ka.PNG'
2302 1869 1381
2025
202 157 113
165
91,2250 91,5998 91,8175
91,8519
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 24
Nama file 'ma.PNG' 'na.PNG'
Presentase jumlah piksel awal (%)
Jumlah piksel akhir
Jumlah piksel berkurang
1586
122
92,3077
2026
181
91,0661
'nga.PNG'
1703
144
91,5443
'o.PNG'
2003
188
90,6141
'qa.PNG'
2478
240
90,3148
'nya.PNG' 'pa.PNG' 'ra.PNG'
'sa.PNG' 'ta.PNG'
3493 2319
1699
2444
2314
265 194
154
207
201
92,4134 91,6343
90,9358
91,5303
91,3137
'u.PNG'
1940
163
91,5979
'wa.PNG'
1808
166
90,8186
'va.PNG'
'xa.PNG' 'ya.PNG' 'za.PNG'
1846
2437
2518
1906
Rata - rata
Standar deviasi
161
222
206
162
91,2784
90,8904
91,8189
91,5005
91,4104 0,5916
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 25
Nama file
Waktu(s)
'1.PNG'
0,0732
'0.PNG' '2.PNG' '3.PNG' '4.PNG' '5.PNG' '6.PNG' '7.PNG' '8.PNG' '9.PNG' 'a.PNG'
'ba.PNG'
0,0647 0,0619 0,0727 0,0810 0,0944 0,0795 0,0811 0,0792 0,0774
0,0860
0,0958
'ca.PNG'
0,0780
'e.PNG'
0,0861
'da.PNG'
0,0922
'e''.PNG'
0,0937
'fa.PNG'
0,0699
'ha.PNG'
0,0713
'ja.PNG'
0,1373
'la.PNG'
0,0772
'na.PNG'
0,0612
'eu.PNG' 'ga.PNG' 'i.PNG'
'ka.PNG' 'ma.PNG'
0,0853 0,0614 0,0602
0,0667
0,0702
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 26
Nama file
Waktu(s)
'nya.PNG'
0,1356
'nga.PNG'
0,0625
'o.PNG'
0,0865
'qa.PNG'
0,0846
'pa.PNG' 'ra.PNG'
'sa.PNG' 'ta.PNG'
0,0733
0,0628
0,1030
0,0771
'u.PNG'
0,0665
'wa.PNG'
0,0756
'va.PNG'
'xa.PNG' 'ya.PNG' 'za.PNG'
Rata - rata Standar deviasi
0,0772
0,0753
0,0876
0,0741
0,0800
0,0169
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 27
Nama file '0.PNG' '1.PNG' '2.PNG'
One Pixel thickness (%)
Critical Point
Not Critical Point
98,9950
197
2
100,0000 98,6486
'3.PNG'
100,0000
'5.PNG'
100,0000
'7.PNG'
100,0000
'4.PNG' '6.PNG' '8.PNG'
98,4962
100,0000 97,7679
'9.PNG'
100,0000
'ba.PNG'
100,0000
'a.PNG'
'ca.PNG'
'da.PNG' 'e.PNG'
100,0000
176 146 167 131 212 161 234 219 183
193
255
0 2 0 2 0 0 0 5 0
0
0
99,0521
209
2
100,0000
162
0
98,7421
157
2
'e''.PNG'
100,0000
217
0
'fa.PNG'
100,0000
178
0
'ha.PNG'
100,0000
193
0
'ja.PNG'
100,0000
193
0
'la.PNG'
100,0000
224
0
'eu.PNG' 'ga.PNG' 'i.PNG'
'ka.PNG' 'ma.PNG'
99,0099
100,0000 100,0000
100,0000
100,0000
200 157 113
165
181
2 0 0
0
0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 28
One Pixel thickness (%)
Critical Point
Not Critical Point
'nga.PNG'
100,0000
144
0
'o.PNG'
98,9362
186
2
100,0000
240
0
Nama file 'na.PNG'
'nya.PNG'
100,0000 99,2453
'pa.PNG'
100,0000
'ra.PNG'
98,7013
'qa.PNG' 'sa.PNG'
95,6522
'ta.PNG'
100,0000
'va.PNG'
100,0000
'xa.PNG'
99,0991
'u.PNG'
'wa.PNG' 'ya.PNG' 'za.PNG'
122
263 194
152
198
201
0
2 0
2
9
0
98,7730
161
2
100,0000
166
0
100,0000
100,0000
Rata - rata
Standar deviasi
161
220
206
162
0
2
0
0
99,5280 0,8658
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 29
Nama file
Thinning rate
Triangle before
Triangle after
'1.PNG'
0,9999
7557
1
'0.PNG' '2.PNG' '3.PNG' '4.PNG' '5.PNG' '6.PNG' '7.PNG' '8.PNG' '9.PNG'
1,0000 0,9998 1,0000 0,9998 1,0000 1,0000 1,0000 0,9998 1,0000
6837 5765 7349 5151 8412 6855 9489 8183 7160
0 1 0 1 0 0 0 2 0
'a.PNG'
1,0000
'ca.PNG'
0,9999
'e.PNG'
1,0000
7867
0
'eu.PNG'
0,9999
8119
1
'ba.PNG' 'da.PNG' 'e''.PNG'
9099
0
8074
1
1,0000
11316
0,9999
7146
1,0000
9870
0
1
0
'fa.PNG'
1,0000
7596
0
'ha.PNG'
1,0000
8281
0
'ga.PNG'
1,0000
6673
0
'i.PNG'
1,0000
4934
0
'ka.PNG'
1,0000
7187
0
'ma.PNG'
1,0000
7221
0
'ja.PNG' 'la.PNG'
'na.PNG'
1,0000 1,0000
1,0000
8869 8814
5707
0 0
0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 30
Nama file
Thinning rate
Triangle before
Triangle after
'nya.PNG'
0,9999
12631
1
'pa.PNG'
1,0000
8297
0
'ra.PNG'
0,9998
5997
1
'ta.PNG'
1,0000
8236
0
'nga.PNG' 'o.PNG'
'qa.PNG' 'sa.PNG' 'u.PNG'
1,0000
0,9999
1,0000 0,9997
0,9999
6083
7132
8756 8708
6923
0
1
0 3
1
'va.PNG'
1,0000
6581
0
'xa.PNG'
0,9999
8788
1
1,0000
6808
0
'wa.PNG' 'ya.PNG' 'za.PNG'
1,0000
1,0000
Rata - rata
Standar deviasi
6404
9029
0
0
0,9999
0,0001
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 31
Lampiran 5. Source code algoritma Kwon-Gi-Kang function varargout = guithinning(varargin) % GUITHINNING MATLAB code for guithinning.fig % GUITHINNING, by itself, creates a new GUITHINNING or raises the existing % singleton*. % % H = GUITHINNING returns the handle to a new GUITHINNING or the handle to % the existing singleton*. % % GUITHINNING('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in GUITHINNING.M with the given input arguments. % % GUITHINNING('Property','Value',...) creates a new GUITHINNING or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before guithinning_OpeningFcn gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to guithinning_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help guithinning % Last Modified by GUIDE v2.5 30-May-2016 11:53:40 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @guithinning_OpeningFcn, ... 'gui_OutputFcn', @guithinning_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 32
% End initialization code - DO NOT EDIT % --- Executes just before guithinning is made visible. function guithinning_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to guithinning (see VARARGIN) % Choose default command line output for guithinning handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes guithinning wait for user response (see UIRESUME) % uiwait(handles.figure1); addMyPath; % --- Outputs from this function are returned to the command line. function varargout = guithinning_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in load_citra. function load_citra_Callback(hObject, eventdata, handles) % hObject handle to load_citra (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) if exist('rangkuman.mat', 'file') evalin('base','load(''rangkuman.mat'')'); else rangkuman = {'Nama file','Jumlah piksel awal','Jumlah piksel akhir','Jumlah piksel berkurang','Waktu(s)', 'One Pixel thickness', 'Critical Point', 'Not Critical Point', 'Thinning rate', 'Triangle before', 'Triangle after'}; assignin('base','rangkuman',rangkuman); savestr = 'save rangkuman rangkuman'; evalin('base', savestr); end [filename, pathname] = uigetfile('*.PNG','Pilih filenya:');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 33
addpath(pathname); rangkuman = evalin('base','rangkuman'); nomor = size(rangkuman,1); rangkuman{nomor+1,1} = filename; data=imread(filename); axes(handles.citra_asli); imshow(data); handles.gui.data=data; assignin('base','rangkuman',rangkuman); guidata(hObject,handles); % --- Executes on button press in Binerisasi. function Binerisasi_Callback(hObject, eventdata, handles) % hObject handle to Binerisasi (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) data=handles.gui.data; data1=rgb2gray(data); thresh=graythresh(data1); data2=im2bw(data1,thresh); assignin('base','binaryimg',data2); axes(handles.citra_biner); imshow(data2); handles.gui.data2=data2; guidata(hObject,handles); % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in close. function close_Callback(hObject, eventdata, handles) % hObject handle to close (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close(guithinning); function Thinningrate_Callback(hObject, eventdata, handles) % hObject handle to Thinningrate (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of Thinningrate as text % str2double(get(hObject,'String')) returns contents of Thinningrate as a double
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 34
% --- Executes during object creation, after setting all properties. function Thinningrate_CreateFcn(hObject, eventdata, handles) % hObject handle to Thinningrate (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function trianglebefore_Callback(hObject, eventdata, handles) % hObject handle to trianglebefore (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of trianglebefore as text % str2double(get(hObject,'String')) returns contents of trianglebefore as a double % --- Executes during object creation, after setting all properties. function trianglebefore_CreateFcn(hObject, eventdata, handles) % hObject handle to trianglebefore (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function OnePixelThickness_Callback(hObject, eventdata, handles) % hObject handle to OnePixelThickness (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 35
% handles
structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of OnePixelThickness as text % str2double(get(hObject,'String')) returns contents of OnePixelThickness as a double % --- Executes during object creation, after setting all properties. function OnePixelThickness_CreateFcn(hObject, eventdata, handles) % hObject handle to OnePixelThickness (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes during object creation, after setting all properties. function citra_biner_CreateFcn(hObject, eventdata, handles) % hObject handle to citra_biner (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: place code in OpeningFcn to populate citra_biner
% --- Executes on button press in reduksi_noise. function Reduksi_noise_Callback(hObject, eventdata, handles) % hObject handle to reduksi_noise (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in Thinning. function Thinning_Callback(hObject, eventdata, handles) %mulai menghitung waktu untuk thinning waktu=tic; reduksi=handles.gui.reduksi;%memanggil hasil reduksi variabel "L" %membalik biner untuk 1 adalah hitam dan 0 adalah background putih originalBWImage = (not(reduksi));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 36
%menghitung jumlah piksel hitam awal sebelum proses thinning rangkuman=evalin('base','rangkuman'); jumlahpikselawal = hitungjumlahpikselhitam(originalBWImage); nomor=size(rangkuman,1); rangkuman{nomor,2}=jumlahpikselawal; thinmh = get(handles.thinMethod, 'SelectedObject'); thintag = get(thinmh, 'Tag'); %hitung kolom dengan baris [rows, columns] = size(originalBWImage); if strcmp(thintag,'jskRadio') changing = 1;%deklarasi Changing adalah 1 thinnedImage = originalBWImage; deletedBWImage = ones(rows, columns); %mulai Kondisi 1 while changing changing = 0; for i=2:rows-1 for j=2:columns-1 %masking Pi,P1,P2,P3,P4,P5,P6,P7,P8 P = [thinnedImage(i,j) thinnedImage(i-1,j-1) thinnedImage(i-1,j) thinnedImage(i-1,j+1) thinnedImage(i,j+1) thinnedImage(i+1,j+1) thinnedImage(i+1,j) thinnedImage(i+1,j-1) thinnedImage(i,j-1) thinnedImage(i-1,j-1)]; %Iterasi pertama if (thinnedImage(i,j)==1 && (sum(P(2:end))>=2 && sum(P(2:end))<=6) && P(3)*P(5)*P(7)==0 && P(5)*P(7)*P(9)==0) A = 0; %menemukan jumlah perubahan 0 menjadi 1 for k=2:size(P,2)-1 if P(k)==0 && P(k+1)==1 A = A + 1; end end %jika memenuhi syarat maka menghapus if (A==1) deletedBWImage(i,j) = 0; changing = 1; end end end end %melakukan penghapusan setelah semua piksel di kunjungi thinnedImage = thinnedImage.*deletedBWImage; %Iterasi ke dua for i=2:rows-1 for j=2:columns-1 %masking Pi,P1,P2,P3,P4,P5,P6,P7,P8 P = [thinnedImage(i,j) thinnedImage(i-1,j-1) thinnedImage(i-1,j) thinnedImage(i-1,j+1) thinnedImage(i,j+1) thinnedImage(i+1,j+1) thinnedImage(i+1,j) thinnedImage(i+1,j-1) thinnedImage(i,j-1) thinnedImage(i-1,j-1)]; if (thinnedImage(i,j)==1 && (sum(P(2:end))>=3 && sum(P(2:end))<=6)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 37
&& P(3)*P(5)*P(9)==0 && P(3)*P(7)*P(9)==0) A = 0; %menemukan jumlah perubahan 0 menjadi 1 for k=2:size(P,2)-1 if P(k)==0 && P(k+1)==1 A = A + 1; end end %jika memenuhi syarat maka menghapus if (A==1) deletedBWImage(i,j) = 0; changing = 1; end end end end thinnedImage = thinnedImage.*deletedBWImage; end % Kondisi ke dua changing = 1; while changing changing = 0; for i=2:rows-1 for j=2:columns-1 %masking Pi,P1,P2,P3,P4,P5,P6,P7,P8 P = [thinnedImage(i,j) thinnedImage(i-1,j-1) thinnedImage(i-1,j) thinnedImage(i-1,j+1) thinnedImage(i,j+1) thinnedImage(i+1,j+1) thinnedImage(i+1,j) thinnedImage(i+1,j-1) thinnedImage(i,j-1) thinnedImage(i-1,j-1)]; %Removing pattern pertama if (thinnedImage(i,j)==1 && (sum(P(2:end))>=2 && sum(P(2:end))<=6) && (P(2)*P(9)*P(7)==1 && P(4)==0) && (P(4)*P(5)*P(7)==1 && P(2)==0)) A = 0; %menemukan jumlah perubahan 0 menjadi 1 for k=2:size(P,2)-1 if P(k)==0 && P(k+1)==1 A = A + 1; end end %jika memenuhi syarat maka menghapus if (A==1) deletedBWImage(i,j) = 0; changing = 1; end end end end thinnedImage = thinnedImage.*deletedBWImage; for i=2:rows-1 for j=2:columns-1 %masking Pi,P1,P2,P3,P4,P5,P6,P7,P8 P = [thinnedImage(i,j) thinnedImage(i-1,j-1) thinnedImage(i-1,j) thinnedImage(i-1,j+1) thinnedImage(i,j+1) thinnedImage(i+1,j+1) thinnedImage(i+1,j) thinnedImage(i+1,j-1)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 38
thinnedImage(i,j-1) thinnedImage(i-1,j-1)]; %Removing pattern ke dua if (thinnedImage(i,j)==1 && (sum(P(2:end))>=3 && sum(P(2:end))<=6) && (P(6)*P(7)*P(9)==1 && P(4)==0) && (P(5)*P(7)*P(8)==1 && P(2)==0)) A = 0; %menemukan jumlah perubahan 0 menjadi 1 for k=2:size(P,2)-1 if P(k)==0 && P(k+1)==1 A = A + 1; end end %jika memenuhi syarat maka menghapus if (A==1) deletedBWImage(i,j) = 0; changing = 1; end end end end thinnedImage = thinnedImage.*deletedBWImage; end else thinnedImage = Rosenfeld(not(originalBWImage)); thinnedImage = not(thinnedImage); end %menghitung jumlah piksel akhir hasil dari penipisan jumlahpikselakhir = hitungjumlahpikselhitam(thinnedImage); rangkuman{nomor,3}=jumlahpikselakhir; %menghitung jumlah piksel yang berkurang dalam persen jumlahpikselberkurang=(jumlahpikselawaljumlahpikselakhir)/jumlahpikselawal*100; axes(handles.citra_hasil); imshow(not(thinnedImage)); handles.gui.thinnedImage=thinnedImage; assignin('base','thinnedImg',thinnedImage); %selesai menghitung waktu proses thinning selesai = toc(waktu); rangkuman{nomor,5}=selesai; rangkuman{nomor,4}=jumlahpikselberkurang; %menampilkan jumlah piksel awal set(handles.awal,'String',jumlahpikselawal); set(handles.awal,'Enable','off');%seting agar field tidak dapat di edit %menampilkan jumlah piksel akhir set(handles.akhir,'String',jumlahpikselakhir); set(handles.akhir,'Enable','off');%seting agar field tidak dapat di edit %menampilkan jumlah piksel yang berkurang dalam persen set(handles.pikselberkurang,'String',jumlahpikselberkurang);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 39
set(handles.pikselberkurang,'Enable','off');%seting agar field tidak dapat di edit %menampilkan jumlah waktu proses thinning set(handles.waktu,'String',selesai); set(handles.waktu,'Enable','off'); % % %% mengitung jumlah triangle before thin totalbefore=0; for i=2:rows-1 for j=2:columns-1 trianglebefore = (originalBWImage(i,j)*originalBWImage(i,j-1)*originalBWImage(i1,j-1))+(originalBWImage(i,j)*originalBWImage(i-1,j1)*originalBWImage(i1,j))+(originalBWImage(i,j)*originalBWImage(i1,j)*originalBWImage(i1,j+1))+(originalBWImage(i,j)*originalBWImage(i1,j+1)*originalBWImage(i,j+1)); totalbefore= totalbefore+trianglebefore; end end % menampilkan jumlah triangle before thinning set(handles.trianglebefore,'String',totalbefore); set(handles.trianglebefore,'Enable','off');%seting agar field tidak dapat di edit rangkuman{nomor,10}=totalbefore; % % %% mengitung jumlah after thin totalafter=0; for i=2:rows-1 for j=2:columns-1 triangleafter = (thinnedImage(i,j)*thinnedImage(i,j-1)*thinnedImage(i-1,j1))+(thinnedImage(i,j)*thinnedImage(i-1,j-1)*thinnedImage(i1,j))+(thinnedImage(i,j)*thinnedImage(i-1,j)*thinnedImage(i1,j+1))+(thinnedImage(i,j)*thinnedImage(i1,j+1)*thinnedImage(i,j+1)); totalafter= totalafter+triangleafter; end end % menampilkan jumlah triangle after thinning set(handles.triangleafter,'String',totalafter); set(handles.triangleafter,'Enable','off');%seting agar field tidak dapat di edit rangkuman{nomor,11}=totalafter; Thinningrate=1-(totalafter/totalbefore); set(handles.Thinningrate,'String',Thinningrate); set(handles.Thinningrate,'Enable','off');%seting agar field tidak dapat di edit rangkuman{nomor,9}=Thinningrate; [notCriticalPoint] = OnePixelThickness(not(thinnedImage));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 40
set(handles.NotCriticalPoint,'String',notCriticalPoint); set(handles.NotCriticalPoint,'Enable','off');%seting agar field tidak dapat di edit rangkuman{nomor,8}=notCriticalPoint; CriticalPoint = jumlahpikselakhir - notCriticalPoint; set(handles.CriticalPoint,'String',CriticalPoint); set(handles.CriticalPoint,'Enable','off');%seting agar field tidak dapat di edit rangkuman{nomor,7}= CriticalPoint; % set(handles.CriticalPoint,'String',criticalPoint); % set(handles.CriticalPoint,'Enable','off');%seting agar field tidak dapat di edit % rangkuman{nomor,7}= criticalPoint; OnePixelThicknes = (jumlahpikselakhir notCriticalPoint)/jumlahpikselakhir*100; set(handles.OnePixelThickness,'String', OnePixelThicknes); set(handles.OnePixelThickness,'Enable','off');%seting agar field tidak dapat di edit rangkuman{nomor,6}= OnePixelThicknes; guidata(hObject,handles); assignin('base','rangkuman',rangkuman); evalin('base','save rangkuman rangkuman'); % --- Executes during object creation, after setting all properties. function citra_asli_CreateFcn(hObject, eventdata, handles) % hObject handle to citra_asli (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: place code in OpeningFcn to populate citra_asli % ------------------------------------------------------------------function Untitled_1_Callback(hObject, eventdata, handles) % hObject handle to Untitled_1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % ------------------------------------------------------------------function Untitled_2_Callback(hObject, eventdata, handles) % hObject handle to Untitled_2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 41
cla(handles.citra_asli,'reset') cla(handles.citra_biner,'reset') cla(handles.citra_reduksi,'reset') cla(handles.citra_hasil,'reset')
% ------------------------------------------------------------------function Untitled_3_Callback(hObject, eventdata, handles) % hObject handle to Untitled_3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % ------------------------------------------------------------------function Untitled_4_Callback(hObject, eventdata, handles) % hObject handle to Untitled_4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % ------------------------------------------------------------------function Untitled_6_Callback(hObject, eventdata, handles) % hObject handle to Untitled_6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close(guithinning); % --- Executes during object creation, after setting all properties. function reduksi_noise_CreateFcn(hObject, eventdata, handles) % hObject handle to axes8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: place code in OpeningFcn to populate axes8 % --- Executes on button press in reduksi_noise. function reduksi_noise_Callback(hObject, eventdata, handles) % hObject handle to reduksi_noise (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) data2=handles.gui.data2; reduksi=medfilt2(double(data2),'indexed'); assignin('base','reduksiimg',logical(reduksi));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 42
axes(handles.citra_reduksi); imshow(logical(reduksi)); handles.gui.reduksi=logical(reduksi); guidata(hObject,handles); % --- Executes during object creation, after setting all properties. function citra_reduksi_CreateFcn(hObject, eventdata, handles) % hObject handle to citra_reduksi (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: place code in OpeningFcn to populate citra_reduksi
function triangleafter_Callback(hObject, eventdata, handles) % hObject handle to triangleafter (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of triangleafter as text % str2double(get(hObject,'String')) returns contents of triangleafter as a double % --- Executes during object creation, after setting all properties. function triangleafter_CreateFcn(hObject, eventdata, handles) % hObject handle to triangleafter (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function pikselberkurang_Callback(hObject, eventdata, handles) % hObject handle to pikselberkurang (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of pikselberkurang as text
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 43
% str2double(get(hObject,'String')) returns contents of pikselberkurang as a double % --- Executes during object creation, after setting all properties. function pikselberkurang_CreateFcn(hObject, eventdata, handles) % hObject handle to pikselberkurang (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function NotCriticalPoint_Callback(hObject, eventdata, handles) % hObject handle to NotCriticalPoint (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of NotCriticalPoint as text % str2double(get(hObject,'String')) returns contents of NotCriticalPoint as a double % --- Executes during object creation, after setting all properties. function NotCriticalPoint_CreateFcn(hObject, eventdata, handles) % hObject handle to NotCriticalPoint (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function CriticalPoint_Callback(hObject, eventdata, handles) % hObject handle to CriticalPoint (see GCBO) % eventdata reserved - to be defined in a future version of
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 44
MATLAB % handles
structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of CriticalPoint as text % str2double(get(hObject,'String')) returns contents of CriticalPoint as a double % --- Executes during object creation, after setting all properties. function CriticalPoint_CreateFcn(hObject, eventdata, handles) % hObject handle to CriticalPoint (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in pushbutton8. function pushbutton8_Callback(hObject, eventdata, handles) % hObject handle to pushbutton8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) [filename, pathname, filterindex] = uiputfile( ... {'*.jpg', 'Jpeg-Files (*.jpg)';... '*.bmp','Bitmap-Files (*.bmp)';... '*.gif','Gif-File (*.fig)';... '*.png','Web Image Files (*.png)';... '*.*', 'All Files (*.*)'},... 'Save Image'); if isequal(filename,0) || isequal(pathname,0) %disp('User selected Cancel') %msgbox ('Anda Telah Melakukan Cancel Untuk Menyimpan Skeleton'); %return question1='Anda yakin tidak jadi menyimpan citra hasil thinning?'; reponse1=questdlg(question1,'Menyimpan Citra?', 'Yes', 'No',2); if strcmp(reponse1,'Yes') warndlg('Citra hasil thinning tidak di simpan!','!! Warning !!') return elseif strcmp(reponse1,'No')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 45
...
[filename, pathname, filterindex] = uiputfile(
{'*.jpg', 'Jpeg-Files (*.jpg)';... '*.bmp','Bitmap-Files (*.bmp)';... '*.gif','Gif-File (*.fig)';... '*.png','Web Image Files (*.png)';... '*.*', 'All Files (*.*)'},... 'Save Image');
return end end
orimage=imread('*.jpg'); delete('*.jpg'); datatowrite=uint8(orimage); imwrite(datatowrite, filename,'jpg'); msgbox ('Save Succes!','Save Success');
else
return
datatowrite=evalin('base','thinnedImg'); imwrite(not(datatowrite), filename,'jpg'); msgbox ('Save Succes!','Save Success');
end % --- Executes during object creation, after setting all properties. function awal_CreateFcn(hObject, eventdata, handles) % hObject handle to awal (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function akhir_Callback(hObject, eventdata, handles) % hObject handle to akhir (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of akhir as text % str2double(get(hObject,'String')) returns contents of akhir as a double
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 46
% --- Executes during object creation, after setting all properties. function akhir_CreateFcn(hObject, eventdata, handles) % hObject handle to akhir (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function waktu_Callback(hObject, eventdata, handles) % hObject handle to waktu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of waktu as text % str2double(get(hObject,'String')) returns contents of waktu as a double % --- Executes during object creation, after setting all properties. function waktu_CreateFcn(hObject, eventdata, handles) % hObject handle to waktu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
function awal_Callback(hObject, eventdata, handles) % hObject handle to awal (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 47
% Hints: get(hObject,'String') returns contents of awal as text % str2double(get(hObject,'String')) returns contents of awal as a double
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 48
Source code One pixel thickness function [notCriticalPoint] = OnePixelThickness(thinnedImage) % ONEPIXELTHICKNESS ==> analysis thinning using mathematic morphologi % % For name or full path name of digital picture, is used as input. % structuring template A (2x2 window) % the tamplate in the set A are patterns found in connected components that % are not skeletons. % the element A1(1,1) as the center of the template A1, % the element A1(2,2) is don't care. % 0 0 % 0 x A1 = [0 0 ; 0 1]; % the element A2(1,2) as the center of the template A2, % the element A2(2,1) is don't care. % 0 0 % x 0 A2 = [0 0 ; 1 0]; % the element A3(2,2) as the center of the template A3, % the element A3(1,1) is don't care. % x 0 % 0 0 A3 = [1 0 ; 0 0]; % the element A4(2,1) as the center of the template A4, % the element A4(1,2) is don't care. % 0 x % 0 0 A4 = [0 1 ; 0 0]; % structuring template B (3x3 window) are possible configurations of % critical point of a skeleton that contain one of the pattern in A % Structuring template B1, which symbol 'x' is don't care element. % 0 1 x % 1 0 0 % x 0 x B1 = [0 1 1 ; 1 0 0 ; 1 0 1]; % Structuring template B2, which symbol 'x' is don't care element. % x 1 0 % 0 0 1 % x 0 x B2 = [1 1 0 ; 0 0 1 ; 1 0 1]; % Structuring template B3, which symbol 'x' is don't care element. % x 0 x % 0 0 1 % x 1 0 B3 = [1 0 1 ; 0 0 1 ; 1 1 0]; % Structuring template B4, which symbol 'x' is don't care element.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 49
% x 0 x % 1 0 0 % 0 1 x B4 = [1 0 1 ; 1 0 0 ; 0 1 1]; % structuring template C are other possible configuration of critical point % of a skeleton that contain all of the pattern in A % x 0 x % 0 0 0 % x 0 x C = [1 0 1 ; 0 0 0 ; 1 0 1]; % read all pixels in thin_img
[height,width]=size(thinnedImage); % variabel to indicate foreground and background. fGround = 0; % Copy value of 'imgThin_biner2' temp = thinnedImage; sumTemplateA = 0; sumTemplateBC=0; notCriticalPoint = 0; for i=2:height-1 for j=2:width-1 if(temp(i,j) == fGround) if(((temp(i,j)==A1(1,1))&&(temp(i,j+1)==A1(1,2))&&(temp(i+1,j)==A1 (2,1)))||... ((temp(i,j)==A2(1,2))&&(temp(i,j1)==A2(1,1))&&(temp(i+1,j)==A2(2,2)))||... ((temp(i,j)==A3(2,2))&&(temp(i1,j)==A3(1,2))&&(temp(i,j-1)==A3(2,1)))||... ((temp(i,j)==A4(2,1))&&(temp(i1,j)==A4(1,1))&&(temp(i,j+1)==A4(2,2)))) % template A(A1,A2,A3,A4) does exist in image skeleton sumTemplateA = sumTemplateA+1; % template B(B1,B2,B3,B4) & C if(((temp(i-1,j-1)==B1(1,1))&&(temp(i-1,j)==B1(1,2))&&(temp(i,j1)==B1(2,1))&&(temp(i,j)==B1(2,2))&&(temp(i,j+1)==B1(2,3))&&(temp( i+1,j)==B1(3,2)))||... ((temp(i-1,j)==B2(1,2))&&(temp(i1,j+1)==B2(1,3))&&(temp(i,j1)==B2(2,1))&&(temp(i,j)==B2(2,2))&&(temp(i,j+1)==B2(2,3))&&(temp( i+1,j)==B2(3,2)))||... ((temp(i-1,j)==B3(1,2))&&(temp(i,j1)==B3(2,1))&&(temp(i,j)==B3(2,2))&&(temp(i,j+1)==B3(2,3))&&(temp( i+1,j)==B3(3,2))&&(temp(i+1,j+1)==B3(3,3)))||... ((temp(i-1,j)==B4(1,2))&&(temp(i,j1)==B4(2,1))&&(temp(i,j)==B4(2,2))&&(temp(i,j+1)==B4(2,3))&&(temp(
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 50
i+1,j-1)==B4(3,1))&&(temp(i+1,j)==B4(3,2)))||... ((temp(i-1,j)==C(1,2))&&(temp(i,j1)==C(2,1))&&(temp(i,j)==C(2,2))&&(temp(i,j+1)==C(2,3))&&(temp(i+1 ,j)==C(3,2)))) sumTemplateBC = sumTemplateBC+1; end end
sumTemplateA= sumTemplateA+sumTemplateBC; notCriticalPoint = sumTemplateA;
end end end
Source code hitung jumlah piksel hitam function [jumlah]=hitungjumlahpikselhitam(file) [baris,kolom]=size(file); jumlah=0; for i=1:baris for j=1:kolom if file(i,j)==1 jumlah=jumlah+1; end end end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 51
Lampiran 6. Source code algoritma Rosenfeld function [thin,runningTime]=Rosenfeld(newImage) %Modul untuk penipisan dengan metode NWG citra=newImage; citras=citra;%citras adalah citra yang dibuang pixel2nya,kmudian akan dijadikan masukkan pada iterasi berikutnya [baris,kolom]=size(citra); objek=0; %objek=hitam=0 latar=1; %latar=putih=1 bantu_point_dihapus=0; tic N = 1; %var N merupakan var bantu untuk memutuskan apakah iterasi tetap dilakukan, jika ada pixel yang diubah dari hitam ke putih maka nilai n akan bertambah, maka jika n=0 iterasi dihentikan while(N>0) N=0; bantu_point_dihapus=bantu_point_dihapus+1; for i=1+1:baris-1 for j=1+1:kolom-1 if (citra(i,j)==objek && citra(i-1,j)==latar)%north, first subiteration xhp=0; %nilai dari perhitungan xhp b=0; mat_xh(2,2)=citra(i,j); %p mat_xh(2,3)=citra(i,j+1); %x1 mat_xh(3,3)=citra(i+1,j+1); %x2 mat_xh(3,2)=citra(i+1,j); %x3 mat_xh(3,1)=citra(i+1,j-1); %x4 mat_xh(2,1)=citra(i,j-1); %x5 mat_xh(1,1)=citra(i-1,j-1); %x6 mat_xh(1,2)=citra(i-1,j); %x7 mat_xh(1,3)=citra(i-1,j+1); %x8 xhp=simple(mat_xh); b=bp(mat_xh); if(b>1 && xhp==1) citras(i,j)=latar; N=N+1; end end end end citra=citras;%isi citra kemudian diganti dengan citras yaitu citra yang udah dibuang north bordernya, jadi inputan iterasi pada east border merupakan hasil dari iterasi north border for i=1+1:baris-1 for j=1+1:kolom-1 if (citra(i,j)==objek && citra(i,j+1)==latar)%east, second subiteration xhp=0; %nilai dari perhitungan xhp b=0;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 52
mat_xh(2,2)=citra(i,j); mat_xh(2,3)=citra(i,j+1); mat_xh(3,3)=citra(i+1,j+1); mat_xh(3,2)=citra(i+1,j); mat_xh(3,1)=citra(i+1,j-1); mat_xh(2,1)=citra(i,j-1); mat_xh(1,1)=citra(i-1,j-1); mat_xh(1,2)=citra(i-1,j); mat_xh(1,3)=citra(i-1,j+1); xhp=simple(mat_xh); b=bp(mat_xh); if(b>1 && xhp==1) citras(i,j)=latar; N=N+1; end end end end
%p %x1 %x2 %x3 %x4 %x5 %x6 %x7 %x8
citra=citras;%isi citra kemudian diganti dengan citras yaitu citra yang udah dibuang north+east bordernya, jadi inputan iterasi pada south border merupakan hasil dari iterasi north+east border for i=1+1:baris-1 for j=1+1:kolom-1 if (citra(i,j)==objek && citra(i+1,j)==latar)%south, third subiteration xhp=0; %nilai dari perhitungan xhp b=0; mat_xh(2,2)=citra(i,j); %p mat_xh(2,3)=citra(i,j+1); %x1 mat_xh(3,3)=citra(i+1,j+1); %x2 mat_xh(3,2)=citra(i+1,j); %x3 mat_xh(3,1)=citra(i+1,j-1); %x4 mat_xh(2,1)=citra(i,j-1); %x5 mat_xh(1,1)=citra(i-1,j-1); %x6 mat_xh(1,2)=citra(i-1,j); %x7 mat_xh(1,3)=citra(i-1,j+1); %x8 xhp=simple(mat_xh); b=bp(mat_xh); if(b>1 && xhp==1) citras(i,j)=latar; N=N+1; end end end end citra=citras;%isi citra kemudian diganti dengan citras yaitu citra yang udah dibuang north+east+west bordernya, jadi inputan iterasi pada south border merupakan hasil dari iterasi north+east+west border for i=1+1:baris-1 for j=1+1:kolom-1 if (citra(i,j)==objek && citra(i,j-1)==latar)%west, fourth
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 53
subiteration
xhp=0; %nilai dari perhitungan xhp b=0; mat_xh(2,2)=citra(i,j); %p mat_xh(2,3)=citra(i,j+1); %x1 mat_xh(3,3)=citra(i+1,j+1); %x2 mat_xh(3,2)=citra(i+1,j); %x3 mat_xh(3,1)=citra(i+1,j-1); %x4 mat_xh(2,1)=citra(i,j-1); %x5 mat_xh(1,1)=citra(i-1,j-1); %x6 mat_xh(1,2)=citra(i-1,j); %x7 mat_xh(1,3)=citra(i-1,j+1); %x8 xhp=simple(mat_xh); b=bp(mat_xh); if(b>1 && xhp==1) citras(i,j)=latar; N=N+1; end end end end citra=citras;%isi citra kemudian diganti dengan citras yaitu citra yang udah dibuang north+east+west bordernya, jadi inputan iterasi pada south border merupakan hasil dari iterasi north+east+west border total_N(bantu_point_dihapus)=N; end toc waktu=toc; hapus=cumsum(total_N); point_dihapus=hapus(end); thin=citras; runningTime=waktu;
Source code simple %syntax function => function [out1, out2, ...] = funname(in1, in2, ...) function [xh] = simple(matriks)%duh ambil pixel2 8 tetangganya p gmn ya... objek=0; latar=1; b=0; if((matriks(2,3)==latar)&((matriks(3,3)==objek)|(matriks(3,2)==obj ek))) b=b+1; end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L - 54
if((matriks(3,2)==latar)&((matriks(3,1)==objek)|(matriks(2,1)==obj ek))) b=b+1; end if((matriks(2,1)==latar)&((matriks(1,1)==objek)|(matriks(1,2)==obj ek))) b=b+1; end if((matriks(1,2)==latar)&((matriks(1,3)==objek)|(matriks(2,3)==obj ek))) b=b+1; end xh=b;
Source code bp function [nilai_bp]= Bp(matriks) objek=0; i=2;j=2; B=0; %syarat kedua adalah titik yang diuji tidak isolated or endpoint if(matriks(i,j+1)==objek) B=B+1; %x1 end if(matriks(i+1,j+1)==objek) B=B+1; %x2 end if(matriks(i+1,j)==objek) B=B+1; %x3 end if(matriks(i+1,j-1)==objek) B=B+1; %x4 end if(matriks(i,j-1)==objek) B=B+1; %x5 end if(matriks(i-1,j-1)==objek) B=B+1; %x6 end if(matriks(i-1,j)==objek) B=B+1; %x7 end if(matriks(i-1,j+1)==objek) B=B+1; %x8 end nilai_bp=B;