Studi Perbandingan Beberapa Algoritma Thinning Dalam Pengenalan Pola

(1)

STUDI PERBANDINGAN BEBERAPA ALGORITMA THINNING

DALAM PENGENALAN POLA

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

JERNIHTA PARDEDE 081421006

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2010


(2)

PERSETUJUAN

Judul : STUDI PERBANDINGAN BEBERAPA

ALGORITMA THINNING DALAM PENGENALAN POLA.

Kategori : SKRIPSI

Nama : JERNIHTA PARDEDE

Nomor Induk Mahasiswa : 081421006

Program Studi : EKSTENSI S1 ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Juni 2010

Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Syahriol Sitorus, S.Si. MIT Prof. Dr. Muhammad Zarlis

NIP. 197103101997031004 NIP. 195707011986011003

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer FMIPA USU Ketua,

Prof. Dr. Muhammad Zarlis NIP. 195707011986011003


(3)

PERNYATAAN

STUDI PERBANDINGAN BEBERAPA ALGORITMA THINNING DALAM PENGENALAN POLA

SKRIPSI

Penulis mengakui bahwa skripsi ini adalah hasil kerja penulis sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juli 2010

JERNIHTA PARDEDE 081421006


(4)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa dengan limpah kurnia-Nya Skripsi ini berhasil diselesaikan dalam waktu yang ditetapkan.

Ucapan terima kasih penulis sampaikan kepada Prof. Dr. Muhammad Zarlis dan Syahriol Sitorus, S.Si, MIT, selaku Ketua dan Sekretaris Ilmu Komputer , sekaligus pembimbing pada penyelesaian Skripsi ini yang telah memberikan panduan dan penuh kepercayaan kepada penulis untuk menyempurnakan kajian ini. Panduan ringkas, padat dan professional telah diberikan kepada penulis agar penulis dapat menyelesaikan tugas ini. Kepada Drs. Agus Salim Harahap, M.Si, dan Syahril Effendi S.Si, MIT selaku dosen penguji, Terima kasih penulis ucapkan buat saran dan masukannya serta bimbingannya. Ucapan terima kasih juga kepada Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, Semua dosen pada Departemen Ilmu Komputer FMIPA USU, pegawai di Ilmu Komputer FMIPA USU, akhirnya tidak terlupakan ayahanda R.S Pardede, ibunda R.Simbolon, abang-abang penulis: J.E.Binhot Pardede, ST, Jhonny Pardede, Jenri Pardede, adik penulis Roy Carles Pardede, dan kakanda Friska Nadeak, Amd. Yang terkasih Antoni Siahaan, Sahabat-sahabat Faithful: Dermawani Sitohang, Lindawati, Mirawati Barus, Novita Ginting, adik PA penulis Alexandro Fleming Marbun dan Fatresha Aritonang dan Teman-teman Ekstensi ilmu komputer 08 USU, Serta semua ahli keluarga yang selama ini memberikan bantuan, doa, dan semangat. Semoga Tuhan Yang Maha Kuasa membalasnya.


(5)

ABSTRAK

Thinning merupakan operasi morfologis yang digunakan untuk menghilangkan piksel foreground tertentu dari citra. Thinning digunakan untuk proses pengenalan pola,

misalnya dalam pengenalan karakter, pengenalan sidik jari, dan pemrosesan dokumen. Operasi thinning mengambil rangka dari citra, dengan cara membuang titik-titik atau

layer terluar dari citra sampai semua garis atau kurva hanya setebal satu piksel. Dalam

melakukan thinning citra yang digunakan adalah citra biner. Beberapa algoritma thinning yang akan dibahas adalah algoritma ZhangSuen, algoritma Stentiford, algoritma Hilditch, dan algoritma Rosenfeld. Skripsi ini bertujuan untuk menjelaskan mengenai algoritma-algoritma thinning dan urutan langkah-langkah eksekusinya serta untuk melihat kelebihan serta kekurangan masing-masing algoritma thinning tersebut.


(6)

COMPARATIVE STUDY THE ALGORITHM OF THINNING IN PATTERN RECOGNITION

ABSTRACT

Thinning is morphology operation which used to disappear foreground from the image. Thinning uses to process pattern recognition, example: in pattern recognition, finger print recognition, and processing document. Thinning operation take image skeleton with deleting points or outside layer from image to be line or curve to be one pixel. The image uses among binary image. Some the algorithm of thinning will be discuss are the ZhangSuen algorithm, Stentiford algorithm, Hilditch algorithm, Rosenfeld algorithm. This script have to explain about some the algorithm of thinning and sequence excecution step by step and to know advantages and disadvantages the algorithm of thinning.


(7)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii

Penghargaan iv

Abstrak v

Abstract vi

Daftar isi vii

Daftar Gambar ix

Daftar Tabel xi

BAB 1 PENDAHULUAN 1

1.1 Latar Belakang 1

1.2 Perumusan Masalah 2 1.3 Batasan Masalah 3

1.4 Tujuan Penelitian 3 1.5 Manfaat Penelitian 3 1.6 Metode Penelitian 4 1.7 Sistematika Penulisan 6 BAB 2 TINJAUAN TEORITIS 8 2.1 Citra RGB 8

2.2 Piksel 9

2.3 Pengenalan Pola 9

2.4 Citra GrayScale 10

2.5 Citra Treshold 11

2.6 Citra Biner 11

2.7 Operasi Morfologi 12 2.7.1 Algoritma Thinning 12

2.7.1.1 Algoritma ZhangSuen 15 2.7.1.2 Algoritma Stentiford 17 2.7.1.3 Algoritma Hilditch 19 2.7.1.4 Algoritma Rosenfeld 22 2.8 Flowchart 26

BAB 3 ANALISIS PERNCANGAN APLIKASI 28 3.1 Analisis Perancangan dan Pengembangan 28 3.2 Matriks 28

3.3 Operator Logika 29

3.4 Array 30

3.4.1 Deklarasi Array 30

3.5 Pengalamatan Piksel pada Matriks 30


(8)

3.7 Simulasi Proses cara kerja Algoritma Thinning 33

3.7.1 Algoritma ZhangSuen 33

3.7.2 Algoritma Stentiford 36

3.7.3 Algoritma Hilditch 41

3.7.4 Algoritma Rosenfeld 44

3.8 Analisis Jumlah Penulusuran 49

3.9 Analisis Jumlah Piksel Terhapus 49

3.10 Analisis Jumlah Waktu Penulusuran 50

3.11 Flowchart 50

3.11.1 Flowchart Algoritma ZhangSuen 53

3.11.2 Flowchart Algoritma Stentiford 55

3.11.3 Flowchart Algoritma Hilditch 59

3.11.4 Flowchart Algoritma Rosenfeld 60

3.12 Perancangan Tampilan 64

3.12.1 Perancangan Antar Muka Pemakai 64

3.12.1.1 Perancangan Tampilan Utama 64

3.12.1.2 Menu Profil 65

3.12.1.3 Menu Program 66

BAB 4 IMPLEMENTASI APLIKASI 67

4.1 Implementasi 67

4.2 Persiapan Teknis 67

4.3 Perancangan Antar Muka Pemakai 68

4.3.1 Menu Utama 68

4.3.1.1 Tombol Proses Penggunaan Software 71

4.3.1.2 Menu Look 75

4.3.1.3 Menu Materi Algoritma Thinning 76

4.3.1.4 Menu Profil 77

BAB 5 PENUTUP 79

5.1 Kesimpulan 79

5.1 Saran 80

DAFTAR PUSTAKA 81


(9)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Citra RGB 8

Gambar 2.2 (a) Pola Awal (b) Pola Hasil Thinning 13

Gambar 2.3 Contoh Piksel p1 dengan dengan 8-tetangga 15

Gambar 2.4 Contoh Piksel N(p1)=4 dan S(p1)=3 16

Gambar 2.5 Template Stentiford 17

Gambar 2.6 Urutan Nilai dari Piksel algoritma Stentitord 18

Gambar 2.7 Contoh Tampilan jumlah Konektifitas 18

Gambar 2.8 Contoh titik yang tidak memenuhi kriteria 1 algoritma Hilditch 20 Gambar 2.9 Contoh titik yang tidak memenuhi kriteria 2 algoritma Hilditch 20

Gambar 2.10 Contoh titik pada criteria 3 algoritma Hilditch 21

Gambar 2.11 Contoh titik pada criteria 4 algoritma Hilditch 21

Gambar 2.12 Contoh label 8 tetangga dari p1 22

Gambar 2.13 Contoh Piksel p1 sebagai titik batas utara 22

Gambar 2.14 Contoh Piksel p1 sebagai titik batas timur 22

Gambar 2.15 Contoh Piksel p1 sebagai titik batas Barat 23

Gambar 2.16 Contoh Piksel p1 sebagai titik batas Selatan 23

Gambar 2.17 Contoh Piksel dimana p1 adalah 4-titik endpoint 23

Gambar 2.18 Contoh Piksel dimana p1 adalah 8-titik endpoint 23

Gambar 2.25 Contoh Piksel dimana p1 adalah 4-titik terisolasi 24

Gambar 2.26 Contoh Piksel dimana p1 adalah 4-titik terisolasi 24

Gambar 2.27 Dua Contoh dimana p1 bukanlah 4-simple point 24

Gambar 2.28 Dua Contoh dimana p1 bukanlah 8-simple point 25

Gambar 3.1 Struktur Matrik 29

Gambar 3.2 Bentuk pengalamatan Citra 31

Gambar 3.3 Penulusuran dari Kiri kekanan dari atas kebawah 32

Gambar 3.4 Penulusuran dari bawah ke atas dari kiri ke kanan 32

Gambar 3.5 Penulusuran dari kanan ke kiri dari atas kebawah 33

Gambar 3.6 Penulusuran dari atas ke bawah dari kanan ke kiri 33

Gambar 3.7 Contoh Citra awal ZhangSuen 34

Gambar 3.8 Proses Langkah 1 pada Algoritma ZhangSuen 35

Gambar 3.9 Proses Langkah 2 pada Algoritma ZhangSuen 36

Gambar 3.10 Contoh Citra awal Stentiford 36

Gambar 3.11 Template Stentiford 37

Gambar 3.12 Urutan Konektifitas algoritma stentiford 37

Gambar 3.13 Proses Langkah 1 pada Algoritma Stentiford 38

Gambar 3.14 Proses Langkah 2 pada Algoritma Stentiford 38

Gambar 3.15 Proses Langkah 3 pada Algoritma Stentiford 40

Gambar 3.16 Proses Langkah 4 pada Algoritma Stentiford 41

Gambar 3.17 Contoh Citra awal Hilditch 41

Gambar 3.18 Proses Langkah 1 pada Algoritma Hilditch 42

Gambar 3.19 Proses Langkah 2 pada Algoritma Hilditch 43


(10)

Gambar 3.21 Contoh Citra awal Rosenfeld 44

Gambar 3.22 Contoh label 8 tetangga dari p1 44

Gambar 3.23 Contoh Piksel p1 sebagai titik batas utara 45

Gambar 3.24 Hasil proses langkah 1 pada algoritma Rosenfeld 46

Gambar 3.25 Contoh Piksel p1 sebagai titik batas selatan 46

Gambar 3.26 Hasil proses langkah 2 pada algoritma Rosenfeld 47

Gambar 3.27 Contoh Piksel p1 sebagai titik batas Timur 47

Gambar 3.28 Hasil proses langkah 3 pada algoritma Rosenfeld 48

Gambar 3.29 Contoh Piksel p1 sebagai titik batas Barat 48

Gambar 3.30 Hasil proses langkah 3 pada algoritma Rosenfeld 49

Gambar 3.31 Flowchart Urutan rancangan bentuk arsitektur aplikasi 51

Gambar 3.32 Flowchart Algoritma ZhangSuen langkah 1 53

Gambar 3.33 Flowchart Algoritma ZhangSuen langkah 2 54

Gambar 3.34 Flowchart Algoritma Stentiford langka h 1 55

Gambar 3.35 Flowchart Algoritma Stentiford langkah 2 56

Gambar 3.36 Flowchart Algoritma Stentiford langka h 3 57

Gambar 3.37 Flowchart Algoritma Stentiford langka h 4 58

Gambar 3.38 Flowchart Algoritma Hilditch langka h 1 59

Gambar 3.39 Flowchart Algoritma Rosenfeld langkah 1 60

Gambar 3.40 Flowchart Algoritma Rosenfeld langkah 2 61

Gambar 3.41 Flowchart Algoritma Rosenfeld langkah 3 62

Gambar 3.42 Flowchart Algoritma Rosenfeld langkah 4 63

Gambar 3.43 Rancangan Menu Utama 65

Gambar 3.44 Rancangan Menu Profil 66

Gambar 3.45 Tampilan Menu teori program 66

Gambar 4.1 Tampilan Menu Utama 69

Gambar 4.2 Tampilan Menu Tombol Browse 71

Gambar 4.3 Tampilan Citra awal 71

Gambar 4.4 Tampilan citra hasil GrayScale 72

Gambar 4.5 Tampilan citra hasil Treshold 72

Gambar 4.6 Tampilan citra hasil Binerisasi 73

Gambar 4.7 Tampilan citra hasil algoritma ZhangSuen 73

Gambar 4.8 Tampilan citra hasil algoritma Stentiford 74

Gambar 4.9 Tampilan citra hasil algoritma Hilditch 74

Gambar 4.10 Tampilan citra hasil algoritma Rosenfeld 75

Gambar 4.11 Tampilan Look 76

Gambar 4.12 Tampilan Menu Materi 77


(11)

DAFTAR TABEL

Halaman

Tabel 2.1 Bagian-bagian dari Flowchart 27

Tabel 3.1 Keterangan Gambar Pengalamatan Citra 31

Tabel 4.1 Komponen Menu Utama 70

Tabel 4.2 Komponen Look 76

Tabel 4.3 Komponen Menu Property 77


(12)

ABSTRAK

Thinning merupakan operasi morfologis yang digunakan untuk menghilangkan piksel foreground tertentu dari citra. Thinning digunakan untuk proses pengenalan pola,

misalnya dalam pengenalan karakter, pengenalan sidik jari, dan pemrosesan dokumen. Operasi thinning mengambil rangka dari citra, dengan cara membuang titik-titik atau

layer terluar dari citra sampai semua garis atau kurva hanya setebal satu piksel. Dalam

melakukan thinning citra yang digunakan adalah citra biner. Beberapa algoritma thinning yang akan dibahas adalah algoritma ZhangSuen, algoritma Stentiford, algoritma Hilditch, dan algoritma Rosenfeld. Skripsi ini bertujuan untuk menjelaskan mengenai algoritma-algoritma thinning dan urutan langkah-langkah eksekusinya serta untuk melihat kelebihan serta kekurangan masing-masing algoritma thinning tersebut.


(13)

COMPARATIVE STUDY THE ALGORITHM OF THINNING IN PATTERN RECOGNITION

ABSTRACT

Thinning is morphology operation which used to disappear foreground from the image. Thinning uses to process pattern recognition, example: in pattern recognition, finger print recognition, and processing document. Thinning operation take image skeleton with deleting points or outside layer from image to be line or curve to be one pixel. The image uses among binary image. Some the algorithm of thinning will be discuss are the ZhangSuen algorithm, Stentiford algorithm, Hilditch algorithm, Rosenfeld algorithm. This script have to explain about some the algorithm of thinning and sequence excecution step by step and to know advantages and disadvantages the algorithm of thinning.


(14)

BAB 1 PENDAHULUAN

1.1 Latar Belakang

Pada saat sekarang ini teknologi komputer telah berkembang pesat. Teknologi komputer ini pada mulanya hanya berkembang dalam teknologi pengolahan data saja. Namun seiring perkembangan jaman dan teknologi di bidang lain, maka teknologi komputer saat ini pun ikut menyesuaikan diri. Salah satu yang sedang pesat berkembang adalah teknologi komputer dalam bidang multimedia, dimana bidang multimedia saat ini sedang menjadi pusat perhatian. Teknologi komputer multimedia ini meliputi pengolahan citra (image), audio, video, dan lain sebagainya.

Dalam kecerdasan buatan dikenal suatu teknik pengenalan pola (pattern

recognition). Pola yang dimaksud adalah matriks dua dimensi. Syarat yang harus

dipenuhi sebelum melakukan proses pengenalan pola dengan melakukan pengerangkaan (skeleton) terhadap citra tersebut. Proses ini dikenal dengan metode algoritma Thinning. Selanjutnya pola yang sudah di thinning akan diproses dalam pengenalan pola dengan berbagai metode.

Thinning merupakan suatu algoritma untuk proses pengerangkaan sebuah citra (image). Tujuannya adalah mengurangi bagian yang tidak perlu (redundant) sehingga dihasilkan informasi yang esensial saja. Pola penipisan harus tetap mempunyai bentuk yang menyerupai pola asalnya. Proses ini kerap diterapkan pada pra-Thinning digunakan misalnya tahap awal dalam proses pengenalan pola. Hal ini diimplementasikan dengan mengubah citra awal dengan pola binary menjadi representasi kerangka (skeletal representation) image tersebut Dengan thinning, suatu


(15)

fitur dari objek pada suatu citra dapat dikenali dan diekstrak sehingga dapat digunakan untuk pemrosesan lebih lanjut. Pada citra berbentuk garis, skeleton menunjukkan semua informasi dari objek aslinya. Komponen-komponen dari skeleton, yaitu posisi, orientasi, dan panjang segmen-segmen garis skeleton mewakili garis-garis yang membentuk image. Komponen-komponen ini mempermudah karakterisasi komponen-komponen dari image tersebut. Misalnya panjang dari suatu bentuk dapat diperkirakan dengan memperhitungkan ujung-ujung dan titik terjauh pada skeleton. Algoritma thinning melakukan pengulangan(iteration), dimana piksel-piksel ini diseleksi dengan kriteria-kriteria tertentu untuk memutuskan atau membedakan antara piksel yang akan dihilangkan dan yang tidak. Terdapat cukup banyak algoritma thinning semuanya memiliki kelebihan dan kekurangan masing-masing. Penggunaan algoritma tersebut tergantung pada kebutuhan.

Melihat manfaat thinning sebagai preprocessing operation untuk proses pengolahan gambar atau citra selanjutnya, maka dalam penyusunan skripsi ini, penulis memilih judul STUDI PERBANDINGAN BEBERAPA ALGORITMA THINNING DALAM PENGENALAN POLA.

1.2 Perumusan Masalah

Adapun masalah yang akan dibahas di dalam penelitian ini adalah:

1. Bagaimana cara kerja dari beberapa algoritma thinning untuk menghasilkan kerangka suatu citra.

2. Bagaimana membandingkan hasil rangka pola yang baik.

3. Bagaimana membangun perangkat lunak tentang studi perbandingan beberapa algoritma Thinning dalam pengenalan pola dengan menggunakan bahasa pemrograman Microsoft Visual Basic 6.0.


(16)

1.3 Batasan Masalah

Agar pembahasan penelitian ini tidak menyimpang dari apa yang telah dirumuskan, maka diperlukan batasan-batasan. Batasan-batasan dalam penelitian ini adalah:

1. Citra yang digunakan berukuran 300x200 piksel.

2. Algoritma Thinning yang dibandingkan yaitu Algoritma ZhangSuen,

Algoritma Stentiford, Algoritma Rosenfeld, Algoritma Hilditch.

3. Parameternya berupa bentuk hasil kerangka citra yang sudah di Thinning dengan beberapa algoritma, jumlah penulusuran, jumlah piksel yang terhapus dan lama proses dari masing-masing algoritma Thinning.

1.4 Tujuan Penelitian

Adapun tujuan dari penelitian ini adalah:

1. Mengetahui beberapa algoritma Thinning. 2. mengetahui bagaimana proses image thinning.

3. Mengamati hasil rangka dari beberapa algoritma Thinning.

4. Membandingkan hasil rangka yang terbaik dari masing-masing algoritma Thinning.

5. Menampilkan kelebihan dan kekurangan dari masing-masing algoritma

Thinning.

1.5 Manfaat Penelitian

Adapun manfaat dari penelitian ini adalah:

1. Sebagai bahan perbandingan untuk proses pengenalan pola.

2. Memperkaya literatur mengenai pengenalan pola khususnya algoritma


(17)

1.6 Metode Penelitian

Dalam menyusun skripsi ini penulis melakukan beberapa penerapan metode penelitian untuk menyelesaikan permasalahan. Adapun metode penelitian yang dilakukan adalah dengan cara:

1. Pembelajaran secara literatur

Pada tahap ini dilakukan proses pengumpulan informasi yang diperlukan untuk proses perancanaan sistem. Studi literatur ini mencakup tentang pemahaman konsep. Konsep-konsep tersebut antara lain: Pengolahan citra, operasi

morfologi. Konsep-konsep pengolahan citra yang dipelajari antara lain yakni

pengertian citra RGB, Citra GrayScale, dan citra Treshold serta citra Biner. konsep operasi morfologi yang dipelajari antara lain cara kerja beberapa algoritma Thinning(pengerangkaan) adapun jenis algoritma thinning yang akan dipelajari adalah Algoritma ZhangSuen, Algoritma Stentiford, Algoritma Hildich, Algoritma Rosenfeld.

2. Pengumpulan Data

Data yang dipakai dalam skripsi ini adalah citra RGB. Karakteristik dari citra tersebut antara lain, resolusi citra 200x300piksel, format citra adalah BMP.

3. Desain Data Sistem

Data yang digunakan dalam pembuatan aplikasi ini adalah citra RGB. Data tersebut dibagi menjadi data masukan, data proses, dan data keluaran. Data-data tersebut adalah:

a. Data masukan

Data masukan yang dipakai dalam aplikasi ini adalah citra RGB. b. Data Proses

Data Proses adalah data RGB yang digunakan untuk proses segmentasi. Data citra RGB tersebut dirubah dulu kedalam bentuk grayscale untuk mendapatkan citra biner. Dalam proses pengubahan citra grayscale menjadi citra Biner dilakukan proses Treshold terlebih dahulu, citra treshold yang akan diproses dalam citra biner akan diproses untuk


(18)

masukan langkah berikutnya. Kemudian dilakukan proses thinning terhadap citra biner, operasi morfologi dari masing-masing algoritma thinning. Sehingga hasil akhir dari proses ini adalah citra RGB yang sudah di thinning.

c. Data Keluaran

Data keluaran berupa citra data citra RGB yang telah di lakukan proses thinning. Format file untuk data keluaran adalah .JP dan hanya dapat ditampilkan lewat aplikasi yang telah dirancang.

4. Perancangan Sistem

Dalam skripsi ini akan dibuat suatu sistem yang dapat melakukan proses segmentasi thinning terhadap suatu citra RGB. Tahapan-tahapan dalam membuat sistem tersebut dibagi dalam dua modul yaitu:

a. Modul yang digunakan untuk mengubah citra RGB menjadi citra Citra Biner. Modul ini terdiri dari segmentasi citra.

b. Modul yang digunakan untuk proses pengerangkaan(thinning) terhadap citra RGB. Modul ini berupa operasi morfologi. Dalam modul ini metode yang dibandingkan adalah algoritma ZhangSuen, algoritma

Stentiford, algoritma Hilditch dan algoritma Rosenfeld.

5. Implementasi

Pada tahapan ini dilakukan implementasi sistem yang telah dirancang. Pengimplementasian dilakukan dengan pedoman-pedoman yang didapatkan dari tahapan-tahapan sebelumnya. Pengimplementasian untuk skripsi ini menggunakan pemrograman Visual Basic 6.0 sebagai bahasa pemrograman yang dipakai.

6. Uji coba dan analisa

Pada tahap ini dilakukan ujicoba dan analisa terhadap perangkat lunak yang telah dibuat untuk mengetahui kemampuaan dan keakuratan algoritma yang telah dipakai. Dimana dalam ujicoba ini menggunakan citra RGB, hasil yang diharapkan dari proses ujicoba ini adalah tingkat akurasi aplikasi dalam melakukan proses pengerangkaan(Thinning) terhadap suatu citra RGB


(19)

tersebut. Untuk mengetahui tingkat akurasi dari aplikasi yang telah dibuat, langkah yang dilakukan adalah dengan cara melakukan proses perbandingan antara pengerjaan secara manual dengan hasil aplikasi yang dibuat dengan ketentuan yang sama. Data yang dibandingkan adalah bentuk hasil tampilan setelah di thinning, jumlah penelusuran, banyaknya piksel yang terhapus.

7. Penyusunan Buku Skripsi

Pada tahap ini dilakukan penyusunan laporan yang menjelaskan dasar teori dan algoritma thinning yang digunakan dalam skripsi ini serta hasil dari implementasi aplikasi perangkat lunak yang telah dibuat. Penyusunan buku skripsi ini berpedoman kepada aturan penulisan skripsi yang dikeluarkan oleh USU.

1.7 Sistematika Penulisan

Sistematika penulisan tugas akhir ini dibagi dalam lima bab, masing-masing bab diuraikan sebagai berikut:

BAB I PENDAHULUAN

Pada bab ini dijelaskan tentang latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, metodologi penelitian, dan sistematika penulisan skripsi. Dari uraian tersebut diharapkan gambaran umum permasalahan dan pemecahan yang diambil dapat dipahami dengan baik.

BAB II TINJAUAN TEORITIS

Bab ini berisikan tentang dasar teori yang mendukung pembuatan aplikasi studi perbandingan beberapa algoritma thinning dalam pengenalan pola yang meliputi penjelasan citra, operasi morfologi, algoritma thinning. Masing-masing algoritma thinning yang akan dibandingakan yakni algoritma ZhangSuen, algoritma Stentitord, algoritma Hilditch dan algoritma Rosenfeld.


(20)

BAB III ANALISIS PERANCANGAN APLIKASI

Bab ini berisikan tentang Analisis perancangan dan implementasi dari aplikasi yang dibuat terdiri dari simulasi proses cara kerja algoritma thinning, flowchart urutan rancangan bentuk arsitektur aplikasi, desain antarmuka dari aplikasi yang dibuat.

BAB IV IMPLEMENTASI APLIKASI

Bab ini membahas tentang hasil ujicoba yang telah dilaksanakan dan melakukan analisis terhadap hasil dari ujicoba.

BAB V PENUTUP

Bab ini berisikan kesimpulan yang diambil dari pengerjaan skripsi dan juga berisi saran untuk pengembangan aplikasi selanjutnya.


(21)

BAB 2

TINJAUAN TEORITIS

2.1 Citra RGB

Suatu citra biasanya mengacu ke citra RGB. Citra (image) merupakan suatu yang menggambarkan objek dan biasanya dua dimensi. Citra merupakan suatu representasi, kemiripan atau imitasi dari suatu objek atau benda.

Citra dalam komputer tidak lebih dari sekumpulan sejumlah piksel dimana setiap triplet terdiri atas variasi tingkat keterangan (brightness) dari elemen red, green dan blue. Representasinya dalam citra, triplet akan terdiri dari 3 angka yang mengatur intensitas dari Red (R), Green (G) dan Blue (B) dari suatu triplet. Setiap triplet akan merepresentasikan 1 piksel (picture element). Suatu triplet dengan nilai 67, 228 dan 180 berarti akan mengeset nilai R ke nilai 67, G ke nilai 228 dan B ke nilai 180. Angka-angka RGB ini yang seringkali disebut dengan color values. Pada format .bmp citra setiap piksel pada citra direpresentasikan dengan dengan 24 bit, 8 bit untuk R, 8 bit untuk G dan 8 bit untuk B, dengan pengaturan seperti pada gambar dibawah ini.

Gambar 2.1 Citra RGB


(22)

2.2 Piksel

Piksel merupakan informasi terkecildari sebuah citra yang terdiri dari 3 buah layer yaitu Red layer,Green layer dan Blue layer yang membentuk sebuah warna. Ketiga unsur warna tersebut ( Red = Merah, Green = Hijau, Blue = Biru) dapat membentuk 2553 kombinasi warna. Ketiga unsur warna pembentuk warna piksel ini dapat dipisah-pisahkan untuk membantu dalam pengolahan citra.

2.3 Pengenalan Pola

Pola adalah entitas yang terdefinisi dan dapat didefinisikan melalui ciri-cirinya (feature). Ciri-ciri tersebut digunakan untuk membedakan suatu pola dengan pola yang lain. Pengenalan pola bertujuan untuk menentukan kelompok untuk kategori pola berdasarkan ciri-ciri yang dimiliki oleh pola tersebut. Dengan kata lain pengenalan pola membedakan objek dengan objek lain.

Ada 3 pendekatan yang digunakan dalam menerapkan pattern recognition (pengenalan pola), yaitu :

1. Statistik

Semakin banyak pola yang disimpan, maka sistem akan semakin cerdas. Salah satu contoh penerapannya banyak pada pola pengenalan iris scan. Kelemahannya : hanya bergantung pada data yang disimpan saja, tidak memiliki sesuatu struktur yang unik yang dapat menjadi kunci pengenalan pola.

2. Sintaks (rule)

Dengan rule / aturan maka sistem yang lebih terstruktur sehingga memiliki sesuatu ciri yang unik. Salah satu contoh penerapannya pada pola pengenalan sidik jari / fingerprint.


(23)

3. Jaringan Saraf Tiruan (JST)

Merupakan gabungan dari pendekatan statistik dan pendekatan sintaks. Dengan gabungan dari dua metode maka JST merupakan pengenalan pola yang lebih akurat. Salah satu contoh penerapannya pada pola pengenalan suatu citra JST merupakan suatu sistem yang dapat memproses informasi dengan meniru cara kerja jaringan saraf otak manusia.

[Sitorus, S dkk. 2006. Pengolahan Citra Digital. Medan:USU Press.hal135]

2.4 Citra Grayscale

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 ”hitam-putih”, 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 pixel pada spektrum elektromagnetik single band.

Citra grayscale disimpan dalam format 8 bit untuk setiap sample pixel, yang memungkinkan sebanyak 256 intensitas. Format ini sangat membantu dalam pemrograman karena manipulasi bit yang tidak terlalu banyak. 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:

X = (R + G + B) / 3 Warna = RGB(X, X, X)

[S, Riyanto dkk. 2005. Step by Step Pengolahan Citra Digital. Yogyakarta: Andi. Hal 23].


(24)

2.5 Citra Threshold

Citra Threshold Dilakukan dengan mempertegas citra dengan cara mengubah citra hasil yang memiliki derajat keabuan 256 (8bit), menjadi hanya dua buah yaitu hitam dan putih. Hal yang perlu diperhatikan pada Proses Thresholding adalah memilih sebuah nilai threshold dimana piksel yang bernilai dibawah nilai threshold akan diset menjadi hitam dan piksel yang bernilai diatas nilai threshold akan diset menjadi putih. Misalkan ditetapkan suatu nilai batas / ambang, sebesar 128 dimana elemen-elemen (piksel) pada citra batas nilainya lebih kecil dari pada nilai batas tersebut ‘menyala’, dan elemen-elemen lainnya dianggap ‘dimatikan’, dan keduanya diubah nilainya sesuai statusnya.

Jika X <128 maka X = 0 Jika tidak, maka X = 255 Warna = RGB(X, X, X)

[S, Riyanto dkk. 2005. Step by Step Pengolahan Citra Digital. Yogyakarta: Andi. Hal 24].

2.6 Citra Biner

Citra biner adalah citra dimana piksel-pikselnya hanya memiliki dua buah nilai intensitas, biasanya bernilai 0 dan 1 dimana 0 menyatakan warna latar belakang

(background) dan menyatakan warna tinta/objek (foreground) atau dalam bentuk

angka 0 untuk warna hitam dan angka 255 untuk warna putih. Citra biner diperoleh dari nilai citra Threshold sebelumnya yakni:

Jika Citra RGB(0, 0, 0) maka X=1, Jika tidak maka X=0

[Basuki, A. 2005. Pengolahan Citra Digital menggunakan VB. Yogyakarta: Graha Ilmu. Hal 33].


(25)

2.7 Operasi Morfologi

Berdasarkan etimologi bahasa, Morphologi berasal dari kosakata bahasa Jerman yaitu

morphologie yang terdiri dari morph+logie/logy. Morph adalah suatu kerja yang

berupa singkatan dari metamorphose yang artinya perubahan bentuk atau karakter akibat perubahan pada struktur atau komposisi (transformasi). Sesuai dengan arti dasarnya, konsep Morphological Operation pada pengolahan citra adalah operasi-operasi perubahan bentuk pada binary image. Berbagai jenis Morphological

Operation antara lain: Erosion, dilation, opening, closing, thinning, dan thickness.

Saat ini yang dibahas adalah thinning.

[Sitorus, S dkk. 2006. Pengolahan Citra Digital. Medan:USU Press. Hal 115].

2.7.1 Algoritma Thinning

Thinning merupakan salah satu image processing yang digunakan untuk mengurangi

ukuran dari suatu image (image size) dengan tetap mempertahankan informasi dan karakteristik penting dari image tersebut. Hal ini diimplementasikan dengan mengubah image awal dengan pola binary menjadi representasi kerangka (skeletal

representation) image tersebut.

Terdapat cukup banyak algoritma untuk image thinning dengan tingkat kompleksitas, efisiensi dan akurasi yang berbeda-beda. Citra yang digunakan untuk proses thinning adalah citra biner, jika data masukannya berupa citra RGB maka haruslah citra tersebut dimanipulasi menjadi citra grayscale, citra grayscale merupakan syarat guna menghasilkan suatu citra biner. Namun untuk mengubah citra grayscale menjadi citra biner dilakukan proses thresholding dahulu. Sehingga diperoleh citra threshold, jika citra threshold sudah diperoleh maka citra biner dapat dicari. Citra biner ini yang kemudian akan diproses dalam proses thinning. Citra hasil dari algoritma thinning biasanya disebut dengan skeleton(kerangka).


(26)

Umumnya suatu algoritma thinning yang dilakukan terhadap citra biner seharusnya memenuhi kriteria-kriteria sebagai berikut:

1. Skeleton dari citra kira-kira berada di bagian tengah dari citra awal sebelum dilakukan thinning.

2. Citra hasil dari algoritma thinning harus tetap menjaga struktur keterhubungan yang sama dengan citra awal.

3. Suatu skeleton seharusnya memiliki bentuk yang hampir mirip dengan citra awal.

4. Suatu skeleton seharusnya mengandung jumlah piksel yang seminimal

mungkin namun tetap memenuhi kriteria-kriteria sebelumnya.

Berikut adalah hasil dari operasi Thinning dari citra binari yang sederhana.

(a) (b)

Gambar 2.2 (a) Pola awal (b) Pola hasil Thinning.

Sebagian besar algoritma thinning merupakan algoritma yang besifat iteratif. Dalam sebuah penelusuran piksel sisi diperiksa berdasarkan beberapa kriteria untuk menentukan apakah suatu piksel sisi dihapus atau tidak. Banyaknya jumlah penelusuran yang terjadi dihitung berdasarkan jumlah loop (perulangan) yang terjadi. Ada beberapa jenis algoritma thinning yaitu sequential dan parallel. Jenis sequential menggunakan hasil dari penelusuran sebelumnya dan hasil yang didapatkan sejauh ini dalam penelusuran yang sekarang untuk memproses piksel yang sekarang. Jadi pada


(27)

setiap ujung penelusuran sejumlah piksel telah diproses terlebih dahulu. Hasil ini dapat digunakan secepatnya untuk memproses piksel selanjutnya. Sedangkan jenis

parallel, hanya hasil dari penelusuran sebelumnya yang mempengaruhi keputusan

untuk menghapus suatu titik pada penelusuran yang sekarang.

Definisi yang dipakai dalam operasi morfologi:

1. Titik obyek, adalah titik yang merupakan bagian dari obyek (P1= obyek). 2. Titik latar, adalah titik yang merupakan bagian dari latar (P1= latar). 3. N(P1) = banyaknya tetangga dari P1 yang merupakan titik obyek.

4. S(P1) = banyaknya pola “latar, obyek” untuk urutan P2-P4-P6-P8-P2 pada operasi terhubung -4 atau urutan P2- P3- P4- P5- P6- P7- P8- P9- P2 pada operasi terhubung-8.

5. S(P2) = banyaknya pola “latar, obyek” untuk urutan P2-P4-P6-P8-P2 pada operasi terhubung -4 atau urutan PX- PY- P3- P4- P1- P8- P9- PX- PY pada operasi terhubung-8. Untuk P1= P2.

6. S(P3) = banyaknya pola “latar, obyek” untuk urutan P3-PC-P5-P1-P3 pada operasi terhubung -4 atau urutan P3-PB-PC-PD-P5-P6-P1-P2-P3pada operasi terhubung-8. Untuk P1= P4.

7. Titik terisolasi, adalah titik obyek yang semua tetangganya adalah titik latar. N(P1) = 0.

8. Titik ujung, adalah titik obyek yang mempunyai tepat sebuah tetangga yang merupakan titik obyek juga. N(P1) = 1.

9. Titik batas, adalah titik obyek yang salah satu atau lebih tetangganya adalah titik latar. N(P1) < 4 pada operasi terhubung-4 dan N(P1) < 8 pada operasi terhubung-8.

10.Apabila semua titik tetangganya adalah titik obyek maka dapat dipastikan titik tersebut berada di dalam obyek (bukan titik batas).

11.Titik simpel, adalah titik obyek yang jika diubah menjadi titik latar maka tidak mengubah kondisi hubungan antar titik-titik obyek tetangganya.

[H.E.Burdick, dan Mc Graw Hill. 1997. Morphological Operations.

Diakses tanggal 7 Januari 2010].


(28)

2.7.1.1 Algoritma ZhangSuen

Algoritma ini adalah algoritma untuk citra biner, dimana piksel background citra bernilai 0, dan piksel foreground (region) bernilai 1. Algoritma ini cocok digunakan untuk bentuk yang diperpanjang (elongated) dan dalam aplikasi OCR (Optical

Character Recognition). Algoritma ini terdiri dari beberapa penelusuran, dimana

setiap penelusurannya terdiri dari 2 langkah dasar yang diaplikasikan terhadap titik

objek (titik batas) region. Titik objek ini dapat didefinisikan sebagai sembarang titik

yang pikselnya bernilai 1, dan memiliki paling sedikit 1 piksel dari 8-tetangganya yang bernilai 0.

Gambar berikut ini mengilustrasikan titik objek P1 dan 8-tetangganya:

P9 P2 P3

P8 P1 P4

P7 P6 P5

Gambar 2.3 Contoh Piksel P1 dengan 8 tetangga

Langkah pertama dari sebuah penelusuran adalah menandai semua titik objek untuk dihapus, jika titik objek tersebut memenuhi syarat-syarat berikut:

a. 2 ≤ N (P1) ≤ 6 b. S(P1) = 1 c. P2 * P4* P6 = 0 d. P4 * P6 * P8 = 0

Keterangan :

1. jumlah dari tetangga titik objek P1, yang pikselnya bernilai 1, yaitu: N(P1) = P2 + P3 + P4 + ... + P9

2. S(P1) adalah jumlah perpindahan nilai dari 0 (nol) ke 1 (satu) mulai dari P2, P3,… P8, P9.


(29)

Dan pada langkah kedua, kondisi (a) dan (b) sama dengan langkah pertama, sedangkan kondisi (c) dan (d) diubah menjadi:

(c’) P2 * P4 * P8 = 0; (d’) P2 * P6 * P8 = 0

Langkah pertama dilakukan terhadap semua titik obyek di citra. Jika salah satu dari keempat kondisi di atas tidak dipenuhi atau dilanggar maka nilai piksel yang bersangkutan tidak ditandai untuk dihapus. Sebaliknya jika semua kondisi tersebut dipenuhi maka piksel tersebut ditandai untuk penghapusan.

Piksel yang telah ditandai tidak akan dihapus sebelum semua titik obyek selesai diproses. Hal ini berguna untuk mencegah perubahan struktur data. Setelah langkah 1 selesai dilakukan untuk semua titik obyek maka dilakukan penghapusan untuk titik yang telah ditandai (diubah menjadi 0). Setelah itu dilakukan langkah 2 pada data hasil dari langkah 1 dengan cara yang sama dengan langkah 1.

Prosedur ini dilakukan secara iteratif sampai tidak ada lagi titik yang dapat dihapus, pada saat algoritma ini selesai maka akan dihasilkan skeleton dari citra awal. Sebagai contoh :

0 0 1

1 P1 0

1 0 1

Gambar 2.4 Contoh piksel N(P1) = 4 dan S(P1) = 3

[Jason Rupard. Skeletonization (part 1).


(30)

2.7.1.2 Algoritma Stentiford

Metode ini adalah algoritma thinning dengan menggunakan teknik template-based

mark-and-delete. Metode ini cukup terkenal karena reliable dan kefektifannya.

Metode thinning jenis ini menggunakan template untuk dicocokkan dengan citra yang akan di-thinning. Algoritma ini bersifat iteratif yang berguna untuk mengikis lapisan

piksel terluar sampai tidak ada lapisan lagi yang dapat dihilangkan. Didalam algoritma

ini terdiri dari empat kondisi.

Template yang dipakai adalah 4 buah template 3 x 3 yaitu,

Gambar 2.5 Template Stentiford.

Berikut ini akan dijelaskan langkah–langkah algoritma Stentiford :

1. Cari piksel pada lokasi (i,j) dimana piksel-piksel pada image cocok dengan

template T1. Dengan template ini, maka semua piksel di bagian atas dari

image akan dihilangkan (remove). Pencocokkan template ini bergerak dari kiri ke kanan dan dari atas ke bawah.

2. Bila piksel tengah bukan merupakan endpoint dan mempunyai jumlah

konektivitas (connectivity number) 1, maka tandai piksel tersebut untuk kemudian dihilangkan (remove).

Endpoint piksel : piksel yang merupakan batas akhir dan hanya terhubung

dengan 1 piksel saja. Contoh : suatu piksel hitam hanya mempunyai satu tetangga saja yang hitam juga dari kemungkinan delapan tetangga.

Connectivity number : merupakan suatu ukuran berapa banyak obyek yang

terhubung dengan piksel tertentu (dihitung berdasarkan rumus di bawah). )

. .

( +1 +2

∈ −

=

k k k

S k

k

n N N N N


(31)

Nk merupakan nilai dari 8 tetangga di sekitar piksel yang akan dianalisa (Titik obyek) dan nilai S = {1,3,5,7}. N0 adalah nilai dari piksel tengah (Titik obyek). N1 adalah nilai dari piksel pada sebelah kanan titik obyek dan sisanya diberi nomor berurutan dengan arah berlawanan jarum jam.

4 3 2

5 0 1

6 7 8

Gambar 2.6 Urutan nilai dari piksel algoritma Stentiford

Contoh :

0 0 0

0 1 0

0 0 0

1 0 1

1 1 1

1 1 1

c

a b d

1 0 1

1 1 1

1 0 1

1 0 1

0 1 1

1 0 1

0 1 0

1 1 1

0 1 0

e

Gambar 2.7 Contoh tampilan jumlah konektivitas

Bagian a) menjelaskan tentang jumlah konektivitas (connectivity number) = 0. Bagian b) menjelaskan tentang jumlah konektivitas (connectivity number) = 1. Bagian c) menjelaskan tentang jumlah konektivitas (connectivity number) = 2. Bagian d) menjelaskan tentang jumlah konektivitas (connectivity number) = 3. Bagian e) menjelaskan tentang jumlah konektivitas (connectivity number) = 4.

3. Ulangi langkah 1 dan 2 untuk semua piksel yang cocok dengan template T1.

4. Ulangi langkah 1–3 untuk template T2, T3 dan T4.

Pencocokkan template T2 akan dilakukan pada sisi kiri dari obyek dengan arah dari bawah ke atas dan dari kiri ke kanan.

Pencocokkan template T3 akan dilakukan pada sisi bawah dari obyek dengan arah dari kanan ke kiri dan dari bawah ke atas.


(32)

Pencocokkan template T4 akan dilakukan pada sisi kanan dari obyek dengan arah dari atas ke bawah dan dari kanan ke kiri.

5. Piksel-piksel yang ditandai untuk dihilangkan (remove) dibuat sama dengan

background (di-set 0 untuk binary image).

[Jason Rupard. Skeletonization (part 1).

2.7.1.3 Algoritma Hilditch

Algoritma Hilditch dengan ukuran jendela (window) 3 x 3, yakni menggunakan tetangga Moore dari titik yang kita tinjau. Pada algoritma yang merupakan operasi terhubung-8 ini dilakukan beberapa kali penelusuran pengikisan pada suatu obyek, di mana pada setiap pengikisan dilakukan pemeriksaan pada semua titik dalam citra dan melakukan.

Pengubahan sebuah titik obyek menjadi titik latar apabila memenuhi keempat kriteria berikut ini:

1. 2 ≤ N(P1) ≤ 6 2. S(P1) =1

3. P2, P4, atau P8 ada yang merupakan titik latar, atau S(P2) ≠ 1 4. P2, P4, atau P6 ada yang merupakan titik latar, atau S(P4) ≠ 1

Algoritma dihentikan apabila pada suatu penelusuran tidak ada lagi titik yang diubah.

a) Kriteria 1

1. Menunjukkan bahwa tidak ada titik terisolasi, N(P1) = 0, ataupun titik ujung, N(P1) = 1, yang terkikis, sebagaimana ditunjukkan pada Gambar dibawah ini. 2. Demikian juga titik yang ada di dalam obyek seperti pada (d), sedangkan titik


(33)

P9 P2 P3 P9 P2 P3 P9 P2 P3 P9 P2 P3

P8 P1 P4 P8 P1 P4 P8 P1 P4 P8 P1 P4

P7 P6 P5 P7 P6 P5 P7 P6 P5 P7 P6 P5

(a) N(P1)=0 (b) N(P1)=1 (c) N(P1)=7 (d) N(P1)=8

Gambar 2.8 Contoh titik yang tidak memenuhi kriteria 1 algoritma Hilditch b) Kriteria 2

1. Menunjukkan sifat konektivitas, di mana jika kita menghilangkan suatu titik mempunyai nilai A lebih dari 1, seperti pada Gambar dibawah ini, maka pola atau kerangka akan menjadi terputus.

2. Dengan demikian titik P1 pada contoh-contoh tersebut tidak boleh dihapus.

P9 P2 P3 P9 P2 P3 P9 P2 P3

P8 P1 P4 P8 P1 P4 P8 P1 P4

P7 P6 P5 P7 P6 P5 P7 P6 P5

(a) S(P1)=2 (b) S(P1)=2 (c) S(P1)=4

Gambar 2.9 Contoh titik yang tidak memenuhi kriteria 2 algoritma Hilditch.

c) Kriteria 3

1. Digunakan untuk menghindarkan terhapusnya garis horizontal dengan lebar 2 titik, seperti pada Gambar dibawah ini.

2. Dalam gambar tersebut, titik obyek pada (a) tidak memenuhi kriteria 3

sehingga tidak boleh dihapus, sedangkan titik P1 pada (b) dan (c) memenuhi kriteria, sehingga mungkin akan dihapus.


(34)

P9 P2 P3 P9 P2 P3 P9 P2 P3

P8 P1 P4 P8 P1 P4 P8 P1 P4

P7 P6 P5 P7 P6 P5 P7 P6 P5

(a) garis vertikal (b) P2, P4, P8≠latar (c) P2, P4, atau P8 =latar berlebar 2 titik S(P2)≠1 S(P2)=1

Gambar 2.10 Contoh titik kriteria 3 algoritma Hilditch. d) Kriteria 4

1. Mirip dengan kriteria 3, namun digunakan untuk menghindarkan terhapusnya garis vertikal berlebar 2 titik.

2. Titik P1 pada (a) tidak memenuhi kriteria tersebut sehingga tidak boleh dihapus, sedangkan pada (b) dan (d) memenuhi syarat, sehingga mungkin dapat dihapus.

P9 P2 P3 P9 P2 P3 P9 P2 P3

P8 P1 P4 P8 P1 P4 P8 P1 P4

P7 P6 P5 P7 P6 P5 P7 P6 P5

(a) garis vertikal (b) P2, P4, P6 ≠ latar (c) P2, P4, atau P6 =latar berlebar 2 titik S(P4)≠1 S(P4)=1

Gambar 2.11 Contoh titik pada kriteria 4 algoritma Hilditch

[H.E.Burdick, dan Mc Graw Hill. 1997. Morphological Operations.

Diakses tanggal 7 Januari 2010].


(35)

2.7.1.4 Algoritma Rosenfeld

Algoritma yang dijelaskan di sini adalah algoritma paralel sederhana karena karya algoritma Rosenfeld. Algoritma ini membuang berturut-turut dalam model paralel himpunan bagian dari "batas" dari P. Terlebih dahulu tetapkan batas. Biarkan P jadi, himpunan hitam (1) piksel. Komplemen dari P adalah latar belakang (seperti piksel adalah putih (0)). Perhatikan sebuah piksel P1 dari P. Label dari 8 tetangga dari P1 seperti yang ditunjukkan di bawah ini:

P9 P2 P3 P8 P1 P4 P7 P6 P5

Gambar 2.12 Contoh label 8 tetangga dari P1 P1adalah titik perbatasan Utara jika P2 = 0.

P9 P2 P3 P8 P1 P4 P7 P6 P5

Gambar 2.13 Contoh piksel P1 sebagai titik batas utara P1adalah titik perbatasan timur jika P4 = 0.

P9 P2 P3 P8 P1 P4 P7 P6 P5

Gambar 2.14 Contoh piksel P1sebagai titik batas timur P1adalah titik perbatasan barat jika P8 = 0.


(36)

P9 P2 P3 P8 P1 P4 P7 P6 P5

Gambar 2.15 Contoh piksel P1 sebagai titik batas barat P1 adalah titik perbatasan selatan jika P6 = 0.

P9 P2 P3 P8 P1 P4 P7 P6 P5

Gambar 2.16 Contoh piksel P1 sebagai titik batas selatan

P1 adalah 4-titik endpoint dengan syarat bahwa tepat satu dari 4-tetangga adalah

hitam.

P9 P2 P3 P9 P2 P3

P8 P1 P4 P8 P1 P4

P7 P6 P5 P7 P6 P5

Gambar 2.17 Dua contoh di mana P1 adalah 4-endpoint

P1 adalah sebuah 8-titik endpoint dengan syarat bahwa tepat satu dari 8 tetangganya

adalah hitam.

P9 P2 P3 P9 P2 P3

P8 P1 P4 P8 P1 P4

P7 P6 P5 P7 P6 P5

Gambar 2.18 Dua contoh di mana P1adalah sebuah 8-endpoint P1 adalah 4-titik terisolasi jika tidak ada satupun dari 4-tetangga adalah hitam.


(37)

P9 P2 P3 P9 P2 P3

P8 P1 P4 P8 P1 P4

P7 P6 P5 P7 P6 P5

Gambar 2.19 Dua contoh di mana P1 adalah 4-titik terisolasi

P1 adalah sebuah 8-titik terisolasi jika tidak ada satupun dari 8-tetangganya adalah

hitam.

P9 P2 P3 P8 P1 P4 P7 P6 P5

Gambar 2.20 Contoh piksel P1adalah sebuah 8-titik terisolasi

Sebuah titik perbatasan P1 adalah sebuah 4-simple jika berubah dari hitam menjadi putih (satu nol) tidak mengubah 4-konektivitas dari sisa piksel hitam dalam tetangga Moore dari P1.

Di sini ada dua contoh yang tidak 4-simple:

P9 P2 P3 P9 P2 P3

P8 P1 P4 P8 P1 P4

P7 P6 P5 P7 P6 P5

Gambar 2.21 Dua contoh di mana P1bukanlah 4-simple point

Sebuah titik perbatasan P1 adalah sebuah 8-simple jika berubah dari hitam menjadi putih (satu nol) tidak mengubah 8-konektivitas dari sisa piksel hitam dalam lingkungan Moore P1.


(38)

P9 P2 P3 P9 P2 P3

P8 P1 P4 P8 P1 P4

P7 P6 P5 P7 P6 P5

Gambar 2.22 Dua contoh di mana P1 bukan merupakan 8-simple point

Sekarang siap untuk menggambarkan algoritma yang dapat dilihat dalam dua mode yang berbeda tergantung pada jenis konektivitas used. Algoritma ini berada di bagian berurutan dan dalam bagian paralel.

Algoritma 4-TERSAMBUNG

Mulai ulangi sampai tidak ada piksel yang berubah dari hitam menjadi putih:

langkah 1: (secara paralel) Ubah semua piksel hitam menjadi putih jika mereka border utara titik yang 4-Simple tetapi tidak 4-terisolasi atau 4-endpoint.

langkah 2: (secara paralel) Ubah semua piksel hitam menjadi putih jika mereka border selatan titik yang 4-Simple tetapi tidak 4-terisolasi atau 4-endpoint.

langkah 3: (secara paralel) Ubah semua piksel hitam menjadi putih jika mereka border timur titik yang 4-Simple tetapi tidak 4-terisolasi atau 4-endpoint.

langkah 4: (secara paralel) Ubah semua piksel hitam menjadi putih jika mereka barat yang border poin 4-Simpletetapi tidak 4-terisolasi atau 4-endpoint. ulangi akhir akhir .

Algoritma 8-TERSAMBUNG

Mulai ulangi sampai tidak ada piksel yang berubah dari hitam menjadi putih:

langkah 1: (secara paralel) Ubah semua piksel hitam menjadi putih jika mereka border utara titik yang 8-Simple tetapi tidak 8-terisolasi atau 8-endpoint.

langkah 2: (secara paralel) Ubah semua piksel hitam menjadi putih jika mereka border selatan titik yang 8-Simple tetapi tidak 8-terisolasi atau 8-endpoint.

langkah 3: (secara paralel) Ubah semua piksel hitam menjadi putih jika mereka border timur titik yang 8-Simple tetapi tidak 8-terisolasi atau 8-endpoint.


(39)

langkah 4: (secara paralel) Ubah semua piksel hitam menjadi putih jika mereka border barat titik yang 8-Simple tetapi tidak 8-terisolasi atau 8-endpoint. ulangi akhir.

Akhir Urutan bagian dari algoritma paralel, yaitu utara, selatan, timur, barat urutan untuk memeriksa titik-titik perbatasan yang sewenang-wenang, tetapi harus juga membantu keterhubungan piksel. Dengan cara ini untuk memperoleh kerangka yang berpusat di asli pola. Sebuah sifat penting dari algoritma ini adalah bahwa ia melindungi konektivitas dari pola input.

[Tingmei Wang. “Analysis and Application of IterationSkeletonization Algorithm in

Recognizing Chinese Characters Image”.

http://

tanggal 7 Januari 2010].

2.8 Flowchart

Flowchart adalah gambaran dalam bentuk diagram alir dari algoritma dalam suatu program yang menyatakan arah alur program dalam menyelesaikan suatu masalah. Berikut adalah beberapa simbol yang digunakan dalam menggambar suatu flowchart:


(40)

Tabel 2.1 Bagian-bagian dari Flowchart

SIMBOL NAMA FUNGSI

TERMINATOR Permulaan/ akhir program.

GARIS ALIR

(FLOW LINE) Arah alir program.

PREPARATION

Proses inisialisasi/pemberian harga awal

PROSES

Proses penghitungan/proses pengolahan data.

INPUT/OUTPUT DATA

Proses input/output data, parameter. Informasi.

DECISION

Perbandingan pernyataan, penyeleksian data yang memberikan

pilihan untuk langkah selanjutnya.

ON PAGE CONNECTOR

Penghubung bagian-bagian flowchart yang berada pada satu

halaman.

OFF PAGE CONNECTOR

Penghubung bagian-bagian flowchart yang berada pada halaman

berbeda.


(41)

BAB 3

ANALISIS PERANCANGAN APLIKASI

3.1 Analisis Perancangan dan Pengembangan

Analisis perancangan dan pengembangan yang dilakukan dalam penyelesaian skripsi ini adalah dengan menganalisis bahan-bahan yang didapat selanjutnya menampilkannya kedalam bentuk layer-layer dengan menggunakan Pemrograman Visual Basic 6.0.

a. User interface merupakan bagian perangkat lunak yang menyediakan sarana untuk user (pengguna) agar dapat berkomunikasi dengan sistem dan dapat lebih memahami perangkat lunak.

b. Pendesainan yaitu program untuk menciptakan interface sehingga dapat menarik perhatian para pemerhati sehingga dapat memotivasi rasa penasaran pemerhati yaitu dengan tampilan menarik.

Tahapan-tahapan yang kerjakan dalam merancang dan mengembangkan aplikasi ini adalah Flowchart, dan perancangan tampilan aplikasi.

3.2 Matriks

Matriks adalah susunan segi empat siku-siku dari bilanga-bilangan. Bilangan-bilangan dalam susunan tersebut dinamakan entri dalam matriks (Anton, 1988:22). Jika A adalah sebuah matiks, maka akan menggunakan aij untuk menyatakan entri yang

terdapat di dalam baris i dan kolom j dari matriks A. Secara umum martiks dituliskan sebagai beriku:


(42)

n

m

m

m

n

n

a

a

a

a

a

a

a

a

a

2

1

2

22

21

1

12

11

Gambar 3.1 Struktur matriks

Matriks di atas disebut matriks berukuran m kali n (ditulis m x n) karena memiliki m baris dan n kolom.

3.3 Operator Logika

Operator logika adalah operator yang menghasilkan output dengan keadaaan. Dalam perancangan aplikasi ini digunakan operator OR dan operator AND. Dalam operator OR adalah Operator akan menghasilkan nilai true jika salah satu ungkapan benar dan akan menghasilkan false, jika salah satu ungkapan salah atau semua ungkapan salah. Operator And akan menghasilkan nilai true jika semua ungkapan benar dan akan menghasilkan false, jika salah satu ungkapan salah atau semua ungkapan salah.

Dalam rancangan ini penulis menggunakan operator OR dan AND fungsinya untuk proses penandaan dan kemudian penghapusan piksel. Operator OR yang dimaksud disini jika paling sedikit satu kondisi memenuhi maka dikerjakan jika tidak dipenuhi maka tidak dikerjakan. Sedang operator AND yang dimaksud jika semua kondisi dapat dipenuhi maka akan dikerjakan jika tidak dipenuhi maka tidak akan dikerjakan.


(43)

3.4 Array

Array adalah sebuah variable memori yang dapat digunakan untuk menyimpan beberapa data sejenis. Untuk membedakan suatu data yang lain, digunakan nomor urut tertentu tersebut sebagai index atau subscript. Array berfungsi untuk menyimpan data yang bersifat sementara. Sintaks deklarasi array dimensi dua:

type nama_array[jumlah kolom][jumlah baris].

contoh :

Dim PenandaZhangSuen(1 To 300, 1 To 200) As Byte;

Artinya nilai awal yang diinginkan dimulai dari kolom 1 sampai kolom 300 dan baris 1 sampai baris 200.

3.4.1 Deklarasi Array

Deklarasi array pada perancangan aplikasi ini, menggunakan 8 array yaitu:

Dim PenandaZhangSuen(1 To 300, 1 To 200) As Byte

Dim CitraZhangSuen(1 To 300, 1 To 200) As Byte Dim PenandaStentiford(1 To 300, 1 To 200) As Byte Dim CitraStentiford(1 To 300, 1 To 200) As Byte Dim PenandaHilditch(1 To 300, 1 To 200) As Byte Dim CitraHilditch(1 To 300, 1 To 200) As Byte Dim PenandaRosenfeld(1 To 300, 1 To 200) As Byte Dim CitraRosenfeld(1 To 300, 1 To 200) As Byte

3.5 Pengalamatan Piksel pada Matriks

Untuk menampilkan pengalamatan matriks untuk awal penulusuran dapat dilihat dari pada Gambar 3.2


(44)

PX PY PZ PA

P9 P2 P3 PB

P8 P1 P4 PC

P7 P6 P5 PD

Gambar 3.2 Bentuk pengalamatan citra

Berikut adalah tabel keterangan pengalamatan pada Gambar 3.2 Dimana:

Tabel 3.1 Keterangan gambar pengalamatan citra

Nama(Piksel) Citra Matrik

P1 k,b [2,3]

P2 k,b-1 [2,2]

P3 k+1,b-1 [3,2]

P4 k+1,b [3,3]

P5 k+1,b+1 [3,4]

P6 k,b+1 [2,4]

P7 k-1,b+1 [1,4]

P8 k-1,b [1,3]

P9 k-1,b-1 [1,2]

PX k-1,b-2 [1,1]

PY k,b-2 [2,1]

PZ k+1,b-2 [3,1]

PA k+2,b-2 [4,1]

PB k+2,b-1 [4,2]

PC k+2,b [4,3]


(45)

3.6 Penulusuran Piksel

Dalam penghapusan suatu piksel harus memenuhi suatu kriteria yang telah ditetapkan pada masing-masing algoritma. Setiap algoritma memiliki kondisi dan langkah-langkah cara kerja yang berbeda namun sama-sama menghasilkan suatu kerangka pola, jumlah penulusuran tergantung dari banyaknya kondisi yang memenuhi dari masing-masing algoritma. Bentuk penulusuran piksel dilakukan dengan 4 cara:

P1 P2 P3 P4

P5 P6 P7 P8

P9 P10 P11 P12

P13 P14 P15 P16

Gambar 3.3 Penulusuran objek dari kiri ke kanan dan dari atas ke bawah

P1 P2 P3 P4

P5 P6 P7 P8

P9 P10 P11 P12

P13 P14 P15 P16


(46)

P1 P2 P3 P4

P5 P6 P7 P8

P9 P10 P11 P12

P13 P14 P15 P16

Gambar 3.5 Penulusuran objek dari dari kanan ke kiri dan dari bawah ke atas

P1 P2 P3 P4

P5 P6 P7 P8

P9 P10 P11 P12

P13 P14 P15 P16

Gambar 3.6 Penulusuran objek dari atas ke bawah dan dari kanan ke kiri

3.7 Simulasi Proses cara kerja Algoritma Thinning 3.7.1 Algoritma ZhangSuen

Penulusuran dimulai dari kiri kekanan dan dari atas kebawah. Penulusuran objek dimulai dari kolom 2 sampai 299 dan baris 2 sampai 199.

Dengan perintah

For b = 2 To 199


(47)

Dimulai dari titik P1 dengan syarat dimana titik P1 harus bernilai 1 CitraZhangSuen(k, b) = 1

Contoh Algoritma Zhang Suen :

P1 P2 P3 P4 P5 P6 P7 P8 P9

Gambar 3.7 Contoh Citra awal ZhangSuen

Hasil Penulusuran Pertama (Langkah A dan B)

Langkah A, harus memenuhi kondisi 1 sampai dengan 4 yaitu : a. 2 ≤ N (P1) ≤ 6

b. S(P1) = 1 c. P2* P4 * P6 = 0 d. P4 * P6 * P8 = 0

Untuk Piksel P1 = (P1) pada Gambar 3.7:

N(P1) = 3; TRUE S(P1) = 1; TRUE

P2* P4 * P6 = 0; TRUE P4 * P6 * P8 = 0; TRUE

Kondisi dapat terpenuhi semua dengan nilai TRUE sehingga dapat disimpulkan bahwa P1 ditandai untuk dirubah menjadi background (nol).

Untuk Piksel P1 = (P2) pada Gambar 3.7:

N(P1) = 5; TRUE S(P1) = 1; TRUE


(48)

P4 * P6 * P8= 0; FALSE

Kondisi tidak dapat bernilai TRUE semua untuk P1 = (P2), hal ini diakibatkan karena kondisi P4* P6* P8 = 1 bernilai FALSE, sehingga tidak ditandai ataupun dirubah pada langkah A dan B. Setelah melakukan cara yang sama untuk P1 = (P3), P1 = (P4), P1 = (P5), P1 = (P6), P1 = (P7), P1 = (P8), P1 = (P9), diperoleh Gambar

3.8:

0 P1 0

P2 P3 0

0 0 0

Gambar 3.8 Hasil Proses langkah 1 pada algoritma ZhangSuen

Dan pada langkah kedua, kondisi (a) dan (b) sama dengan langkah pertama, sedangkan kondisi (c) dan (d) diubah menjadi:

(c’) P2 * P4 * P8 = 0; (d’) P2 * P6 * P8 = 0

Untuk Piksel P1 = (P1) pada gambar 3.8

N(P1) = 4; TRUE S(P1) = 1; TRUE

P2 * P4 * P8 = 0; TRUE P2 * P6 * P8= 0; TRUE

Kondisi dapat terpenuhi semua dengan nilai TRUE sehingga dapat disimpulkan bahwa P1 ditandai untuk dirubah menjadi background (nol). Setelah dilakukan cara yang sama terhadap P1 = (P2), P1 = (P3) didapatkan citra seperti citra dibawah ini Gambar 3.9 .


(49)

0 0’ 0’

0’ 0

0 0 0

Gambar 3.9 Hasil objek langkah 2 pada ZhangSuen

Pada Gambar 3.9 diproses kembali kedalam langkah 1 untuk algoritma ZhangSuen. Dan menghasilkan bentuk objek yang sama, kemudian diuji kembali kebentuk langkah ke-2 menghasilkan bentuk objek yang sama juga.

Dari Gambar 3.9 dapat .disimpulkan bahwa jumlah: penulusuran untuk proses algoritma ZhangSuen sebanyak 4 penulusuran dan titik yang terhapus sebanyak 8 piksel. Hasil piksel belum baik karena hasil akhir tidak mirip dengan citra awal sesuai.

3.7.2 Algoritma Stentiford Contoh Algoritma Stentiford:

P1 P2 P3 P4 P5 P6 P7 P8 P9

Gambar 3.10 Contoh citra awal Stentiford


(50)

Gambar 3.11 Template Stentiford

Berikut ini akan dijelaskan langkah–langkah algoritma Stentiford :

6. Pencocokkan template ini bergerak dari kiri ke kanan dan dari atas ke bawah. For b = 2 To 199

For k = 2 To 299

Cari piksel pada lokasi (i,j) dimana piksel-piksel pada image cocok dengan

template T1. Dimana, P1dan bernilai 1 dan P4 bernilai 0

7.

P5 P4 P3

P6 P1 P2

P7 P8 P9

Gambar 3.12 Urutan nilai konektivitas algoritma Stentiford

Bila piksel tengah bukan merupakan endpoint (jumlah tetangga titik objek minimal 2<=NP1<=7) dan mempunyai jumlah konektivitas S(P1) sebanyak 1, Dimulai dari P2- P3- P4- P5- P6- P7- P8- P9- P2 atau dengan rumus:

) . .

( +1 +2

∈ −

=

k k k

S k

k

n N N N N

C

Atau S(P1) jumlah perpindahan nilai dari 0(nol) ke 1(satu) sebanyak 1, dimulai dari P2, P3,…, P9. Nk merupakan nilai dari 8 tetangga di sekitar piksel yang akan dianalisa (Titik obyek) dan nilai S = {1,3,5,7}. N0 adalah nilai dari piksel tengah (Titikobyek). N1 adalah nilai dari piksel pada sebelah kanan titik obyek dan sisanya diberi nomor berurutan dengan arah berlawanan jarum jam.

Untuk Piksel P1= (P1) pada pada Gambar 3.10


(51)

Jumlah tetangga objek N(P1)=3; TRUE Jumlah number konektifitas S(P1)=1; TRUE

Kondisi dapat terpenuhi semua dengan nilai TRUE sehingga dapat disimpulkan bahwa P1ditandai dan dirubah menjadi background (nol).

Kondisi tidak dapat bernilai TRUE semua untuk P1 = (P4), hal ini diakibatkan karena pencocokkan template tidak sesuai atau FALSE, sehingga tidak ditandai untuk proses penghapusan. Setelah melakukan cara yang sama untuk P1= P2, P1= P3, P1= (P5), P1= (P6), P1= (P7), P1= (P8), P1= (P9). Hasilnya dapat dilihat pada Gambar

3.13

0 0 0 P1 P2 P3 P4 P5 P6

Gambar 3.13 Hasil Proses langkah 1 pada Algoritma Stentiford

8. Ulangi langkah 1,2 dan 3 untuk semua piksel yang cocok dengan template T1.

9. Ulangi langkah 1–3 untuk template T2, T3 dan T4

Untuk P1= P4 Pencocokkan template ini dimulai dari bawah ke atas dan dari kiri ke kanan.

For b = 199 To 2 Step -1 For k = 2 To 299

Cari piksel pada lokasi (i,j) dimana piksel-piksel pada image cocok dengan

template T2. Dimana titik P1dan P2 bernilai 1 dan P6 bernilai 0.

Untuk Piksel P1 = (P4) pada Gambar 3.13

Pencocokkan template; TRUE, jumlah tetangga N(P1)=3; TRUE,


(52)

Kondisi dapat terpenuhi semua dengan nilai TRUE sehingga dapat disimpulkan bahwa P1ditandai dan dirubah menjadi background (nol).

Kondisi tidak dapat bernilai TRUE semua untuk P1= (P5), hal ini diakibatkan karena pencocokkan template tidak sesuai atau FALSE. Sehingga tidak dapat diubah. Setelah dilakukan cara yang sama terhadap P1= (P5), P1 = (P6), P1 = (P1), P1=( P2), P1= (P3), Hasilnya dapat dilihat pada Gambar 3.14:

0 0 0

0’ P1 P2 0’ P3 P4

Gambar 3.14 Hasil objek langkah 2 pada Algoritma Stentiford

10. Pencocokkan template T3, akan dilakukan pada sisi bawah dari obyek dengan arah dari kanan ke kiri dan dari bawah ke atas.

For b = 199 To 2 Step -1

For k = 299 To 2 Step -1

Untuk pencocokan T3, Cari piksel pada lokasi (i,j) dimana piksel-piksel pada image cocok dengan template T3. Dimana titik P1 dan P4 bernilai 1 dan P8 bernilai 0.

Untuk Piksel P1 = P4 pada Gambar 3.14

Pencocokkan template bernilai TRUE, jumlah tetangga N(P1)=3 bernilai TRUE, jumlah konektifitas Number S(P1)=1 TRUE

Kondisi dapat terpenuhi semua dengan nilai TRUE sehingga dapat disimpulkan bahwa P1ditandai dan dirubah menjadi background (nol).


(53)

Kondisi tidak dapat bernilai TRUE semua untuk P1= (P2). hal ini diakibatkan karena pencocokkan template tidak sesuai atau FALSE. Sehingga tidak dapat diubah Setelah dilakukan cara yang sama terhadap P1 = (P3), P1 = (P1). Hasilnya dapat dilihat pada Gambar 3.15

0 0 0

0’ P1 P2 0’ 0’’ 0 ‘’

Gambar 3.15 Hasil objek langkah 3 pada Algoritma Stentiford

11. Pencocokkan template T4 akan dilakukan pada sisi kanan dari obyek dengan arah dari atas ke bawah dan dari kanan ke kiri.

For b = 2 To 199

For k = 299 To 2 Step -1

Untuk pencocokan T4, Cari piksel pada lokasi (i,j) dimana piksel-piksel pada image cocok dengan template T3. Dimana titik P1dan P6 bernilai 1 dan P2 bernilai 0.

Untuk Piksel P1= P2 pada Gambar 3.15

Pencocokkan template bernilai TRUE, jumlah tetangga N(P1)=1 bernilai FALSE, jumlah konektifitas Number S(P1)=1 TRUE.

Kondisi dapat terpenuhi semua dengan nilai FALSE sehingga dapat disimpulkan bahwa S2 tidak ditandai dan tidak dirubah menjadi background (nol). Setelah dilakukan cara yang sama terhadap P1 = (P1). Didapatkan hasil akhir seperti citra dibawah ini Gambar 3.16. Jika dilakukan langkah 3 hasil yang diperoleh dari citra tersebut tidak berubah, sehingga dapat disimpulkan bahwa pengeksekusian algoritma thinning citra sudah selesai.


(54)

0 0 0

0’ P1 P2 0’ 0’’ 0 ‘’

Gambar 3.16 Hasil Proses langkah 4 pada Algoritma Stentiford

12.Piksel-piksel yang ditandai untuk dihilangkan (remove) dibuat sama dengan background (di-set 0 untuk binary image).

Dari Gambar 3.16 dideperoleh kesimpulan bahwa jumlah:

penulusuran untuk algoritma Stentiford sebanyak 4 penulusuran, sedang jumlah titik piksel yang terhapus sebanyak 7 piksel. Tampilan nya baik karena hasil thinning mirip dengan citra awal, dan terkoneksi.

3.7.3 Algoritma Hilditch Contoh Algoritma Hilditch

P1 P2 P3 P4 P5 P6 P7 P8 P9

Gambar 3.17 Contoh Citra awal Hilditch

Pengubahan sebuah titik obyek menjadi titik latar apabila memenuhi keempat kriteria berikut ini:

1. 2 ≤ N(P1) ≤ 6 2. S(P1) =1


(55)

3. P2, P4, atau P8 ada yang merupakan titik latar, atau S(P2) ≠ 1 4. P2, P4, atau P6 ada yang merupakan titik latar, atau S(P4) ≠ 1

Penulusuran dimulai dari kiri kekanan dan dari atas kebawah. Penulusuran objek dimulai dari kolom 2 sampai 299 dan baris 2 sampai 199

For b = 3 To 199 For k = 2 To 298

Dimana titik P1 harus bernilai 1 (objek) CitraHilditch(k, b) = 1

Untuk Piksel P1 = (P1) pada Gambar 3.17 :

N(P1) = 3; TRUE S(P1) = 1; TRUE

P2 * P4 * P8 = 0; TRUE P2 * P4 * P6 = 0; TRUE

Kondisi dapat terpenuhi semua dengan nilai TRUE sehingga dapat disimpulkan bahwa P1 ditandai dan dirubah menjadi background (nol).

Kondisi tidak dapat bernilai TRUE semua untuk P1 = (P5), hal ini diakibatkan karena P2 * P4 * P6 =1 bernilai FALSE,Setelah dilakukan cara yang sama terhadap P1 = (P6), P1 = (P7), P1 = (), P1 = (P9). Hasilnya dapat dilihat pada gambar 3.18.

0 0 0

P1 P2 0

0 P3 0


(56)

Untuk Piksel P1 = (Q1) pada Gambar 3.18:

N(P1) = 3; TRUE S(P1) = 1; TRUE

P2 * P4 * P8 = 0; TRUE P2 * P4 * P6 = 0; TRUE

Kondisi dapat terpenuhi semua dengan nilai TRUE sehingga dapat disimpulkan bahwa P1 ditandai dan dirubah menjadi background (nol).

Kondisi tidak dapat bernilai TRUE semua untuk P1= (P2).Setelah dilakukan cara yang sama terhadap P1 = (P3). Hasilnya dapat dilihat pada gambar 3.19.

0 0 0

0’ P1 0

0 0’ 0

Gambar 3.19 Hasil Proses langkah 2 pada Algoritma Hilditch Untuk Piksel P1 = (P1) pada Gambar 3.19:

N(P1) = 3; FALSE S(P1) = 1; TRUE

P2 * P4 * P8 = 0; TRUE P2 * P4 * P6 = 0; TRUE

Kondisi tidak dapat terpenuhi semua dan bernilai FALSE sehingga dapat disimpulkan bahwa P1 tidak ditandai dan tidak dirubah menjadi background (nol). Didapatkan hasil akhir seperti citra dibawah ini Gambar 3.20. Jika dilakukan langkah 4 hasil yang diperoleh dari citra tersebut tidak berubah, sehingga dapat disimpulkan bahwa pengeksekusian algoritma thinning citra sudah selesai.


(57)

0 0 0

0’ P1 0

0 0’ 0

Gambar 3.20 Hasil proses langkah 1 pada Algoritma Hilditch.

Pada Gambar 3.20 diperoleh kesimpulan bahwa untuk proses pengerjaan algoritma Hilditch, jumlah penulusuran sebanyak 3 penulusuran dan jumlah titik terhapus sebanyak 8 piksel. Hasil piksel belum baik karena hasil akhir tidak mirip dengan citra awal sesuai.

3.7.4 Algoritma Rosenfeld Contoh Algoritma Rosenfeld

P1 P2 P3 P4 P5 P6 P7 P8 P9

Gambar 3.21 Contoh Citra Awal Rosenfeld

Langkah awal dalam Rosenfeld ini adalah dengan mencocokkan template yang sama. Seperti pada algoritma Stentiford.

P9 P2 P3 P8 P1 P4 P7 P6 P5


(58)

1. Penulusuran dimulai dari kiri kekanan dan dari atas kebawah. For b = 2 To 199

For k = 2 To 299

2. Cocokkan template untuk titik piksel P1 sebagai titik batas utara dimana P2

bernilai 0, P1 dan P6 bernilai 1.

P9 P2 P3 P8 P1 P4 P7 P6 P5

Gambar 3.23 .Contoh piksel P1 sebagai titik batas utara

3. Merupakan titik simple, S(P1) atau titik jumlah konektivitas dari 0 ke 1 dimulai dari P2- P3- P4- P5- P6-P7-P8-P9- P2, sebanyak 1, dan bukan merupakan endpoint (memiliki jumlah tetangga 2<=N(P1)<=7).

Untuk Piksel P1 = (P1) pada Gambar 3.21:

Pencocokkan template Dimana P1 sebagai titik batas utara; TRUE N(P1) = 3; TRUE

S(P1) = 1; TRUE

Kondisi dapat terpenuhi semua dengan nilai TRUE sehingga dapat disimpulkan bahwa P1 ditandai dan dirubah menjadi background (nol).

Kondisi tidak dapat bernilai TRUE semua untuk P1 = (P4), hal ini diakibatkan karena Pencocokkan template bernilai FALSE. Setelah dilakukan cara yang sama terhadap P1 = (P2), P1 = (P3), P1 = (P5), P1 = (P6), P1 = (P7), P1 = (P8), P1=(P9) Hasilnya dapat dilihat pada Gambar 3.24.


(59)

0 0 0

P1 P2 P3 P4 P5 P6

Gambar 3.24 Hasil objek langkah 1 pada Algoritma Rosenfeld

4. Lakukan langkah 1 sampai langkah 3 untuk piksel P1 sebagai batas selatan Cocokkan template untuk titik piksel P1 sebagai titik batas Selatan dimana P6

bernilai 0, P1 dan P2 bernilai 1.

P9 P2 P3 P8 P1 P4 P7 P6 P5

Gambar 3.25 Contoh piksel P1 sebagai titik batas selatan

Penulusuran dimulai dari kiri kekanan dan dari atas kebawah. For b = 2 To 199

For k = 2 To 299

Untuk Piksel P1= (P1) pada Gambar 3.24:

Pencocokkan template Dimana P1 sebagai titik batas selatan; TRUE N(P1) = 3; TRUE

S(P1) = 1; TRUE

Kondisi dapat terpenuhi semua dengan nilai TRUE sehingga dapat disimpulkan bahwa P1 ditandai dan dirubah menjadi background (nol).

Kondisi tidak dapat bernilai TRUE semua untuk P1 = (P4), hal ini diakibatkan karena Pencocokkan template bernilai FALSE. Setelah dilakukan cara yang sama


(60)

terhadap P1 = (P2), P1 = (P3), P1 = (P5), P1 = (P6). Hasilnya dapat dilihat pada

Gambar 3.26

0 0 0

P1 P2 P3 0’ 0’ 0’

Gambar 3.26 Hasil Proses langkah 2 pada Algoritma Rosenfeld

5. Cocokkan template untuk titik piksel P1 sebagai titik batas Timur dimana P4

bernilai 0, P1 dan bernilai 1.

P9 P2 P3 P8 P1 P4 P7 P6 P5

Gambar 3.27 Contoh objek P1 sebagai titik batas timur

Penulusuran dimulai dari kiri kekanan dan dari atas kebawah. For b = 2 To 199

For k = 2 To 299

Dimana titik P1 dan bernilai 1 dan titik P4 bernilai 0

Untuk Piksel P1 = (P1) pada Gambar 3.26:

Pencocokkan template Dimana P1 sebagai titik batas Timur; TRUE N(P1) = 1; FALSE

S(P1) = 1; TRUE

Kondisi tidak dapat bernilai TRUE semua untuk P1 = (P2), hal ini diakibatkan Jumlah Tetangga N(P1)=1 bernilai FALSE. Setelah dilakukan cara yang sama terhadap P1 = (R3), didapatkan hasil akhir seperti citra dibawah ini.


(61)

0 0 0

P1 P2 P3 0’ 0’ 0’

Gambar 3.28 Hasil objek langkah 3 pada Algoritma Rosenfeld.

6. Cocokkan template untuk titik piksel P1 sebagai titik batas Barat dimana

bernilai 0, P1 dan P4 bernilai 1

P9 P2 P3 P8 P1 P4 P7 P6 P5

Gambar 2.29 Contoh piksel P1 sebagai titik batas barat.

Penulusuran dimulai dari kiri kekanan dan dari atas kebawah. For b = 2 To 199

For k = 2 To 299

Untuk Piksel P1 = (P1) pada Gambar 3.28

Pencocokkan template Dimana P1 sebagai titik batas BARAT; TRUE N(P1) = 1; FALSE

S(P1) = 1; TRUE

Kondisi tidak dapat bernilai TRUE semua untuk P1 = (P2), hal ini diakibatkan Jumlah Tetangga N(P1)=1 bernilai FALSE dan S(P1)=2 bernilai False. Setelah dilakukan cara yang sama terhadap P1 = (P3) . Jika dilakukan langkah 4 hasil yang diperoleh dari citra tersebut tidak berubah, sehingga dapat disimpulkan bahwa pengeksekusian algoritma thinning citra sudah selesai.


(62)

0 0 0

P1 P2 P3 0’ 0’ 0’

Gambar 3.30 Hasil objek langkah 4 pada Algoritma Rosenfeld

Untuk Gambar 3.30 yang diproses dengan menggunakan algoritma Rosenfeld dapat disimpulkan bahwa:Jumlah penulusuran sebanyak 4 penulusuran dan jumlah titik terhapus sebanyak 6 piksel. Hasil tampilan baik dari algoritma lainnya karena hasilnya memiliki bentuk kerangka yang mirip dengan objek semula.

3.8 Analisis Jumlah Penulusuran

Jumlah penulusuran dihitung berdasarkan banyaknya langkah dari masing-masing algoritma misalnya algoritma Stentiford dan algoritma Rosenfeld memiliki 4 sub penulusuran. Untuk melakukan thinning metode algoritma ini harus diujicoba untuk seluruh sub penulusuran ini jadi hasil dari jumlah penulusuran untuk algoritma ini akan dikali 4, atau pada umumnya jumlah penulusurannya akan berkelipatan 4. karena harus dipenuhi seluruh kondisi. Begitu juga untuk algoritma ZhangSuen yang memiliki 2 sub Penulusuran dimana hasil penulusuran akan berkelipatan 2. sedang algoritma Hilditch yang hanya memiliki satu sub penulusuran maka akan menghasilkan jumlah penulusuran berkelipatan satu.

3.9 Analisis Jumlah Piksel Terhapus

Langkah pertama dilakukan terhadap semua titik obyek di citra. Jika salah satu dari beberapa kondisi yang ditetapkan dari masing-masing algoritma thinning yang dibandigkan jika tidak dipenuhi atau dilanggar maka nilai piksel yang bersangkutan tidak diubah. Sebaliknya jika semua kondisi tersebut dipenuhi maka piksel tersebut


(63)

ditandai untuk penghapusan. Sehingga hasil kerangka dari masing-masing algoritma pada umumnya akan berbeda.

Piksel yang telah ditandai tidak akan dihapus sebelum semua titik obyek selesai diproses. Hal ini berguna untuk mencegah perubahan struktur data. Setelah langkah 1 selesai dilakukan untuk semua titik obyek maka dilakukan penghapusan untuk titik yang telah ditandai (diubah menjadi 0). Setelah itu dilakukan langkah 2 pada data hasil dari langkah 1 dengan cara yang sama dengan langkah 1.

Prosedur ini dilakukan secara iteratif sampai tidak ada lagi titik yang dapat dihapus, pada saat algoritma ini selesai maka akan dihasilkan skeleton dari citra awal.

3.10 Analisis Jumlah Waktu Penulusuran

Waktu Penulusuran diperoleh dari lamanya proses pengerjaan dari masing-masing algoritma. Semakin banyak jumlah piksel yang akan diproses maka semakin banyak pula waktu yang digunakan untuk melakukan proses Penulusuran tersebut. Jadi jumlah waktu tergantung dari banyaknya jumlah titik objek yang akan ditelusuri.

3.11 Flowchart

Berikut akan ditampilkan Flowchart urutan perancangan bentuk arsitektur dari aplikasi yang telah dirancang.


(64)

MULAI

GrayScale

Threshold

Binerisasi

ZhangSuen Stentiford Hilditch Rosenfeld

Bentuk hasil citra thinning, kecepatan proses, waktu Penelusuran, dan jumlah penelusuran

dari masing-masing algoritma Thinning

SELESAI Input Picture RGB

Ukuran 200x300 Piksel

Syarat Hasil Thinning yang baik: 1. Adanya keterhubungan yang sama dengan citra awal

2. Kerangka mirip citra awal 3. Mengandung jumlah piksel

seminimal mungkin

YA

TIDAK

Tampilan tidak baik

Tampilan baik

Gambar 3.31 Flowchart urutan rancangan bentuk arsitektur aplikasi. Keterangan Gambar Flowchart 3.31

1. Start; Program atau software yang telah dibangun dijalankan

2. Input Picture RGB Ukuran 200x300 Piksel; data yang akan diproses


(1)

If CitraZhangSuen(k - 1, b - 1) = 0 And CitraZhangSuen(k, b - 1) = 1 Then SP1 = SP1 + 1 'P9-P2

If SP1 <> 1 Then GoTo Lanjut2

'---Deteksi P2*P4*P8---

If CitraZhangSuen(k, b - 1) And CitraZhangSuen(k + 1, b) And CitraZhangSuen(k - 1, b) = 1 Then GoTo Lanjut2

'---Deteksi P2*P6*P8--- If CitraZhangSuen(k, b - 1) And CitraZhangSuen(k, b + 1) And

CitraZhangSuen(k - 1, b) = 1 Then GoTo Lanjut2 PenandaZhangSuen(k, b) = 0 End If

Lanjut2: Next k

Next b

For b = 1 To 200 For k = 1 To 300

If (CitraZhangSuen(k, b) = 1) And (PenandaZhangSuen(k, b) = 0) Then Ada = Ada Or True

JumlahTitikTerhapus = JumlahTitikTerhapus + 1 Else

Ada = Ada Or False End If

CitraZhangSuen(k, b) = CitraZhangSuen(k, b) And PenandaZhangSuen(k, b) PenandaZhangSuen(k, b) = CitraZhangSuen(k, b)

Next k Next b

Loop

lblIrerasiZhangSuen.Caption = JumlahIterasi * 2

lblTitikTerhapusZhangSuen.Caption = JumlahTitikTerhapus

'---Menampilkan Hasil Thinning--- For b = 1 To 200

For k = 1 To 300

If CitraZhangSuen(k, b) = 0 Then X = 255 Else X = 0

picZhangSuenImage.PSet (k * 15 - 15, b * 15 - 15), RGB(X, X, X) Next k

prgZhang_Suen.Value = b Next b

End Sub

Private Sub ThinningDenganHilditch() Dim NP1 As Integer

Dim SP1 As Integer Dim SP2 As Integer


(2)

Dim SP3 As Integer Dim Ada As Boolean

Dim JumlahIterasi As Integer

Dim JumlahTitikTerhapus As Integer

'---Membaca Matriks Biner--- For b = 1 To 200

For k = 1 To 300

PenandaHilditch(k, b) = CitraHilditch(k, b) Next k

Next b

'---

JumlahIterasi = 0

JumlahTitikTerhapus = 0 Ada = True

Do While Ada = True Ada = False

JumlahIterasi = JumlahIterasi + 1

'--- For b = 3 To 199

For k = 2 To 298

'---N(P1) = 1--- If CitraHilditch(k, b) = 1 Then

NP1 = 0

If CitraHilditch(k, b - 1) = 1 Then NP1 = NP1 + 1 'P2 If CitraHilditch(k + 1, b - 1) = 1 Then NP1 = NP1 + 1 'P3 If CitraHilditch(k + 1, b) = 1 Then NP1 = NP1 + 1 'P4 If CitraHilditch(k + 1, b + 1) = 1 Then NP1 = NP1 + 1 'P5 If CitraHilditch(k, b + 1) = 1 Then NP1 = NP1 + 1 'P6 If CitraHilditch(k - 1, b + 1) = 1 Then NP1 = NP1 + 1 'P7 If CitraHilditch(k - 1, b) = 1 Then NP1 = NP1 + 1 'P8 If CitraHilditch(k - 1, b - 1) = 1 Then NP1 = NP1 + 1 'P9

'---Menguji Jumlah Tetangga 2 < NP1 <= 6 --- If NP1 = 0 Or NP1 = 1 Or NP1 = 7 Or NP1 = 8 Then GoTo Lanjut

'---Mendeteksi Connectivity Number--- SP1 = 0

If CitraHilditch(k, b - 1) = 0 And CitraHilditch(k + 1, b - 1) = 1 Then SP1 = SP1 + 1 'P2-P3

If CitraHilditch(k + 1, b - 1) = 0 And CitraHilditch(k + 1, b) = 1 Then SP1 = SP1 + 1 'P3-P4

If CitraHilditch(k + 1, b) = 0 And CitraHilditch(k + 1, b + 1) = 1 Then SP1 = SP1 + 1 'P4-P5

If CitraHilditch(k + 1, b + 1) = 0 And CitraHilditch(k, b + 1) = 1 Then SP1 = SP1 + 1 'P5-P6

If CitraHilditch(k, b + 1) = 0 And CitraHilditch(k - 1, b + 1) = 1 Then SP1 = SP1 + 1 'P6-P7

If CitraHilditch(k - 1, b + 1) = 0 And CitraHilditch(k - 1, b) = 1 Then SP1 = SP1 + 1 'P7-P8

If CitraHilditch(k - 1, b) = 0 And CitraHilditch(k - 1, b - 1) = 1 Then SP1 = SP1 + 1 'P8-P9


(3)

If CitraHilditch(k - 1, b - 1) = 0 And CitraHilditch(k, b - 1) = 1 Then SP1 = SP1 + 1 'P9-P2

If SP1 <> 1 Then GoTo Lanjut

'---P2*P4*P8 = 0---'

If CitraHilditch(k, b - 1) = 0 Or CitraHilditch(k + 1, b) = 0 Or CitraHilditch(k - 1, b) = 0 Then

GoTo Langkah4 Else

GoTo Atau End If

Atau:

SP2 = 0

If CitraHilditch(k, b - 2) = 0 And CitraHilditch(k + 1, b - 2) = 1 Then SP2 = SP2 + 1 'PY-PZ

If CitraHilditch(k + 1, b - 2) = 0 And CitraHilditch(k + 1, b - 1) = 1 Then SP2 = SP2 + 1 'PZ-P3

If CitraHilditch(k + 1, b - 1) = 0 And CitraHilditch(k + 1, b) = 1 Then SP2 = SP2 + 1 'P3-P4

If CitraHilditch(k + 1, b) = 0 And CitraHilditch(k, b) = 1 Then SP2 = SP2 + 1 'P4-P1

If CitraHilditch(k, b) = 0 And CitraHilditch(k - 1, b) = 1 Then SP2 = SP2 + 1 'P1-P8

If CitraHilditch(k - 1, b) = 0 And CitraHilditch(k - 1, b - 1) = 1 Then SP2 = SP2 + 1 'P8-P9

If CitraHilditch(k - 1, b - 1) = 0 And CitraHilditch(k - 1, b - 2) = 1 Then SP2 = SP2 + 1 'P9-PX

If CitraHilditch(k - 1, b - 2) = 0 And CitraHilditch(k, b - 2) = 1 Then SP2 = SP2 + 1 'PX-PY

If SP2 <> 1 Then GoTo Langkah4 Else

GoTo Lanjut End If

End If Langkah4:

'---P2*P4*P6--- If CitraHilditch(k, b - 1) = 0 Or CitraHilditch(k + 1, b) = 0 Or CitraHilditch(k, b + 1) = 0 Then

GoTo Hapus Else GoTo Atau2 End If

Atau2:

SP3 = 0

If CitraHilditch(k + 1, b - 1) = 0 And CitraHilditch(k + 2, b - 1) = 1 Then SP3 = SP3 + 1 'P3-PA

If CitraHilditch(k + 2, b - 1) = 0 And CitraHilditch(k + 2, b) = 1 Then SP3 = SP3 + 1 'PA-PB

If CitraHilditch(k + 2, b) = 0 And CitraHilditch(k + 2, b + 1) = 1 Then SP3 = SP3 + 1 'PB-PC


(4)

If CitraHilditch(k + 2, b + 1) = 0 And CitraHilditch(k + 1, b + 1) = 1 Then SP3 = SP3 + 1 'PC-P5

If CitraHilditch(k + 1, b + 1) = 0 And CitraHilditch(k, b + 1) = 1 Then SP3 = SP3 + 1 'P5-P6

If CitraHilditch(k, b + 1) = 0 And CitraHilditch(k, b) = 1 Then SP2 = SP3 + 1 'P6-P1

If CitraHilditch(k, b) = 0 And CitraHilditch(k, b - 1) = 1 Then SP2 = SP3 + 1 'P1-P2

If CitraHilditch(k, b - 1) = 0 And CitraHilditch(k + 1, b - 2) = 1 Then SP3 = SP3 + 1 'P2-P3

If SP3 <> 1 Then GoTo Hapus Else

GoTo Lanjut End If

Hapus:

PenandaHilditch(k, b) = 0

Lanjut:

Next k Next b

'---Penghapusan Pixel--- For b = 1 To 200

For k = 1 To 300

If (CitraHilditch(k, b) = 1) And (PenandaHilditch(k, b) = 0) Then Ada = Ada Or True

JumlahTitikTerhapus = JumlahTitikTerhapus + 1 Else

Ada = Ada Or False End If

CitraHilditch(k, b) = CitraHilditch(k, b) And PenandaHilditch(k, b) PenandaHilditch(k, b) = CitraHilditch(k, b)

Next k Next b

Loop

lblIrerasiHilditch.Caption = JumlahIterasi

lblTitikTerhapusHilditch.Caption = JumlahTitikTerhapus

'---Menampilkan Hasil Thinning---

For b = 1 To 200 For k = 1 To 300

If CitraHilditch(k, b) = 0 Then X = 255 Else X = 0

picHilditchImage.PSet (k * 15 - 15, b * 15 - 15), RGB(X, X, X) Next k

prgHilditch.Value = b Next b

End Sub

Private Sub cmdBrowse_Click() cdlImage.ShowOpen

NamaFile = cdlImage.FileName


(5)

picOriginalImage.Refresh End Sub

Private Sub cmdClearThinning_Click() picThinning.Picture = LoadPicture("") picThinning.Refresh

End Sub

Private Sub Form_Unload(Cancel As Integer) tmrGulung.Enabled = False

TmrJudul.Enabled = True py = 0

End Sub

Dim T As LONGInteger

Private Sub frmTprog_Click() frmTPro.Show

End Sub

Private Sub hscNilaitreshold_Change()

lblNilaiTreshold.Caption = hscNilaitreshold.Value NilaiTreshold = Val(lblNilaiTreshold.Caption) For i = 1 To picGrayScalelImage.Width Step 15 For J = 1 To picGrayScalelImage.Height Step 15 warna = picGrayScalelImage.Point(i, J)

If warna < NilaiTreshold Then X = 0 Else X = 255 picTresholdImage.PSet (i, J), RGB(X, X, X)

Next J Next i End Sub

Private Sub Timer1_Timer() V = Left(T, 1)

C = Len(T)

b = Right(T, C - 1) T = b + V

txtJudul.Text = T End Sub

Private Sub TmrJudul_Timer() If SW = 1 Then

imgJudul.Picture = LoadPicture(App.Path & "\1.gif") SW = 2

ElseIf SW = 2 Then

imgJudul.Picture = LoadPicture(App.Path & "\3.gif") SW = 3

ElseIf SW = 3 Then

imgJudul.Picture = LoadPicture(App.Path & "\4.gif") SW = 4

ElseIf SW = 4 Then

imgJudul.Picture = LoadPicture(App.Path & "\5.gif") SW = 5


(6)

imgJudul.Picture = LoadPicture(App.Path & "\6.gif") SW = 6

ElseIf SW = 6 Then

imgJudul.Picture = LoadPicture(App.Path & "\7.gif") SW = 7

ElseIf SW = 7 Then

imgJudul.Picture = LoadPicture(App.Path & "\8.gif") SW = 1

End If End Sub

Private Sub cmdExit_Click() End