Analisis Dan Perancangan Perangkat Lunak Image Thinning Dengan Metode Zhang Suen

(1)

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK IMAGE

THINNING DENGAN METODE ZHANG SUEN

SKRIPSI

SUCI INDAH SYAHPUTRI

091421022

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2011


(2)

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK IMAGE

THINNING DENGAN METODE ZHANG SUEN

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

SUCI INDAH SYAHPUTRI

091421022

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER

DEPARTEMEN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2011


(3)

PERSETUJUAN

Judul : ANALISIS DAN PERANCANGAN PERANGKAT LUNAK IMAGE THINNING DENGAN METODE ZHANG SUEN

Kategori : SKRIPSI Nama : SUCI INDAH SYAHPUTRI Nomor Induk Mahasiswa : 091421022

Program Studi : EKSTENSI S1 ILMU KOMPUTER Departemen : ILMU KOMPUTER

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Juli 2011 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Drs. Agus Salim Harahap, M.Si Maya Silvi Lydia, B.Sc., M.Sc NIP. 195408281981031004 NIP. 197401272002122001

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP 196203171991021001


(4)

PERNYATAAN

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK IMAGE THINNING DENGAN METODE ZHANG SUEN

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juli 2011

Suci Indah Syahputri 091421022


(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Allah SWT, yang selalu melimpahkan rahmat, kasih sayang, dan rizki yang tiada putus-putusnya, sehingga Alhamdulillah akhirnya kertas kajian ini berhasil diselesaikan dalam waktu yang telah ditetapkan.

Ucapan terima kasih penulis sampaikan kepada Ibu Maya Silvi Lydia, B.Sc., M.Sc dan Bapak Drs. Agus Salim Harahap, M.Si selaku pembimbing yang membimbing penulis pada penyelesaian skripsi ini dan telah memberikan panduan dengan penuh kepercayaan kepada penulis untuk menyempurnakan kajian ini. Panduan ringkas dan padat dan profesional telah diberikan kepada penulis agar penulis dapat menyelesaikan tugas ini. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi Ilmu Komputer, Bapak Dr. Poltak Sihombing, M.Kom dan Ibu Maya Silvi Lydia, B.Sc., M.Sc. Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen pada Departemen Ilmu Komputer FMIPA USU, pegawai di Departemen Ilmu Komputer USU. Ucapan terima kasih juga ditujukan kepada Bapak Dr. Poltak Sihombing, M.Kom, dan Bapak Drs. Marihat Situmorang, M.Kom selaku dosen penguji dan tidak lupa kepada rekan-rekan kuliah. Tidak terlupakan kepada Ibunda tercinta Teresia Hasugian, Ayahanda tercinta Ramidi dan abang-abang tersayang, dan semua sanak keluarga yang selama ini memberikan bantuan, dorongan dan semangat yang penulis butuhkan. Jazakallah khairan katsiran.


(6)

ABSTRAK

Segmentasi citra merupakan langkah awal pada proses analisa citra yang bertujuan untuk pengenalan pola dengan mengambil informasi yang terdapat di dalam suatu citra. Image thinning merupakan salah satu aplikasi dari segmentasi citra untuk menghasilkan bentuk kerangka dari sebuah citra digital yang hanya berukuran 1 pixel sehingga mudah dikenal. Metode image thinning yang digunakan pada penelitian ini adalah Zhang Suen. Metode ini melakukan proses thinning dengan melakukan iterasi untuk mengambil nilai pixel yang termasuk ke dalam kategori contour point, melakukan iterasi untuk menghapus seluruh pixel yang termasuk ke dalam kategori contour point serta menampilkan hasil pengenalan pola dalam bentuk sebuah citra digital yang telah mengalami proses thinning.


(7)

ANALYSIS AND DESIGN IMAGE THINNING SOFTWARE WITH ZHANG SUEN METHOD

ABSTRACT

Image segmentation is the first step in the process of image analysis which aims to pattern recognition by taking the information contained in an image. Image thinning is one of the applications of image segmentation to produce a skeleton of a digital image that measures just 1 pixel so easily recognized. Image thinning method used in this study is Zhang Suen, it does the thinning process by performing iterations to retrieve pixel values that fall into the category of contour points, the perform iterations to remove all the pixels that fall into the category of contour points and displays the results of pattern recognition in the form a digital image that has undergone a process of thinning.


(8)

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 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 3

1.5 Manfaat Penelitian 3

1.6 Metode Penelitian 3

1.7 Sistematika Penulisan 4

Bab 2 TINJAUAN PUSTAKA 6

2.1 Citra Digital 6

2.2 Format Citra Digital 8

2.3 Pengertian Pengolahan Citra 9

2.4 Peningkatan Mutu Citra 12

2.4.1 Filter Untuk Memperbaiki Citra 13 2.4.2 Filter Untuk Menyunting Citra 14 2.4.3 Filter Pergeseran Posisi (Position Shifting Filter) 16

2.5 Aritmetika Module 17

2.6 Citra Grayscale 17

2.7 Citra Biner 17

2.8 Citra Threshold 18

2.9 Image Thinning 19

2.9.1 Algoritma Thinning 23

2.9.2 Metode Zhang Suen 26

Bab 3 ANALISIS DAN PERANCANGAN SISTEM 28

3.1 Analisis Sistem 28

3.1.1 M

embaca Jumlah Pixel 29

3.1.2 M

enghitung Nilai RGB Citra 30

3.1.3 A

lgoritma Zhang Suen 37


(9)

3.2.1 F

lowchart Thinning Image 39

3.2.2 P

erancangan Antar Muka Program 41

Bab 4 IMPLEMENTASI DAN PENGUJIAN 44

4.1 Implementasi 44

4.1.1 Tampilan Menu Utama 45

4.1.2 Tampilan Image Thinning 47

4.1.3 Tampilan About 49

4.1.4 Tampilan Help 49

4.2 Pengujian Sitem 50

4.2.1 Pengujian Proses Thinning 51 4.2.2 Pengujian Tampilan Hasil Proses Thinning 57

Bab 5 PENUTUP 58

5.1. Kesimpulan 58

5.2. Saran 58

DAFTAR PUSTAKA 58


(10)

DAFTAR GAMBAR

Halaman 2.1 Sistem Kordinat Citra Digital 6

2.2 Representasi Warna RGB Pada Citra Digital 7 2.3 Image Histogram dari suatu gambar yang gelap 13

2.4 Gradasi Citra Biner 17

2.5 Citra Biner 18

2.6 Citra Grayscale 4x4 Pixel 19

2.7 Citra Hasil Threshold 19

2.8 Piksel 8 Tetangga 20

2.9 Citra Akar 22

2.10 Citra Sirkuit Elektronika 22

2.11 Citra Karakter 22

2.12 Contoh Ukuran dari Beberapa Struktur Elemen 24

2.13 Contoh Struktur Elemen 25

2.14 Empat Bentuk Elemen Untuk Transformasi Hit-dan-miss 25 2.15 Proses Hit-dan-Miss yang Dilakukan pada suatu Citra Biner 26

2.16 Contoh Pixel P1 dengan 8 Tetangga 26 3.1 Format Citra 24-bit (16 juta warna)9 29 3.2 Representasi Pixel pada Citra 29

3.3 Citra Bunga 9 pixel 30

3.4 Matriks Nilai RGB Citra Bunga 9 Pixel 35 3.5 Nilai Grayscale Citra Bunga 9 Pixel 35

3.6 Matriks Citra Biner 9 Pixel 36

3.7 Matriks Citra Awal 9 Pixel 37

3.8 Matriks Citra 38

3.9 Matriks Citra Akhir 38

3.10 Flowchart Proses Thinning 40

3.11 Menu Utama 41

3.12 Rancangan Image Thinning 42

3.13 Rancangan About 42

3.14 Rancangan Help 43

4.1 Tampilan Form Utama 45

4.2 Image Thinning 45

4.3 Dialog Open File 46

4.4 Tampilan File Citra 47

4.5 Tampilan Hasil Thinning File Citra 47

4.6 Kotak Dialog Save File 48


(11)

4.8 Tampilan About 49

4.9 Tampilan Help 50

4.10 Citra Asli HP.bmp 51

4.11 Citra Hasil Thinning Hp.bmp 52

4.12 Citra Asli Uchy.bmp 52

4.13 Citra Hasil Thinning Uchy Thinning.bmp 53

4.14 Citra Asli Soccer.Jpg 54

4.15 Citra Hasil Thinning Thin.Jpg 55

4.16 Citra Asli Windows.Jpg 55

4.17 Citra Hasil Thinning WindowsThin.Jpg 56 4.18 Hasil Pengujian Thinning Jenis File Bmp 56 4.19 Hasil Pengujian Thinning Jenis File Jpg 56 4.20 Gambar 4.20 Pengujian Tampilan Hasil Proses Thinning 57


(12)

DAFTAR TABEL

Halaman

2.1 Bitmap Info Header 8


(13)

ABSTRAK

Segmentasi citra merupakan langkah awal pada proses analisa citra yang bertujuan untuk pengenalan pola dengan mengambil informasi yang terdapat di dalam suatu citra. Image thinning merupakan salah satu aplikasi dari segmentasi citra untuk menghasilkan bentuk kerangka dari sebuah citra digital yang hanya berukuran 1 pixel sehingga mudah dikenal. Metode image thinning yang digunakan pada penelitian ini adalah Zhang Suen. Metode ini melakukan proses thinning dengan melakukan iterasi untuk mengambil nilai pixel yang termasuk ke dalam kategori contour point, melakukan iterasi untuk menghapus seluruh pixel yang termasuk ke dalam kategori contour point serta menampilkan hasil pengenalan pola dalam bentuk sebuah citra digital yang telah mengalami proses thinning.


(14)

ANALYSIS AND DESIGN IMAGE THINNING SOFTWARE WITH ZHANG SUEN METHOD

ABSTRACT

Image segmentation is the first step in the process of image analysis which aims to pattern recognition by taking the information contained in an image. Image thinning is one of the applications of image segmentation to produce a skeleton of a digital image that measures just 1 pixel so easily recognized. Image thinning method used in this study is Zhang Suen, it does the thinning process by performing iterations to retrieve pixel values that fall into the category of contour points, the perform iterations to remove all the pixels that fall into the category of contour points and displays the results of pattern recognition in the form a digital image that has undergone a process of thinning.


(15)

BAB 1

PENDAHULUAN

1.1 Latar Belakang

Segmentasi citra (image segmentation) merupakan langkah awal pada proses analisa citra yang bertujuan untuk mengambil informasi yang terdapat di dalam suatu citra. Pada umumnya segmentasi secara otomatis adalah salah satu pekerjaan yang sulit dalam pengolahan citra. Langkah ini akan menentukan berhasil atau tidaknya proses analisa citra. Namun dengan segmentasi yang efektif, kemungkinan besar akan didapatkan hasil yang baik.

Image Thinning merupakan salah satu aplikasi dari segmentasi citra untuk menghasilkan bentuk kerangka dari sebuah citra digital dan mengolah citra digital tersebut agar lebih padat. Dengan kata lain, image thinning bertujuan untuk memproses pixel-pixel pada sebuah citra digital agar menghasilkan sebuah citra digital yang lebih kecil ukurannya namun tetap memiliki informasi yang sama seperti sebelum dilakukan proses thinning.

Thinning merupakan suatu proses penting sebelum melakukan proses-proses atau operasi-operasi pengolahan citra, seperti dalam proses pengenalan karakter optic, pengenalan sidik jari, pemrosesan teks, dan lain sebagainya. Tujuannya adalah mengurangi bagian yang tidak perlu (redundant) sehingga dihasilkan informasi yang esensial saja.


(16)

Dengan melakukan thinning pada sebuah citra digital, dapat dihasilkan sebuah citra digital dengan ukuran objek yang lebih kecil namun tidak mengurangi kualitas dari citra digital tersebut. Salah satu metode image thinning yang dapat digunakan adalah Zhang Suen. Metode Zhang Suen merupakan algoritma image thinning yang menggunakan perbandingan sebagai basis dalam melakukan image thinning.

Dengan menggunakan perbandingan yang dilakukan secara berulang-ulang, metode ini akan menghasilkan citra digital yang lebih padat sehingga cocok digunakan dalam proses thinning sebuah citra digital.

Berdasarkan uraian di atas, penulis tertarik untuk merancang sebuah perangkat lunak yang dapat melakukan thinning pada suatu citra digital dengan menggunakan metode Zhang Suen dan menuangkannya ke dalam penelitian dengan judul Analisis dan Perancangan Perangkat Lunak Image Thinning Dengan Metode Zhang Suen.

1.2 Rumusan Masalah

Adapun yang menjadi rumusan masalah dalam penelitian ini adalah: a. Bagaimana cara melakukan thinning sebuah citra digital.

b. Bagaimana proses kerja metode Zhang Suen dalam melakukan thinning pada sebuah citra digital.

c. Bagaimana merancang sebuah perangkat lunak yang dapat melakukan thinning pada sebuah citra digital dengan menggunakan metode Zhang Suen.

1.3 Batasan Masalah

Adapun yang menjadi batasan masalah dalam penelitian ini adalah: a. Metode image thinning yang digunakan adalah metode Zhang Suen.

b. Citra digital yang dapat di-thinning dibatasi dengan format JPEG dan BMP.

c. Ukuran dimensi citra digital yang dapat di thinning dibatasi pada ukuran maksimum 800 x 600 pixel.


(17)

d. Output thinning yang dihasilkan merupakan sebuah citra digital dalam format JPEG.

e. Bahasa pemrograman yang digunakan adalah Microsoft Visual Basic 6.0.

1.4 Tujuan Penelitian

Tujuan dari penelitian ini adalah:

a. Untuk mengetahui proses kerja metode Zhang Suen dalam melakukan thinning pada sebuah citra digital.

b. Untuk mengetahui bentuk pengaplikasian metode Zhang Suen dalam bentuk sebuah perangkat lunak.

c. Untuk menghasilkan sebuah perangkat lunak yang mampu melakukan thinning pada sebuah citra digital.

1.5 Manfaat Penelitian

Manfaat dari penelitian ini adalah:

a. Membantu pengguna komputer untuk pengenalan pola dengan mengecilkan atau menguruskan pola-pola pada citra digital.

b. Sebagai bahan referensi bagi peneliti lain yang ingin mengembangkan perangkat lunak pengolahan citra digital, khususnya dalam bidang image thinning.

1.6 Metode Penelitian

Metode penelitian yang digunakan penulis dalam penelitian ini terdiri dari tahapan-tahapan antara lain:

1. Studi literatur

Tentang teori image thinning, khususnya dengan menggunakan metode Zhang Suen.

2. Analisis

Pada tahap ini akan dilakukan analisis terhadap kebutuhan dan persyaratan dalam pembuatan sistem.


(18)

3. Perancangan Sistem

Pada tahap ini dilakukan perancangan tahapan proses pengolahan citra digital sampai proses thinning, perancangan antarmuka serta perancangan prosedural sistem.

4. Pengkodean

Pada tahap ini sistem yang telah dirancang kemudian diimplementasikan ke dalam bahasa pemrograman.

5. Pengujian dan Analisa Perangkat Lunak

Menganalisis dan menguji hasil image thinning dengan menggunakan metode Zhang Suen.

6. Penulisan laporan dalam bentuk skripsi

Menyusun laporan hasil analisis dan perancangan ke dalam format penulisan skripsi dengan disertai kesimpulan akhir.

1.7 Sistematika Penulisan

Sistematika penulisan yang akan diuraikan dalam skripsi ini terbagi dalam beberapa bab yang akan dibahas sebagai berikut:

BAB 1 : PENDAHULUAN

Pada Bab I membahas tentang latar belakang, perumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian serta sistematika penulisan.

BAB 2 : LANDASAN TEORI

Pada Bab ini dibahas mengenai pengertian citra digital, image thinning, metode Zhang Suen dan teori lainnya yang mendukung pembuatan aplikasi.


(19)

BAB 3 : ANALISIS DAN PERANCANGAN SISTEM

Berisikan penjelasan analisis dari sistem yang akan dibangun, perancangan sistem, diagram-diagram, perancangan antar muka (user interface) meliputi perancangan input serta output.

BAB 4 : IMPLEMENTASI DAN PENGUJIAN SISTEM

Pada bab ini akan dituangkan hasil analisa dan perancangan sistem yang ada di Bab 3 dalam bentuk aplikasi yang dibangun melalui infrastuktur yang telah dijelaskan di bab-bab sebelumnya.

BAB 5 : KESIMPULAN DAN SARAN

Di dalam bab ini akan diberikan kesimpulan akhir dari hasil pengujian aplikasi ini serta saran bagi pengembangan aplikasi dibahas pada skripsi ini.


(20)

BAB 2

TINJAUAN PUSTAKA

2.1 Citra Digital

Citra digital dapat didefinisikan sebagai fungsi dua variabel, f(x,y), dimana x dan y adalah koordinat spasial dan nilai f(x,y) yang merupakan intensitas citra pada koordinat tersebut [6]. Teknologi dasar untuk menciptakan dan menampilkan warna pada citra digital berdasarkan pada penelitian bahwa sebuah warna merupakan kombinasi dari tiga warna dasar, yaitu merah, hijau, dan biru (Red, Green, Blue - RGB). Sistem kordinat pada sebuah citra digital dapat dilihat pada Gambar 2.1.

Sumber: Munir, 2004


(21)

RGB adalah suatu model warna yang terdiri dari merah, hijau, dan biru, digabungkan dalam membentuk suatu susunan warna yang luas. Setiap warna dasar, misalnya merah, dapat diberi rentang nilai. Untuk monitor komputer, nilai rentangnya paling kecil = 0 dan paling besar = 256. Pilihan skala 256 ini didasarkan pada cara mengungkap 8 digit bilangan biner yang digunakan oleh mesin komputer. Dengan cara ini, akan diperoleh warna campuran sebanyak 256 x 256 x 256 = 1677726 jenis warna. Sebuah jenis warna, dapat dibayangkan sebagai sebuah vektor di ruang dimensi 3 yang biasanya dipakai dalam matematika, koordinatnya dinyatakan dalam bentuk tiga bilangan, yaitu komponen-x, komponen-y dan komponen-z. Misalkan sebuah vektor dituliskan sebagai r = (x,y,z). Untuk warna, komponen-komponen tersebut digantikan oleh komponen R(ed), G(reen), B(lue). Jadi, sebuah jenis warna dapat dituliskan sebagai berikut: warna = RGB(30, 75, 255). Putih = RGB (255,255,255), sedangkan untuk hitam= RGB(0,0,0) [8]. Bentuk Representasi warna dari sebuah citra digitial dapat dilihat pada Gambar 2.2.

Sumber: Sutoyo, 2009

Gambar 2.2 Representasi Warna RGB Pada Citra Digital

Misalnya terdapat Gambar berukuran 100 pixel x 100 pixel dengan color encoding 24 bit dengan R = 8 bit, G = 8 bit, B = 8 bit, maka color encoding akan mampu mewakili 0 ... 16.777.215 (mewakili 16 juta warna), dan ruang disk yang dibutuhkan = 100 x


(22)

100 x 3 byte (karena RGB) = 30.000 byte = 30 KB atau 100 x 100 x 24 bits = 240.000 bits [9].

2.2 Format Citra Digital

Citra Digital memiliki beberapa format yang memiliki karakteristk tersendiri. Format pada citra digital ini umumnya berdasarkan tipe dan cara kompresi yang digunakan pada citra digital tersebut [2].

Ada empat format citra digital yang sering dijumpai, antara lain: 1. Bitmap (BMP)

Merupakan format Gambar yang paling umum dan merupakan format standard windows. Ukuran filenya sangat besar karena bisa mencapai ukuran megabyte. File ini merupakan format yang belum terkompresi dan menggunakan sistem warna RGB (Red, Green, Blue) di mana masing-masing warna pixel-nya terdiri dari 3 komponen R, G, dan B yang dicampur menjadi satu. File BMP dapat dibuka dengan berbagai macam software pembuka Gambar seperti ACDSee, Paint, Irvan View dan lain-lain. File BMP tidak bisa (sangat jarang) digunakan di web (internet) karena ukurannya yang besar. Detail gambar BMP dapat dilihat pada Tabel 2.1 dan Tabel 2.2.

Tabel 2.1 Bitmap InfoHeader Nama Field Size in Bytes Keterangan

bfType 2 Mengandung karakter “BM” yang mengidentifikasikan tipe file

bfSize 4 Memori file

bfReserved1 2 Tidak dipergunakan bfReserved1 2 Tidak dipergunakan bfOffBits 4 Offset untuk memulai data pixel

Tabel 2.2 Bitmap Core Header Field Name Size in Bytes Keterangan


(23)

bcSize 4 Memori Header

bcWidth 2 Lebar Gambar

bcHeight 2 Tinggi Gambar

bcPlanes 2 Harus 1

bcBitCount 2 Bits per pixels – 1,4,8 atau 24 2. Joint Photographic Expert Group (JPEG/JPG)

Format JPEG merupakan format yang paling terkenal sampai sekarang ini. Hal ini karena sifatnya yang berukuran kecil (hanya puluhan/ratusan KB saja), dan bersifat portable. Format file ini sering digunakan pada bidang fotografi untuk menyimpan file foto hasil perekaman analog to digital converter (ADC). Karena ukurannya kecil maka file ini banyak digunakan di web (internet).

2.3Pengertian Pengolahan Citra

Ada tiga bidang studi utama yang menangani pengolahan data dalam bentuk gambar dan citra yaitu: grafika komputer, pengolahan citra dan pengenalan pola. Karena pengenalan pola sering juga merupakan bagian dari pengolahan citra seperti misalnya pada proses klasifikasi, maka perbedaan tiga bidang studi tersebut berubah menjadi: grafika komputer, pengolahan citra dan visi komputer. Dimana pengenalan pola menjadi bagian dari pengolahan citra dan bagian dari visi komputer.

Komputer grafika banyak melakukan proses yang bersifat sintesis yang mempunyai ciri data masukan berbentuk deskriptif dengan pengeluaran hasil proses yang berbentuk gambar. Sebagai contoh adalah proses penggambaran prespektif suatu objek tiga dimensi, yang merupakan data masukan berupa koordinat titik-titik yang berbentuk objek tertentu, kemudian melalui proses transformasi tiga dimensi menghasilkan gambar objek tiga dimensi sebagai hasil keluarannya. Contoh aplikasi dari teknik komputer grafik ini banyak dijumpai pada proses desain dibidang enjinering dan banyak pula ditemui dalam bidang seni.

Visi komputer merupakan proses analisis citra yang cirinya merupakan kebalikan dari grafika komputer. Data masukan biasanya merupakan suatu citra atau


(24)

gambar, dan proses yang dilakukan adalah proses penggalian struktur gambar dengan hasil keluaran yang bersifat deskriptif. Sebagai contoh pengenalan jenis penyakit paru melalui citra sinar-x paru penderita.

Pengolahan citra merupakan proses pengolahan dan analisis citra yang banyak melibatkan persepsi visual. Proses ini mempunyai ciri data masukan dan informasi keluaran yang berbentuk citra. Dalam kenyataannya, batas antara ketiga bidang studi diatas sulit untuk ditentukan. Sebagai contoh, dalam pembuatan film animasi, objek dan proses animasinya diciptakan dengan teknik komputer grafik sedangkan pembuatan latar belakangnya dapat dilakukan dengan teknik pengolahan citra. Disini latar belakang gambar dapat dibuat secara sederhana melalui kombinasi proses digitalisasi suatu foto dan proses zooming atau scrolling. Atau dapat pula dengan teknik yang lebih rumit seperti pembuatan fraktal dan tekstur. Pembauran antara penggunaan teknik pengolahan citra dan grafika komputer juga dapat dilihat dalam proses penggabungan peta tematik dan peta kontur. Contoh lain pada proses pengenalan objek yang terkandung dalam suatu citra, dimana proses segmentasi yang diperlukan merupakan bagian dari teknik pengolahan citra dan proses pengenalan objeknya merupakan bagian dari teknik visi komputer.

Dalam penerapan pengolahan citra digital tujuannya adalah untuk mengolah citra suatu objek agar dapat memperoleh informasi mengenai objek itu sendiri karena hanya citra digital yang dapat diolah oleh komputer maka citra dari suatu objek harus dikonversi ke citra digital yang merupakan representasi dari objek itu sendiri.

Sistem pengolahan citra digital secara umum mencakup tiga operasi dasar yang terdiri dari :

1. Digitalisasi (Digitalization) 2. Pengolahan (Processing) 3. Peragaan (Display)

Oleh karena itu maka sistem pengolahan citra digital mempunyai beberapa komponen dasar, yang terdiri atas:

1. Digitizer


(25)

3. Storage 4. Alat peraga

Komputer digital hanya dapat memproses suatu citra dalam bentuk digital. Citra digital dapat diperoleh secara otomatis dari sistem penangkap citra digital (digitizer) yang melakukan penjelajahan citra dan membentuk suatu matriks dimana elemen-elemennya dinyatakan nilai intensitas cahaya pada suatu himpunan diskrit dari titik-titik. Pada digitizer, sinyal yang diterima masih merupakan sinyal analog yang harus diubah ke digital dengan merubah harga kontinu menjadi harga diskrit selanjutnya citra yang diskrit diolah pada komputer digital untuk siap ditampilkan pada monitor peraga dengan mengolah prosesor video digital melalui pengolahan citra terhadap pixel-pixel pada citra. Pada bagian operator disini dilakukan komunikasi antara pemakai dengan mesin pengolah. Baik bagi citra yang telah ditampilkan maupun citra yang diolah dapat disimpan pada berbagai media penyimpanan seperti hard disk maupun optical disk.

Adakalanya citra yang diperoleh dari digitizer langsung ditampilkan keperaga tetapi terlebih dahulu dengan mengolah prosesor video digital terhadap pixel citra tersebut. Proses konversi citra analog ke citra digital disebut dengan digitalisasi dan alatnya disebut dengan digitizer. Dengan demikian digitizer berfungsi untuk mengkonversi suatu image ke proses representasi numerik yang cocok untuk input oleh komputer digital. Contoh alat digitizer seperti scanner dan kamera digital.

Proses digitalisasi citra analog atau citra kontinu dibagi dalam daerah-daerah kecil yang dinamakan dengan elemen gambar yang disebut dengan pixel. Skema pembagian paling umum adalah sisi segi empat yaitu dibagi kedalam garis-garis horizontal dan garis-garis vertikal yang terdiri dari pixel-pixel yang berdekatan. Pada setiap lokasi pixel diukur tingkat keabuannya atau gray-level dan dikuantisasi sehingga terbentuk harga integer yang menyatakan kecemerlangan atau kegelapan citra pada pixel yang bersangkutan. Setiap pixel mempunyai lokasi atau alamat (bilangan baris dan bilangan kolom) dan harga integer ini kemudian ditulis atau direkam pada penyimpanan data.


(26)

Resolusi suatu array citra berpengaruh pada kualitas citra yang akan ditampilkan. Pada umumnya semakin tinggi suatu array citra maka semakin baik kualitas citra yang akan ditampilkan. Namun semakin tingginya resolusi suatu array citra maka semakin besar jumlah bit memori yang harus dialokasikan untuk representasinya. Selain memori utama, pengolahan citra juga memerlukan penyimpanan sekunder yang berfungsi untuk menyimpan data citra yang tidak sedang diproses. Dengan tersedianya fasilitas storage dalam jumlah yang besar adalah suatu hal yang penting dalam perancangan pemakaian sistem pengolahan citra digital.

Alat peraga merupakan mata rantai terakhir pengolahan citra digital. Fungsi alat peraga pada sistem pengolahan citra adalah untuk mempresentasikan nilai-nilai numerik yang tersimpan dalam array citra kedalam bentuk yang dapat dimengerti oleh peralatan visual manusia. Untuk peraga citra tidak diperlukan jika outputnya berupa data numeric atau keputusan, tetapi sangat diperlukan bila output berupa tingkat keabuan. Semakin besar ukuran citra yang dapat diperagakan maka akan semakin bagus alat peraga citra tersebut. Contoh alat peraga yang akan digunakan adalah tabung sinar katoda (cathoda ray tube).

Printer sebagai peralatan peragaan untuk mencetak citra terutama berguna untuk tugas pengolahan citra resolusi rendah. Satu pendekatan sederhana untuk membangkitkan bentuk keabuan citra langsung pada kertas adalah dengan menggunakan kemampuan dari printer. Tingkat keabuan pada tiap-tiap hasil cetakan dapat dikontrol dengan nomor dan kepadatan dari tiap karakter pada saat pencetakan [5].

2.4 Peningkatan Mutu Citra

Enhancement citra merupakan segala proses awal yang bertujuan untuk meningkatkan mutu citra baik untuk keperluan menghilangkan gangguan, keperluan interpretasi, maupun untuk keperluan keindahan, untuk kepentingan analisis citra pada proses ini baik masukan maupun keluaran berbentuk citra [2]. Terdapat beberapa filter pengolah citra untuk peningkatan mutu citra seperti:


(27)

1. Filter untuk memperbaiki citra. 2. Filter untuk menyunting citra. 3. Filter pergeseran posisi.

2.4.1 Filter Untuk Memperbaiki Citra

Filter untuk memperbaiki citra seperti memperjelas citra yang terlalu terang atau terlalu gelap dan membersihkan citra yang penuh gangguan (noise). Setiap gambar dapat diperbaiki dengan menganalisis dan melihat image histogramnya, dimana image histogramnya adalah grafik yang menunjukkan frekuensi (jumlah yang digunakan) suatu nomor warna. Sumbu horizontal dari grafik menunjukkan nomor warna yang dipakai mulai dari 0 hingga 255, dan sumbu vertikal menunjukkan jumlah titik yang mempergunakan warna yang bersangkutan.

Terlihat bahwa nomor warna yang lebih kecil dari 70 (nomor warna 0-69) cenderung sering digunakan dibandingkan dengan nomor warna yang lebih besar dari 70 yaitu 71-225. Inilah yang mengakibatkan gambar sangat gelap. Cara untuk memperjelas gambar tersebut yaitu dengan penambahan intensitas atau dengan histogram equalization. Teknik ini adalah teknik memperterang suatu intensitas warna dengan memperhitungkan berapa titik yang mempergunakan warna tersebut. Semakin banyak titik yang menggunakan suatu intensitas warna, semakin jelas terlihat titik tersebut, karena perbedaan intensitas warna dengan titik lain disekitarnya cenderung jelas.

Pada Gambar 2.3 diperlihatkan suatu image histogram dari citra yang gelap. Frekuensi

warna 64 k- 60 k- 56 k- 52 k- 48 k- 44 k- 40 k- 36 k- 32 k- 28 k- 24 k- 20 k- 16 k- 12 k- 8 k- 4 k- ' ' ' ' '

0 50 100 150 200 250 Nomor Warna di range ini terlihat tidak pernah dipakai karena pita intensitasnya = 0

Warna 0 terlihat paling sering dipakai karena intensitasnya tinggi


(28)

Gambar 2.3 Image Histogram dari suatu gambar yang gelap

Filter untuk memperbaiki citra juga dapat digunakan untuk membersihkan gambar yang terganggu (terdapat noise). Noise ini berarti gangguan–gangguan dimana terjadi sewaktu gambar dikirim dari komputer ke komputer lain ataupun saat satelit mengirimkan foto permukaan bumi ke stasiun bumi. Dengan adanya pengolahan citra maka bintik-bintik noise tersebut dapat hilang.

2.4.2 Filter Untuk Menyunting Citra

Filter penyunting citra banyak dipakai pada pengeditan photo, seperti misalnya menghaluskan gambar, memperbesar/memperkecil citra. Ada beberapa penyunting citra antara lain adalah:

a. Transparansi filtering b. Negatif Filtering c. Mean Filtering d. Median Filtering

e. Mozaik Filtering dan Modus Filtering

a. Transparansi Filtering

Jenis filter ini digunakan pada pembuatan film-film maupun dalam dunia pertelevisian. Dimana sebuah gambar muncul diatas gambar yang lain. Cara pembuatan efek ini ialah dengan menambahkan titik pada koordinat yang sama pada gambar yang pertama dengan titik pada koordinat kedua kemudian hasilnya diambil rata-rata. Dengan ini diperoleh dua gambar yang terlihat transparan. Pada filtering akan ditimbulkan efek gambar pertama seakan-akan menghilang dan sebelum benar-benar hilang timbul gambar yang kedua yang semakin lama semakin terang seiring dengan hilangnya gambar pertama.


(29)

Filter ini merupakan kebalikan dari proses pencucian film. Dimana dari film negatif dibuat menjadi film berwarna. Disini dilakukan proses sebaliknya yaitu dari gambar berwarna menjadi gambar negatif. Proses pembuatannya adalah untuk gambar yang berwarna harus dibuat dahulu menjadi gambar hitam-putih agar dapat diperoleh negatifnya. Negatif ini didapat dari hasil perhitungan intensitas warna terhadap warna titik (255 – warna titik). Perhitungan ini dilakukan untuk seluruh titik pada layar dan hasil perhitungan inilah warna negatif dari titik tersebut. Jika ditinjau dari image histogramnya maka hasil dari negatif filtering ini adalah pencerminan horizontal, dimana intensitas warna yang berada disebelah kiri pada imagehistogram gambar asli akan berpindah pada bagian kanan dari image histogram yang merupakan hasil negatif filter.

c. Mean Filtering (Memperhalus gambar)

Mean filtering ini adalah filter yang digunakan untuk menghaluskan gambar yang terlalu kasar. Jika filter ini dilakukan pada gambar yang sudah halus, maka hasilnya gambar tersebut akan semakin kabur. Mean filtering ini biasa disebut “smoothing filter atau blur effect”. Mean filtering ini termasuk jenis spatial filtering yang artinya untuk memproses sebuah titik, juga mengikut sertakan titik-titik sekitar dalam kalkulasi. Sebenarnya hal ini telah dilakukan pada bagian pembersihan gambar dimana digunakan titik-titik sekitar noise untuk memperkirakan titik yang akan digunakan untuk mengganti noise tersebut.

d. Median Filtering

Kegunaan filter ini adalah memperhalus gambar tetapi tidak sehalus mem-filtering. Gambar yang dihasilkan terlihat tidak rapi, karena tidak dilakukan proses rata-rata tetapi dilakukan proses mencari nilai tengah dari titik yang direkam dalam matriks. Nilai tengah dari beberapa nilai dapat dicari sebagai berikut: misalkan ada sejumlah nilai sebagai berikut : 9, 5, 8, 3, 5, 2, 1, 4, 2 dan untuk mencari nilai tengah, harus mengurutkan nilai-nilai tersebut menjadi 1, 2, 2, 3, 4, 5, 5, 8, 9. Karena ada sembilan angka maka nilai tengah ialah angka yang berada pada urutan tengah yaitu 9/2 = 5, yaitu angka 4.


(30)

e. Mozaik Filtering (Efek Berkotak-kotak)

Filter ini merupakan spatial filtering yang tidak menggunakan mask. Filter ini sangat sering digunakan dalam acara televisi terutama untuk menutupi wajah orang-orang yang tidak mau wajahnya terlihat dalam televisi misalnya wajah kriminal. Sebenarnya teknik mozaik filtering ini hampir sama dengan teknik mean filtering, hanya saja tidak semua titik yang diproses melainkan titik setiap kelipatan N (dimana N adalah ukuran spatial yang digunakan). Kemudian warna hasilnya tidak dicetakkan sebagai balok sebesar NxN sehingga efek kotak-kotak muncul pada gambar setelah di-filter. Semakin besar spatial yang digunakan, semakin besar kotak-kotak yang dihasilkan.

f. Modus Filtering (Efek Cat Minyak)

Modus filtering adalah termasuk jenis spatialfiltering yang tidak menggunakan mask. Setelah dilakukan proses perekaman titik-titik sekitar dan titik yang sedang diperiksa kedalam matriks, dicari warna apa yang paling banyak dipakai dalam tabel warna tersebut. Warna inilah yang akan digunakan sebagai warna titik yang akan diletakkan pada layar output. Tujuan utama dari filter ini adalah membuat gambar ini menjadi berbintik-bintik seperti dicat dengan cat minyak.

2.4.3 Filter Pergeseran Posisi (Position Shifting Filtering)

Salah satu proses peningkatan mutu citra yang orientasi prosesnya per citra adalah proses koneksi geometri citra. Jenis penggunaan yang bersifat geometris yang sering terjadi waktu proses rekaman citra yang dapat berbentuk pergeseran pusat citra dan perubahan orientasi koordinat citra yang sering disebut sebagai skewed. Koneksi geometris yang sederhana dan sering digunakan untuk mengatasi gangguan-gangguan tersebut diatas adalah proses rotasi citra dan translasi citra yang semuanya termasuk transformasi dua dimensi.


(31)

2.5Aritmetika Module

Aritmetika module (modular arithmetic) memainkan peranan yang penting dalam komputasi integer. Operator yang digunakan pada aritmetika module adalah mod. Operator mod memberikan sisa pembagian.

Misalnya: 23 dibagi 5 memberikan hasil = 4 dan sisa = 3, sehingga ditulis 23 mod 5 = 3 [7].

2.6 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 [6].


(32)

Citra biner adalah citra dimana piksel-pikselnya hanya memiliki dua buah nilai intensitas yaitu bernilai 0 dan 1 dimana 0 menyatakan warna latar belakang (background) dan 1 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 [8].

Gradasi Citra biner dapat dilihat pada Gambar 2.4.

1

0

Gambar 2.4 Gradasi Citra Biner

Contoh sebuah citra biner seperti pada Gambar 2.5

Gambar 2.5 Citra Biner

2.8 Citra Threshold

Citra threshold dilakukan dengan mempertegas citra dengan cara mengubah citra hasil yang memiliki derajat keabuan 255 (8 bit), menjadi hanya dua buah yaitu hitam dan putih. Hal yang perlu diperhatikan pada proses threshold adalah memilih sebuah nilai threshold (T)dimana piksel yang bernilai dibawah nilai threshold akan diset menjadi hitam dan piksel yang bernilai diatas nilai threshold akan diset menjadi putih. Umumnya nilai T dihitung dengan menggunakan persamaan:


(33)

Dimana fmaks adalah nilai intensitas maksimum pada citra dan fmin adalah nilai intensitas minimum pada citra. Jika f(x,y) adalah nilai intensitas pixel pada posisi (x,y) maka pixel tersebut diganti putih atau hitam tergantung kondisi berikut.

f(x,y) = 255, jika f(x,y) ≥ T f(x,y) = 0, jika f(x,y) < T

Sebagai contoh misalnya diketahui citra grayscale 4x4 pixel dengan kedalaman 8 bit seperti Gambar 2.6.

200 230 150 75 240 50 170 92 210 100 120 80 100 90 200 230 Sumber: Sutoyo, 2009

Gambar 2.6 Citra Grayscale 4x4 Pixel Dengan motede ini, nilai threshold T adalah:

T= = = 145

Bila nilai T = 145 diterapkan untuk citra pada Gambar 2.8 di atas maka diperoleh citra seperti pada Gambar 2.7.

255 255 255 0

255 0 255 0

255 0 0 0

0 0 255 255

Sumber: Sutoyo, 2009

Gambar 2.7 Citra Hasil Threshold

2.9 Image Thinning

Thinning (biasa disebut juga skeletonizing) adalah suatu metode untuk merepresentasikan transformasi suatu bentuk gambar ke bentuk graph dengan


(34)

mereduksi informasi tertentu dalam gambar tersebut. Thinning ini biasa digunakan mencari bentuk dasar/rangka/skeleton dari suatu gambar. Contohnya pada PCB (printed circuit boards) untuk mengetahui aliran/arus data pada PCB tersebut. Selain untuk kompresi suatu gambar, kegunaan lain dari thinning adalah untuk mencari informasi tertentu dari suatu gambar dengan menghilangkan informasi yang tidak diperlukan. Misalnya saja untuk mencari dataran tinggi dalam peta geografis.

Algoritma thinning binary regions memberikan aspek sebagai berikut : (1) thinning tidak menghapus point terakhir, (2) thinning tidak merusak konektivitas, dan (3) thinning tidak menyebabkan pengikisan berlebihan dari region. Diasumsikan region points memiliki nilai 1 dan background points memiliki nilai 0. Metode ini terdiri dari 2 langkah dasar yang dikenakan terhadap contour points dari suatu region, dimana contour points adalah sembarang piksel dengan nilai 1 dan memiliki paling sedikit satu dari 8-tetangga bernilai 0. Algoritma ini menggunakan tanda untuk memilih piksel mana yang akan dihapus. Aturannya, 8-tetangga terdekat dari setiap piksel P1 dinomori P2 (untuk piksel di atas P1) sampai dengan P9 sesuai dengan arah jarum jam.

P9 P2 P3 P8 P1 P4 P7 P6 P5

Gambar 2.8 Piksel 8 Tetangga

Langkah 1 Beri tanda sebuah contour point p1 untuk dihapus apabila memenuhi

semua kondisi-kondisi berikut ini : (a) 2  N(P1)  6;

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

di mana N(P1) adalah jumlah dari tetangga-tetangga dari p1 yang bukan

nol; sehingga:


(35)

dan S(P1) adalah jumlah dari transisi 0 ke 1 dalam urutan P2, P3, P4, P5, P6, P7, P8, P9.

P9 P2 P3 P8 P1 P4 P7 P6 P5

Langkah 2 Hampir sama dengan langkah 1, hanya saja pada langkah 2 ini bagian (c) dan (d) berubah menjadi sebagai berikut :

(c) P2 . P4 . P8 = 0; (d) P2 . P6. P8 = 0;

Langkah 1 diterapkan untuk border pixel pada binary region. Jika satu atau lebih dari kondisi (a) sampai dengan (d) tidak dipenuhi, maka nilai dari point yang diperiksa tidak berubah (tidak perlu diberi tanda). Points yang diperiksa tidak akan dihapus sampai semua border points selesai diproses. Hal ini dilakukan untuk mencegah agar tidak terjadi perubahan pada struktur data saat pengeksekusian algoritma. Setelah langkah 1 telah selesai dilakukan terhadap semua border points , semua yang telah diberi tanda dihapus (diubah ke 0). Lalu, langkah 2 baru dijalankan terhadap hasil data persis sama seperti pada langkah 1.

Jadi, satu iterasi dalam algoritma thinning ini terdiri dari :

1. Pengerjaan langkah 1 untuk memberi tanda pada border points untuk dihapus. 2. Penghapusan points yang telah diberi tanda.

3. Pengerjaan langkah 2 untuk memberi tanda border points yang tersisa untuk dihapus.

4. Penghapusan points yang telah diberi tanda.

Prosedur dasar ini akan beriterasi hingga tidak ada points yang dapat dihapus lagi, sehingga hasil yang didapat adalah skeleton (kerangka) dari region. Proses thinning ini, menghilangkan informasi-informasi tertentu dalam gambar, dengan tetap mempertahankan informasi yang paling utama atau kerangka utama gambar tersebut.


(36)

Jadi misalnya terdapat suatu gambar yang cukup tebal, jika kita lakukan proses thinning pada gambar tersebut, maka gambar yang tersisa hanyalah kerangka utama dari gambar tersebut. Contohnya dapat dilihat dalam gambar akar berikut, (a) gambar akar yang terlihat cukup tebal, sedangkan dalam (b) setelah dilakukan proses thinning, maka gambar akar yang terlihat hanya tinggal pola atau kerangka utamanya saja.

Gambar asli Gambar hasil Gambar 2.9 Citra Akar

Pada bidang industri sering digunakan proses thinning untuk mencari kerangka utama dari sirkuit, seperti Gambar 2.10 di bawah ini:

Gambar sebuah sirkuit Gambar hasil thinning Gambar 2.10 Citra Sirkuit Elektronika

Thinning juga sering digunakan dalam implementasi OCR (Optical Character Recognition), misalnya pada gambar berikut ini. Gambar sebelah kiri adalah gambar asli, sedangkan gambar sebalah kanan adalah gambar hasil thinning.


(37)

Gambar 2.11 Citra Karakter

2.9.1 Algoritma Thinning

Thinning merupakan salah satu teknik dalam 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 citra tersebut diubah menjadi citra grayscale karena 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).

Ada beberapa komponen penting yang perlu diketahui dan dipahami dalam melakukan proses thinning, seperti struktur elemen (kernel) dan tranformasi hit -dan-miss (hit-and-misstransformation), yaitu :

1. Struktur elemen

Struktur elemen atau biasa disebut sebagai kernel, berisi pola yang mengkhususkan koordinat dari beberapa titik yang memiliki relatifitas yang sama ke suatu pusat (origin). Biasanya direpresentasikan menggunakan koordinat kartesian untuk setiap elemen sebagai kotak-kotak kecil. Contoh berbagai ukuran dari beberapa struktur elemen dapat dilihat pada Gambar 2.12.


(38)

Gambar 2.12 Contoh Ukuran dari Beberapa Struktur Elemen

Origin tidak perlu harus di tengah, namun biasanya di tengah. Struktur elemen dengan ukuran 3 x 3 adalah yang paling banyak digunakan. Setiap titik bisa memiliki nilai. Umumnya untuk mengoperasikan suatu binary image seperti erosion, keseluruhan element hanya memiliki sebuah nilai, yaitu 1 (satu). Pada thinning atau grayscale morphological operations dapat memiliki nilai yang lain. Pada kotak-kotak yang kosong, yang artinya tidak memiliki nilai, biasanya direpresentasikan dengan menggunakan 0 (nol).

Ketika morphological operation dilakukan, origin dari structuring elements diposisikan pada setiap pixel pada citra input, lalu nilai dari structuring elements yang bersesuaian dibandingkan dengan nilai dari pixel citra. Detil dari perbandingan ini dan efeknya tergantung dari jenis operator, pada hal ini adalah structuring elements yang digunakan.

2. Transformasi hit -dan-miss

Transformasi hit-dan-miss adalah operasi morfologi yang umum yang dapat digunakan untuk memisahkan pola pixel-pixelforeground dan background pada suatu citra. Operasi hit -dan-miss dilakukan dengan mentranslasikan struktur elemen ke seluruh pixel pada citra, kemudian membandingkan struktur elemen dengan pixel dari citra di bawahnya. Jika pixel-pixel foreground dan background pada struktur elemen cocok (match) dengan pixel-pixel foreground dan background pada citra, maka pixel yang berada di bawah struktur elemen di-set menjadi warna foreground. Jika tidak cocok, maka pixel tersebut dijadikan warna background. Pixel foreground dinyatakan


(39)

dengan angka 1 dan pixel background dinyatakan dengan angka 0. Contohnya dapat dilihat pada struktur elemen yang ditunjukkan pada Gambar 2.13.

Gambar 2.13 Contoh Struktur Elemen

Struktur elemen di atas dapat digunakan untuk menemukan posisi sudut kanan (right angle convex corner) dari suatu citra. Untuk dapat menemukan semua sudut dalam citra biner, harus dilakukan transformasi hit-dan-miss sebanyak empat kali dengan empat elemen berbeda yang merepresentasikan empat jenis sudut yang ditemukan dalam citra biner tersebut. Empat bentuk elemen tersebut dapat dilihat pada Gambar 2.14.

Gambar 2.14 Contoh Empat Bentuk Elemen Untuk Transformasi Hit-dan-miss Setelah menemukan lokasi dari setiap orientasi sudut, kita kemudian melakukan operasi OR dari semua citra untuk mendapat hasil akhir yang menunjukkan lokasi dari semua sudut kanan pada orientasi apapun. Citra pada Gambar 2.15 menunjukkan proses hit-dan-miss yang dilakukan pada suatu citra biner sederhana.


(40)

Gambar 2.15 Proses Hit-dan-Miss yang Dilakukan pada suatu Citra Biner

2.9.2 Metode Zhang Suen

Algoritma ini adalah salah satu algoritma thinning yang cukup populer dan telah digunakan sebagai suatu basis perbandingan untuk thinning. Algoritma ini cepat dan mudah diimplementasikan. Setiap iterasi dari metode ini terdiri dari dua sub-iterasi yang berurutan dan dilakukan terhadap contour points dari wilayah citra. Contour point adalah setiap piksel dengan nilai 1 dan memiliki setidaknya 8-neighbour yang memiliki nilai 0.

Dengan informasi ini, dilakukan pembagian pixel dalam ukuran 3 X 3, di mana pixel yang berada di posisi tengah merupakan pixel yang akan diuji. Gambar 2.16 diberikan contoh citra ukuran 3 x 3 pixel dengan 8 tetangga.

P9 P2 P3 P8 P1 P4 P7 P6 P5

Gambar 2.16 Contoh Pixel P1 dengan 8 Tetangga

Proses thinning dari Gambar 2.16 di atas dengan menggunakan metode Zhang Suen ini adalah sebagai berikut:

1. Bagi pixel dalam ukuran dimensi 3 X 3.


(41)

3. Untuk setiap pixel yang bukan merupakan pixel ujilakukan : a. Hitung nilai nearest neighbour pixel dengan pixel uji.

b. Jika nilai nearest neighbour berada pada rentang nilai 2 ≤ N ≤ 6, tandai pixel sebagai contour point. Jika tidak, beri penanda 0 pada pixel.

c. Beri penanda 0 pada pixel uji.

4. Untuk setiap pixel dalam ukuran dimensi 3 X 3, hapus seluruh pixel yang bertanda 0. Penghapusan pixel ini biasanya dilakukan dengan menggunakan warna putih. 5. Untuk setiap pixel yang tergolong ke dalam kategori contour point, ubah warna

pixel menjadi warna hitam (dapat digunakan warna lain sesuai dengan keinginan).

Proses penelusuran yang pertama dilakukan adalah menandai semua titik objek untuk dihapus jika titik obejek tersebut memenuhi syarat-syarat sebagai berikut:

1. Jumlah pixel tetangga yang bernilai 1, ≥ 2 dan ≤ 6 atau (2≤N(P1) ≤ 6)

2. Jumlah perpindahan nilai pixel dari 0 ke 1 = 1 (S(P1) ), dimulai dari pixel P2 sampai P9.

3. Perkalian Pixel2Pixel4Pixel6 = 0 ( P2*P4*P6=0) 4. Perkalian Pixel4 Pixel6 Pixel8 = 0 ( P4*P6*P8=0)


(42)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Citra yang digunakan untuk proses thinning adalah citra biner, jika data masukannya berupa citra warna (RGB) maka citra tersebut harus dimanipulasi menjadi citra grayscale, yang merupakan syarat guna menghasilkan suatu citra biner. Untuk mengubah citra grayscale menjadi citra biner, maka dilakukan proses thresholding dahulu. Setelah diperoleh citra threshold, maka citra biner dapat dihitung berdasarkan nilai ambang yang ditetapkan.

Proses thinning dengan menggunakan metode zhang-suen adalah sebagai berikut:

1. Membaca jumlah pixel di dalam gambar.

2. Melakukan iterasi untuk mengambil nilai pixel gambar.

3. Melakukan iterasi untuk mengambil nilai pixel yang termasuk ke dalam kategori contour point.

4. Melakukan iterasi untuk menghapus seluruh pixel yang termasuk ke dalam kategori contour point.

5. Menampilkan hasil pengenalan pola dalam bentuk sebuah citra digital yang telah mengalami proses thinning.


(43)

3.1.1 Membaca Jumlah Pixel

Pada citra digital 24-bit tidak terdapat palet RGB, karena nilai RGB langsung diuraikan dalam data bitmap. Setiap elemen data bitmap panjangnya 3 byte, masing-masing byte menyatakan komponen R, G, dan B.

<Header> <data bitmap>

10010000 01011010 011110001 011110001 10 Gambar 3.1 Format Citra 24-bit (16 juta warna)

Pada citra bitmap 24-bit, tiap pixel-nya mengandung 24-bit kandungan warna atau 8-bit untuk masing-masing warna dasar (R, G, dan B), dengan kisaran nilai kandungan antara 0 (00000000) sampai 255 (11111111) untuk tiap warna. Pada contoh format citra 24-bit di atas data pertama adalah header yang berisi informasi nama file, jenis format dan dimensi citra. Di bawah data bitmap terdapat pixel pertama mempunyai R = 10010000 (biner), G = 01011010 (biner), B = 011110001 (biner).

Bagian terkecil sebuah citra adalah pixel yang memiliki nilai intensitas hasil kuantisasi peralatan digital. Citra warna memiliki tiga komponen warna yang setiap komponen warna menggunakan penyimpanan 8 bit atau 1 byte. Berarti jumlah bit dalam 1 pixel adalah sebanyak 3 x 8 bit = 24 bit. Jadi untuk menghitung jumlah pixel sebuah citra dilakukan dengan membagi nilai intensitas citra dengan 24 bit. Representasi nilai pixel pada citra warna dapat dilihat pada Gambar 3.2.


(44)

Nilai intensitas citra disimpan dalam data bitmap dalam bentuk nilai biner dengan nilai antara 0 dan 1. Jadi jumlah pixel-nya adalah jumlah kelipatan 24 bit. Misalnya citra bunga dengan nilai intensitas di atas adalah adalah:

111100001111000011111110001100001111000011111111111100001111000011111 000111100001111000011111001111100001111000011111010101100001111000011 111111111100001111000011111111111100001111000011010111111110000111100 001100000111110000111100001111011000111100001111000011111111111100001 111000011111000011100001111000011110101011110000111100001111000110111 111000011110000111111111111000011110000111010111111110000111100001111 1111 dan seterusnya.

Nilai 111100001111000011111111 = 24 bit mewakili 1 pixel dari citra.

Jika jumlah bit citra di atas adalah 1800000 bit, maka jumlah pixel-nya adalah 1800000/24 bit = 75.000 pixel.

3.1.2 Menghitung Nilai RGB Citra

Pada metode Zhang Suen citra yang diuji terdiri dari 9 pixel (3x3), maka citra pada Gambar 3.2 di atas dilakukan pembagian pixel dalam ukuran 3 x 3, di mana pixel yang berada di posisi tengah merupakan pixel yang akan diuji. Maka penghitungan nilai komponen warna RGB-nya dilakukan dalam 9 pixel seperti pada Gambar 3.3.

1 2 3 4 5 6 7 8 9

Gambar 3.3 Citra Bunga 9 pixel

Misalnya nilai pixel 1 dalam biner 24 bit adalah: Pixel 1 = 111100001111000011111111 Pixel 2 = 100000011110000111110000 Pixel 3 = 111100001111000011111111 Pixel 4 = 101110011110000111110000


(45)

Pixel 5 = 111100001111000011111111 Pixel 6 = 100000011110000111110000 Pixel 7 = 000100001111000011111111 Pixel 8 = 100000011110000111110111 Pixel 9 = 101110111111000011111100

Untuk mendapatkan masing-masing nilai R, G dan B dilakukan operasi modulo (sisa bagi) dengan rumus sebagai berikut:

Nilai R = c Mod 256 ……….. (3.1) Nilai G = (c and 65280) / 256 ……….. (3.2) Nilai B = (c and 16711680) / 65280 ……….. (3.3) Dimana c adalah nilai pixel citra

a. Nilai pixel 1 adalah 111100001111000011111111 (24 bit).

Nilai R dihitung dengan persamaan (3.1) yaitu nilai pixel modulo bilangan 256 (100000000) sebagai berikut:

Nilai komponen R dengan rumus = nilai pixel A mod 100000000 Nilai R = 111100001111000011111111 mod 100000000

= 11111111 dalam biner = 255 dalam desimal Nilai komponen G dihitung dengan persamaan (3.2):

Nilai G = (111100001111000011111111 and 1111111100000000)/ 100000000 = 11110000 = 240

Nilai komponen B dihitung dengan persamaan (3.3):

Nilai B = (111100001111000011111111 and 111111110000000000000000)/ 10000000000000000

= 11110000 = 240

Sehingga diperoleh nilai pixel 11111111 11110000 11110000: R = 11111111 = 255, G = 11110000 = 240, B = 11110000 = 240

b. Nilai pixel 2 adalah 100000011110000111110000 (24 bit). Nilai komponen R dengan rumus = nilai pixel A mod 100000000 Nilai R = 100000011110000111110000 mod 100000000


(46)

Nilai G = (100000011110000111110000 and 1111111100000000)/ 100000000 = 10000001 = 129

Nilai B= (100000011110000111110000 and

111111110000000000000000) / 10000000000000000 = 00000001 = 1

Sehingga diperoleh nilai pixel 11110000 11110000 11110000: R = 11100001 = 225, G = 10000001 = 129, B = 00000001 = 1

c. Nilai pixel 3 adalah 111100001111000011111111 (24 bit). Nilai komponen R dengan rumus = nilai pixel A mod 100000000 Nilai R = 111100001111000011111111 mod 100000000

= 11110000 dalam biner = 240 dalam desimal

Nilai G = (111100001111000011111111 and 1111111100000000)/ 100000000 = 11110000 = 240

Nilai B= (111100001111000011111111 and 111111110000000000000000) / 10000000000000000

= 00000001 = 1

Sehingga diperoleh nilai pixel 11110000 11110000 11110000: R = 11100001 = 240, G = 11110000 = 240, B = 00000001 = 1

d. Nilai pixel 4 adalah 101110011110000111110000 (24 bit). Nilai komponen R dengan rumus = nilai pixel A mod 100000000 Nilai R = 101110011110000111110000 mod 100000000

= 11100001 dalam biner = 225 dalam desimal

Nilai G = (101110011110000111110000 and 1111111100000000)/ 100000000 = 10111001 = 185

Nilai B= (101110011110000111110000 and 111111110000000000000000) / 10000000000000000

= 00000001 = 1

Sehingga diperoleh nilai pixel 11110000 11110000 11111111: R = 11100001 = 225, G = 10111001 = 185, B = 00000001 = 1


(47)

e. Nilai pixel 5 adalah 111100001111000011111111

Nilai komponen R dengan rumus = nilai pixel A mod 100000000 Nilai R = 111100001111000011111111 mod 100000000

= 11110000 dalam biner = 240 dalam desimal

Nilai G = (111100001111000011111111 and 1111111100000000)/ 100000000 = 11110000 = 240

Nilai B= (111100001111000011111111 and 111111110000000000000000) / 10000000000000000

= 00000001 = 1

Sehingga diperoleh nilai pixel 11110000 11110000 11111111: R = 11110000 = 240, G = 11110000 = 240, B = 00000001 = 1

f. Nilai pixel 6 adalah 100000011110000111110000

Nilai komponen R dengan rumus = nilai pixel A mod 100000000 Nilai R = 100000011110000111110000 mod 100000000

= 11100001 dalam biner = 225 dalam desimal

Nilai G = (100000011110000111110000 and 1111111100000000)/ 100000000 = 10000001= 129

Nilai B= (100000011110000111110000 and 111111110000000000000000) / 10000000000000000

= 00000001 = 1

Sehingga diperoleh nilai pixel 11110000 11110000 11111111: R = 11100001 = 225, G = 10000001 = 129, B = 00000001 = 1

g. Nilai pixel 7 adalah 000100001111000011111111

Nilai komponen R dengan rumus = nilai pixel A mod 100000000 Nilai R = 000100001111000011111111 mod 100000000

= 10000111 dalam biner = 135 dalam desimal

Nilai G = (000100001111000011111111 and 1111111100000000)/ 100000000 = 10000111= 135

Nilai B= (000100001111000011111111 and 111111110000000000000000) / 10000000000000000


(48)

Sehingga diperoleh nilai pixel 10000111 10000111 00000001: R = 10000111 = 135, G = 10000111 = 135, B = 00000001 = 1

h. Nilai pixel 8 adalah 100000011110000111110111

Nilai komponen R dengan rumus = nilai pixel A mod 100000000 Nilai R = 100000011110000111110111 mod 100000000

= 11100001 dalam biner = 225 dalam desimal

Nilai G = (100000011110000111110111 and 1111111100000000)/ 100000000 = 10000001 = 129

Nilai B= (100000011110000111110111 and 111111110000000000000000) / 10000000000000000

= 00000001 = 1

Sehingga diperoleh nilai pixel 10000111 10000111 00000001: R = 11100001 = 225, G = 10000001= 129, B = 00000001 = 1

i. Nilai pixel 9 adalah 101110111111000011111100

Nilai komponen R dengan rumus = nilai pixel A mod 100000000 Nilai R = 101110111111000011111100 mod 100000000

= 11110000 dalam biner = 225 dalam desimal

Nilai G = (101110111111000011111100 and 1111111100000000)/ 100000000 = 10111011 = 187

Nilai B= (101110111111000011111100 and 111111110000000000000000) / 10000000000000000

= 00000001 = 1

Sehingga diperoleh nilai pixel 10000111 10000111 00000001: R = 11110000 = 225, G = 10111011 = 187, B = 00000001 = 1

Selanjutnya nilai RGB semua pixel pada citra bunga 9 pixel dimasukkan ke dalam matriks seperti pada Gambar 3.4.


(49)

255,240,240 225,129,1 240,240,1 225,185,1 240,240,1 225,129,1 135,135,1 225,129,1 225,187,1 Gambar 3.4 Matriks Nilai RGB Citra Bunga 9 Pixel

Selanjutnya nilai RGB per Pixel pada Gambar 3.4 di atas di konversi ke nilai grayscale dengan cara mencari nilai rata-rata per pixel.

f0 (x,y) = ………..……… (3.4)

di mana: adalah nilai komponen red fG adalah nilai komponen green fB adalah nilai komponen blue

Nilai grayscale dihitung dengan menggunakan persamaan (3.4) sebagai berikut: Piksel 1 = (255,240,240) = (255+240+240)/3 = 245

Piksel 2 = (225,129,1) = (225+129+1)/3 = 118.3 Piksel 3 = (240,240,1) = (240+240+1)/3 = 160.3 Piksel 4 = (225,185,1) = (225+185+1)/3 = 137 Piksel 5 = ((240,240,1) = (240+240+1)/3 = 160.3 Piksel 6 = (225,129,1) = (225+129+1)/3 = 118.3 Piksel 7 = (135,135,1) = (255+240+240)/3 = 90.3 Piksel 8 = (225,129,1) = (225+129+1)/3 = 118.3 Piksel 9 = (255,187,1) = (255+240+240)/3 = 147.6

Selanjutnya nilai grayscale semua pixel pada citra bunga 9 pixel dimasukkan ke dalam matriks nilai grayscale seperti pada Gambar 3.5.

245 118 160 137 160 118 90 118 147


(50)

Nilai grayscale matriks citra pada gambar diatas diubah menjadi nilai threshold dengan nilai ambang. Nilai ambang yang digunakan diperoleh dengan rumus:

T= ………

(3.5)

Nilai threshold untuk matriks citra pada Gambar 3.5 di atas dihitung dengan menggunakan persamaan (3.5) sebagai berikut:

T= = 167.5 = 168

Nilai ambang 168 dapat digunakan jika persentase nilai pixel > 168 adalah > 50 %, jika persentase nilai pixel > 168 adalah < 50 %, maka digunakan rumus:

T= = 255/2 = 127.5 = 128 ……… (3.6)

Dari Gambar 3.4 di atas dapat diperoleh persentase nilai pixel diatas 168 adalah: 1/9 x 100 % = 11 %, maka digunakan nilai ambang pada persamaan (3.6). Pixel 1 = 245, P1 > 128 maka P1= 1.

Pixel 2 = 118, P2 < 128 maka P2= 0. Pixel 3 = 160, P3 > 128 maka P3= 1. Pixel 4 = 137, P4 > 128 maka P4= 1. Pixel 5 = 160, P5 > 128 maka P5= 1. Pixel 6 = 118, P6 < 128 maka P6= 0. Pixel 7 = 90, P7 < 128 maka P7= 0. Pixel 8 = 118, P8 < 128 maka P8= 0. Pixel 9 = 147, P9 > 128 maka P9= 1.

Selanjutnya nilai threshold semua pixel pada citra bunga 9 pixel dimasukkan ke dalam matriks citra biner seperti pada Gambar 3.6.

1 0 1 1 1 0 0 0 1


(51)

Gambar 3.6 Matriks Citra Biner 9 Pixel

3.1.3 Algoritma Zhang Suen

Dalam metode zhang-suen, pengenalan pola dilakukan dengan cara mengeliminasi setiap pixel citra biner yang termasuk ke dalam kategori contour point. Contour point adalah penghapusan pixel dimana jika nilai biner pixel-nya adalah 1 (pixel foreground), maka akan diubah menjadi 0 (pixel background). Adapun syarat penghapusan adalah:

5. Jumlah pixel tetangga yang bernilai 1, ≥ 2 dan ≤ 6 atau (2≤N(P1) ≤ 6) 6. Jumlah perpindahan nilai pixel dari 0 ke 1 = 1

7. Perkalian Pixel2Pixel4Pixel6 = 0 ( P2*P4*P6=0) 8. Perkalian Pixel4 Pixel6 Pixel8 = 0 ( P4*P6*P8=0)

Dari matriks citra biner seperti pada Gambar 3.6 dilakukan penelusuran dengan memberi label penanda dimana P5 adalah pixel yang diuji adalah seperti pada Gambar 3.7.

1 0 1 P1 P2 P3 1 1 0 P4 P5 P6 0 0 1 P7 P8 P9 Gambar 3.7 Matriks Citra Awal 9 Pixel

Melakukan pengujian syarat metode Zhang-Suen adalah sebagai berikut: 1. N (P1) = 4, maka 2 ≤N(P1) ≤6 = true

2. S (P1) = 3, maka S(P1) = 1 = false 3. P2*P4*P6=0 = 0*1*1 = 0 = true 4. P4*P6*P8= 1*0*0 = 0 = true

Dari hasil pengujian, dapat dilihat dari 4 hasil pengujian terdapat nilai false yang berarti nilai pixel yang diuji tidak dihapus.


(52)

Berikut sebagai contoh diberikan piksel citra 3 x 3 dari blok citra selanjutnya dari Gambar 3.1 yang akan diuji adalah seperti pada Gambar 3.8:

0 0 1

0 1 1

0 0 0

Gambar 3.8 Matriks Citra

1. N (P1) = 2, maka 2 ≤N(P1) ≤6 = true 2. S (P1) = 1, maka S(P1) = 1 = true 3. P2*P4*P6=0 = 0*1*1 = 0 = true 4. P4*P6*P8= 1*0*0 = 0 = true

Dari hasil penelusuran, dapat dilihat 4 hasil pengujian semua bernilai true yang berarti nilai pixel yang diuji akan dihapus dan menghasilkan matrik citra yang baru seperti pada Gambar 3.9.

0 0 1

0 0 1

0 0 0 Gambar 3.9 Matriks Citra Akhir

3.2 Perancangan Sistem

Berdasarkan analisa yang penulis lakukan terhadap metode zhang-suen dalam melakukan thinning pada sebuah citra digital, penulis melakukan perancangan terhadap perangkat lunak yang mana tahapannya terbagi menjadi lima tahapan yaitu:


(53)

2. Konversi nilai Pixel ke nilai RGB 3. Konversi Nilai RGB ke Nilai Grayscale 4. Proses Thresholding

5. Proses Thinning

Dalam perancangan perangkat lunak ini, tahap pertama yang penulis lakukan adalah merancang proses kerja dari perangkat lunak ini. Adapun alat bantu perancangan proses yang penulis gunakan adalah sebuah bagan alir (flowchart). Proses kerja sistem dimulai dari proses penginputan citra digital yang akan dilakukan proses thinning.

Sistem akan membaca setiap nilai pixel dari citra untuk menghitung nilai RGB, nilai grayscale serta pembentukan matriks citra biner dari proses threshold. Untuk setiap posisi pixel, sistem akan melakukan pengecekan apakah pixel tersebut termasuk ke dalam kategori contour point atau tidak. Jika pixel termasuk ke dalam kategori contour point, sistem akan melakukan penghapusan terhadap pixel tersebut. Proses penghapusan ini dilakukan dengan cara mengubah nilai pixel menjadi warna putih (255). Setelah seluruh pixel yang termasuk ke dalam kategori contour point dihapus, maka sistem akan menampilkan hasil proses thinning terhadap citra digital.

3.2.1 Flowchart Thinning Image

Untuk menjelaskan proses thinning image dengan metode Zhang-Suen dapat dilihat pada flowchart seperti pada Gambar 3.10


(54)

Input citra digital Start

Baca nilai setiap pixel

Hitung nilai RGB setiap pixel

Hitung nilai Grayscale setiap pixel

Hitung nilai threshold setiap pixel

Buat Matriks Citra Biner 3x3 (n)

Cek kategori contour pointpixel

Yes

Pixel termasuk kategori

Contour point?

Hapus pixel

n=n-1

No

n=0 ?

No

Yes Tampilkan hasil thinning


(55)

Gambar 3.10 Flowchart Proses Thinning

3.2.2 Perancangan Antar Muka Program

Setelah melakukan perancangan terhadap proses kerja dari perangkat lunak ini, penulis melakukan perancangan terhadap antar muka yang akan digunakan sebagai media interaksi antara pengguna dan sistem yang dirancang. Perancangan antar muka perangkat lunak ini terdiri dari:

1. Rancangan Menu Utama

Rancangan Menu utama berfungsi untuk menampilkan judul skripsi serta menu pendukung perangkat lunak image thinning antara lain Image Thinning, Help serta About. Rancangan Menu Utama dapat dilihat pada Gambar 3.11.

Image Thining Help About Quit

Gambar 3.11 Menu Utama

2. Rancangan Image Thinning

Rancangan Image Thinning berfungsi untuk melakukan proses thinning terhadap citra digital yang di-input oleh pengguna perangkat lunak. Adapun bentuk rancangan dari Image Thinning ini seperti terlihat pada Gambar 3.12.


(56)

Perangkat Lunak Image Thinning Dengan Metode Zhang-suen

Citra Setelah Proses Thinning Citra Awal

File About Exit

Open Process Save

X

Save Exit

Clear Process

Open File

No

Pixel

Nilai

Red

Nilai

Green

Nilai

Blue

Nilai

Grayscale

Nilai

Threshod

Dimensi Citra

1 xxx xxx Xxx Xxx Xxx Xxx

2 xxx xxx xxx Xxx Xxx xxx

Gambar 3.12 Rancangan Image Thinning

3. Rancangan About

Rancangan About berfungsi untuk menampilkan sekilas informasi mengenai perangkat lunak. Rancangan About seperti pada Gambar 3.13.

Perangkat Lunak Image Thinning Dengan Metode Zhang-Suen

Suci Indah Syahputri Jurusan Ilmu Komputer Universitas Sumatera Utara

2011

X About


(57)

Gambar 3.13 Rancangan About

4. Rancangan Help

Rancangan Help berfungsi untuk menampilkan sekilas informasi mengenai perangkat lunak. Rancangan Help seperti pada Gambar 3.14.

Tata Cara Pengoperasian Sistem

X Help


(58)

BAB 4

IMPLEMENTASI DAN PENGUJIAN

4.1. Implementasi

Setelah melalui tahap perancangan, tahan selanjutnya untuk mengembangkan suatu perangkat lunak adalah tahapan implementasi. Setelah melakukan implementasi terhadap rancangan yang diperoleh sebelumnya ke dalam bahasa pemrograman, penulis memperoleh hasil berupa sebuah perangkat lunak image thinning dengan metode Zhang Suen.

Hasil dari implementasi perangkat lunak Image Thinning terdiri dari tampilan menu Utama, Image Thinning, Help dan About adalah sebagai berikut:

4.1.1 Tampilan Menu Utama

Tampilan Menu Utama merupakan tampilan yang pertama kali pada saat sistem dijalankan. Tampilan ini berfungsi sebagai tempat menu-menu yang mendukung perangkat lunak Image Thinning dengan metode Zhang-Suen. Tampilan menu Utama dapat dilihat seperti pada Gambar 4.1.


(59)

Gambar 4.1 Tampilan Form Utama

4.1.2 Tampilan Image Thinning

Tampilan Image Thinning adalah program yang melakukan thinning (perampingan) terhadap citra digital. Pada tampilan ini terdapat dua kotak gambar yang berfungsi untuk menampilkan citra awal dan citra hasil thinning seperti pada Gambar 4.2.


(60)

Gambar 4.2 Image Thinning

Keterangan Gambar:

Dibawah tampilan kotak gambar terdapat tombol-tombol untuk melakukan proses thinning sebuah citra antara lain:

a. Tombol Open File berfungsi untuk membaca file citra digital b. Tombol Process berfungsi untuk melakukan thinning citra.

c. Tombol Clear berfungsi untuk membersihkan tampilan pada kotak gambar d. Tombol Save berfungsi menyimpan hasil thinning citra

e. Tombol Exit untuk menutup tampilan thinning

Untuk membuka file citra pilih tombol Open File dan akan muncul kotak dialog (dialog box) seperti pada Gambar 4.3.

Gambar 4.3 Kotak Dialog Open File

Selanjutnya pilih salah satu file citra pada kotak dialog untuk menampilkannya pada kotak citra asli (picture box) seperti pada Gambar 4.4.


(61)

Gambar 4.4 Tampilan File Citra

Keterangan:

Setelah file citra dibuka dan ditampilkan pada kotak citra, maka akan tampil properties dari file citra antara lain:

Nama file : Nama file citra Path : Alamat file citra Ukuran file : Ukuran (size)

Selanjutnya untuk melakukan proses thinning atas file citra di atas, maka pilih tombol Process dan hasilnya dapat dilihat pada Gambar 4.5.


(62)

Gambar 4.5 Tampilan Hasil Thinning File Citra

Setelah proses thinning, maka untuk menyimpan hasilnya dalam bentuk file pilih tombol Save seperti pada Gambar 4.6.

Gambar 4.6 Kotak Dialog Save File

Pada kotak dialog Save file, isikan nama file yang baru dan pilih tombol Save untuk melakukan penyimpanan dan hasilnya seperti pada Gambar 4.7.


(63)

Gambar 4.7 Tampilan Hasil Penyimpanan

Keterangan:

Setelah file citra hasil disimpan dan ditampilkan pada kotak citra hasil thinning, maka akan tampil properties dari file citra hasil penyimpanan antara lain:

Nama file : Nama file citra hasil thinning Path : Alamat file citra hasil thinning Ukuran file : Ukuran (size) sesudah thinning

4.1.3 Tampilan About

Tampilan About merupakan tampilan yang berfungsi untuk menampilkan sekilas informasi mengenai perancang perangkat lunak ini. Adapun tampilan About seperti ditunjukkan pada Gambar 4.8.

Gambar 4.8 Tampilan About

4.1.4 Tampilan Help

Tampilan Help merupakan tampilan yang berfungsi untuk menampilkan tata cara pengoperasian perancang perangkat lunak ini. Adapun tampilan Help seperti ditunjukkan pada Gambar 4.9.


(64)

Gambar 4.9 Tampilan Help

4.2 Pengujian Sistem

Setelah mendapatkan hasil tampilan perangkat lunak, selanjutnya dilakukan pengujian terhadap sistem tersebut. Adapun pengujian sistem yang penulis lakukan adalah terdiri dari:

a. Pengujian Proses Thinning

Pengujian proses thinning adalah melakukan proses thinning terhadap file citra digital yang berformat Bmp dan Jpg yang memiliki warna latar belakang (background color) dan tanpa warna latar belakang dan menghitung ukuran file sebelum dan sesudah proses thinning.

b. Pengujian Tampilan Hasil Proses Thinning

Pengujian Tampilan Hasil Proses Thinning adalah menampilkan hasil proses thinning terhadap file citra digital yang berformat Bmp dan Jpg yang memiliki warna latar belakang (background color) dan tanpa warna latar belakang.


(65)

4.2.1 Pengujian Proses Thinning

A. Citra Dengan Format BMP

Citra yang diuji adalah citra dengan format BMP

1. Thining dengan citra yang memiliki warna latar belakang

Langkah pertama dalam pengujian ini adalah melakukan load citra digital HP.bmp yang memiliki warna latar belakang dengan cara menekan tombol Open File. Hasil dari langkah ini adalah munculnya citra digital Hp.bmp pada picture box Citra Awal pada tampilan Image Thinning, seperti terlihat pada Gambar 4.10.

Gambar 4.10 Citra Asli HP.bmp

Langkah berikutnya, dilakukan penekanan tombol Process untuk memulai proses thinning pada citra digital tersebut. Hasil yang diperoleh adalah munculnya langkah-langkah proses thinning citra digital tersebut. Proses pertama yang muncul adalah proses mengubah citra warna menjadi citra biner dari citra digital Hp.bmp dan selanjutnya melakukan thinning seperti terlihat pada Gambar 4.11.


(66)

Gambar 4.11 Citra Hasil Thinning Hp.bmp

2. Thining dengan citra yang tidak memiliki warna latar belakang

Pengujian ini adalah melakukan load citra digital Uchy.bmp yang tidak memiliki warna latar belakang dengan cara menekan tombol Open File. Hasil dari langkah ini seperti terlihat pada Gambar 4.12.


(67)

Langkah berikutnya, dilakukan penekanan tombol Process untuk memulai proses thinning pada citra digital tersebut. Hasil yang diperoleh adalah munculnya langkah-langkah proses thinning citra digital tersebut. Proses pertama yang muncul adalah proses mengubah citra warna menjadi citra biner dari citra digital Hp.bmp dan selanjutnya melakukan thinning seperti terlihat pada Gambar 4.13.

Gambar 4.13 Citra Hasil Thinning Uchy Thinning.bmp

B. Citra Dengan Format JPG

Citra yang diuji adalah citra dengan format JPG

1. Thining dengan citra yang memiliki warna latar belakang

Langkah pertama dalam pengujian ini adalah melakukan load citra digital HP.bmp yang memiliki warna latar belakang dengan cara menekan tombol Open File. Hasil dari langkah ini adalah munculnya citra digital Hp.bmp pada picture box Citra Awal pada tampilan Image Thinning, seperti terlihat pada Gambar 4.14.


(68)

Gambar 4.14 Citra Asli Soccer.Jpg

Lakukan pemilihan tombol Process untuk memulai proses thinning pada citra digital tersebut. Hasil yang diperoleh adalah munculnya langkah-langkah proses thinning citra digital tersebut. Proses pertama yang muncul adalah proses mengubah citra warna menjadi citra biner dari citra Soccer.Jpg dan selanjutnya melakukan thinning seperti terlihat pada Gambar 4.15.


(69)

2. Thining dengan citra tidak memiliki warna latar belakang

Pengujian ini adalah melakukan load citra digital Windows.Jpg yang tidak memiliki warna latar belakang dengan cara menekan tombol Open File. Hasil dari langkah ini seperti terlihat pada Gambar 4.16.

Gambar 4.16 Citra Asli Windows.Jpg

Lakukan pemilihan tombol Process untuk memulai proses thinning pada citra digital tersebut. Hasil yang diperoleh adalah munculnya langkah-langkah proses thinning citra digital tersebut. Proses pertama yang muncul adalah proses mengubah citra warna menjadi citra biner dari citra WindowsThin.Jpg dan selanjutnya melakukan thinning seperti terlihat pada Gambar 4.17.


(70)

Dari hasil pengujian proses thinning file citra dengan kriteria format file (Bmp dan Jpg) serta citra dengan warna latar belakang dan tanpa warna latar belakang dapat dibuat sebuah Resume Hasil pengujian.

a. Hasil Pengujian Citra dengan Format Bmp dapat dilihat pada Gambar 4.18

Gambar 4.18 Hasil Pengujian Thinning Jenis File Bmp

Keterangan:

Ukuran file hasil thinning yang diperoleh adalah lebih besar antara 77.61 % sampai 326 %.

b. Hasil Pengujian Citra dengan Format Jpg dapat dilihat pada Gambar 4.19

Gambar 4.19 Hasil Pengujian Thinning Jenis File Jpg

Keterangan:

Ukuran file hasil thinning yang diperoleh adalah lebih besar antara 142 % sampai 3525 %.


(71)

4.2.2 Pengujian Tampilan Hasil Proses Thinning

Pengujian Tampilan Hasil Proses Thinning adalah untuk mengetahui apakah hasil proses thinning dapat dikenali atau tidak.

No Citra Asli Nama File/

Ukuran Citra Hasil Thinning

Nama File/ Ukuran

Hp.BMP 293 Kb

Hp1Thin.JP 1.2 MB

Uchi.BMP 240Kb

UchiThi.JPG 256 Kb

Soccer_022.BMP 25 Kb

Soccer.JPG 853 Kb

Indows.BMP 19.4 Kb

WindowsThin .JPG 383 Kb


(1)

Public Sub moveit2(Picture1 As PictureBox, Picture2 As PictureBox, x As Integer, y As Integer, ByVal w As Integer, ByVal h As Integer)

Picture1.Cls

Picture2.Picture = Nothing Picture2.Cls

On Error Resume Next Picture2.width = x + w Picture2.height = y + h

Picture2.PaintPicture Picture1.Picture, x, y End Sub

‘---‘

Option Explicit Dim cpx As Single Dim cpy As Single Dim draw As Boolean Dim drad As Boolean Dim selected As Boolean

Public Sub pic1_Click(ByRef Shape1 As Shape) If draw = True Then

Shape1.Visible = False Else

End If End Sub

Public Sub pic1_MouseDown(ByRef Shape1 As Shape, Button As Integer, Shift As Integer, x As Single, y As Single) If Shape1.Visible = True Then

cpx = x cpy = y draw = True Shape1.top = y Shape1.left = x Shape1.height = 0 Shape1.width = 0

Shape1.Visible = True selected = False

End If End Sub

Public Sub pic1_MouseMove(ByRef Shape1 As Shape, ByVal w As Integer, ByVal h As Integer, ByVal l As Integer, ByVal t As Integer, ByVal maxw As Integer, ByVal maxh As

Integer, Button As Integer, Shift As Integer, x As Single, y As Single)

If Shape1.Visible = True Then If draw = True Then

If Abs(x - cpx) < maxw Then If x <= w + l And x >= l Then


(2)

If x >= cpx Then Shape1.left = cpx

Shape1.width = x - cpx '+ l Else

Shape1.left = x

Shape1.width = cpx - x '+ l End If

End If End If

If Abs(y - cpy) < maxh Then If y <= h + t And y >= t Then If y >= cpy Then

Shape1.top = cpy

Shape1.height = y - cpy '+ t Else

Shape1.top = y

Shape1.height = cpy - y '+ t End If

End If End If

selected = True End If

End If End Sub

Public Sub pic1_MouseUp(ByRef Shape1 As Shape, Button As Integer, Shift As Integer, x As Single, y As Single) If Shape1.Visible = True Then

draw = False End If

End Sub

‘---‘

Dim ip(0 To 600, 0 To 600) As Integer Dim temp(0 To 2, 0 To 2) As Integer Dim i As Integer

Dim j As Integer Dim a As Integer Dim b As Integer Dim x As Integer Dim y As Integer Dim nf As Integer Dim red As Integer Dim pixel As Long Dim cnt As Integer Dim bc As Integer Dim non As Integer Dim c As Integer Dim d As Integer Dim f As Integer


(3)

Dim black As Boolean

Dim check1, check2, check3, check4 As Boolean Dim c1, c2, c3, c4 As Boolean

Dim repeat As Integer

Declare Function SetPixelV Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

Public Sub thinit(Picture1 As PictureBox, ByVal w As Integer, ByVal h As Integer) 'Picture1 As PictureBox) x = w

y = h

On Error Resume Next For i = 0 To x - 1

For j = 0 To y - 1

pixel = Picture1.Point(i, j) red = pixel& Mod 256

If red = 0 Then ip(i, j) = 1 Else

ip(i, j) = 0 End If

Next j DoEvents Next i thin Picture1 End Sub

Private Sub thin(Picture1 As PictureBox) check1 = False

check2 = False check3 = False check4 = False c1 = True

c2 = True c3 = True c4 = True

For repeat = 1 To 100 black = True

If ((check1 = False) And (c1 = True)) Then For i = 1 To x - 1 Step 1

For j = 1 To y - 1 Step 1 If black = True Then

If ((ip(i, j) = 1 And ip(i, j - 1) = 0)) Then If (canthin() = 1) Then

ip(i, j) = 0 black = False check1 = True


(4)

End If End If Else

If ip(i, j) = 0 Then black = True

End If End If Next j DoEvents Next i End If

black = True

If ((check2 = False) And (c2 = True)) Then For i = 1 To x - 1

For j = y - 1 To 1 Step -1 If black = True Then

If (ip(i, j) = 1 And ip(i, j + 1) = 0) Then If (canthin() = 1) Then

ip(i, j) = 0 black = False check2 = True End If

End If Else

If ip(i, j) = 0 Then black = True

End If End If Next j DoEvents Next i End If

black = True

If ((check3 = False) And (c3 = True)) Then For j = 1 To y - 1 Step 1

For i = 1 To x - 1

If black = True Then

If (ip(i, j) = 1 And ip(i - 1, j) = 0) Then

If (canthin() = 1) Then ip(i, j) = 0

black = False check3 = True End If

End If Else

If ip(i, j) = 0 Then black = True End If


(5)

Next i DoEvents Next j

End If

black = True

If ((check4 = False) And (c4 = True)) Then For j = 1 To y - 1

For i = x - 1 To 1 Step -1 If black = True Then

If (ip(i + 1, j) = 0 And ip(i, j) = 1) Then

If (canthin() = 1) Then ip(i, j) = 0

black = False check4 = True End If

End If Else

If ip(i, j) = 0 Then black = True End If

End If Next i DoEvents Next j

End If

If check1 = True Then check1 = False Else

c1 = False End If

If check2 = True Then check2 = False Else

c2 = False End If

If check3 = True Then check3 = False Else

c3 = False End If

If check4 = True Then check4 = False Else

c4 = False End If

If ((c1 = False) And (c2 = False) And (c3 = False) And (c4 = False)) Then

Exit For End If


(6)

Next repeat

For i = 0 To x - 1 For j = 0 To y - 1 If ip(i, j) = 1 Then

SetPixelV Picture1.hdc, i, j, vbBlack Else

SetPixelV Picture1.hdc, i, j, vbWhite End If

Next j DoEvents Next i End Sub

Function canthin() As Integer For a = -1 To 1

For b = -1 To 1

temp(a + 1, b + 1) = ip(i + a, j + b) Next b

Next a

temp(1, 1) = 0 For a = 0 To 2 For b = 0 To 2

If temp(a, b) = 1 Then temp(a, b) = 0

non = 1

For c = -1 To 1 For d = -1 To 1

If (((a + c) >= 0) And ((a + c) <= 2) And ((d + b) >= 0) And ((b + d) <= 2)) Then

If (temp(a + c, b + d) = 1) Then non = 0

End If End If Next d Next c

temp(a, b) = 1 If (non) Then canthin = 0 Exit Function End If

End If Next b Next a canthin = 1 End Function