Implementasi Order-Statistic Filters Untuk Mereduksi Noise Pada Citra Digital

(1)

IMPLEMENTASI ORDER-STATISTIC FILTERS UNTUK

MEREDUKSI NOISE PADA CITRA DIGITAL

SKRIPSI

JUNI SANTO SIHOTANG 091401017

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2013


(2)

IMPLEMENTASI ORDER-STATISTIC FILTERS UNTUK MEREDUKSI NOISE PADA CITRA DIGITAL

SKRIPSI

Diajukan untuk melengkapi tugas akhir dan memenuhi syarat mencapai gelar Sarjana Komputer

JUNI SANTO SIHOTANG 091401017

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2013


(3)

PERSETUJUAN

Judul : IMPLEMENTASI ORDER-STATISTIC FILTERS

UNTUK MEREDUKSI NOISE PADA CITRA DIGITAL

Kategori : SKRIPSI

Nama : JUNI SANTO SIHOTANG

Nomor Induk Mahasiswa : 091401017

Program Studi : SARJANA (S1) ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI Diluluskan di Medan, Juli 2013 Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Dian Wirdasari, S.Si, M.Kom Dian Rachmawati, S.Si, M.Kom NIP 198209232010122002 NIP. 198307232009122004

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001


(4)

PERNYATAAN

IMPLEMENTASI ORDER-STATISTIC FILTERS UNTUK MEREDUKSI NOISE PADA CITRA DIGITAL

SKRIPSI

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

Medan, 20 Mei 2013

Juni Santo Sihotang 091401017


(5)

PENGHARGAAN

Puji dan syukur penulis ucapkan kepada Tuhan Yang Maha Kuasa atas segala berkat dan kasih karuniaNya sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Ucapan terima kasih penulis sampaikan kepada :

1. Bapak Prof.Dr.dr.Syahril Pasaribu, DTM&H, MSc(CTM). Sp.A(K) selaku Rektor Universitas Sumatera Utara

2. Bapak Prof.Dr.Muhammad Zarlis, selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom, selaku Ketua Departemen Ilmu Komputer Universitas Sumatera Utara.

4. Ibu Maya Silvi Lydia, B.Sc, M.Sc, selaku Sekretaris Departemen Ilmu Komputer Universitas Sumatera Utara.

5. Ibu Dian Rachmawati, S.Si, M.Kom, dan Ibu Dian Wirdasari, S.Si, M.Kom, selaku Dosen Pembimbing.

6. Bapak Dr.Poltak Sihombing, M.Kom dan Bapak Handizal, S.Si, M.Comp. Sc, selaku Dosen Penguji.

7. Bapak saya Rejion Sihotang , ibu saya Ubat Munthe, kakak saya Ade Irma Sihotang, abang saya Steven Sihotang, S.Kom dan adik-adik saya yang selalu memberikan cinta kasihnya dan dukungannya baik material dan spiritual serta seluruh sahabat saya Renti Meliwati Purba dan kerabat yang berjasa memberikan dorongan kepada penulis selama menyelesaikan skripsi ini.


(6)

8. Rekan-rekan kuliah, khususnya Ales Sotardodo Panjaitan, Isman Santoso Nainggolan, Jhonri Sibarani, Samuel Tarigan, Jakup Ginting, Septian Panjaitan, Santo Nainggolan dan teman-teman di UKM KMK USU kak Debora Nainggolan, S.Kom, Bertua Novita Simanjuntak, yang selalu memberikan semangat dan dorongan kepada penulis.

Semoga Tuhan Yang Maha Kuasa memberikan berkat yang berlimpah kepada semua pihak yang telah memberikan bantuan, perhatian, serta dukungan kepada penulis dalam menyelesaikan skripsi ini.

Medan, 05 Juni 2013


(7)

ABSTRAK

Noise Salt-and-pepper atau Noise Gaussian adalah noise yang sering ada dijumpai pada citra digital. Citra yang memiliki noise biasanya terjadi karena kesalahan teknik dalam pengambilan citra atau karena citra sudah disimpan terlalu lama. Untuk mereduksi noise dibutuhkan suatu metode filter yang tepat agar citra yang dihasilkan sesuai dengan aslinya. Metode Order-Statistic Filters merupakan filter non-linier yang hasilnya ditentukan sesuai pada pengurutan pixel yang bmengisi area citra yang berada diruang lingkup filter dan kemudian mengganti nilai dari pusat pixel dengan nilai yang ditentukan dari hasil perangkingan. Metode Order-Statistic Filters salah satu metode untuk mereduksi noise, yang terdiri dari Median Filter, Mean Filter, Max Filter, Min Filter dan Midpoint Filter. Dengan metode Order-Statistic Filters

dibangunlah aplikasi filtering yang digunakan untuk mereduksi Noise Salt-and-pepper

atau Noise Gaussian. Hasil implementasi dengan menggunakan teknik Median Filter

dapat mereduksi Noise Salt-and-pepper lebih baik dibandingkan dengan teknik filter

yang lain dalam Order-Statistic Filters. Sedangkan Mean Filter dapat mereduksi

Noise Gaussian lebih baik dibandingkan dengan teknik filter yang lain dalam Order-Statistic Filters.

Kata kunci : Pengolahan Citra, Order-Statistic Filters, Noise, Mean Squared Error, Peak Signal Noise to Ratio


(8)

IMPLEMENTATION OF ORDER-STATISTIC FILTERS TO REDUCE NOISE IN DIGITAL IMAGES

ABSTRACT

Salt-and-pepper Noise or Gaussian Noise is noise there is usually found in digital images. Noise on the image usually occurs due to errors in image acquisition technique or because the image has been stored too long. To reduce noise we need a proper filter method so that the image resulted in accordance with the original. Order-Statistic Filters method is a non-linear filter whose results determined in accordance with the sorting image pixels that fil the area that are in the scope of the filter and then change the value of the center pixel with the value determined from the results of the rangking. Order-Statistic Filters method is one method to reduce noise, which consists of the Median Filter, Mean filter, Max filter, Min filter and Midpoint filter. By Order-Statistic Filters method built filtering application used to reduce Salt-and-pepper Noise or Gaussian Noise. Implementation results using Median filter technique can reduce Noise Salt-and-pepper id better then the other filter techniques in the Order-Statistic Filters.While the Mean filter to reduce noise better than other filters techniques in the Order-Static Filters.

Keyword : Image Processing

, Order-Statistic Filters, Noise, Mean Squared Error, Peak Signal Noise to Ratio


(9)

DAFTAR ISI

Halaman

Persetujuan ii

Pernyataan iii Penghargaan iv Abstrak v Abstract vi Daftar Isi vii Daftar Tabel x Daftar Gambar xii Daftar Lampiran xiv Bab I Pendahuluan 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 Sistematika Penulisan 4

Bab II Landasan Teori 2.1 Pengolahan Citra 5

2.1.1 Defenisi Pengolahan Citra 5

2.1.2 Tujuan Pengolahan Citra 5

2.1.3 Manfaat Pengolahan Citra 6

2.2 Citra Digital 7

2.2.1 Citra Digital Berformat Bitmap 8

2.2.2 Picture Elements (Pixel) 9

2.2.2 Dimensi dan Resolusi 9

2.3 Noise 9

2.3.1 Gaussian Noise 10

2.3.2 Salt-and-Pepper Noise 11

2.4 Filtering 12

2.5 Order-Statistic Filters 13

2.5.1 Median Filter 14 2.5.2 Mean Filter 17

2.5.3 Max Filter 18

2.2.1 Min Filter 19

2.2.2 Midpoint Filter 20

2.6 Mean Squared Error dan Peak Signal to Noise Ratio 21


(10)

2.6.2 Peak Signal to Noise Ratio 21

Bab III Analisis dan Perancangan Sistem

3.1 Analisis Sistem 22

3.1.1 Analisis Masalah 22

3.1.2 Analisis Persyaratan 22

3.1.2.1 Persyaratan Fungsional 23

3.1.2.2 Persyaratan Nonfungsional 23

3.1.3 Analisis Proses 24

3.1.3.1 Use Case Diagram 25

3.1.3.2 Squence Diagram 26

3.1.3.3 Activity Diagram 26

3.2 Pseudocode Program 27

3.2.1 Pseudocode Mean Filter 28

3.2.2 Pseudocode Median Filter 29

3.2.3 Pseudocode Max Filter 30

3.2.4 Pseudocode Min Filter 31

3.2.5 Pseudocode Midpoint Filter 32

3.2.6 Pseudocode Mean Squared Error 33

3.2.7 Pseudocode Peak Signal to Noise Ratio 34

3.3 Perancangan Sistem 34

3.3.1 Perancangan Flowchart Sistem 34 3.3.2 Rancangan Interface Aplikasi 36 3.3.2.1 Rancangan interfaceformpreloader 36 3.3.2.2 Rancangan interfaceform utama 37 3.3.2.3 Rancangan interfaceform membangkitkan Noise

Salt-and-pepper 39

3.3.2.4 Rancangan interfaceform membangkitkan Noise

Gaussian 41

3.3.2.5 Rancangan interfaceform hitung nilai MSE & PSNR 42 3.3.2.6 Rancangan interfaceform bantuan 44 3.3.2.7 Rancangan interfaceform programmer 44 Bab IV Implementasi dan Pengujian

4.1 Implementasi 46

4.1.1 FormPreloader 46

4.1.2 Form Menu Utama 47

4.1.3 Form Membangkitkan Noise Salt-and-Pepper 48 4.1.4 Form Membangkitkan Noise Gaussian 48

4.1.5 Form Menghitung Nilai MSE dan PSNR 49

4.1.6 Form Cara Menggunakan Sistem 50

4.1.7 FormProgrammer 51

4.2. Pengujian 51

4.2.1 Proses Pembangkitan Noise Salt-and-Pepper 52 4.2.2 Proses Pembangkitan Noise Gaussian 52

4.2.3 Proses Order-Statistic Filters 55


(11)

4.2.3.2 Proses Mean Filter 58

4.2.3.3 Proses Max Filter 59

4.2.3.4 Proses Min Filter 61

4.2.3.5 Proses Midpoint Filter 63

4.2.3.4 Proses Perhitungan Nilai MSE dan PSNR 64 Bab V Kesimpulan dan Saran

5.1 Kesimpulan 90

5.2. Saran 92


(12)

DAFTAR TABEL

Nomor


(13)

4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13

Perbandingan Citra Digital yang memiliki Noise Salt-and-pepper dengan probabilitas Noise yang berbeda dan setelah

Noise direduksi dengan Median Filter

Lanjutan perbandingan Citra Digital yang memiliki Noise Salt-and-pepper dengan probabilitas Noise yang berbeda dan setelah

Noise direduksi dengan Median Filter

Perbandingan Citra Digital yang memiliki Noise Salt-and-pepper dengan probabilitas Noise yang berbeda dan setelah

Noise direduksi dengan Mean Filter

Lanjutan perbandingan Citra Digital yang memiliki Noise Salt-and-pepper dengan probabilitas Noise yang berbeda dan setelah

Noise direduksi dengan Mean Filter

Perbandingan Citra Digital yang memiliki Noise Salt-and-pepper dengan probabilitas Noise yang berbeda dan setelah

Noise direduksi dengan Max Filter

Lanjutan perbandingan Citra Digital yang memiliki Noise Salt-and-pepper dengan probabilitas Noise yang berbeda dan setelah

Noise direduksi dengan Max Filter

Perbandingan Citra Digital yang memiliki Noise Salt-and-pepper dengan probabilitas Noise yang berbeda dan setelah

Noise direduksi dengan Min Filter

Lanjutan perbandingan Citra Digital yang memiliki Noise Salt-and-pepper dengan probabilitas Noise yang berbeda dan setelah

Noise direduksi dengan Median Filter

Perbandingan Citra Digital yang memiliki Noise Salt-and-pepper dengan probabilitas Noise yang berbeda dan setelah

Noise direduksi dengan Midpoint Filter

Lanjutan perbandingan Citra Digital yang memiliki Noise Salt-and-pepper dengan probabilitas Noise yang berbeda dan setelah

Noise direduksi dengan Midpoint Filter

Perbandingan Citra Digital yang memiliki Noise Gaussian

dengan probabilitas Noise yang berbeda dan setelah Noise

direduksi dengan Median Filter

Lanjutan perbandingan Citra Digital yang memiliki Gaussian

dengan probabilitas Noise yang berbeda dan setelah Noise

direduksi dengan Median Filter

Perbandingan Citra Digital yang memiliki Noise Gaussian

dengan probabilitas Noise yang berbeda dan setelah Noise

direduksi dengan Mean Filter

65 66 67 68 69 70 71 72 73 74 75 76 77


(14)

Nomor

Tabel Nama Tabel Halaman

4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24

Lanjutan perbandingan Citra Digital yang memiliki Noise Gaussian dengan probabilitas Noise yang berbeda dan setelah

Noise direduksi dengan Mean Filter

Perbandingan Citra Digital yang memiliki Noise Gaussian

dengan probabilitas Noise yang berbeda dan setelah Noise

direduksi dengan Max Filter

Lanjutan perbandingan Citra Digital yang memiliki Noise Gaussian dengan probabilitas Noise yang berbeda dan setelah

Noise direduksi dengan Max Filter

Perbandingan Citra Digital yang memiliki Noise Gaussian

dengan probabilitas Noise yang berbeda dan setelah Noise

direduksi dengan Min Filter

Lanjutan perbandingan Citra Digital yang memiliki Noise Gaussian dengan probabilitas Noise yang berbeda dan setelah

Noise direduksi dengan Min Filter

Perbandingan Citra Digital yang memiliki Noise Gaussian

dengan probabilitas Noise yang berbeda dan setelah Noise

direduksi dengan Midpoint Filter

Lanjutan perbandingan Citra Digital yang memiliki Noise Gaussian dengan probabilitas Noise yang berbeda dan setelah

Noise direduksi dengan Midpoint Filter

Perbandingan Rata-rata Nilai MSE dari Order-Statistic Filter

untuk Mereduksi Noise Salt-and-pepper pada Citra Bitmap ukuran 250x250 pixel

Perbandingan Rata-rata Nilai PSNR dari Order-Statistic Filter

untuk Mereduksi Noise Salt-and-pepper pada Citra Bitmap ukuran 250 x 250 pixel

Perbandingan Rata-rata Nilai MSE dari Order-Statistic Filter

untuk Mereduksi Noise Gaussian dengan Citra Bitmap 250 x 250 pixel

Perbandingan Rata-rata Nilai PSNR dari Order-Statistic Filter

untuk Mereduksi Noise Gaussian dengan Citra Bitmap 250 x 250 pixel

78 79 80 81 82 83 84 85 85 86 86


(15)

DAFTAR GAMBAR

Nomor

Gambar Nama Gambar Halaman

2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10

Citra ukuran 200 x 300 pixel Rajawali.bmp

Citra yang terkena Gaussian Noise Citra yang terkena Salt-and-Pepper Noise

Matriks citra ukuran 10x8 dengan 8 skala keabuan

Matriks citra 3 x 3 dari citra ukuran 10x8 dengan 8 skala keabuan

Pemilihan kernel 3x3 dan mengurutkan nilai pixel

Hasil median filter untuk kernel 3x3 pertama Penggeseran dan pengurutan 1 pixel ke kanan

Penempatan hasil filter median pada matriks baru untuk tahap kedua

Penempatan hasil median filter 1 baris ke kanan Hasil median filter sampai pada pojok kanan Proses mean filter dengan matriks 3x3 Proses max filter dengan matriks 3x3 Proses min filter dengan matriks 3x3 Proses midpoint filter dengan matriks 3x3

Use case diagram sistem

Squence diagram sistem

Activity diagram sistem

Flowchart sistem

Rancangan Interface Form Preloader

Rancangan Interface Form Utama

Rancangan Interface Form Membangkitkan Noise Salt-and-Pepper

Rancangan Interface Form Membangkitkan Noise Gaussian

Rancangan Interface Form Menghitung Nilai MSE dan PSNR Rancangan Interface Form Bantuan

Rancangan Interface Form Programmer Form Preloader

Form Menu Utama

Form Membangkitkan Noise Salt-and-Pepper Form Membangkitkan Noise Gaussian

Form Menghitung nilai MSE dan PSNR

Form Cara menggunakan sistem

FormProgrammer

Juns.bmp

Penginputan citra tanpa noise dan probabilitas noise Salt-and-Pepper

Hasil pembangkitan Noise Salt-and-pepper pada citra

8 8 10 12 13 13 15 15 15 16 16 17 18 19 20 20 25 26 27 35 37 37 40 41 42 44 44 46 47 48 48 50 50 51 52 52 53


(16)

4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26 4.27 4.28 4.29

Penginputan citra tanpa noise dan probabilitas Noise Gaussian

Hasil Pembangkitan Noise Gaussian Pada citra

Tampilan penginputan citra dengan Noise Salt-and-pepper

Tampilan penginputan citra dengan Noise Gaussian

Proses median filter pada citra dengan Noise Salt-and-pepper

Proses median filter pada citra dengan Noise Gaussian

Proses mean filter pada citra dengan Noise Salt-and-pepper

Proses mean filter pada citra dengan Noise Gaussian

Proses max filter pada citra dengan Noise Salt-and-pepper

Proses max filter pada citra dengan Noise Gaussian

Proses min filter pada citra dengan Noise Salt-and-pepper

Proses min filter pada citra dengan Noise Gaussian

Proses midpoint filter pada citra dengan Noise Salt-and-pepper

Proses midpoint filter pada citra dengan Noise Gaussian

Proses perhitungan nilai MSE dan PSNR

Grafik perbandingan Rata-rata Nilai MSE dari Order-Statistic Filter untuk Mereduksi Noise Salt-and-pepper pada Citra Bitmap ukuran 250 x 250 pixel

Grafik perbandingan Rata-rata Nilai PSNR dari Order-Statistic Filter untuk Mereduksi Noise Salt-and-pepper pada Citra Bitmap ukuran 250 x 250 pixel

Grafik perbandingan Rata-rata Nilai MSE dari Order-Statistic Filter untuk Mereduksi Noise Gaussian pada Citra Bitmap ukuran 250 x 250 pixel

Grafik perbandingan Rata-rata Nilai PSNR dari Order-Statistic Filter untuk Mereduksi Noise Gaussian pada Citra Bitmap ukuran 250 x 250 pixel

54 55 56 56 57 57 58 59 60 60 61 62 63 63 64 86 87 87 89


(17)

DAFTAR LAMPIRAN

1. Listing Program A-1


(18)

ABSTRAK

Noise Salt-and-pepper atau Noise Gaussian adalah noise yang sering ada dijumpai pada citra digital. Citra yang memiliki noise biasanya terjadi karena kesalahan teknik dalam pengambilan citra atau karena citra sudah disimpan terlalu lama. Untuk mereduksi noise dibutuhkan suatu metode filter yang tepat agar citra yang dihasilkan sesuai dengan aslinya. Metode Order-Statistic Filters merupakan filter non-linier yang hasilnya ditentukan sesuai pada pengurutan pixel yang bmengisi area citra yang berada diruang lingkup filter dan kemudian mengganti nilai dari pusat pixel dengan nilai yang ditentukan dari hasil perangkingan. Metode Order-Statistic Filters salah satu metode untuk mereduksi noise, yang terdiri dari Median Filter, Mean Filter, Max Filter, Min Filter dan Midpoint Filter. Dengan metode Order-Statistic Filters

dibangunlah aplikasi filtering yang digunakan untuk mereduksi Noise Salt-and-pepper

atau Noise Gaussian. Hasil implementasi dengan menggunakan teknik Median Filter

dapat mereduksi Noise Salt-and-pepper lebih baik dibandingkan dengan teknik filter

yang lain dalam Order-Statistic Filters. Sedangkan Mean Filter dapat mereduksi

Noise Gaussian lebih baik dibandingkan dengan teknik filter yang lain dalam Order-Statistic Filters.

Kata kunci : Pengolahan Citra, Order-Statistic Filters, Noise, Mean Squared Error, Peak Signal Noise to Ratio


(19)

IMPLEMENTATION OF ORDER-STATISTIC FILTERS TO REDUCE NOISE IN DIGITAL IMAGES

ABSTRACT

Salt-and-pepper Noise or Gaussian Noise is noise there is usually found in digital images. Noise on the image usually occurs due to errors in image acquisition technique or because the image has been stored too long. To reduce noise we need a proper filter method so that the image resulted in accordance with the original. Order-Statistic Filters method is a non-linear filter whose results determined in accordance with the sorting image pixels that fil the area that are in the scope of the filter and then change the value of the center pixel with the value determined from the results of the rangking. Order-Statistic Filters method is one method to reduce noise, which consists of the Median Filter, Mean filter, Max filter, Min filter and Midpoint filter. By Order-Statistic Filters method built filtering application used to reduce Salt-and-pepper Noise or Gaussian Noise. Implementation results using Median filter technique can reduce Noise Salt-and-pepper id better then the other filter techniques in the Order-Statistic Filters.While the Mean filter to reduce noise better than other filters techniques in the Order-Static Filters.

Keyword : Image Processing

, Order-Statistic Filters, Noise, Mean Squared Error, Peak Signal Noise to Ratio


(20)

BAB I

PENDAHULUAN

1.1Latar Belakang

Penggunaan citra pada perkembangan teknologi informasi saat ini semakin meningkat, yaitu penggunaan citra untuk media cetak ataupun media online yang bertujuan untuk menarik minat masyarakat untuk mengetahui informasi yang disajikan. Kualitas citra yang disajikan sangat mempengaruhi informasi, sehingga pengambilan dan pengolahan citra harus dilakukan dengan teknik yang baik. Ketika capturing atau pengambilan sebuah citra dengan kamera atau citra yang telah disimpan dalam waktu cukup lama, seringkali tidak dapat langsung digunakan sebaigaimana yang diinginkan karena kualitasnya belum memenuhi standar untuk kebutuhan pengolahan [1].

Dalam pengambilan citra dengan kamera sering terjadi hal-hal yang tidak sesuai dengan yang diharapkan karena adanya gangguan yang terjadi pada citra hasil

capture. Beberapa kemungkinan gangguan yang terjadi pada hasil pengambilan citra dengan kamera yaitu adanya kabut yang menghalangi objek yang sedang di capture, lensa kamera kotor, adanya bintik-bintik yang disebabkan oleh proses capturing yang tidak sempurna, lensa kamera tidak fokus atau gangguan yang disebabkan oleh kotoran-kotoran yang menempel pada citra, dan lain sebagainya. Setiap gangguan yang terjadi pada citra tersebut dinamakan Noise. Secara umum citra yang demikian dapat dikatakan kualitasnya masih rendah, baik oleh karena adanya noise, maupun oleh sebab lainnya seperti pencahayaan yang belum sempurna atau karena citra yang sudah tersimpan dengan waktu yang cukup lama. Citra yang memiliki kualitas seperti ini membutuhkan langkah-langkah perbaikan dan kualitasnya perlu ditingkatkan untuk memfasilitasi pengolahan yang akan dilakukan.

Beberapa penelitian yang berkaitan dengan tugas akhir ini antara lain, Implementasi Adaptive Median Filter Sebagai Reduksi Noise Pada Citra Digital, oleh


(21)

Eva Listiyani, S1- Sistem Komputer, Sekolah Tinggi Manajemen Informatika & Teknik Komputer Surabaya dan Perbandingan Metode Low-Pass Filter Dan Median Filter Dalam Penghalusan Citra (Image Smoothing) Untuk Peningkatan Kualitas Citra (Image Enhancement) oleh Anisa Fitri, Jurusan Teknik Informatika, Fakultas Teknik dan Ilmu Komputer, Universitas Komputer Indonesia. Penelitian lain juga oleh Ana Wahyu Hakim yaitu Penghapusan Noise Pada Citra Dengan Filter Adaptive-Hierarchical, Fakultas Teknologi Informasi Institute Teknologi Sepuluh Nopember. Untuk itu maka dalam tugas akhir ini peneliti tertarik mengangkat suatu teknik lain untuk mengatasi masalah-masalah noise pada citra yaitu “Implementasi

Order-Statistic Filters untuk Mereduksi Noise pada Citra Digital.

1.2 Perumusan Masalah

Berdasarkan uraian pada latar belakang masalah, maka penulis membuat rumusan masalah yang nantinya akan diselesaiakan pada penulisan skripsi ini, yaitu :

1. Bagaimana cara mereduksi noise dengan teknik Order-Statistic Filters pada citra digital yang memiliki noise?

2. Bagaimana perbandingan kualitas citra sebelum dan sesudah proses reduksi noise dengan beberapa filter yang merupakan bagian dari Order-Statistic Filters?

3. Filter apa yang lebih baik untuk mereduksi Noise Salt-and-pepper atau Noise Gaussian dalam Order-Statistic Filters?

1.3 Batasan Masalah

Batasan masalah penelitian dalam tugas akhir ini adalah :

1. Order-Statistic Filters yang dibahas dalam tugas akhir ini adalah Median Filter, Mean Filter, Max Filter, Min Filter, dan Midpoint Filter.

2. Citra digital yang digunakan adalah citra (image) yang berektensi *BMP dengan ukuran dimensi maksimal 300 x 300 pixel.

3. Noise yang akan direduksi adalah Gaussian Noise dan Salt and PaperNoise. 4. Sistem tidak membahas noise yang terdapat dalam citra.

5. Menggunakan perhitungan dengan metode Mean Squared Error (MSE) dan Peak Signal to Noise Ratio (PSNR) sebagai pembanding kualitas file citra.


(22)

6. Menggunakan kernel 3x3 dari matriks nilai pixel citra.

7. Bahasa pemrograman yang digunakan untuk sistem yaitu membangkitkan dan mereduksi noise adalah Microsoft Visual C# .Net 2010.

1.4 Tujuan Penelitian

Penelitian ini dilaksanakan dengan tujuan sebagai berikut :

1. Mengetahui filter apa saja dari Order-Statistic Filters yang dapat mereduksi Noise

dengan baik.

2. Membuat aplikasi untuk memberikan solusi terhadap masyarakat dalam memperbaiki citra (image) yang terkena noise.

3. Membandingkan hasil reduksi citra yang memiliki noise dari Median Filter, Mean Filter, Max Filter, Min Filter, dan Midpoint Filter.

1.5 Manfaat Penelitian

Tugas akhir ini diharapkan akan mampu memberikan solusi berupa aplikasi dan informasi bagaimana cara mereduksi noise pada citra digital yang dapat memberikan kemudahan untuk memperbaiki citra menjadi citra yang lebih bagus dan lebih bermanfaat. Melalui penelitian ini juga dapat diketahui bagaimana perbandingan kualitas citra hasil reduksi dengan beberapa teknik atau metode yang merupakan bagian dari teknik Order-Statistic Filters.

1.6 Sistematika Penulisan

Agar pembahasan lebih sistematis, maka tulisan ini dibuat dalam lima bab, yaitu :

Bab I Pendahuluan

Berisi latar belakang, perumusan masalah, batasan masalah, tujuan dan manfaat penelitian dan sistematika penulisan.

Bab II Landasan Teori

Berisi tentang penjelasan singkat mengenai definisi pengolahan citra, noise dan metode Order-Statistic Filters.


(23)

Bab III Analisis dan Perancangan

Berisi tentang analisis mengenai proses kerja dari teknik Order-Statistic Filters yang terdiri dari Use Case Diagram, Squential Diagram, Activity Diagram, Pseudocode Program, Flowchart

dan perancangan tampilan form dari aplikasi. Bab IV Implementasi dan Pengujian

Pada tahap ini dilakukan pembuatan sistem dan coding sesuai dengan analisis dan perancangan. Kemudian melakukan pengujian sistem.

Bab V Kesimpulan dan Saran

Berisi tentang kesimpulan yang dapat ditarik setelah menyelesaikan tugas akhir ini dan saran-saran yang dapat diberikan untuk pengembangan aplikasi lebih lanjut.


(24)

BAB II

LANDASAN TEORI

2.1 Pengolahan Citra

2.1.1 Definisi Pengolahan Citra

Pengolahan citra adalah sebuah disiplin ilmu yang mempelajari hal-hal yang berkaitan dengan perbaikan kualitas gambar (peningkatan kontras, transformasi warna, restorasi citra), transformasi gambar (rotasi, translasi, skala, transformasi geometri), melakukan pemilihan ciri citra (feature images) yang optimal untuk tujuan analisis, melakukan proses penarikan informasi atau dekripsi objek atau pengenalan objek yang terkandung dalam citra, melakukan kompresi atau reduksi data untuk tujuan penyimpanan data, transmisi data, dan waktu proses data. Input dari pengolahan citra adalah citra, dan output-nya adalah citra hasil pengolahan [10].

2.1.2 Tujuan Pengolahan Citra

Kebutuhan akan ilmu pengetahuan semakin meningkat, demikian juga halnya dengan alat-alat yang diperlukan untuk kebutuhan analisisnya. Seperti kebutuhan dalam bidang kedokteran, pengindraan bumi jarak jauh, fotografi, meteorology dan geofisika dan lain-lain. Bidang tersebut membutuhkan alat/kamera yang bisa digunakan untuk merekam keadaan yang diperlukan untuk kebutuhan analisis sehingga memungkinkan peneliti mendapatkan informasi yang diperlukan. Output alat-alat ini biasanya berupa citra dan citra inilah yang nantinya akan dianalisis untuk mendapatkan informasi yang berguna.


(25)

Namun sayangnya, kebanyakan citra belum sesuai dengan hasil yang diharapkan. Hal ini dapat terjadi karena beberapa kemungkinan, misalnya adanya

noise, adanya kabut yang menghalangi objek yang sedang di-capture, lensa kamera kotor dan lain-lain. Oleh karena itu, maka proses pengolahan citra sangat diperlukan. Disiplin ilmu yang melahirkan teknik-teknik untuk mengolah citra dinamakan Pengolahan Citra Digital (Digital Image Processing).

2.1.3 Manfaat Pengolahan Citra

Manfaat pengolahan citra terdapat dalam berbagai bidang tertentu yang dapat dijelaskan sebagai berikut.

1. Pengolahan Citra Digital dalam dunia Komunikasi

Pengolahan Citra dalam dunia komunikasi dapat digunakan untuk dapat memperjelas foto permukaan bumi yang dihasilkan dari satelit cuaca atau memperjelas foto planet-planet yang dihasilkan satelit penyelidik. Foto-foto tersebut pada umunya hampir tidak dapat dilihat karena pada saat foto tersebut dikirim ke stasiun bumi melalui gelombang terjadi banyak gangguan di perjalanan. Gangguan ini disebabkan oleh gelombang lain, misalnya gelombang radio, televisi dan lain-lain yang bercampur dengan gelombang data tersebut sehingga menyebabnya terjadinya noise (gangguan). Selain itu pengolahan citra juga bermanfaat untuk proses transmisi data.

2. Pengolahan Citra Digital dalam dunia Fotografi

Dalam dunia fotografi pengolahan citra digunakan sebagai pengganti kamera filter. Filter kamera digunakan untuk membuat film hitam putih, memberi efek berkabut, dan memberi cahaya pada bagian tertentu pada foto dan berbagai fungsi yang dapat memberikan manfaat yang penting bagi dunia fotografi.

3. Pengolahan Citra Digital dalam dunia Kedokteran

Dalam dunia kedokteran pengolahan citra digunakan untuk memperjelas foto hasil X-ray organ tubuh manusia, pengolahan hasil CT- scan dan lainnya yang bertujuan untuk memberikan kemudahan untuk mendeteksi gangguan dan penyakit manusia. 4. Pengolahan Citra Digital dalam dunia Film

Pengolahan citra dapat dimanfaatkan untuk menghaluskan gambar, menajamkan gambar, memberi efek terang dan gelap. Memberi kesan timbul, memberi efek morphing dan lain-lain.


(26)

5. Pengolahan Citra Digital dalam Keamanan Data dan proteksi Hak Cipta

Seringkali data yang dikirim dari suatu tempat ke tempat lain merupakan data rahasia sehingga keamanannya perlu dijamin. Teknik keamanan data dan proteksi hak cipta yang biasanya digunakan adalah Steganografi dan Watermarking.

6. Pengolahan Citra Digital dalam Pengenalan Pola

Pengolahan citra yang termasuk dalam bidang ini adalah jaringan saraf tiruan seperti pengenalan pola huruf, pola wajah, pola sidik jari, pola iris mata, dan sebagainya [10].

2.2 Citra Digital

Sebuah citra dapat didefenisikan sebagai fungsi dua dimensi f(x,y), dimana x dan y adalah koordinat spasial, dan amplitude dari f pada sembarang pasangan koordinat (x,y) disebut intensity (intensitas) atau gray level (level keabuan) dari citra pada titik tersebut. Ketika (x,y) dan nilai intensitas dari f adalah semua terbatas maka itu disebut

digital image (citra digital). Citra digital terdiri dari sejumlah elemen tertentu, setiap elemen memiliki lokasi dan nilai tertentu. Elemen-elemen ini disebut picture elements,

image elements, dan pixels. Pixel adalah istilah yang sudah digunakan secara meluas untuk menyatakan elemen citra digital [9].

Citra digital adalah citra yang dapat diolah oleh komputer. Citra yang disimpan dalam memori komputer hanyalah angka-angka yang menunjukkan besar intensitas pada masing-masing pixel tersebut. Sebagai contoh berikut sebuah citra dengan ukuran 200 x300 pixel diambil sebagian (kotak kecil) berukuran 9x9 pixel. Maka monitor akan menampilkan sebuah kotak kecil untuk bagian citra dari citra 200x300


(27)

Gambar 2.1. Citra ukuran 200 x 300 pixel

2.2.1 Citra Digital Berformat Bitmap (.bmp)

Citra Bitmap menyimpan data kode citra secara digital dan lengkap (cara penyimpanannya adalah per pixel). Citra bitmap sering disebut juga dengan citra

raster. Citra bitmap direpresentasikan dalam bentuk matriks atau dipetakan dengan menggunakan bilangan biner atau sistem bilangan lain. Citra ini memiliki kelebihan untuk manipulasi warna dan tampilan bitmap mampu menunjukkan kehalusan gradasi bayangan dan warna dari sebuah gambar. Bitmap merupakan media elektronik yang paling tepat untuk gambar-gambar dengan perpaduan gradasi warna yang rumit, seperti foto dan lukisan digital. Citra bitmap biasanya diperoleh dengan cara Scanner,

CameraDigital, Video Capture dan lain-lain [10]. Berikut ini ada contoh sebuah citra bitmap.


(28)

2.2.2 Picture Elements (Pixel)

Pixel (Picture Elements) adalah nilai tiap-tiap entri matriks pada bitmap[6]. Rentang nilai-nilai pixel pada citra dipengaruhi oleh banyaknya warna yang bisa ditampilkan. Suatu bitmap dapat menampilkan 256 warna sehingga nilai-nilai pixel -nya dibatasi dari 0-255. Suatu citra bitmap akan mampu menampilkan warna lebih banyak, karena bitmap mempunyai kerapatan pixel yang tinggi.

2.2.3 Dimensi dan Resolusi

Dimensi bitmap merupakan ukuran bitmap yang dinotasikan dengan menulis lebar x tinggi bitmap. Satuan ukur dimensi bitmap adalah berupa satuan ukur metris maupun pixel. Dimensi yang digunakan oleh bitmap mewakili ordo matriks citra itu sendiri. Model matriks untuk bitmap dipengaruhi oleh kerapatan pixel atau resolusi. Kerapatan pixel ini digunakan bitmap dalam mendekati kekontinyuan. Semakin besar resolusi suatu bitmap, obyek yang ditampilkan citra tersebut semakin akurat. Resolusi merupakan kerapatan titik-titik pada citra, yang menunjukkan seberapa tajam citra akan mampu ditampilkan[6].

2.3 Noise

Pada saat proses capture (pengambilan gambar), ada beberapa gangguan yang mungkin terjadi, seperti kamera tidak fokus atau munculnya bintik-bintik yang bisa jadi disebabkan oleh proses capture yang tidak sempurna. Setiap gangguan pada citra dinamakan dengan noise. Noise pada citra tidak hanya terjadi karena ketidak-sempurnaan dalam proses capturing, tetapi bisa juga disebabkan oleh kotoran-kotoran yang terjadi pada citra. Berikut ini adalah jenis-jenis noise dan penjelasannya.

2.3.1 Gaussian Noise

Gaussian Noise merupakan titik-titik berwarna pada citra yang jumahnya sama dengan persentase noise. Noise Gaussian dapat dibangkitkan dengan cara membangkitkan bilangan acak [0,1]. Kemudian titik-titik yang terkena noise, nilai


(29)

fungsi citra ditambahkan dengan noise yang ada, atau dapat dirumuskan sebagai berikut.

f(i,j) = g(i,j) +p.a

………... (1)

Keterangan : a = nilai bilangan acak berdistribusi gaussian

p = prosentase noise

f(i,j) = nilai citra terkena noise

g(i,j) = nilai citra sebelum terkena noise

Untuk mengenali bagaimana jenis noise gaussian maka Gambar 2.3 berikut ini adalah contoh gambar yang terkena NoiseGausssian.

Gambar 2.3 Citra yang terkena Gaussian Noise

2.3.2 Salt-And-Pepper Noise

Fungsi Probabilitas Kepadatan (Probability Density Function (PDF)) noise

(bipolar) impulse diberikan oleh :

(

) =

0

………..………... (2)

Dimana, p(z) adalah fungsi probabilitas kepadatan noise, Pa adalah probabilitas

noise jenis a (pepper) dan Pb adalah probabilitas noise b (salt). Jika b > a, intensitas b

untuk z = a untuk z = b lainnya


(30)

akan tampak sebagai titik terang pada citra. Sebaliknya, level a akan tampak seperti titik gelap. Jika selain Pa atau Pb nol, impulse noise disebut juga unipolar. Jika

probability selain nol, dan khususnya diperkirakan sama, nilai impulse noise akan mirip butiran Salt-and-pepper secara acak yang terdistribusi pada citra. Dengan alasan inilah noise bipolar impulse disebut juga dengan Noise Salt-and-pepper[4].

Noise impulse bisa negatif atau positif. Penskalaan biasanya adalah bagian dari proses digitasi citra. Karena korupsi impulse biasanya besar dibandingkan dengan kekuatan sinyal citra, noise impulse umumnya didigitasi sebagai nilai ekstrem ( hitam atau putih) dalam citra. Sebagai hasilnya, impulse negatif tampak sebagai titik hitam (pepper /merica) dalam citra sedangkan impulse positif tampak sebagai titik putih (

salt /garam) [4]. Untuk mengenali bagaimana Noise Salt-and-pepper, Gambar 2.4 berikut ini contoh citra yang terkena Noise Salt-and-pepper.

Gambar 2.4 Citrayang terkena Salt-and-pepper Noise

Noise salt & pepper dapat dibangkitkan dengan cara membangkitkan bilangan 255 (warna putih) pada titik-titik yang secara probabilitas lebih kecil dari nilai probabilitas noise, dan dirumuskan dengan:

f(x,y)=255 jika p(x,y) < ProbNoise ...………. (3)

f(x,y)=Tetap jika p(x,y) > ProbNoise

Dimana, f (x,y) adalah nilai pixel citra pada titik (x,y) dan p(x,y) adalah probabilitas acak [4].


(31)

2.4 Sorting

Sorting merupakan pengurutan suatu data dengan cara atau metode tertentu untuk mengurutkan data yang sebelumnya tidak berurutan. Berikut ini ada beberapa metode sorting yang biasa dipakai untuk mengurutkan data.

2.4.1 Bubble Sorting

Bubble Sort merupakan algoritma pengurutan yang paling sederhana. Proses pengurutan bubble sort ini berangsur-angsur berpindah pada posisi yang tepat seperti gelembung yang naik keatas didalam gelas yang berisi air bersoda. Bubble Sort

mengurutkan data dengan cara membandingkan elemen pertama dengan elemen berikutnya. Jika elemen yang pertama lebih besar dari elemen berikutnya maka kedua elemen tersebut ditukar, cara ini merupakan metode bubble sorting secara ascending. Tetapi jika elemen yang pertama lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar, cara ini merupakan metode pengurutan bubble sorting secara

descending. Proses bubble sort selesai jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang dapat dilakukan.

2.4.2 Selection Sort

Metode pengurutan secara selection sort merupakan kombinasi antara sorting dan searching. Dalam setiap proses, akan dicari elemen-elemen yang belum terurut yang memiliki nilai terkecil atau terbesar akan dipertukarkan ke posisi yang tepat di dalam array. Pembandingan dan pengubahan dilakukan hanya pada indeks pembanding dan pertukaran nilai data secara fisik terjadi pada akhir proses sorting.

2.4 Filtering

Filtering merupakan suatu proses pengambilan sebagian sinyal dari frekwensi tertentu, dan menempatkan sinyal tersebut pada frekwensi yang lain. Filtering pada citra juga menggunakan prinsip yang sama, yaitu mengambil fungsi citra pada


(32)

piksel tertentu dan menempatkan atau mengantikan fungsi citra tersebut pada piksel-piksel tertentu. Dalam pengolahan citra ada beberapa teknik filtering yang dapat digunakan untuk memperbaiki kualitas citra yaitu Order-Statistic Filters, Adaptive Median Filter dan teknik filter lainnya. Teknik-teknik filtering ini pada umumnya bertujuan untuk menghilangkan noise yang terdapat dalam citra dan juga untuk menghaluskan citra.

2.5 Order-Statistic Filters

Order-statisticfilter pada umumnya adalah filter spasial non-linier yang hasilnya didasarkan pada urutan (rangking) pixel yang mengisi area citra yang diapit filter dan kemudian mengganti nilai dari pusat pixel dengan nilai yang ditentukan oleh hasil perangkingan. Beberapa Order-Statistic Filter yang digunakan adalah Median Filter

yang berguna untuk memilih nilai tengah , Mean Filter yaitu dengan menghitung nilai rata-rata yang diliputi filter, Max Filter untuk memilih nilai terbesar, Min Filter untuk memilih nilai terkecil , dan Midpoint Filter menghitung titik tengah antara nilai maksimum dan minimum dalam daerah yang diliputi filter tersebut [3]. Berikut ini merupakan contoh pengurutan nilai pixel citra dengan Order-statistic. Citra keabuan

(f(x,y) yang berukuran 10x8 mempunyai 8 skala keabuan akan diurutkan menggunakan Order-Statistic dengan contoh kernel 3 x 3.

Gambar 2.5 Matriks citra ukuran 10x8 dengan 8 skala keabuan

Dari contoh gambar 2.5 dapat diambil kernel citra 3 x 3 dari pojok kiri atas, dan diurutkan dengan Order-statistic. Hasil pengurutan nilai pixel-nya adalah 0, 1, 2, 3, 3, 3, 4, 5, 6. Bagian citra 3 x3 dari matriks citra 10 x 8 tersebut dapat dilihat pada Gambar 2.6 berikut.


(33)

5 3 3

4 2 1

6 3 0

Gambar 2.6 Matriks citra 3 x 3 dari citra ukuran 10x8 dengan 8 skala keabuan

2.5.1 Median Filter

Filter yang paling dikenal dalam kategori Order-Statistic adalah Median filter. Sesuai dengan namannya, filter ini mengganti nilai pixel dengan Median dari nilai intensitas dalam tetangga dari pixel tersebut. (nilai asli dari pixel tersebut termasuk dalam perhitungan median). Filter median sangat terkenal karena untuk jenis tertentu dari

random noise, filter median memberikan kemampuan untuk pengurangan noise yang sangat bagus dengan memperhatikan bluring. Pada bagian tertentu median filter juga baik untuk menghilangkan Salt-and-pepper Noise karena sifat median yang menjauhi hitam dan putih.

Median dari sekumpulan nilai adalah nilai yang berada ditengah dari sekumpulan nilai yang diurutkan. Untuk tujuan melakukan filter median pada sebuah titik pada citra maka yang pertama dilakukan adalah mengurutkan nilai pixel dalam tetangga (termasuk titik pusatnya) menentukan median dan memasukkan nilai hasilnya pada pixel yang berkorespondensi (titik pusat tetangga) dalam citra yang di-filter [8]. Formula yang digunakan untuk Median filter adalah :

�′(,) = ������ { (,)}………...……….… (4) (s,�) ∈ ���

Dimana,

f ’(x,y) : hasil median filter g (s,t) : sub-image Sxy

S

xy : window daerah yang diliputi oleh filter

Dari contoh gambar 2.5 dapt dilakukan proses median filter dengan kernel 3 x 3, hasil proses f’(x,y) dihitung sebagai berikut. Pilih f(x,y) ukuran 3x3, dimulai dari pojok kiri


(34)

atas. Kemudian diurutkan dan cari nilai tengah dari pixel-pixel tersebut. Proses untuk mendapatkan f’(x,y) dapat diperlihatkan seperti pada gambar berikut.

Gambar 2.7 Pemilihan kernel 3x3 dan mengurutkan nilai pixel

Hasil filter median pada f(1,1) adalah f’(1,1) = 3, sehingga 2 diganti dengan 3, ditempatkan pada matriks yang baru, hasilnya dapat diperlihatkan seperti pada Gambar 2.8 berikut.

Gambar 2.8 Hasil Median filter untuk kernel 3x3 pertama

Selanjutnya geser f(x,y) ukuran 3x3 satu pixel ke kanan, kemudian diurutkan dan cari nilai tengah dari pixel-pixel tersebut. Proses penggeseran, pengurutan dan pencarian nilai tengah dapat diperlihatkan pada Gambar 2.9 berikut.


(35)

Gambar 2.9 Penggeseran dan pengurutan 1 pixel ke kanan

Hasil filter medianf(1,2) adalah f’(1,2) = 3, sehingga 1 digati dengan 3, ditempatkan pada matriks yang baru. Proses untuk mendapatkan f’(x,y) dapat diperlihatkan seperti pada gambar berikut.

5 3 3 0 4 4 0 5 2 2 4 3 3 3 6 0 7 0 7 0 7 4 6 2 6 5 1 3 2 4 4 1 0 0

Gambar 2.10 Penempatan hasil Median filter pada matriks baru untuk tahap kedua

Proses perhitungan dilakukan terus hingga f(x,y) ukuran 3x3 sampai pada ujung paling kanan. Hasil f’(x,y) selanjutnya sampai satu baris kekanan dapat diperlihatkan seperti pada Gambar 2.11.


(36)

5 3 3 0 4 4 0 5 2 2 4 3 3 3 3 4 2 3 2 3 6 0 7 0 7 0 7 4 6 2 6 5 1 3 2 4 4 1 0 0

Gambar. 2.11 Penempatan hasil Median filter 1 baris ke kanan Selanjutnya geser f(x,y) ukuran 3x3 kebawah satu pixel, dan mulai lagi mengurutkan dan mencari nilai tengah dari pixel-pixel tersebut. Kemudian, geser f(x,y)

ukuran 3x3 ke kanan, demikian seterusnya hingga f(x,y) ukuran 3x3 sampai pada pojok kanan bawah. Hasilnya dapat diperlihatkan pada gambar sebagai berikut.

5 3 3 0 4 4 0 5 2 2 4 3 3 3 3 4 2 3 2 3 6 3 1 1 2 3 2 3 2 0 7 4 1 1 1 3 2 3 2 0 7 5 4 1 2 3 3 3 3 0 7 5 4 5 5 6 3 3 2 4 6 5 4 4 4 6 4 2 2 2 6 5 1 3 2 4 4 1 0 0

Gambar 2.12 Hasil Median filter sampai pada pojok kanan

2.5.2 Mean Filter

Pada Mean filter (filter rata-rata) nilai intensitas setiap pixel diganti dengan rata-rata dari nilai intensitas pixel tersebut dengan pixel-pixel tetangganya. Filter ini biasanya disebut sebagai filter penghalus (smoothing filters). Filter ini biasa digunakan untuk mengaburkan (blurring) citra untuk mereduksi noise. Blurring

biasanya digunakan untuk menghilangkan detail kecil dari suatu citra sebelum dilakukan ekstraksi objek dan untuk menghubungkan celah kecil yang memisahkan


(37)

garis atau kurva dan juga bisa digunakan untuk mereduksi noise [10]. Untuk filter ini dapat menggunakan rumus berikut.

(

,

) =

1

��

{

(

,

)}

……….………(5)

(s,�) ∈ ���

Keterangan,

f ’(x,y) : hasil median filter

mn : ukuran panjang dan lebar window g (s,t) : sub-image Sxy

S

xy

Hasil pemilihan filter rata-rata dari contoh pemilihan kernel sebelumnya pada Gambar 6 diperlihatkan pada gambar berikut.

: window daerah yang diliputi oleh filter

Gambar 2.13. Proses Mean filter dengan matriks 3x3

2.5.3 Max Filter

Dalam Order-Statistic, median merepresentasikan urutan ke 50% dari rangking sejumlah angka. Dari situ dapat diambil pengertian bahwa ada urutan ke 100% yang merupakan nilai terbesar dari rangking sejumlah angka ( selanjutnya menjadi Max Filter). Untuk filter ini dapat menggunakan rumus:

�′(,) = max { (,)}………..………….………(6)

(s,�) ∈ ���

Keterangan,

f ’(x,y) : hasil max filter g (s,t) : sub-image Sxy


(38)

Sxy

max : nilai tertinggi dari citra yang diliput filter

: window daerah yang diliputi oleh filter

Dari proses pengurutan pertama diatas contoh sebelumya pada Gambar 6, dapat diperoleh nilai maksimumnya adalah 6. Proses pengurutan dan pemilihan nilai terbesar dapat diperlihatkan pada gambar berikut.

Gambar 2.14 Proses max filter dengan matriks 3x3

2.5.4 Min Filter

Dalam Order-Statistic, median merepresentasikan urutan ke 50% dari rangking sejumlah angka. Dari situ dapat diambil pengertian bahwa ada urutan 0% yang merupakan nilai terkecil dari rangking sejumlah angka (selanjutnya menjadi min filter).

Untuk filter ini dapat menggunakan rumus:

�′(,) = min { (,)}……….………(7) (s,�) ∈ ���

Keterangan,

f ’(x,y) : hasil min filter g (s,t) : sub-image Sxy

S

xy

min : nilai terkecil dari citra yang diliput filter

: window daerah yang diliputi oleh filter

Dari proses pemilihan dan pengurutan kernel pertama pada Gambar 6, dapat diperoleh nilai minimumnya adalah 0. Proses pengurutan dan pemilihan nilai terkecil dapat diperlihatkan pada gambar berikut.


(39)

Gambar 2.15 Proses min filter dengan matriks 3x3

2.5.5 Midpoint Filter

Secara sederhana filtermidpoint bertujuan untuk menghitung titik tengah antara nilai maksimum dan nilai minimum dalam daerah citra yang diliputi oleh filter. Untuk filter ini dapat menggunakan rumus :

�′(,) =1

2 [ max { �(�,�)} + min { �(�,�)}]………..….…(8)

(s,�) ∈ ��� (s,�)∈ ���

Dari proses pemilihan dan pengurutan kernel pertama pada Gambar 6, dapat diperoleh hasil midpoint-nya adalah 3. Proses pengurutan dan pemilihan nilai tengah antara nilai maksimum dan nilai minimum dapat diperlihatkan pada gambar berikut.


(40)

2.6 Mean Squared Error (MSE) dan Peak Signal to Noise Ratio (PSNR)

Mean Squared Error dan Peak Signal to Noise Ratio adalah dua parameter yang sering digunakan untuk mengetahui perbandingan kualitas hasil citra filter. Berikut ini merupakan penjelasan dari kedua parameter tersebut.

2.6.1 Mean Squared Error (MSE)

Perbaikan citra pada dasarnya merupakan proses yang berifat objektif sehingga parameter keberhasilannya bersifat objektif pula. Untuk itu perlu adanya tolak ukur kuantitif yang bisa digunakan untuk mengukur kinerja prosedur perbaikan citra. Tolak ukur ini disebut MSE (Mean Squared Error) yang dinyatakan dengan persamaan berikut.

���

=

1

���

��=1

.

��=1

(

(i,j) -

(i,j))

2

………...………(9)

M dan N adalah ukuran panjang dan lebar citra.

��(i,j) = intensitas citra di titik (i,j) sebelum citra terkena noise ��(i,j) = intensitas citra di titik (i,j) setelah noise dihilangkan.

Semakin kecil nilai MSE, semakin bagus prosedur perbaikan citra yang digunakan. Artinya, kualitas citra setelah mengalami perbaikan noise hampir sama dengan kualitas citra aslinya [10].

2.6.2 Peak Signal to Noise Ratio (PSNR)

PSNR merupakan nilai perbandingan antara harga maksimum warna pada citra hasil filtering dengan kuantitas gangguan (noise), yang dinyatakan dalam satuan desibel (dB), noise yang dimaksud adalah akar rata-rata kuadrat nilai kesalahan (√��� ). Semakin besar nilai PSNR, semakin bagus prosedur perbaikan citra yang digunakan. Artinya, kualitas citra setelah mengalami perbaikan noise hampir sama


(41)

dengan kualitas citra aslinya. Secara matematis, nilai PSNR dapat dirumuskan sebagai berikut:

����

=

20

Keterangan,

log 10

255

√���

………..………...(10)

PSNR : nilai Peak Sgnal to Noise Ratio

MSE : nilai Mean Squared Error


(42)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Sebelum melakukan tahap perancangan sebuah sistem, hal pertama yang perlu dilakukan adalah analisis sistem yang akan dibangun. Analisis sistem merupakan istilah yang secara kolektif mendeskripsikan fase-fase awal pengembangan sistem. Fase awal dalam analisis sistem ini adalah fase analisis masalah yang bertujuan untuk mempelajari dan memahami masalah yang akan diselesaikan dengan menggunakan sistem ini. Kemudian dilanjutkan dengan fase analisis persyaratan yang akan memenuhi kebutuhan dan permintaan pengguna (user). Analisis selanjutnya dan merupakan analisis terakhir adalah analisis proses yang akan dikerjakan sistem.

3.1.1 Analisis Masalah

Masalah yang akan diselesaikan dengan menggunakan sistem ini adalah masalah reduksi noise pada citra digital yang memiliki noise gaussian dan Noise Salt-and-pepper menjadi citra yang lebih bagus tanpa memiliki noise. Dalam sistem ini file citra yang memiliki noise tersebut akan direduksi dengan menggunakan teknik Order-Statistic Filter yang didalamnya terdapat beberapa teknik filtering yaitu, Median Filter, Mean Filter, MaxFilter,Min Filter dan Midpoint Filter.

3.1.2 Analisis Persyaratan

Analisis persyaratan adalah analisis yang bertujuan untuk mengidentifikasi dan menyatakan persyaratan suatu sistem yang akan dibangun. Dalam suatu sistem analisis persyaratan dibagi menjadi dua bagian yaitu persyaratan fungsional


(43)

(functional requirement) dan persyaratan non-fungsional (nonfunctionalrequirement). Persyaratan fungsional merupakan deskripsi mengenai aktivitas dan layanan yang harus diberikan/ disediakan oleh sebuah sistem, dan persyaratan non-fungsional merupakan deskripsi mengenai fitur, karakteristik, dan batasan lainnya yang menentukan apakah sistem memuaskan atau tidak.

3.1.2.1 Persyaratan Fungsional

Dalam sistem reduksi noise pada citra digital dengan teknik Order-Statistic Filters ini terdapat beberapa hal yang menjadi persyaratan fungsional yang harus dipenuhi, antara lain :

1. Citra digital yang akan direduksi adalah citra digital berformat BMP yang memiliki Noise Gaussian atau Noise Salt-and-pepper.

2. Ukuran citra yang akan direduksi noise-nya adalah citra yang berukuran ≤ 300 x 300 pixel

3. Menggunakan kernel 3x3 dari matriks nilai pixel citra.

4. Menggunakan perhitungan dengan metode Mean Squared Error (MSE) dan Peak

Signal to Noise Ratio (PSNR) sebagai pembanding kualitas file citra sebelum dan sesudah noise direduksi.

5. Hasil reduksi noise dapat disimpan dengan citra yang berekstensi .jpg dan .bmp.

3.1.2.2 Persyaratan Nonfungsional

Persyaratan fungsional meliputi performa, mudah untuk dipelajari dan digunakan, hemat biaya, dokumentasi, manajemen kualitas, dan kontrol.

1. Performa

Sistem atau perangkat lunak yang dibangun harus dapat menunjukkan hasil dari proses pembangkitan noise pada citra dan proses reduksi noise pada citra digital yang memiliki noise.

2. Mudah digunakan (User friendly)

Sistem atau perangkat lunak yang dibangun harus sederhana agar mudah digunakan oleh pengguna (user).


(44)

Sistem yang dimaksud adalah sistem yang memiliki interface yang menarik dan memiliki cara penggunaan yang mudah dalam pengoperasian sistem.

3. Hemat biaya

Sistem atau perangkat lunak yang dibangun tidak memerlukan perangkat tambahan ataupun perangkat pendukung lainnya yang dapat mengeluarkan biaya. 4. Dokumentasi

Sistem atau perangkat lunak yang dibangun dapat menyimpan citra digital yang merupakan hasil reduksi noise dari citra yang memiliki noise dengan format file

jpg atau bmp.

5. Manajemen kualitas

Sistem atau perangkat lunak yang dibangun harus memiliki kualitas yang baik yaitu proses reduksi noise-nya memiliki nilai MSE yang kecil dan nilai PSNR yang besar.

6. Kontrol

Perangkat lunak yang dibangun memiliki kontrol berupa enable and disable, yaitu ketika citra belum di-input maka tombol fungsi pada sistem dalam keadaan tidak aktif atau disable, setelah citra di-input, maka tombol fungsi tertentu yang merupakan bagian dari fungsi reduksi noise akan aktif.

3.1.3 Analisis Proses

Dalam sistem ini ada lima teknik yang merupakan bagian dari teknik Order-Statistic Filters untuk mereduksi noise pada citra digital yang memiliki noise gaussian atau citra digital yang memiliki Noise Salt-and-pepper. Kelima teknik dari Order-Statistic Filters tersebut adalah Median filter, Mean filter, Max filter, Min filter, dan Midpoint filter. Proses median filter yaitu mencari nilai tengah matriks 3x3 dari nilai pixel citra yang sudah diurutkan, kemudian mengganti nilai dari pusat pixel dengan nilai yang ditentukan oleh hasil perangkingan. Proses Mean filter yaitu mencari nilai rata-rata matriks 3x3 dari nilai pixel citra, kemudian mengganti nilai dari pusat pixel dengan nilai yang ditentukan oleh hasil rata-rata. Proses Max filter yaitu mencari nilai tertinggi matriks 3x3 dari nilai pixel citra yang sudah diurutkan, kemudian mengganti nilai dari pusat pixel dengan nilai yang ditentukan oleh hasil perangkingan. Proses


(45)

diurutkan, kemudian mengganti nilai dari pusat pixel dengan nilai yang ditentukan oleh hasil perangkingan. Kemudian proses Midpoint filter yaitu mencari nilai tengah antara Max filter dengan Min filter, kemudian mengganti nilai dari pusat pixel

tersebut.

3.1.3.1 Use Case Diagram

Use case adalah tehnik untuk merekam persyaratan fungsional sebuah sistem. Use case mendeskripsikan interaksi tipikal antara pengguna sistem dengan sistem itu sendiri, dengan member sebuah narasi tentang bagaimana sistem tersebut digunakan[8]. Gambar 3.1 berikut ini merupakan use case diagram dari sistem yang telah dibangun.

User

Menghitung MSE & PSNR Membangkitkan Noise Order-statistic filter * * * * * *

System

«extends»

Median Filter Mean Filter

«extends» Max Filter «extends» Min Filter «extends» Midpoint Filter «extends» Salt-and-pepper «extends» Gaussian «extends» Citra «uses»


(46)

3.1.3.2 SquenceDiagram

Squence diagram merupakan diagram yang menunjukkan bagaimana kelompok-kelompok objek saling berkolaborasi dalam beberapa behavior. Squence diagram

secara khusus, menjabarkan behavior sebuah skenario tunggal. Diagram tersebut menunjukkan sejumlah objek contoh dan pesan-pesan yang melewat objek-objek tersebut didalam use case[7]. Gambar 3.2 berikut ini merupakan sequence diagram

dari sistem yang telah dibangun.

{} Top Package::User

Input Add_Noise

Input citra bernoise

Input citra tanpa noise

Bangkitkan noise

Order-Statistic Filters

Reduksi Noise Tampilkan citra bernoise

{} {}

Hitung MSE & PSNR

Menghitung MSE & PSNR

Menampilkan nilai MSE & PSNR Citra hasil filter ditampilkan

{} {}

Gambar 3.2 Squence diagram sistem

3.1.3.4 Activity Diagram

Activity Diagram adalah teknik untuk menggambarkan logika procedural, jalur kerja sistem. Dalam beberapa hal, diagram ini memainkan peran mirip sebuah diagram alir. Activity diagram memungkinkan siapapun yang melakukan proses untuk memilih urutan dalam melakukannya. Dengan kata lain diagram hanya menyebutkan aturan-aturan rangkaian dasar yang harus diikuti[7]. Gambar 3.3 berikut ini merupakan activity diagram dari sistem yang telah dibangun.


(47)

User System

Bangkitkan Noise

Reduksi Noise

Menampilkan citra hasil filter

Menghitung MSE & PSNR Menginput Citra

Citra Bernoise Citra Tidak Bernoise

Input Probabilitas Noise

Hitung MSE & PSNR Input Citra Asli

Input citra Hasil Filter

Menampilkan Nilai MSE & PSNR

Gambar 3.3 Activity diagram sistem

3.2 PseudocodeProgram

Pseudocode merupakan algoritma yang diterjemahkan dengan bahasa tingkat tinggi, yaitu bahasa yang dimengerti manusia dan dideskripsikan dengan mudah untuk bisa lebih mudah dipahami.


(48)

3.2.1 Pseudocode Mean Filter

Pada Mean filter (filter rata-rata) nilai intensitas setiap pixel diganti dengan rata-rata dari nilai intensitas pixel tersebut dengan pixel-pixel tetangganya. Berikut ini merupakan pseudocode program untuk Mean filter.

Pada pseudocode Mean filter memiliki perulangan bersarang yaitu untuk mengambil matriks ukuran 3x3 dari ukuran matriks citra, kemudian melakuan perhitungan rata-rata untuk keseluruhan nilai pixel citra yang terdapat dalam matriks 3x3 tersebut. Setelah nilai rata-rata didapatkan maka akan di-replace pada nilai titik pusat matriks pada titik (i, j). Program akan berulang terus sampai pada ukuran citra yang akan di-filter.

3.2.2 Pseudocode Median Filter

Filter yang paling dikenal dalam kategori Order-Statistic adalah Median filter. Sesuai dengan namannya, filter ini mengganti nilai pixel dengan median dari nilai intensitas dalam tetangga dari pixel tersebut. Berikut ini merupakan pseudocode

program median filter

for j := 1 to y - 1 do for i := 1 to x – 1

biru(i,j) pixelbiru(i-1,j-1)+ pixelbiru(i,j-1)pixelbiru

(i+1,j-1)pixelbiru(i-1,j)+ pixelbiru(i,j)+ pixelbiru(i+1,j)+pixelbiru(i-1,j+1)+ pixelbiru (i,j+1)+pixelbiru(i+1,j+1) / 9;

hijau(i,j) pixelhijau(i-1,j-1)+ pixelhijau(i,j-1)+pixelhijau

(i+1,j-1)+ pixelhijau(i-1,j)+ pixelhijau(i,j)+ pixelhijau(i+1,j)+pixelhijau(i-1,j+1)+pixelhijau

(i,j+1)+ pixelhijau(i+1,j+1)/ 9;

merah(i,j) pixelmerah(i-1,j-1)+ pixelmerah(i,j-1)+pixelmerah

(i+1,j-1)+ pixelmerah(i-1,j)+ pixelmerah(i,j)+ pixelmerah(i+1,j)+pixelmerah(i-1,j+1)+pixelmerah (i,j+1)+ pixelmerah(i+1,j+1) / 9;

endfor endfor


(49)

Pada pseudocode program Median filter, pertama nilai pixel citra diambil dari layer R , B atau G, dari kernel 3x3 selanjutnya dilakukan pengurutan secara ascending dan diambil nilai mediannya kemudian di-replace pada posisi pusat kernel 3x3 tersebut. Demikian seterusnya berulang-ulang sampai pada lebar dan tinggi citra yang dapat dicakup filter.

3.2.3 Pseudocode Max Filter

Dalam Order-Statistic, median merepresentasikan urutan ke 50% dari rangking sejumlah angka. Dari situ dapat diambil pengertian bahwa ada urutan ke 100% yang merupakan nilai terbesar dari rangking sejumlah angka ( selanjutnya menjadi max filter). Berikut ini merupakan pseudocode program max filter.

int temp,temp2 int x,y

for j := 1 to y – 1 do for I := 1 to x – 1 do

temp2[0, 0]  pixel of image (i - 1, j - 1)

temp[0]  temp2[0, 0]

temp2[1, 0]  pixel of image (i, j - 1)

temp[1]  temp2[1, 0]

temp2[2, 0]  pixel of image (i + 1, j - 1)

temp[2]  temp2[2, 0]

temp2[3, 0]  pixel of image (i - 1, j)

temp[3]  temp2[3, 0]

temp2[4, 0]  pixel of image (i, j)

temp[4]  temp2[4, 0]

temp2[5, 0]  pixel of image(i + 1, j)

temp[5]  temp2[5, 0]

temp2[6, 0]  pixel of image (i - 1, j + 1)

temp[6]  temp2[6, 0]

temp2[7, 0]  pixel of image(i, j + 1)

temp[7]  temp2[7, 0]

temp2[8, 0]  pixel of image(i + 1, j + 1)

temp[8]  temp2[8, 0]

endfor endfor

Ascending Bubble Sorting


(50)

Pada pseudocode program max filter, pertama nilai pixel citra diambil dari layer R , B atau G, dari kernel 3x3 selanjutnya dilakukan pengurutan secara ascending dan diambil nilai mediannya kemudian di-replace pada posisi pusat kernel 3x3 tersebut. Demikian seterusnya berulang-ulang sampai pada lebar dan tinggi citra yang dapat dicakup filter

3.2.4 Pseudocode Min Filter

Dalam Order-Statistic, median merepresentasikan urutan ke 50% dari rangking sejumlah angka. Dari situ dapat diambil pengertian bahwa ada urutan 0% yang

int temp,temp2 int x,y

for j  1 to y – 1 do

for I  1 to x – 1 do

temp2[0, 0]  pixel of image (i - 1, j - 1)

temp[0]  temp2[0, 0]

temp2[1, 0]  pixel of image (i, j - 1)

temp[1]  temp2[1, 0]

temp2[2, 0]  pixel of image (i + 1, j - 1)

temp[2]  temp2[2, 0]

temp2[3, 0]  pixel of image (i - 1, j)

temp[3]  temp2[3, 0]

temp2[4, 0]  pixel of image (i, j)

temp[4]  temp2[4, 0]

temp2[5, 0]  pixel of image(i + 1, j)

temp[5]  temp2[5, 0]

temp2[6, 0]  pixel of image (i - 1, j + 1)

temp[6]  temp2[6, 0]

temp2[7, 0]  pixel of image(i, j + 1)

temp[7]  temp2[7, 0]

temp2[8, 0]  pixel of image(i + 1, j + 1)

temp[8]  temp2[8, 0]

endfor endfor

Ascending Bubble Sorting


(51)

merupakan nilai terkecil dari rangking sejumlah angka (selanjutnya menjadi min filter). Berikut ini merupakan pseudocode program Min filter.

Pada pseudocode program Min filter, pertama nilai pixel citra diambil dari layer R , B atau G, dari kernel 3x3 selanjutnya dilakukan pengurutan secara ascending dan diambil nilai mediannya kemudian di-replace pada posisi pusat kernel 3x3 tersebut. Demikian seterusnya berulang-ulang sampai pada lebar dan tinggi citra yang dapat dicakup filter

int temp,temp2 int x,y

for j := 1 to y – 1 do for I := 1 to x – 1 do

temp2[0, 0]  pixel of image (i - 1, j - 1)

temp[0]  temp2[0, 0]

temp2[1, 0]  pixel of image (i, j - 1)

temp[1]  temp2[1, 0]

temp2[2, 0]  pixel of image (i + 1, j - 1)

temp[2]  temp2[2, 0]

temp2[3, 0]  pixel of image (i - 1, j)

temp[3]  temp2[3, 0]

temp2[4, 0]  pixel of image (i, j)

temp[4]  temp2[4, 0]

temp2[5, 0]  pixel of image(i + 1, j)

temp[5]  temp2[5, 0]

temp2[6, 0]  pixel of image (i - 1, j + 1)

temp[6]  temp2[6, 0]

temp2[7, 0]  pixel of image(i, j + 1)

temp[7]  temp2[7, 0]

temp2[8, 0]  pixel of image(i + 1, j + 1)

temp[8]  temp2[8, 0]

endfor endfor

Ascending Bubble Sorting


(52)

3.2.5 Pseudocode Midpoint Filter

Secara sederhana filter midpoint bertujuan untuk menghitung titik tengah antara nilai maksimum dan nilai minimum dalam daerah citra yang diliputi oleh filter. Berikut ini merupakan pseudocode program midpoint filter.

Pada pseudocode program midpoint filter, pertama nilai pixel citra diambil dari layer R , B atau G, dari kernel 3x3 selanjutnya dilakukan pengurutan secara ascending dan diambil nilai mediannya kemudian di-replace pada posisi pusat kernel 3x3 tersebut. Demikian seterusnya berulang-ulang sampai pada lebar dan tinggi citra yang dapat dicakup filter

int temp,temp2 int x,y

for j := 1 to y – 1 do for I := 1 to x – 1 do

temp2[0, 0]  pixel of image (i - 1, j - 1)

temp[0]  temp2[0, 0]

temp2[1, 0]  pixel of image (i, j - 1)

temp[1]  temp2[1, 0]

temp2[2, 0]  pixel of image (i + 1, j - 1)

temp[2]  temp2[2, 0]

temp2[3, 0]  pixel of image (i - 1, j)

temp[3]  temp2[3, 0]

temp2[4, 0]  pixel of image (i, j)

temp[4]  temp2[4, 0]

temp2[5, 0]  pixel of image(i + 1, j)

temp[5]  temp2[5, 0]

temp2[6, 0]  pixel of image (i - 1, j + 1)

temp[6]  temp2[6, 0]

temp2[7, 0]  pixel of image(i, j + 1)

temp[7]  temp2[7, 0]

temp2[8, 0]  pixel of image(i + 1, j + 1)

temp[8]  temp2[8, 0]

endfor endfor

Ascending Bubble Sorting


(53)

3.2.6 Pseudocode Mean Squared Error (MSE)

Berikut ini merupakan pseudocode dari program mean squared error.

double nilai_mse = 0

int a1, b1, c1, a2, b2, c2 int x,y

int temp1, temp2, temp3, temp4

x  width of data citra asli

x1 height of data citra asli

y  width of data citra hasil

y1 height of data citra hasil

if (x == y & x1 == y1) then

for i  0 < x do

for j  0 < x1 do

endfor endfor

a1  GetPixel(i, j) for Red from data_citraAsli

b1  GetPixel(i, j) for Green from data_citraAsli

c1  GetPixel(i, j) for Blue from data_citraAsli

a2  GetPixel(i, j) for Red from data_citraHasil

b2  GetPixel(i, j) for Green from data_citraHasil

c2  GetPixel(i, j) for Blue from data_citraHasil

temp1  a1 - a2

temp2  b1 - b2

temp3  c1 - c2

temp1  (temp1 * temp1)

temp2  (temp2 * temp2)

temp3  (temp3 * temp3)

if (temp1 < 0) then

temp1  temp1 * (-1)

if (temp2 < 0) then temp2 = temp2 * (-1) if (temp3 < 0) then temp3 = temp3 * (-1)

temp4  (temp1 + temp2 + temp3) / 3

nilai_mse += temp4 endif endif endif


(54)

3.2.6 Pseudocode Peak Signal Noise to Ratio (PSNR)

Berikut ini merupakan pseudocode dari program Peak Signal Noise to Ratio.

3.3 Perancangan Sistem

Hal yang pertama dilakukan dalam perancangan sistem untuk tugas akhir ini adalah membuat flowchart sistem. Selanjutnya dapat melakukan perancangan aplikasi.

3.3.1 Perancangan Flowchart Sistem

Pada bagian ini akan dijelaskan urutan dan langkah-langkah pembuatan sistem yang dijelaskan pada flowchart sistem kemudian akan dijelaskan dalam bagian-bagian

flowchart teknik filter yang digunakan. Kemudian dilanjutkan dengan membuat rancangan interface sistem yang dibangun.

Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunkan flowchart

akan memberikan kemudahan dalam melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Disamping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek [12]. Gambar 3.4 berikut ini merupakan flow chart dari sistem yang akan dibangun.

double nilai_PSNR, cross

cross  (10 * 255) / Sqrt(nilai_mse)


(55)

Mulai

Buka file citra bernoise

Hitung nilai MSE & PNSR

Selesai

Tampilkan Nilai MSE dan PSNR Order-Statistic Filters

Median Filter f’(x,y) = median g(s,t) (s,t) € S

xy

Ya

Mean Filter f’(x,y) =1/mn ∑ g(s,t) (s,t) € Sxy

Ya Tidak

Max Filter f’(x,y) = max g(s,t) (s,t) € Sxy

Tidak

Ya

Min Filter f’(x,y) = min g(s,t) (s,t) € Sxy

f’(x,y) =(∑ max g(s,t) +

∑ min g(s,t))/2 (s,t) € Sxy

Tidak

Ya

Tidak Hitung MSE & PSNR ?

Input Citra Asli ( Sebelum Terkena

Noise)

Tidak

Ya Tampilkan Citra Hasil

Reduksi Mau input citra bernoise?

Ya

Input citra tanpa noise Tidak

Bangkitkan Noise Salt-and-pepper atau Noise Gaussian Tampilkan Citra Bernoise Midpoint Filter Tidak Ya


(56)

Keterangan flowchart sistem :

Dalam sistem ini terdapat teknik filter yang digunkan untuk mereduksi noise pada citra digital yang memiliki noise yaitu teknik Order-Statistic Filters. Proses untuk mereduksi noise dengan sistem yang akan dibangun yaitu hal yang pertama dilakukan adalah menginputkan file citra berekstensi bmp yang memiliki noise gausssian atau noise salt-and-pepper , kemudian melakukan proses filtering dengan teknik median filter, mean filter, max filter, min filter atau midpoint filter. Selanjutnya setelah proses filtering maka citra hasil reduksi akan ditampilkan, kemudian untuk proses perhitungan nilai MSE dan PSNR user sebelumnya harus memiliki citra asli yaitu citra sebelum terkena noise, jika ada citra asli maka citra asli terlebih dahulu dibuka dan proses perhitungan dapat dilakukan sistem, kemudian sistem akan menampilkan hasil MSE dan PSNR citra. Jika user tidak memiliki citra asli (citra sebelum terkena noise) maka prosess kerja sistem selesai, karena sistem tidak akan dapat melakukan perhitungan nilai MSE dan PSNR tanpa citra asli.

3.3.2 Rancangan Interface Aplikasi

Sistem ini dirancang dalam 7 form yaitu form preloader, form utama, form membangkitkan noise salt-and-pepper, form membangkitkan noise gaussian, form

Menghitung MSE dan PSNR , form bantuan dan form programmer.

3.3.2.1 Rancangan interfaceformPreloader

Pada saat sistem atau aplikasi dijalankan maka form pertama yang akan muncul adalah form preloader. Di dalam form preloader terdapat timer yaitu selang waktu untuk masuk ke form utama. Gambar 3.5 berikut rancangan tampilan form preloader


(1)

{ {

double hasill, kalii;

kalii = (10 * 255) / Math.Sqrt(nilai_mseMax); hasill = Math.Log(kalii, 20);

textBox6.Text = hasill.ToString(); }

} }

catch { }

// Menghitung MSE & PSNR hasil Min Filter try

{

Bitmap data_citraAsli3 = new Bitmap(citraAsli.Image); Bitmap data_HasilMin = new Bitmap(HasilMin.Image); double nilai_mseMin = 0;

int k, l, m, kk, ll, mm;

int tempk, templ, tempm, tempn;

if (data_citraAsli3.Width == data_HasilMin.Width & data_citraAsli3.Height == data_HasilMin.Height)

{

for (int i = 0; i < data_citraAsli3.Width; i++) {

for (int j = 0; j < data_citraAsli3.Height; j++) {

k = data_citraAsli3.GetPixel(i, j).R; l = data_citraAsli3.GetPixel(i, j).G; m = data_citraAsli3.GetPixel(i, j).B; kk = data_HasilMin.GetPixel(i, j).R; ll = data_HasilMin.GetPixel(i, j).G; mm = data_HasilMin.GetPixel(i, j).B; tempk = k - kk;

templ = l - ll; tempm = m - mm;

tempk = (tempk * tempk); templ = (templ * templ); tempm = (tempm * tempm); if (tempk < 0)

tempk = tempk * (-1); if (templ < 0)

templ = templ * (-1); if (tempm < 0)

tempm = tempm * (-1);

tempn = (tempk + templ + tempm) / 3; nilai_mseMin += tempn;

} }

nilai_mseMin = nilai_mseMin / (data_citraAsli3.Width * data_citraAsli3.Height); textBox7.Text = nilai_mseMin.ToString();


(2)

} else {

MessageBox.Show("Resolusi citra yang di input harus sama !"); }

{ {

double results, crossx;

crossx = (10 * 255) / Math.Sqrt(nilai_mseMin); results = Math.Log(crossx, 20);

textBox8.Text = results.ToString(); }

} }

catch { }

// Menghitung MSE & PSNR hasil Midpoint Filter try

{

Bitmap data_citraAsli4 = new Bitmap(citraAsli.Image); Bitmap data_HasilMid = new Bitmap(HasilMidpoint.Image); double nilai_mseMidpoint = 0;

int p, q, r, p2, q2, r2;

int tempp, tempq, tempr, temps;

if (data_citraAsli4.Width == data_HasilMid.Width & data_citraAsli4.Height == data_HasilMid.Height)

{

for (int i = 0; i < data_citraAsli4.Width; i++) {

for (int j = 0; j < data_citraAsli4.Height; j++) {

p = data_citraAsli4.GetPixel(i, j).R; q = data_citraAsli4.GetPixel(i, j).G; r = data_citraAsli4.GetPixel(i, j).B; p2 = data_HasilMid.GetPixel(i, j).R; q2 = data_HasilMid.GetPixel(i, j).G; r2 = data_HasilMid.GetPixel(i, j).B; tempp = p - p2;

tempq = q - q2; tempr = r - r2;

tempp = (tempp * tempp); tempq = (tempq * tempq); tempr = (tempr * tempr); if (tempp < 0)

tempp = tempp * (-1); if (tempq < 0)

tempq = tempq * (-1); if (tempr < 0)


(3)

temps = (tempp + tempq + tempr) / 3; nilai_mseMidpoint += temps;

} }

nilai_mseMidpoint = nilai_mseMidpoint / (data_citraAsli4.Width * data_citraAsli4.Height);

textBox9.Text = nilai_mseMidpoint.ToString(); }

else {

MessageBox.Show("Resolusi citra yang di input harus sama !"); }

{ {

double hasils, kalis;

kalis = (10 * 255) / Math.Sqrt(nilai_mseMidpoint); hasils = Math.Log(kalis, 20);

textBox10.Text = hasils.ToString(); }

MessageBox.Show("Perhitungan MSE & PSNR berhasil"); }

}

catch { } }

private void button4_Click(object sender, EventArgs e) {

Close(); }

private void button5_Click(object sender, EventArgs e) {

OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.InitialDirectory = " ";

openFileDialog.Filter = "Bitmap files (*.bmp)|*.bmp"; openFileDialog.FilterIndex = 1;

openFileDialog.RestoreDirectory = true;

if (DialogResult.OK == openFileDialog.ShowDialog()) {

Bitmap aa = new Bitmap(openFileDialog.FileName); HasilMean.Image = aa;

} }

private void button6_Click(object sender, EventArgs e) {

OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.InitialDirectory = " ";

openFileDialog.Filter = "Bitmap files (*.bmp)|*.bmp"; openFileDialog.FilterIndex = 1;

openFileDialog.RestoreDirectory = true;

if (DialogResult.OK == openFileDialog.ShowDialog()) {


(4)

HasilMax.Image = aa; }

}

private void button7_Click(object sender, EventArgs e) {

OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.InitialDirectory = " ";

openFileDialog.Filter = "Bitmap files (*.bmp)|*.bmp"; openFileDialog.FilterIndex = 1;

openFileDialog.RestoreDirectory = true;

if (DialogResult.OK == openFileDialog.ShowDialog()) {

Bitmap aa = new Bitmap(openFileDialog.FileName); HasilMin.Image = aa;

} }

private void button8_Click(object sender, EventArgs e) {

OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.InitialDirectory = " ";

openFileDialog.Filter = "Bitmap files (*.bmp)|*.bmp"; openFileDialog.FilterIndex = 1;

openFileDialog.RestoreDirectory = true;

if (DialogResult.OK == openFileDialog.ShowDialog()) {

Bitmap aa = new Bitmap(openFileDialog.FileName); HasilMidpoint.Image = aa;

} } } }

3.

Form

Bangkitkan

Noise Salt-And-Pepper

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data;

using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms; namespace Order_Statistic_Filters {

public partial class Form7 : Form {

public Form7() {

InitializeComponent(); }

private void button2_Click(object sender, EventArgs e) {

try {


(5)

Bitmap citra = new Bitmap(Gambar.Image); int x, y, i, x1, y1, pilih, prob;

y = citra.Height; x = citra.Width;

prob = Convert.ToInt32(persen.Text); if (prob > 100 || prob < 0)

{

MessageBox.Show(" Probabilitas Noise Hanya mulai dari 1 - 100 %"); }

else {

prob = Convert.ToInt32(x * y * prob * 0.01); Random rand = new Random();

for (i = 0; i < prob; i++) {

x1 = rand.Next(0, x - 1); y1 = rand.Next(0, y - 1); pilih = rand.Next(1,10); if (pilih <=5)

{

citra.SetPixel(x1, y1, Color.FromArgb(255, 0, 0, 0)); }

else {

citra.SetPixel(x1, y1, Color.FromArgb(255, 255, 255, 255)); }

}

Gambar.Image = citra; button3.Enabled = true;

MessageBox.Show("Prosess Pembangkitan Noise Berhasil"); }

} catch {

MessageBox.Show("Pastikan inputan probabilitas noisenya benar!"); }

}

private void button1_Click(object sender, EventArgs e) {

OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.InitialDirectory = " ";

openFileDialog.Filter = "Bitmap files (*.bmp)|*.bmp"; openFileDialog.FilterIndex = 1;

openFileDialog.RestoreDirectory = true;

if (DialogResult.OK == openFileDialog.ShowDialog()) {

Bitmap aa = new Bitmap(openFileDialog.FileName); Gambar.Image = aa;

persen.Enabled = true; }

}

private void button3_Click(object sender, EventArgs e) {

Bitmap citra = new Bitmap((Bitmap)this.Gambar.Image); SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.InitialDirectory = " ";


(6)

saveFileDialog.Filter = "Bitmap Files (*.bmp)|*.bmp | Jpeg files (*.jpg) | *.jpg";

saveFileDialog.FilterIndex = 1;

saveFileDialog.RestoreDirectory = true;

if (DialogResult.OK == saveFileDialog.ShowDialog()) {

citra.Save(saveFileDialog.FileName);

MessageBox.Show("Hasil Penambahan Noise pada citra berhasil disimpan."); }

button4.Enabled = true; }

private void button4_Click(object sender, EventArgs e) {

Close(); }

private void persen_TextChanged(object sender, EventArgs e) {

button2.Enabled = true; }

} }

4.

Form

Bangkitkan

Noise Gaussian

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data;

using System.Drawing;

using System.Drawing.Imaging; using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices; namespace Order_Statistic_Filters {

public class RestorasiCitra {

Bitmap citra = null; IntPtr Iptr = IntPtr.Zero; BitmapData bmpData = null;

GaussianRandom gaussgen = new GaussianRandom(); public byte[] Pixels { get; set; }

public int Depth { get; private set; } public int Width { get; private set; } public int Height { get; private set; } public RestorasiCitra(Bitmap citra) {

this.citra = citra; }