• Tidak ada hasil yang ditemukan

Studi Perbandingan Beberapa Algoritma Thinning Dalam Pengenalan Pola

N/A
N/A
Protected

Academic year: 2016

Membagikan "Studi Perbandingan Beberapa Algoritma Thinning Dalam Pengenalan Pola"

Copied!
125
0
0

Teks penuh

(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

(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,

(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

(4)

PENGHARGAAN

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

(5)

ABSTRAK

(6)

COMPARATIVE STUDY THE ALGORITHM OF THINNING IN PATTERN RECOGNITION

ABSTRACT

(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

(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

(13)

COMPARATIVE STUDY THE ALGORITHM OF THINNING IN PATTERN RECOGNITION

ABSTRACT

(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.

(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.

(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.

(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

(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

(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

(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

(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)

(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)

(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

(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.

(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.

(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.

(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

(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.

(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.

(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

(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

(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

(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)
[image:38.595.232.402.82.152.2]

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.

(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

(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

(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.

(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

(44)

PX PY PZ PA

P9 P2 P3 PB

P8 P1 P4 PC P7 P6 P5 PD

Gambar 3.2 Bentuk pengalamatan citra

[image:44.595.255.377.82.188.2]

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]

(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

(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.

(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

[image:51.595.260.372.311.425.2]

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:

[image:52.595.260.373.245.366.2]

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

(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

[image:53.595.260.373.165.279.2]

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.

(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

[image:54.595.261.372.82.197.2]

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:

(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.

[image:55.595.260.371.581.692.2]

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.

[image:56.595.260.372.333.445.2]

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

(57)
[image:57.595.261.372.82.197.2]

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).

(59)
[image:59.595.260.371.82.195.2]

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).

(60)
[image:60.595.259.373.123.241.2]

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

(61)
[image:61.595.260.373.81.199.2]

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

(62)
[image:62.595.260.373.80.199.2]

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

(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

(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

[image:64.595.119.515.87.589.2]

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

(65)

3. Grayscale; citra yang telah di input akan di Grayscale untuk mendapatkan derajat keabuan warna citra.

4. Treshold; Kemudian pada citra dilakukan Treshold untuk mendapatkan dua keadaan warna yaitu hitam dan putih.

5. Binerisasi; Citra akan dikonversi ke dalam matriks dengan elemen 1 mewakili warna hitam, 0 mewakili warna putih dengan membentuk pola sesuai citra.

6. Zhangsuen, Stentiford, Hilditch, Rosenfeld ; empat algoritma thinning yang akan dilakukan untuk proses pengenalan pola.

7. Bentuk hasil citra thinning, kecepatan proses, waktu Penulusuran dan jumlah Penulusuran dari masing-masing algoritma thinning; algoritma Thinning yang akan dibandingkan berupa gambar hasil thinning, jumlah Penulusuran dan waktu Penulusuran.

8. Syarat Hasil Thinning yang baik: Adanya keterhubungan yang sama dengan citra awal Kerangka mirip citra awal, Mengandung jumlah piksel seminimal mungkin , Jika tampilan sesuai syarat maka hasil tampilan baik jika tidak maka tampilan tidak baik.

(66)

3.11.1 Flowchart Algoritma ZhangSuen

X1 MULAI

Input Picture Biner Ukuran 200x300 Piksel

For b = 2 To 199 For k = 2 To 299

IF CitraZhangSuen(k,b) = 1

IF 2<=NP1<=6

IF SP1= 1

IF CitraZhangSuen(k,b-1) Or CitraZhangSuen(k+1,b) Or CitraZhangSuen(k,b+1) = 0

IF CitraZhangSuen(k+1,b) Or CitraZhangSuen(k,b+1) Or CitraZhangSuen(k-1,b) = 0

Next k Next b

TIDAK

TIDAK

TIDAK

TIDAK YA

YA

YA

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

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

YA YA

Next k Next b

IF b>200 or k>300

TIDAK

YA PenandaZhangSuen(k,b) = 0

[image:66.595.138.494.118.723.2]

TIDAK

(67)

For b = 2 To 199 For k = 2 To 299

IF CitraZhangSuen(k,b) = 1

IF 2<=NP1<=6

IF SP1 = 1

IF CitraZhangSuen(k,b-1) Or CitraZhangSuen(k+1,b) Or CitraZhangSuen(k-1,b) = 0

IF CitraZhangSuen(k,b-1) Or CitraZhangSuen(k,b+1) Or CitraZhangSuen(k-1,b) = 0

Next k Next b TIDAK TIDAK TIDAK TIDAK YA YA YA

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

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

YA

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

IF citraZhangSuen(k,b) = 0

X = 255

TIDAK X = 0

PicZhangSuenImage.Pset(K*15-15, b*15-15), RGB(X, X, X )

SELESAI X1 YA YA Next k Next b Next k Next b TIDAK

IF b>200 or k>300

YA TIDAK

[image:67.595.155.483.74.716.2]

PenandaZhangSuen(k,b) = 0

(68)

3.11.2 Flowchart Algoritma Stentiford

Y1 MULAI

IF SP1 = 1 For b = 2 To 199 For k = 2 To 299

IF CitraStentiford(k,b) and CitraStentiford(k,b+1) = 1 and

CitraStentiford(k,b-1) <> 1

IF NP1 = 1 Input Citra Biner Ukuran 200x300Piksel

TIDAK

TIDAK

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

CitraStentiford(k,b) = CitraStentiford(k,b) and PenandaStentiford(k,b)

PenandaStentiford(k,b) = CitraStentiford(k,b) YA

YA

YA

lanjut1: Next k Next b

Next k Next b

IF b>200 or k>300

YA

TIDAK

TIDAK

[image:68.595.149.482.119.719.2]

PenandaStentiford(k,b) = 0

(69)

Y2 IF SP1= 1 For b =199 To 2 Step -1

For k = 2 To 299

IF CitraStentiford(k,b) and CitraStentiford(k+1,b) = 1 and

CitraStentiford(k-1,b)<>1

IF NP1 = 1 TIDAK

TIDAK

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

CitraStentiford(k,b) = CitraStentiford(k,b) and PenandaStentiford(k,b)

PenandaStentiford(k,b) = CitraStentiford(k,b) YA

YA

YA Y1

Lanjut2: Next k Next b

Next k Next b

TIDAK

IF b>200 or k>300

YA

[image:69.595.134.497.75.709.2]

TIDAK PenandaStentiford(k,b) = 0

(70)

Y3 IF SP1 = 1 For b=199 To 2 Step -1 For k= 299 To 2 Step -1

IF CitraStentiford(k,b) and CitraStentiford(k,b-1) =1 and

CitraStentiford(k,b+1) <> 1

IF NP1 = 1 TIDAK

TIDAK

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

CitraStentiford(k,b) = CitraStentiford(k,b) and PenandaStentiford(k,b)

PenandaStentiford(k,b) = CitraStentiford(k,b) YA

YA

YA Y2

Next k Next b

Next k Next b

TIDAK

IF b>200 or k>300

YA

[image:70.595.116.516.76.714.2]

TIDAK PenandaStentiford(k,b) = 0

(71)

IF SP1=1

PenandaStentiford(k,b)=0 For b=2 To 199 For k= 299 To 2 Step -1

IF CitraStentiford(k,b) and CitraStentiford(k-1,b)=1and CitraStentiford(k+1,b)<>1

IF NP1=1 TIDAK

TIDAK

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

CitraStentiford(k,b)= CitraStentiford(k,b) and PenandaStentiford(k,b) PenandaStentiford(k,b)=CitraStentiford(k,b)

YA

YA

YA Y3

IF CitraStetinford(k,b)=0 TIDAK X=0

PicStentifordImage.Pset(K*15-15, b*15-15), RGB(X, X, X )

SELESAI X=255 For b=1 To 200 For k=1 To 300

YA Next k Next b

Next k Next b

Next k Next b

TIDAK

IF b>200 or k>300

YA

[image:71.595.141.491.74.724.2]

TIDAK

Gambar

Gambar 2.22 Dua contoh di mana P1 bukan merupakan 8-simple point
Tabel 3.1 Keterangan gambar pengalamatan citra
Gambar 3.13 Hasil Proses langkah 1 pada Algoritma Stentiford
Gambar 3.14 Hasil objek langkah 2 pada Algoritma Stentiford
+7

Referensi

Dokumen terkait

(3) Bakal Calon Kepala Dusun yang telah ditetapkan oleh Panitia Pemilihan sebagaimana dimaksud pada ayat (2), diajukan kepada Pemerintah Desa untuk ditetapkan sebagai calon

Hasil ini dibuktikan dengan perhitungan sebagai berikut: nilai koefisien pengaruh langsung dana alokasi umum terhadap pertumbuhan ekonomi sebesar 2,001E-13,

Masih terbatasnya studi yang mempelajari patogenesis pajanan debu kayu pada orang sehat, khususnya dalam hubungan dengan kadar CD4 dan eosinofil serum pada

Doso kurang lebih dari 1 (satu) kali, selanjutnya sabit dipindahkan ke tangan kanan dan diayunkan ke leher Sdr. Djuwari dengan cepat memegang tangan Terdakwa

Pada tahun 2018 dan 2019, kami telah menjalin hubungan yang baik dengan pihak Galeri Nasional Indonesia dan Museum Nasional Indonesia untuk memperluas dan mempermudah

Berdasarkan uraian tersebut, dapat ditarik kesimpulan bahwa ciri dari sampel independen adalah sampling secara random, sampel diambil dari populasi yang berdistribusi

Berkaitan dengan pembelajaran pada masa pandemi ini, Mendikbud Nadim Anwar Makarim menerbitkan Surat Edaran Nomor 4 Tahun 2020 tentang Pelaksanaan Pendidikan Dalam

Tujuan yang akan dicapai adalah (1) Tujuan umum Penelitian ini bertujuan untuk mengetahui peningkatan kecerdasan visual spasial anak pada taman kanak- kanak melalui