Analisis Pengaruh Kombinasi Gaussian Noise dan Speckle Noise pada Citra Terhadap Kinerja Metode Deteksi Tepi
ANALISIS PENGARUH KOMBINASI GAUSSIAN NOISE DAN
SPECKLE NOISE PADA CITRA TERHADAP
KINERJA METODE DETEKSI TEPI
SKRIPSI
NUR AINUN
091401010
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
(2)
ANALISIS PENGARUH KOMBINASI
GAUSSIAN NOISE
DAN
SPECKLE
NOISE
PADA CITRA TERHADAP
KINERJA METODE DETEKSI TEPI
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijasah Sarjana Ilmu Komputer
NUR AINUN
091401010
PROGRAM STUDI S1 ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2014
(3)
PERSETUJUAN
Judul : ANALISIS PENGARUH KOMBINASI GAUSSIAN
NOISE DAN SPECKLE NOISE PADA CITRA
TERHADAP KINERJA METODE DETEKSI TEPI
Kategori : SKRIPSI
Nama : NUR AINUN
Nomor Induk Mahasiswa : 091401010
Program Studi : S1 ILMU KOMPUTER
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
Komisi Pembimbing :
Pembimbing 1 Pembimbing 2
M. Andri Budiman, S.T., M.Comp.Sc., M.E.M Dian Rachmawati, S.Si, M.Kom NIP. 19751008 200801 1 011 NIP. 19830723 200912 2 004
Diketahui/disetujui oleh
Program Studi S1 Ilmu Komputer Ketua,
(4)
PERNYATAAN
ANALISIS PENGARUH KOMBINASI GAUSSIAN NOISE DAN SPECKLE NOISE PADA CITRA TERHADAP KINERJA METODE DETEKSI TEPI
SKRIPSI
Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, Januari 2014
Nur Ainun 091401010
(5)
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Allah SWT., Tuhan Yang Maha Esa, yang telah memberikan berkat dan karunia-Nya, serta segala sesuatu dalam hidup, sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer, Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.
Ucapan terima kasih penulis sampaikan kepada semua pihak yang telah membantu penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada:
1. Bapak Prof. Dr. Dr. Syahril Pasaribu, DTM&H, Msc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara.
2. Bapak Prof. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Dr. Poltak Sihombing, M.Kom. selaku Ketua Program Studi S1 Ilmu Komputer dan Dosen Pembimbing I yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis.
4. Ibu Maya Silvi Lydia, B.Sc. M.Sc. selaku Sekretaris Program Studi S1 Ilmu Komputer dan Dosen Penguji II yang telah memberikan kritik dan saran dalam penyempuraan skripsi ini.
5. Bapak M. Andri Budiman, S.T., M.Comp.Sc., M.E.M selaku Dosen Pembimbing I yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis.
6. Ibu Dian Rachmawati, S.Si, M.Kom selaku Dosen Pembimbing II yang telah banyak meluangkan waktunya dalam memberikan masukan-masukan kepada penulis.
7. Semua dosen serta pegawai di Program Studi S1 Ilmu Komputer Fasilkom-TI USU.
8. Ayahanda Armansyah dan Ibunda Junaini yang menjadi motivasi penulis untuk sukses dan selalu memberikan dukungan baik materi maupun non-materi, perhatian, serta doa tanpa henti kepada penulis.
9. Kakak tercinta Rina Madhona, Skm., Abangda Rino Khalid dan M. Teguh Pramana yang menjadi penunjang hidup bagi penulis.
10.Teman-teman pengurus IMILKOM Fasilkom-TI 2012-2013.
11.Teman-teman sekaligus keluarga besar Program Studi S1 Ilmu Komputer Fasilkom-TI USU.
(6)
Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, penulis mengharapkan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini.
Medan, Januari 2014 Penulis,
(7)
ABSTRAK
Pendeteksi tepian adalah bagian dari pengolahan citra. Mendeteksi tepi pada citra adalah hal yang biasa, namun disini dilakukan deteksi tepi pada citra yang telah diberi noise. Hal ini dilakukan untuk melihat apakah ada pengaruh noise pada kinerja deteksi tepi. Noise yang digunakan berupa kombinasi dari Gaussian noise dan Speckle noise sedangkan operator deteksi tepinya adalah Marr-Hildreth, Laplacian Of Gaussian dan Prewitt. Parameter yang digunakan untuk mengukur nilai perbandingan antara ketiga operator deteksi tepi yaitu nilai MSE dan PSNR. Pada sistem ini objek yang digunakan adalah citra dengan format bitmap atau *.bmp. Berdasarkan beberapa hasil pengujian diperoleh bahwa ada pengaruh noise terhadap kinerja deteksi tepi dengan nilai mean dan variance yang diujikan dari rentang 0 hingga 1. Nilai rata-rata MSE pada operator Marr-Hildreth pada kombinasi Gaussian Noise dan Speckle Noise yang menandakan bahwa citra hasil deteksi tepi buram berkisar lebih dari 0.13 dan PSNR berkisar kurang dari 57.00. Sedangkan untuk nilai rata-rata MSE pada operator LOG pada kombinasi Gaussian Noise dan Speckle Noise berkisar lebih dari 0.16 dan PSNR berkisar kurang dari 0.478. Dan untuk Prewitt, MSE berkisar lebih dari 0.04 dan PSNR berkisar kurang dari 0.474. Selain itu jenis citra juga mempengaruhi seberapa besar nilai noise dapat diberikan untuk mempengaruhi kinerja deteksi tepi, yaitu citra dengan background solid dan citra dengan background merata.
Katakunci: deteksi tepi, Marr-Hildreth, Laplacian of Gaussian, Prewitt, Gaussian noise, Speckle noise.
(8)
ANALYSIS EFFECT COMBINATION OF GAUSSIAN NOISE AND SPECKLE NOISE IN IMAGE ON PERFORMANCE
OF EDGE DETECTION METHOD
ABSTRACT
Edge detection is part of the image processing. Edge detecting in ordinary image is a common thing, but here edge detection do in image noise that has been given. This is done to see if there is an influence of noise on the performance of edge detection. Noise used are combination of Gaussian noise and Speckle noise, while the edge detection operator are Marr-Hildreth, Laplacian Of Gaussian and Prewitt. The parameters used to measure the value of a comparison between the three edge detection operators are MSE and PSNR. In this system object used is a bitmap image or *. bmp. Based on some test results obtained that there is influence of noise on the performance of edge detection with mean and variance of the tested range of 0 to 1. The average value of MSE on the Marr-Hildreth operator on a combination of Gaussian noise and Speckle Noise which indicates that the edge detection image is blurred, range of more than 0.13 and PSNR ranges from less than 57.00. As for the average value of MSE on LOG operator on a combination of Gaussian noise and Speckle Noise ranges of more than 0.16 and less than 0.478 for PSNR ranges. And for Prewitt, MSE ranged over 0.04 and less than 0.474 for PSNR ranges . Besides affects of the image type also how much noise value can be assigned to affect the performance of edge detection, they are the image with a solid background and image with background evenly.
Keyword: edge detection, Marr-Hildreth, Laplacian of Gaussian, Prewitt, Gaussian noise, Speckle noise.
(9)
DAFTAR ISI
Hal.
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Gambar x
Daftar Tabel xii
Bab 1 Pendahuluan
1.1 Latar Belakang 1
1.2 Perumusan Masalah 2
1.3 Batasan Masalah 2
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Sistematika Penulisan 3
Bab 2 Landasan Teori 2.1 Citra
2.2.1 Pengolahan Citra
5 9
2.2.2 BMP 9
2.2 Noise 10
2.2.1 Gaussian Noise 10
2.2.2 Speckle Noise 11
2.3 Deteksi Tepi 12
2.3.1 Operator The Marr-Hildreth 15 2.3.2 Operator Laplacian Of Gaussian
2.3.3 Operator Prewitt
16 17
2.4 Konvolusi 18
2.5 MSE dan PSNR 21
2.5.1 Mean Square Error 21
2.5.2 Peak Signal to Noise Ratio 22
Bab 3 Analisis Dan Perancangan Sistem
3.1 Analisis Sistem 23
3.1.1 Analisis Masalah 23
3.1.2 Analisis Kebutuhan Sistem 24
3.1.2.1 Kebutuhan Fungsional Sistem 24
3.1.2.2 Kebutuhan Non-Fungsional Sistem 25
3.1.3 Analisis Proses 25
3.1.3.1 Noising 25
3.1.3.2 Deteksi Tepi Marr-Hildreth 26 3.1.3.3 Deteksi Tepi Laplacian Of Gaussian 26
(10)
3.2.1 Use Case Diagram 27
Hal.
3.2.2Sequance Diagram
3.2.3 Activity Diagram
31 32
3.3 Pseudocode 34
3.3.1 Pseudocode Noising 34
3.3.2 Pseudocode Operator Marr-Hildreth 35 3.3.3 Pseudocode Operator Laplacian Of Gaussian 36 3.3.4 Pseudocode Operator Prewitt 36
3.3.5 Pseudocode Menghitung Nilai MSE 37
3.3.6 Pseudocode Menghitung Nilai PSNR 37
3.4 Perancangan Sistem 38
3.4.1 Perancangan Flowchart Sistem 38 3.4.2 Perancangan Antarmuka (Interface) 41
3.4.2.1 Form Home 41
3.4.2.2 Form Deskripsi 42
3.4.2.3 Form Gaussian-Speckle Noise 43
3.4.2.4 Form Speckle-Gaussian Noise 44
3.4.2.5 Form Gaussian Noise 46
3.4.2.6 Form Speckle Noise 48
Bab 4 Implementasi dan Pengujian
4.1 Implementasi 50
4.1.1 Form Home 50
4.1.2 Form Deskripsi 51
4.1.3 Form Gaussian-Speckle Noise 51
4.1.4 Form Speckle-Gaussian Noise 53
4.1.5 Form Gaussian Noise 54
4.1..6 Form Speckle Noise 56
4.2 Pengujian 57
4.2.1 Pengujian Gaussian-Speckle Noise 57 4.2.2 Pengujian Speckle-Gaussian Noise 64 4.2.3 Pengujian Gaussian Noise 67 4.2.4 Pengujian Speckle Noise 71
4.2.5 Pengujian Random 75
4.2.6 Perbandingan Histogram 77
4.2.7 Perbandingan Citra Background Solid dengan Citra
Background Merata 77
Bab 5 Kesimpulan dan Saran
5.1 Kesimpulan 81
5.2 Saran 82
Daftar Pustaka 83
Lampiran Listing Program A-1
(11)
DAFTAR GAMBAR
Hal.
Gambar 2.1 Pixel Matrix 6
Gambar 2.2 Citra Biner 7
Gambar 2.3 Citra Skala Keabuan 7
Gambar 2.4 Citra Warna (True Color) 8
Gambar 2.5 Citra Warna Berindeks 8
Gambar 2.6 Mangga.bmp Gambar 2.7 Citra Tanpa Noise
Gambar 2.8 Citra Dengan Gaussian Noise Gambar 2.9 Citra Tanpa Noise
Gambar 2.10 Citra Dengan Speckle Noise Gambar 2.11 Model Tepi Satu Dimensi Gambar 2.12 Jenis-Jenis Tepi
Gambar 2.13 Proses Deteksi Tepi Citra
Gambar 2.14 Proses Deteksi Tepi Metode The Marr-Hildreth Gambar 2.15 Kernel Konvolusi Laplacian
Gambar 2.16 Proses Deteksi Tepi Metode LOG Gambar 2.17 Proses Deteksi Tepi Metode Prewitt Gambar 2.18 Proses Konvolusi
Gambar 2.19 Matriks Citra dan Kernel Sebelum Konvolusi Gambar 2.20 Tahapan Proses Pembentukan Konvolusi Gambar 2.21 Hasil Konvolusi Citra dan Kernel
10 11 11 12 12 13 14 15 16 17 17 18 19 20 20 21
Gambar 3.1 Diagram Ishikawa 24 Gambar 3.2 Use Case Diagram Sistem Analisis Pengaruh Noise Terhadap
Deteksi Tepi 27
Gambar 3.3 Sequence Diagram Tahap Awal Deteksi Tepi Citra 32 Gambar 3.4 Activity Diagram Pada Sistem Analisis Pengaruh Noise Terhadap
Deteksi Tepi 33
Gambar 3.5 Gambaran Umum Sistem 38
Gambar 3.6 Proses Deteksi Tepi 39
Gambar 3.7 Proses Analisis dari Sistem Analisis Pengaruh Noise Pada Citra
Terhadap Kinerja Metode Deteksi Tepi 40
Gambar 3.8 Form Home 41 Gambar 3.9 Form Deskripsi 42 Gambar 3.10 Form Gaussian-Speckle Noise 43 Gambar 3.11 Form Speckle-Gaussian Noise 45 Gambar 3.12 Form Gaussian Noise 46 Gambar 3.13 Form Speckle Noise 48
(12)
Gambar 4.4 Form simulasi Gaussian-Speckle Noise 52
Gambar 4.5 Form Speckle-Gaussian Noise 53
Gambar 4.6 Form simulasi Speckle-Gaussian Noise 54 Gambar 4.7 Form Gaussian Noise 55 Gambar 4.8 Form Simulasi Gaussian Noise 55 Gambar 4.9 Form Speckle Noise 56 Gambar 4.10 Form Simulasi Speckle Noise 57 Gambar 4.11 Pilih Tombol Gaussian-Speckle Noise 58 Gambar 4.12 Browse Citra .bmp Pada Form Gaussian-Speckle Noise 58 Gambar 4.13 Tampilan Proses Noising dan Deteksi Tepi Pada Form
Gaussian-speckle Noise 59
Gambar 4.14 Perbandingan Histogram Pada Simulasi Gaussian-Speckle
Noise 77
Gambar 4.15 Grafik Tabel 4.16 79
(13)
DAFTAR TABEL
Hal. Tabel 3.1 Dokumentasi Naratif Use Case Pilih Noise
Tabel 3.2 Dokumentasi Naratif Use Case Deteksi Tepi Tabel 3.3 Dokumentasi Naratif Use Case Deskripsi
Tabel 4.1 Perbandingan nilai MSE dan PSNR masing-masing Operator Deteksi Tepi
Tabel 4.2 Perbandingan Sampel pada Simulasi Gaussian-Speckle Noise Tabel 4.3 Perbandingan Nilai MSE dan PSNR Untuk Tabel 4.2
28 29 31
59 60 61 Tabel 4.4 Pengukuran Nilai MSE dan PSNR pada Gaussian-Speckle Noise
Tabel 4.5 Perbandingan Sampel pada Simulasi Speckle- Gaussian Noise
62 64 Tabel 4.6 Perbandingan Nilai MSE dan PSNR Untuk Tabel 4.5
Tabel 4.7 Pengukuran Nilai MSE dan PSNR pada Speckle-Gaussian Noise
65 66 Tabel 4.8 Perbandingan Sampel pada Simulasi Gaussian Noise
Tabel 4.9 Perbandingan Nilai MSE dan PSNR Untuk Tabel 4.8 Tabel 4.10 Pengukuran Nilai MSE dan PSNR pada Gaussian Noise Tabel 4.11 Perbandingan Sampel pada Simulasi Speckle Noise Tabel 4.12 Perbandingan Nilai MSE dan PSNR Untuk Tabel 4.11 Tabel 4.13 Pengukuran Nilai MSE dan PSNR pada Speckle Noise Tabel 4.14 Perbandingan Sampel Random
Tabel 4.15 Perbandingan Nilai MSE dan PSNR Untuk Tabel 4.14 Tabel 4.16 Perbandingan Nilai Rata-Rata MSE
68 69 70 71 73 73 75 76 78
(14)
ABSTRAK
Pendeteksi tepian adalah bagian dari pengolahan citra. Mendeteksi tepi pada citra adalah hal yang biasa, namun disini dilakukan deteksi tepi pada citra yang telah diberi noise. Hal ini dilakukan untuk melihat apakah ada pengaruh noise pada kinerja deteksi tepi. Noise yang digunakan berupa kombinasi dari Gaussian noise dan Speckle noise sedangkan operator deteksi tepinya adalah Marr-Hildreth, Laplacian Of Gaussian dan Prewitt. Parameter yang digunakan untuk mengukur nilai perbandingan antara ketiga operator deteksi tepi yaitu nilai MSE dan PSNR. Pada sistem ini objek yang digunakan adalah citra dengan format bitmap atau *.bmp. Berdasarkan beberapa hasil pengujian diperoleh bahwa ada pengaruh noise terhadap kinerja deteksi tepi dengan nilai mean dan variance yang diujikan dari rentang 0 hingga 1. Nilai rata-rata MSE pada operator Marr-Hildreth pada kombinasi Gaussian Noise dan Speckle Noise yang menandakan bahwa citra hasil deteksi tepi buram berkisar lebih dari 0.13 dan PSNR berkisar kurang dari 57.00. Sedangkan untuk nilai rata-rata MSE pada operator LOG pada kombinasi Gaussian Noise dan Speckle Noise berkisar lebih dari 0.16 dan PSNR berkisar kurang dari 0.478. Dan untuk Prewitt, MSE berkisar lebih dari 0.04 dan PSNR berkisar kurang dari 0.474. Selain itu jenis citra juga mempengaruhi seberapa besar nilai noise dapat diberikan untuk mempengaruhi kinerja deteksi tepi, yaitu citra dengan background solid dan citra dengan background merata.
Katakunci: deteksi tepi, Marr-Hildreth, Laplacian of Gaussian, Prewitt, Gaussian noise, Speckle noise.
(15)
ANALYSIS EFFECT COMBINATION OF GAUSSIAN NOISE AND SPECKLE NOISE IN IMAGE ON PERFORMANCE
OF EDGE DETECTION METHOD
ABSTRACT
Edge detection is part of the image processing. Edge detecting in ordinary image is a common thing, but here edge detection do in image noise that has been given. This is done to see if there is an influence of noise on the performance of edge detection. Noise used are combination of Gaussian noise and Speckle noise, while the edge detection operator are Marr-Hildreth, Laplacian Of Gaussian and Prewitt. The parameters used to measure the value of a comparison between the three edge detection operators are MSE and PSNR. In this system object used is a bitmap image or *. bmp. Based on some test results obtained that there is influence of noise on the performance of edge detection with mean and variance of the tested range of 0 to 1. The average value of MSE on the Marr-Hildreth operator on a combination of Gaussian noise and Speckle Noise which indicates that the edge detection image is blurred, range of more than 0.13 and PSNR ranges from less than 57.00. As for the average value of MSE on LOG operator on a combination of Gaussian noise and Speckle Noise ranges of more than 0.16 and less than 0.478 for PSNR ranges. And for Prewitt, MSE ranged over 0.04 and less than 0.474 for PSNR ranges . Besides affects of the image type also how much noise value can be assigned to affect the performance of edge detection, they are the image with a solid background and image with background evenly.
Keyword: edge detection, Marr-Hildreth, Laplacian of Gaussian, Prewitt, Gaussian noise, Speckle noise.
(16)
BAB I
PENDAHULUAN
1.1Latar Belakang
Perkembangan pemanfaatan citra dalam berbagai hal telah banyak membantu kemajuan teknologi di banyak bidang ilmu pengetahuan. Hal ini dapat dilihat dari begitu banyaknya pemanfaatan citra, baik itu citra analog ataupun citra digital dalam banyak bidang misalnya pengolahan citra digital dari gambar.
Pengolahan citra memegang peranan yang sangat penting dalam kehidupan sehari-hari, tapi sering tidak disadari akan pentingnya informasi yang ditampilkan dalam suatu pengolahan citra tersebut. Pengolahan citra adalah memproses suatu citra sehingga menghasilkan citra yang sesuai dengan keinginan kita. Dalam kehidupan sehari–hari proses pengolahan citra memegang peranan yang cukup penting dalam kehidupan, meskipun kita tidak menyadari secara langsung.
Dalam pengolahan citra, sering kali terjadi noise pada suatu citra. Noise merupakan gangguan-gangguan yang dialami citra sehingga membuat kualitas citra menjadi kurang baik. Sehingga akibat noise pada citra ini seringkali terjadi permasalahan dalam proses pendeteksian suatu citra.
Deteksi tepi merupakan salah satu cara bagaimana melakukan suatu pengolahan citra. Deteksi tepi adalah proses untuk menemukan perubahan intensitas yang berbeda nyata dalam sebuah bidang citra. Sebuah operator deteksi tepi merupakan operasi bertetangga, yaitu sebuah operasi yang memodifikasi nilai keabuan sebuah titik berdasarkan nilai-nilai keabuaan dari titik-titik yang ada di sekitarnya (tetangganya) yang masing-masing mempunyai bobot tersendiri. Jika titik-titik di sekitar citra berubah karena adanya gangguan misalnya terjadi noise, apakah akan berpengaruh terhadap proses pendeteksian suatu citra?
(17)
Berdasarkan hal-hal inilah yang membuat penulis akhirnya berkeinginan untuk melakukan analisis pengaruh noise terhadap kinerja metode deteksi tepi. Namun dalam penelitian ini penulis merincikan noise dan jenis metode deteksi tepinya. Sehingga penulis berkesimpulan untuk melakukan penelitian mengenai analisis pengaruh Gaussian Noise dan Speckle Noise pada citra terhadap kinerja metode deteksi tepi.
1.2Perumusan Masalah
Adapun masalah yang akan dibahas dalam penelitian ini adalah :
1. Bagaimana pengaruh dari kombinasi antara Gaussian noise dan Speckle noise (Gaussian-Speckle, Speckle-Gaussian, Gaussian atau Speckle) pada citra terhadap kinerja metode deteksi tepi dan kualitas citra.
2. Bagaimana perbandingan parameter MSE dan PSNR pada masing-masing kombinasi Gaussian noise dan Speckle noise.
1.3Batasan Masalah
Adapun batasan masalah dalam penelitian ini adalah :
1. Deteksi tepi yang digunakan ada tiga operator yaitu operator The Marr-Hildreth, operator Laplacian of Gaussian, dan operator Prewitt.
2. Citra digital yang digunakan yaitu citra yang berformat bitmap (.bmp) dengan ukuran lebar 300 x tinggi 300 pixel.
3. Parameter yang akan diukur untuk mengetahui hasil perbandingan masing-masing metode pendeteksi tepi adalah MSE dan PSNR.
4. Bahasa pemrograman yang digunakan untuk membangun aplikasi ini adalah bahasa pemrograman Matlab 7.5.0 (R2007b).
5. Pengujian pada sistem dilakukan dengan nilai mean dan variance berkisar pada rentang 0 sampai 1 di setiap jenis noise.
(18)
1.4Tujuan Penelitian
Adapun tujuan dari penelitian ini adalah :
1. Membangun suatu aplikasi untuk melakukan analisis pengaruh noise pada citra terhadap kinerja metode deteksi tepi.
2. Membandingan hasil analisis pengaruh kombinasi Gaussian dan Speckle noise pada citra terhadap kinerja metode deteksi tepi.
1.5Manfaat Penelitian
Adapun tujuan dari penelitian ini adalah :
1. Untuk menganalisis pengaruh kombinasi Gaussian noise dan Speckle noise terhadap kinerja metode deteksi tepi.
2. Untuk membandingkan pengaruh kombinasi Gaussian noise dan Speckle noise terhadap kinerja metode deteksi tepi.
1.6Sistematika 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, Gaussian noise dan Speckle noise , deteksi tepi dengan operator The Marr-Hildreth, operator Laplacian of Gaussian,
(19)
Bab III Analisis dan Perancangan
Berisi tentang analisis mengenai pengaruh pemberian noise pada citra terhadap kinerja merode deteksi tepi dan perancangan tampilan form dari aplikasi.
Bab IV Implementasi dan Pengujian
Berisi tentang algoritma dan implementasi aplikasi yang sesuai dengan analisis dan perancangan.
Bab V Kesimpulan dan Saran
Berisi tentang kesimpulan yang diperoleh setelah menyelesaikan tugas akhir ini dan saran-saran yang dapat diberikan untuk melakukan pengembangan perangkat lunak lebih lanjut.
(20)
BAB II
LANDASAN TEORI
2.1. Citra
Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dan suatu obyek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi, atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan[14].
Suatu citra dapat didefinisikan sebagai fungsi f(x,y) berukuran M baris dan N kolom, dengan x dan y adalah koordinat spasial, dan amplitudo f di titik koordinat (x,y) dinamakan intensitas atau tingkat keabuan dari citra pada titik tersebut. Apabila (x,y) dan nilai ampiltudo f secara keseluruhan berhingga (finite) dan bernilai diskrit maka dapat dikatakan bahwa citra tersebut adalah citra digital[12].
Dalam dunia sehari-hari dapat banyak dijumpai berbagai macam bentuk citra, baik itu citra analog ataupun citra digital. Citra analog yaitu seperti foto yang tercetak di kertas foto, gambar sebuah lukisan di kanvas atau ketas, dan lain sebagainya. Citra analog adalah citra yang bersifat kontinu, seperti gambar pada monitor televisi, foto sinar-X, foto yang tercetak di kertas foto, lukisan, pemnadangan alam, hasil CT scan, gambar-gambar yang terekam pada pita kaset, dan lain sebagainya. Citra analog tidak dapat direpresentasikan dalam komputer sehingga tidak bisa diproses di komputer secara langsung.
Sedangkan Citra Digital adalah citra yang dapat diolah oleh komputer yang memiliki jenis dan ukuran file dari citra tersebut. Citra digital merupakan citra yang tersusun dalam bentuk raster (grid / kisi). Setiap kotak (tile) yang terbentuk disebut pixel (picture element) dan memiliki koordinat (x,y). Sumbu x (horizontal) : kolom (column), sample Sumbu y (vertikal) : baris (row,line).
(21)
Se intensitas level atau menunjuk
1 bit –2 w 4 bit –16 w 8 bit –256 24 bit –16 Kanal Mer Kanal Hija Kanal Biru
Nilai Digi M = banya N = banya b = banyak
Co telepon ge Be jenis, yaitu tiap pixel keabuan pa u kode warn kkan resolus
warna: [0,1] warna: [0,15 6 warna: [0,2 6.777.216 w
rah -Red (R au - Green ( u - Blue (B)
ital dan bany ak pixel per ak pixel per k / besar bit
ontoh dari c enggam.
erdasarkan f u[15]:
memiliki ada pixel te na. Kisaran si aras abu-a
5] 255] warna (true c
R): [0,255] (G): [0,255] ): [0,255]
Ga
yak bit : r baris (panj
kolom (leb t pada suatu
citra digital
format peny
nilai (valu ersebut. De n nilai diten abu (grey le
color)
]
ambar 2.1P
jang) bar) u citra
l yaitu foto
yimpanan n
ue atau nu erajat keabu ntukan oleh evel resoluti Pixel Matr yang tersim nilai warnan umber) yan uan merepre
bit yang d on).
iks
mpan dalam
nya, citra te
ng menunju esentasikan dipakai dan
m komputer
erdiri atas e ukkan n grey akan
r atau
(22)
1. Citra biner atau monokrom
Pada citra jenis ini, setiap titik atau piksel hanya bernilai 0 atau 1.Dimana setiap titik membutuhkan media penyimpana sebesar 1 bit. Gambar 2.2 merupakan contoh citra biner.
Gambar 2.2 Citra Biner
2. Citra skala keabuan
Citra skala keabuan mempunyai kemungkinan warna antara hitam (minimal) dan putih (maksimal). Jumlah maksimum warna sesuai dengan bit penyimpanan yang digunakan.
Misal:
Suatu citra dengan skala keabuan 4 bit, memiliki jumlah kemungkinan warna 24 = 16 warna.
Gambar 2.3 memperlihatkan citra skala keabuan 4 bit.
Gambar 2.3 Citra Skala Keabuan
3. Citra warna (true color)
Setiap titik (piksel) pada citra warna mewakili warna yang merupakan kombinasi dari tiga warna dasar yaitu merah, hijau dan biru yang dikenal
(23)
sebagai citra RGB (Red, Green, Blue). Setiap warna dasar mempunyai intensitas sendiri dengan nilai maksimum 255 (8 bit).
Red = warna minimal putih, warna maksimal merah Green = warna minimal putih, warna maksimal hijau Blue = warna minimal putih, warna maksimal biru Setiap titik pada citra warna membutuhkan data 3 byte
Jumlah kemungkinan kombinasi warna untuk citra warna adalah 224 = lebih dari 16 juta warna, disebut true color karena dianggap mencakup semua warna yang ada. Gambar 2.4 memperlihatkan contoh citra warna.
Gambar 2.4 Citra Warna (True Color)
4. Citra warna berindeks
Setiap titik (piksel) pada citra warna berindeks mewakili indeks dari suatu tabel warna yang tersedia (biasanya disebut palet warna). Keuntungan pemakaian palet warna adalah kita dapat dengan cepat memanipulasi warna tanpa harus mengubah informasi pada setiap titik dalam citra. Keuntungan yang lain, penyimpanan lebih kecil. Contoh citra warna berindeks diperlihatkan pada Gambar 2.5.
(24)
2.2.1. Pengolahan Citra
Pengolahan citra (image processing) merupakan proses untuk mengolah pixel-pixel dalam citra digital untuk tujuan tertentu. Beberapa alasan dilakukan pengolahan citra digital adalah sebagai berikut :
1. Untuk mendapatkan citra asli dari citra yang sudah rusak karena pengaruh noise yang bercampur dengan cira asli dalam suatu proses tertentu. Poses pengolahan citra bertujuan untuk mendapatkan citra yang mendekati citra asli.
2. Untuk mendapatkan citra dengan karakteristik tertentu dan cocok secara visual yang dibutuhkan dalam proses lanjut dalam pemrosesan analisis citra.
Operasi pengolahan citra dapat diklasifikasikan dalam beberapa jenis sebagai berikut:
1. Image Enhancement (Perbaikan kualitas citra) 2. Image Restoration (Pemugaran Citra)
3. Image Compression (Pemampatan Citra) 4. Image Segmentation
5. Image Analysis
6. Image Recontruction (Rekontruksi Citra)
Operasi-operasi tersebut bertujuan untuk membentuk objek dari beberapa citra hasil proyeksi. Pada citra digital, dengan tipe bitmap tipe warna pada titik-titik piksel dibentuk dari sebuah data numerik. Tinggi dan rendahnya keabuan piksel dinyatakan dalam bentuk intensitas atau derajat keabuan. Satuan lebar intensitas merupakan lebar memori (bit) citra yang disebut dengan format piksel.
2.2.2. BMP
Citra bitmap sering disebut juga dengan citra raster. Citra bitmap menyimpan data kode citra secara digital dan lengkap (cara penyimpanannya adalah per piksel). Citra bitmap direpresentasikan dalam bentuk matriks dan dipetakan dengan menggunakan bilangan biner atau sistem bilangan lain. Citra ini memiliki
(25)
kelebihan untuk memanipulasi warna, tetapi untuk mengubah objek lebih sulit. Tampilan bitmap mampu menunjukkan kehalusan gradasi bayangan dan warna dari sebuah gambar. Oleh karena itu, 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, kamera digital, video capture, dan lain-lain[14]. Contoh gambar dengan format .bmp sebagai berikut:
Gambar 2.6mangga.bmp
2.2. Noise
Noise merupakan gangguan yang disebabkan oleh menyimpangnya data digital
yang diterima oleh alat penerima data gambar yang mana dapat menggangu kualitas citra. Derau (noise) dapat disebabkan oleh gangguan fisis (optik) pada alat penangkap citra misalnya kotoran debu yang menempel pada lensa foto maupun akibat proses pengolahan yang tidak sesuai. Berikut merupakan beberapa jenis noise[13].
2.2.1. Gaussian Noise
Gaussian Noise atau juga dapat disebut Gaussian White Noise. Noise ini memiliki intensitas yang sesuai dengan distribusi normal yang memiliki rerata (mean) dan varian tertentu[16].
Gaussian noise merupakan model noise yang mengikuti distribusi normal standart dengan rata-rata = 0 dan standar deviasi = 1. Efek dari gaussian noise ini pada gambar adalah munculnya titik-titik berwarna yang jumlahnya sama dengan persentase noise[13].
(26)
Untuk menambahkan noise ini pada MatLab memerlukan input tambahan berupa rata-rata dan variansi. Rata-rata dan variansi merupakan suatu konstanta real. Nilainya bisa positif maupun negatif. Makin besar rata-rata dan variansinya maka citra akan semakin kabur, sebaliknya makin kecil konstantanya efek pada citra makin tidak terlihat. Nilai default adalah 0 untuk rata-rata dan 0.01 untuk variansi. Disebut white noise karena pada saat nilai rata-rata dan variansinya besar maka citra seolah-olah hanya terlihat seperti citra putih saja[7].
Berikut merupakan rumusan dari gaussian noise:
f(i,j) = g(i,j) +p.a
(1)Keterangan : f (i,j) = nilai citra terkena noise
g (i,j) = nilai citra sebelum terkena noise
a = nilai bilangan acak berdistribusi gaussian p = persentase noise
Berikut merupakan contoh citra tanpa dan dengan gaussian noise:
Gambar 2.7Citra tanpa noise Gambar 2.8 Citra dengan gaussian noise
2.2.2. Speckle Noise
Speckle Noise merupakan model noise yang memberikan tanda berwarna hitam pada bagian yang berupa titik yang terkena noise. Noise ini muncul pada saat pengambilan citra tidak sempurna karena alasan cuaca, perangkat pengambil citra
(27)
dan sebagainya. Sifat noise ini mutlipikatif, artinya semakin besar intensitas citra atau semakin cerah citra, semakin jelas juga noise[16].
Pada beberapa pengolahan citra, terkadang untuk menguji suatu algoritma untuk dapat mereduksi noise, maka noise dapat dihasilkan dari proses pembangkitan noise yang sering disebut sebagai noise generator. Untuk membangkitkan noise pada umumnya dibangkitkan dengan cara mengambil suatu bilangan acak yang kemudian ditempatkan pada citra secara acak pula[13].
Berikut merupakan rumusan dari noise speckle:
v(x,y) = u(x,y)s(x,y)
(2)Keterangan : v (x,y) = nilai citra terkena noise
u (x,y) = nilai citra sebelum terkena noise s (x,y) = intensitas dari speckle noise [2]
Berikut merupakan contoh citra tanpa dan dengan speckle noise:
Gambar 2.9 Citra tanpa noise Gambar 2.10 Citra dengan specklenoise
2.3. Deteksi Tepi
Tepian dari suatu citra mengandung informasi penting dari citra bersangkutan. Tepian citra dapat merepresentasikan objek-objek yang terkandung dalam citra tersebut, bentuk, dan ukurannya serta terkadang juga informasi tentang teksturnya.
(28)
Tepian citra adalah posisi dimana intensitas piksel dari citra berubah dari nilai rendah ke nilai tinggi atau sebaliknya. Deteksi tepi umumnya adalah langkah awal melakukan segmentasi citra[12].
Deteksi tepi adalah proses untuk menemukan perubahan intensitas yang berbeda nyata dalam sebuah bidang citra. Sebuah operator deteksi tepi merupakan operasi bertetangga, yaitu sebuah operasi yang memodifikasi nilai keabuan sebuah titik berdasarkan nilai-nilai keabuaan dari titik-titik yang ada di sekitarnya (tetangganya) yang masing-masing mempunyai bobot tersendiri. Bobot-bobot tersebut nilainya tergantung pada operasi yang akan dilakukan, sedangkan banyaknya titik tetangga yang terlibat biasanya adalah 2x2, 3x3, 3x4, 7x7, dan sebagainya[14].
Secara umum tepi dapat didefinisikan sebagai batas antara dua region (dua piksel yang saling berdekatan) yang memiliki perbedaan intensitas yang tajam atau tinggi. Tepi dapat diorientasikan dengan suatu arah, dan arah ini berbeda-beda, tergantung pada perubahan intensitas. Untuk lebih memahami defenisi tepi, Gambar 2.11 memperlihatkan model tepi dalam ruang satu dimensi[15].
Gambar 2.11 Model Tepi Satu Dimensi
Ada tiga macam tepi yang terdapat di dalam citra digital, yaitu[15]: 1. Tepi curam
Jenis tepi ini terbentuk karena perubahan intensitas yang tajam, berkisar 900.
jarak
perubahan intensitas α
(29)
2. Tepi landai
Tepi lebar, sudut arah kecil. Terdiri dari sejumlah tepi-tepi lokal yang lokasinya berdekatan.
3. Tepi yang mengandung noise
Untuk mendeteksi tepi jenis ini, biasanya dilakukan operator image enhancement terlebih dahulu. Misalnya Operator Gaussian yang berfungsi untuk menghaluskan citra.
Perbedaan ketiga macam tepi tersebut, diperlihatkan pada Gambar 2.12.
Gambar 2.12 Jenis-jenis Tepi
Deteksi tepi merupakan langkah pertama untuk melingkupi informasi di dalam citra. Tepi mencirikan batas-batas objek dan karena itu tepi berguna untuk proses segmentasi dan identifikasi objek di dalam citra. Deteksi tepi pada suatu citra memiliki tujuan sebagai berikut[15]:
1. Menandai bagian yang menjadi detil citra.
(30)
Gambar 2.13 memperlihatkan bagaimana tepi dari suatu citra dapat diperoleh dengan operasi pendeteksian tepi.
Gambar 2.13 Proses Deteksi Tepi Citra
2.3.1 Operator The Marr-Hildreth
Metode The Marr-Hildreth atau yang biasa disebut Canny edge detector ditemukan oleh Marr dan Hildreth yang meneliti pemodelan persepsi visual manusia. Dalam memodelkan pendeteksi tepi, dia menggunakan ideal step edge, yang direpresentasikan dengan fungsi sign satu dimensi. Pendekatan algoritma canny dilakukan dengan konvolusi fungsi image dengan operator gaussian dan turunan-turunannya[3].
Metode The Marr-Hildreth ini memiliki banyak kesamaan dengan metode canny, tetapi ada sedikit perbedaan antara kedua metode ini yaitu jika metode The Marr-Hildreth menggunakan turunan pertama untuk melakukan deteksi tepi, sedangkan metode canny menggunakan turunan kedua untuk melakukan proses deteksi tepi. Gambar 2.14 adalah contoh penerapan metode deteksi tepi dengan operator Marr-Hildreth.
(31)
2.3.2 Ope Operator l Jadi, sebe diperlukan gaussian d Ca dengan op Namun, p laplacian d turunan k Kemudian linier[14].
Me Pada tepi nol), yaitu pada tepi y
Be standard G Gamba erator Lapl laplacian sa elum detek n. Operator dan operato
ara kerja op perator gaus
engaburan diterapkan u kedua yang
n, lokasi tep
etode ini m yang cura u titik dima yang landai
erikut ini fu Gaussian
:ar 2.14Pro
lacian Of G
angat sensiti ksi tepi di laplacian r laplacian.
erator ini a ssian bertuj ini mengak untuk mene bersesuaian pi diperoleh mendeteksi te m, turunan na terdapat i tidak terda
ungsi LoG 2 :
oses Deteks
Gaussian
if terhadap ilakukan, f of Gaussia . adalah sebag juan untuk kibatkan pel emukan titik
n dengan p h dari resolu
epi lebih ak n keduanya t pergantian apat persilan
2-D yang be
i Tepi Met
noise yang filter yang an merupak gai berikut mengaburk lebaran tepi k potong de puncak dala usi subpikse
kurat khusu memiliki n tanda nila
ngan nol (G
erpusat pada
ode The M
terletak pad dapat me an kombina
: pertama, c an dam me
objek. Kem ngan sumbu am fungsi tu el menggun
snya pada t zero-cross i turunan ke onzalez et a
a titik 0 dan
Marr-Hildre
da titik-titik elemahkan
asi dari ope
citra dikonv elemahkan n mudian, ope u x dalam f turunan per nakan interp
tepi yang cu sing (persila kedua, sedan
al, 2005).
n dengan de
(3)
eth k tepi. noise erator volusi noise. erator fungsi rtama. polasi uram. angan ngkan eviasi
(32)
Representasi turunan kedua dalam bentuk kernel operator Laplacian diperlihatkan pada Gambar 2.15.
0 ‐1 0
‐1 4 ‐1
0 ‐1 0
Gambar 2.15 Kernel Konvolusi Laplacian
Gambar 2.16 menunjukkan contoh penerapan metode deteksi tepi dengan operator Laplacian of Gaussian (LOG).
Gambar 2.16Proses deteksi tepi metode LOG [8]
2.3.3 Operator Prewitt
Operator Prewitt digunakan dalam pengolahan gambar, terutama dalam deteksi tepi algoritma. Secara teknis, itu adalah operator diferensial diskrit, menghitung perkiraan dari gradien dari fungsi intensitas citra.
Operator ini lebih sensitif terhadap tepian horisontal dan vertikal dari pada tepian diagonal. Metode Prewitt merupakan pengembangan metode Robert dengan menggunakan filter HPF (High Pass Filter) yang diberi satu angka nol penyangga. Metode ini mengambil prinsip dari fungsi laplacian yang dikenal sebagai fungsi untuk membangkitkan HPF (High Pass Filter).
(33)
Berikut adalah kernel filter yang digunakan dalam metode Prewitt dalam matriks 3 x 3.[12]
atau
Gambar 2.17 adalah contoh penerapan metode deteksi tepi dengan operator Prewitt.
Gambar 2.17Proses Deteksi Tepi Metode Prewitt
2.4. Konvolusi
Deteksi tepi merupakan salah satu proses pengolahan citra yang menggunakan filter atau penapis. Selain pada proses pendeteksian tepi, proses lain pada pengolahan citra yang juga menggunakan filter atau penapis adalah perbaikan kualitas citra (image enhancement), penghilangan derau (noise reduction), mengurangi erotan, penghalusan atau pelembutan citra (image smoothing), dan lain-lain.
Untuk mengaplikasikan penapis pada citra, digunakan metode konvolusi. Konvolusi bisa dinyatakan dalam matriks, dimana setiap elemen matriks penapis tersebut dinamakan koefisien konvolusi. Operasi konvolusi bekerja dengan menggeser kernel piksel per piksel, yang hasilnya kemudian disimpan dalam matriks baru. Konvolusi 2 fungsi f(x) dan g (x) diperlihatkan dengan rumus berikut ini:
(34)
(4)
Atau fungsi diskritnya:
(5)
Dimana α = peubah bantu.
Pada konvolusi 2D, fungsi malarnya dapat dihitung dengan persamaan:
(6)
Sedangkan fungsi diskritnya dihitung dengan persamaan:
(7)
g(x) merupakan convolution mask / filter / kernel atau template. Gambar 2.18 memperlihatkan ilustrasi terjadinya konvolusi.
Gambar 2.18 Proses Konvolusi
Dimana:
(8)
Untuk lebih jelasnya, berikut contoh konvolusi yang terjadi antara citra f(x,y) berukuran 5x5 dengan sebuah kernel berukuran 3x3 yang diperlihatkan pada Gambar 2.19.
(35)
Gambar 2.19 Matriks Citra dan Kernel Sebelum Konvolusi
Tanda • menunjukkan posisi (0,0) dari kernel
Tahapan untuk mendapatkan hasil konvolusi yang terjadi antara citra dan kernel diatas dapat dilihat pada Gambar 2.20.
(i)
(ii)
(iii) .
. .
dan seterusnya
(36)
Sehingga diperoleh hasil akhir dari proses konvolusi tersebut, yang ditunjukkan pada Gambar 2.21.
Gambar 2.21 Hasil Konvolusi Citra dan Kernel
Dalam konvolusi terdapat dua kemungkinan yang jika ditemukan, diselesaikan dengan cara berikut, yaitu:
1. Untuk hasil konvolusi dengan nilai negatif, nilainya dijadikan nol (0). 2. Jika hasil konvolusi lebih besar (>) derajat keabuan maksimum, maka nilai
diubah menjadi derajat keabuan maksimum.
2.5. MSE dan PSNR
2.5.1 Mean Square Error
Mean Square Error (MSE) adalah kesalahan kuadrat rata-rata. Nilai MSE didapat dengan membandingkan nilai selisih pixel-pixel citra asal dengan citra hasil pada posisi pixel yang sama. Semakin besar nilai MSE, maka tampilan pada citra hasil akan semakin buruk. Sebaliknya, semakin kecil nilai MSE, maka tampilan pada citra hasil akan semakin baik. Satuan nilai dari MSE adalah dB (deciBell) Perhitungan MSE dilakukan dengan menggunakan rumus[9]:
) ]) , [ ] , [ ( (
1 1 2
0 1 0 j i y j i x MN MSE N j M i
(9)Keterangan : M dan N adalah ukuran panjang dan lebar citra x[i,j] = adalah citra asal dengan dimensi M x N
(37)
y[i,j] = adalah citra hasil yang telah mengalami proses. Untuk menghitung nilai MSE dari citra yang memiliki noise:
x[i,j] adalah citra asli, dan
y[i,j] adalah citra yang telah mengalami proses pembangkitan noise.
2.5.2 Peak Signal to Noise Ratio
Peak Signal to Noise Ratio (PSNR) adalah sebuah perhitungan yang menentukan nilai dari sebuah citra yang dihasilkan. PSNR adalah perbandingan antara nilai maksimum dari sinyal yang diukur dengan besarnya noise yang berpengaruh pada sinyal tersebut. PSNR biasanya diukur dalam satuan desibel. Nilai PSNR ditentukan oleh besar atau kecilnya nilai MSE yang terjadi pada citra. Semakin besar nilai PSNR, semakin baik pula hasil yang diperoleh pada tampilan citra hasil. Sebaliknya, semakin kecil nilai PSNR, maka akan semakin buruk pula hasil yang diperoleh pada tampilan citra hasil. Satuan nilai dari PSNR sama seperti MSE, yaitu dB (deciBell). Jadi hubungan antara nilai PSNR dengan nilai MSE adalah semakin besar nilai PSNR, maka akan semakin kecil nilai MSE-nya. Perhitungan PSNR dilakukan dengan menggunakan rumus[9]:
MSE PSNR
2
255 log 10
(10)
Keterangan : M dan N adalah ukuran panjang dan lebar citra x[i,j] = adalah citra asal dengan dimensi M x N
(38)
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1. Analisis Sistem
Analisis sistem merupakan suatu tahapan yang mana dilakukan untuk membantu memahami sesuatu yang dibutuhkan sistem. Hal ini dimaksud untuk membuat sistem tersebut mengetahui permasalahan-permasalahan yang ada sehingga nantinya dapat membantu di dalam proses perancangan model suatu sistem yang nantinya akan diimplementasikan.
3.1.1. Analisis Masalah
Pendeteksian tepi gambar pada citra asli adalah hal yang biasa. Permasalahan yang dihadapi dalam perancangan sistem ini yaitu melakukan deteksi tepi pada citra yang telah mengalami kerusakan akibat noise yang diberikan. Hal ini sengaja dilakukan untuk membuktikan apakah ada pengaruh noise terhadap proses deteksi tepi. Masalahnya seberapa besar noise yang diberikan akan berpengaruh terhadap proses deteksi tepi. Dengan adanya sistem ini diharapkan dapat membuktikan pengaruh tersebut.
Permasalahan pada noise yang akan diberikan dikembangkan dari kombinasi Gaussian dan Speckle Noise hingga menghasilkan 4 jenis noise, yaitu Gausian-Speckle Noise, Speckle-Gaussian Noise, Gaussian Noise dan Speckle Noise. Gaussian-Speckle Noise adalah kombinasi yang memberikan noise
Gaussian terlebih dahulu kepada citra kemudian dilanjutkan pada pemberian
speckle noise. Begitu juga Speckle-Gaussian Noise dengan urutan yang berbeda. Sedangkan lainnya dilakukan satu per satu.
(39)
Penyebab dan dampak dari permasalahan tersebut diperlihatkan pada diagram ishikawa Gambar 3.1.
Gambar 3.1 Diagram Ishikawa
3.1.2. Analisis Kebutuhan Sistem
Analisis kebutuhan sistem ini meliputi analisis kebutuhan fungsional sistem dan analisis non-fungsional sistem.
3.1.2.1. Kebutuhan Fungsional Sistem
Sistem analisis pengaruh noise terhadap deteksi tepi memiliki kebutuhan fungsional yaitu:
1. Masukan yang berupa citra yang memiliki format *.bmp dan merupakan citra RGB.
2. Sistem dapat memberikan noise dengan nilai masing-masing yang ditentukan oleh nilai mean dan variance. Adapun noise yang digunakan adalah Gaussian Noise dan Speckle Noise.
3. Sistem melakukan proses pendeteksian tepi dengan 3 operator berbeda yaitu Marr-Hildreth, Laplacian Of Gaussian dan Prewitt.
(40)
3.1.2.2. Kebutuhan Non-Fungsional Sistem
Untuk membantu kinerja sistem secara lebih baik, terdapat kebutuhan non-fungsional sistem yaitu:
1. Tampilan antarmuka sistem dapat dimengerti oleh user atau pengguna sistem.
2. Efektifitas sistem yang dibangun dapat menyimpan citra hasil dan efisiensi dapat terlihat dari sistem yang digunakan tidak memerlukan perangkat tambahan atau perangkat pendukung lainnya yang dapat mengeluarkan biaya tambahan.
3. Sistem yang nantinya telah dibuat dapat dikembangkan dengan mudah sehingga sistem dapat tetap digunakan di masa yang akan datang.
3.1.3. Analisis Proses
Dalam sistem ini ada 2 proses dasar yaitu noising dan deteksi tepi. Noising adalah proses pemberian noise pada citra inputan dimana nilai noise yang diberikan bergantung pada nilai mean dan atau variance yang diberikan. Sedangkan proses deteksi tepi dilakukan oleh 3 operator yaitu Marr-Hildreth, Laplacian Of Gausssian dan Prewitt. Selebihnya dilakukan perhitungan MSE, PSNR dan penyimpanan citra hasil.
3.1.3.1.Noising
Tahapan proses noising pada citra, yaitu: 1. Membaca citra inputan
2. Membaca nilai masukan mean dan atau variance 3. Memberi noise pada citra inputan
(41)
3.1.3.2. Deteksi Tepi Marr-Hildreth
Tahapan proses deteksi tepi citra menggunakan operator Marr-Hildreth, yaitu: 1. Mengubah citra RGB menjadi citra Grayscale
2. Melakukan konvolusi citra dengan Marr-Hildreth mask 3. Menghitung gradient magnitude
4. Memberikan nilai ambang (thresholding)
3.1.3.3. Deteksi Tepi Laplacian Of Gaussian
Tahapan proses deteksi tepi citra menggunakan operator LOG, yaitu: 1. Mengubah citra RGB menjadi citra Grayscale
2. Memanggil prosedur LOG
3.1.3.4. Deteksi Tepi Prewitt
Tahapan proses deteksi tepi citra menggunakan operator Marr-Hildreth, yaitu: 1. Mengubah citra RGB menjadi citra Grayscale
2. Melakukan konvolusi citra dengan Prewitt mask 3. Menghitung gradient magnitude
4. Memberikan nilai ambang (thresholding)
3.2. Pemodelan
Pada penelitian mengenai analisis pengaruh noise terhadap deteksi tepi ini digunakan UML sebagai bahasa pemodelan yang berfungsi untuk membantu merancang sistem tersebut. Model UML yang digunakan dalam penelitian ini yaitu use case diagram, sequence diagram, dan activity digaram.
(42)
3.2.1. Use Case Diagram
Use Case diagram menggambarkan interaksi antara sistem dengan pelaku. Diagram ini mendeskripsikan siapa saja yang menggunakan sistem dan bagaimana cara mereka berinteraksi dengan sistem. Use Case digambarkan hanya yang dilihat oleh aktor dan bukan bagaimana fungsi yang ada dalam sistem. Use case diagram bertujuan untuk menggambarkan bagaimana sistem terlihat bagi pengguna (user), sehingga pengguna sistem dapat mengerti mengenai kegunaan sistem yang akan dirancang. Use Case diagram pada sistem analisis pengaruh noise terhadap deteksi tepi dapat dilihat pada Gambar 3.2.
Gambar 3.2 Use Case Diagram Sistem Analisis Pengaruh Noise Terhadap Deteksi Tepi
Pada sistem analisis pengaruh noise terhadap deteksi tepi ini terdapat aktor yang memiliki pilihan untuk:
a. memilih jenis noise dan dilanjutkan dengan melakukan deteksi tepi citra b. melihat deskripsi program
Dokumentasi naratif pada proses pilih noise yang terdapat dalam use case diagram dilihat pada Tabel 3.1
(43)
Tabel 3.1 Dokumentasi Naratif Use Case Pilih Noise
Nama Use Case Pilih Noise
Aktor Pengguna Deskripsi Use Case mendeskripsikan halaman utama yang
dimulai dari pemilihan jenis noise dari Sistem Analisis Pengaruh Noise Terhadap Deteksi Tepi
Pre-Condition Ada di halaman utama
Typical course of event
Aksi Aktor Respon Sistem Langkah 1: Memilih
jenis noise yang tersedia dalam 4 menu yaitu:
1.
Gaussian-Speckle Noise
2.
Speckle-Gaussian Noise
3. Gaussian Noise
4. Speckle Noise
Langkah 3: Menginput citra dengan menekan button “Browse”
Langkah 2: Sistem menerima masukan dari pilihan noise dan masuk ke masing-masing pilihan.
Langkah 4: Sistem membaca file yang telah dimasukkan aktor.
Langkah 5: Menampilkan file yang telah dimasukkan
(44)
Langkah 6: Melakukan pemberian noise dengan memasukkan nilai mean dan atau variance sesuai dengan pilihan dan menekan button “Noising”
aktor.
Langkah 7: Sistem
melakukan proses noising pada citra.
Langkah 8: Menampilkan citra hasil noising.
Alternate course Aksi Aktor Respon Sistem
- -
Post Conditions Sistem selanjutnya melaksanakan tahapan deteksi
tepi
Dokumentasi naratif pada proses deteksi tepi yang terdapat dalam use case diagram dilihat pada Tabel 3.2
Tabel 3.2 Dokumentasi Naratif Use Case Deteksi Tepi
Nama Use Case Deteksi Tepi
Aktor Pengguna Deskripsi Use Case mendeskripsikan proses deteksi tepi citra
dari Sistem Analisis Pengaruh Noise Terhadap Deteksi Tepi
(45)
Typical course of event
Aksi Aktor Respon Sistem Langkah 1: Melakukan
deteksi tepi dengan menekan masing-masing button operator deteksi tepi yaitu Marr-Hildreth, Laplacian Of Gaussian dan Prewitt.
Langkah 3: Melakukan perhitungan MSE dan PSNR, dengan
menekan button “MSE, PSNR”
Langkah 5:Menyimpan citra hasil deteksi tepi dengan menekan button “save”
Langkah 2: Sistem menampilkan citra hasil deteksi tepi di masing-masing axes.
Langkah 4: Menampilkan nilai MSE dan nilai PSNR
Langkah 6: Sistem menunjukkan direktori penyimpanan citra hasil deteksi tepi kemudian menyimpannya.
Alternate course Aksi Aktor Respon Sistem
- -
Post Conditions Sistem siap melaksanakan tahapan deteksi tepi
(46)
Dokumentasi naratif pada proses deskripsi yang terdapat dalam use case diagram dilihat pada Tabel 3.3
Tabel 3.3 Dokumentasi Naratif Use Case Deskripsi
Nama Use Case Deskripsi Aktor Pengguna Deskripsi Use Case mendeskripsikan Sistem Analisis Pengaruh
Noise Terhadap Deteksi Tepi
Pre-Condition Memilih menu description
Typical course of event
Aksi Aktor Respon Sistem Langkah 1: Memilih
menu “Description”
Langkah 2: Sistem menampilkan halaman “Description”
Alternate course Aksi Aktor Respon Sistem
- -
Post Conditions Sistem siap melaksanakan tahapan tentang aplikasi
3.2.2. Sequence Diagram
Sequence diagram menunjukkan interaksi antara sejumlah object dalam urutan waktu. Diagram ini berfungsi untuk menunjukkan rangkaian pesan yang dikirim antara object juga interaksi antar object yang terjadi. Sequence diagram pada sistem analisis pengaruh noise terhadap deteksi tepi dapat dilihat pada Gambar 3.3.
(47)
Gambar 3.3 Sequence Diagram Tahap Awal Deteksi Tepi Citra
3.2.3. Activity Diagram
Activity diagram mengilustrasikan proses dan urutan aktivitas dalam sebuah proses. Activity diagram bertujuan untuk membantu memahami keseluruhan proses dan menggambarkan interaksi antara beberapa use case. Pada umumnya,
activity diagram digunakan sebagai model arus kerja dari suatu sistem. Activity
diagram pada sistem analisis pengaruh noise terhadap deteksi tepi dapat dilihat pada Gambar 3.4
(48)
Gambar 3.4 Activity Diagram Pada Sistem Analisis Pengaruh Noise Terhadap Deteksi Tepi
(49)
3.3. Pseudocode
Pseudocode adalah suatu algoritma yang untuk dapat menjelaskannya harus menggunakan bahasa tingkat tinggi. Bahasa tingkat tinggi adalah bahasa yang dimengerti manusia dan dapat digambarkan dengan mudah sehingga dapat dipahami oleh manusia itu sendiri.
3.3.1. Pseudocode Noising Pseudocode gaussian noise:
No. Pseudocode
1 citra_asli ← imread(fullfile(nama_path, nama_file)) 2 mean ← get str2num
3 variance ← get str2num
4 citra_gaussian ← imnoise (citra_asli, mean, variance)
Keterangan:
1. Membaca inputan citra. 2. Membaca inputan nilai mean. 3. Membaca inputan nilai variance. 4. Proses noising gaussian.
Pseudocode speckle noise:
No. Pseudocode
1 citra_asli ← imread(fullfile(nama_path, nama_file)) 2 variance ← get str2num
3 citra_speckle ← imnoise (citra_asli, variance)
Keterangan:
(50)
2. Membaca inputan nilai variance. 3. Proses noising speckle.
3.3.2. Pseudocode Operator Marr-Hildreth
No. Pseudocode
1 citra_asli ← imread(citra_noise) 2 Citra ← grayscale (citra_asli)
3 kernel ← deklarasi kernel generate kernel(n,θ) {Kernel Gaussian atau kernel LoG}
4 Citra_halus ← konvolusi(citra,kernel) 5 if kernel Gaussian then
Definisi Laplacian operator laplacian
Citra_laplacian ← konvolusi(citra,laplacian) 6 else
Citra_laplacian ← citra_halus end if
7 maxL ← 0
for all pixel i pada citra citra_laplacian do if citra_laplacian[i] > maxL then
maxL citra_laplacian[i] end if
end for
8 for all pixel i pada citra citra_laplacian, kecuali tepi do for semua pasangan (xp; yp) dari pasangan berlawanan p di citra_laplacian do
if (sign(citra_laplacian[xp]) ≠ sign(citra_laplacian[yp])) and (|citra_laplacian[xp] - citra_laplacian[yp]| > thZC) then Citra_hasil [i] 255
else
Citra_hasil [i] 0 end if
end for end for
9 return output image ← Citra_hasil
Keterangan:
1. Membaca inputan citra yang sudah diberi noise. 2. Melakukan grayscale pada citra inputan.
3. Deklarasi kernel (Gaussian atau LOG kernel). 4. Buat citra temporari untuk konvolusi kernel.
5. Jika menggunakan kernel Gaussian lakukan proses konvolusi citra_laplacian.
(51)
7. Menentukan arah tepian. 8. Proses Thresholding 9. Citra hasil.
3.3.3. Pseudocode Operator Laplacian Of Gaussian
Keterangan:
1. Membaca inputan citra yang sudah diberi noise. 2. Melakukan grayscale pada citra inputan.
3. Proses deteksi tepi LOG.
3.3.4. Pseudocode Operator Prewitt
No. Pseudocode
1 citra_asli ← imread(citra_noise) 2 citra ← grayscale (citra_asli)
3 Definisi operator_x dan operator_y Prewitt
gx ← konvolusi(citra,operator_x) gy ← konvolusi(citra,operator_y) 4 maxM ← 0
for all pixel i di citra do M[i] ← d
If M[i] > maxM then maxM ← M[i] end if
end for
5 for all pixel i di citra do if M[i] ≥ th x maxM then Citra_hasil [i] ← 255 else
Citra_hasil [i] ← 0 end if
end for
6 return output image ← Citra_hasil
No. Pseudocode
1 citra_asli ← imread(citra_noise) 2 citra_LOG ← grayscale (citra_asli) 4 citra_LOG ← edge(gray,'log')
(52)
Keterangan:
1. Membaca inputan citra yang sudah diberi noise. 2. Melakukan grayscale pada citra inputan.
3. Melakukan proses konvolusi citra. 4. Melakukan proses gradient magnitude.
5. Memberikan nilai threshold dan melakukan thresholding 6. Output citra hasil.
3.3.5. Pseudocode Menghitung Nilai MSE
No. Pseudocode
1 mse ← (double(citraAsli) - double(CitraHasil)) .^ 2 2 [x y] ← size(CitraHasil)
3 mseVal ← sum(mse(:)) / (x * y)
Keterangan:
1. Deklarasi rumus MSE.
2. Deklarasi ukuran matrix citra hasil. 3. Hitung nilai MSE.
3.3.6. Pseudocode Menghitung Nilai PSNR
No. Pseudocode
1 psnrVal ← 10 * log10( 255^2 / mseVal) 2 MSE ← mse
Keterangan:
1. Hitung nilai PSNR.
(53)
3.4. Perancangan Sistem
3.4.1. Perancangan Flowchart Sistem
Flowchart gambaran umum sistem analisis pengaruh noise pada citra terhadap kinerja metode deteksi tepi.
(54)
Flowchart pada Gambar 3.5 menjelaskan alur utama dari sistem. Sistem akan memerlukan inputan citra yang berformat bitmap atau *.bmp oleh user. Setelah itu user akan memilih jenis noise yang diinginkan dan berlanjut pada proses noising. Setelah noising maka akan ditampilkan citra yang sudah diberikan noise sesuai pilihan noise. Selanjutnya proses beralih ke deteksi tepi dimana citra hasil noising akan dideteksi tepi dan berlanjut pada proses analisis. Berikut sub flowchart untuk deteksi tepi.
Gambar 3.6 Proses Deteksi Tepi
Flowchart pada Gambar 3.6 menjelaskan alur sub sistem pada deteksi tepi. Mengambil citra hasil noising kemudian melakukan proses pendeteksi tepian dengan tiga operator deteksi tepi yaitu operator The Marr-Hildreth, Laplacian Of
(55)
Gaussian dan Prewitt. Selanjutnya masing-masing akan menampilkan citra hasil deteksi tepi.
Tahap selanjutnya adalah proses analisis dengan sub flowchart sebagai berikut:
Gambar 3.7Proses Analisis dari Sistem Analisis Pengaruh Noise Pada Citra Terhadap Kinerja Metode Deteksi Tepi.
(56)
Flowchart pada Gambar 3.7 menjelaskan alur sub sistem pada analisis, dimana dilakukan perhitungan nilai MSE dan PSNR tiap-tiap citra hasil deteksi tepi dan menampilkannya.
3.4.2. Perancangan Antarmuka (Interface)
Sistem analisis pengaruh noise terhadap deteksi tepi ini dirancang dengan menggunakan bahasa pemrograman MATLAB 7.5.0 (R2007b). Perancangan antarmuka atau interface ini bertujuan untuk memudahkan interaksi antara manusia dengan komputer sehingga manusia dapat menggunakan sistem dengan baik dan mudah untuk digunakan.
3.4.2.1. FormHome
Form Home merupakan tampilan utama dalam sistem analisis pengaruh noise terhadap deteksi tepi ini. Berikut merupakan tampilan form home dapat dilihat pada Gambar 3.8
Gambar 3.8 Form Home
9 8 7
6 5
4
3 2
(57)
Keterangan:
1. Menu untuk deskripsi system. 2. Judul aplikasi.
3. Tampil logo Fasilkom-TI USU.
4. Tampil pembuat program dengan identitas nama dan nim. 5. Tombol untuk pilihan noise Gaussian-Speckle Noise. 6. Tombol untuk pilihan noise Speckle-Gaussian Noise. 7. Tombol untuk pilihan noise Gaussian Noise.
8. Tombol untuk pilihan noise Speckle Noise. 9. Tombol exit.
3.4.2.2. Form Deskripsi
Form Deskripsi merupakan tampilan untuk deskripsi program sistem analisis
pengaruh noise terhadap deteksi tepi ini. Berikut merupakan tampilan form deskripsi dapat dilihat pada Gambar 3.9
(58)
3.4.2.3. Form Gaussian-Speckle Noise
Form Gaussian-Speckle Noise merupakan tampilan untuk pilihan kombinasi gaussian dan speckle noise pada sistem analisis pengaruh noise terhadap deteksi tepi ini. Berikut merupakan tampilan form Gaussian-Speckle Noise dapat dilihat pada Gambar 3.10
Gambar 3.10 Form Gaussian-Speckle Noise Keterangan:
1. Tombol browse, berfungsi untuk mencari inputan citra. 2. Axes_browse, berfungsi untuk menampilkan citra inputan.
3. Proses gaussian noise, dimana user akan memberikan nilai mean dan variance dan kemudian melakukan noising dengan tombol Noising.
4. Proses speckle noise, dimana user akan memberikan nilai variance dan kemudian melakukan noising dengan tombol Noising.
5. Axes_GSN, berfungsi untuk menampilkan citra hasil noise.
6. Axes_histoAsli, berfungsi untuk menampilkan histogram citra asli atau citra inputan.
7. Axes_MH1, berfungsi untuk menampilkan citra hasil deteksi tepi Marr-Hildreth
(59)
8. Axes_LOG1, berfungsi untuk menampilkan citra hasil deteksi tepi Laplacian Of Gaussian.
9. Axes_P1, berfungsi untuk menampilkan citra hasil deteksi tepi Prewitt. 10.Proses deteksi tepi Marr-Hildreth, dilengkapi dengan tombol MSE, PSNR
dan Save.
11.Proses deteksi tepi Laplacian Of Gaussian, dilengkapi dengan tombol MSE, PSNR dan Save.
12.Proses deteksi tepi Prewitt, dilengkapi dengan tombol MSE, PSNR dan Save.
13.Axes_histoMH, berfungsi untuk menampilkan histogram citra hasil dari deteksi tepi Marr-Hildreth.
14.Axes_histoLOG, berfungsi untuk menampilkan histogram citra hasil dari deteksi tepi Laplacian Of Gaussian.
15.Axes_histoP, berfungsi untuk menampilkan histogram citra hasil dari deteksi tepi Prewitt.
3.4.2.4. Form Speckle-Gaussian Noise
Form Speckle-Gaussian Noise merupakan tampilan untuk pilihan kombinasi speckle dan gaussian noise pada sistem analisis pengaruh noise terhadap deteksi tepi ini. Berikut merupakan tampilan form Speckle-Gaussian Noise dapat dilihat pada Gambar 3.11
(60)
Gambar 3.11 Form Speckle-Gaussian Noise
Keterangan:
1. Tombol browse, berfungsi untuk mencari inputan citra. 2. Axes_browse, berfungsi untuk menampilkan citra inputan.
3. Proses speckle noise, dimana user akan memberikan nilai variance dan kemudian melakukan noising dengan tombol Noising.
4. Proses gaussian noise, dimana user akan memberikan nilai mean dan variance dan kemudian melakukan noising dengan tombol Noising.
5. Axes_SGN, berfungsi untuk menampilkan citra hasil noise.
6. Axes_histoAsli, berfungsi untuk menampilkan histogram citra asli atau citra inputan.
7. Axes_MH2, berfungsi untuk menampilkan citra hasil deteksi tepi Marr-Hildreth
8. Axes_LOG2, berfungsi untuk menampilkan citra hasil deteksi tepi Laplacian Of Gaussian.
9. Axes_P2, berfungsi untuk menampilkan citra hasil deteksi tepi Prewitt. 10.Proses deteksi tepi Marr-Hildreth, dilengkapi dengan tombol MSE, PSNR
(61)
11.Proses deteksi tepi Laplacian Of Gaussian, dilengkapi dengan tombol MSE, PSNR dan Save.
12.Proses deteksi tepi Prewitt, dilengkapi dengan tombol MSE, PSNR dan Save.
13.Axes_histoMH, berfungsi untuk menampilkan histogram citra hasil dari deteksi tepi Marr-Hildreth.
14.Axes_histoLOG, berfungsi untuk menampilkan histogram citra hasil dari deteksi tepi Laplacian Of Gaussian.
15.Axes_histoP, berfungsi untuk menampilkan histogram citra hasil dari deteksi tepi Prewitt.
3.4.2.5. Form Gaussian Noise
Form Gaussian Noise merupakan tampilan untuk pilihan gaussian noise pada sistem analisis pengaruh noise terhadap deteksi tepi ini. Berikut merupakan tampilan form Gaussian Noise dapat dilihat pada Gambar 3.12
(62)
Keterangan:
1. Tombol browse, berfungsi untuk mencari inputan citra. 2. Axes_browse, berfungsi untuk menampilkan citra inputan.
3. Proses gaussian noise, dimana user akan memberikan nilai mean dan variance dan kemudian melakukan noising dengan tombol Noising.
4. Axes_GN, berfungsi untuk menampilkan citra hasil noise.
5. Axes_histoAsli, berfungsi untuk menampilkan histogram citra asli atau citra inputan.
6. Axes_MH3, berfungsi untuk menampilkan citra hasil deteksi tepi Marr-Hildreth
7. Axes_LOG3, berfungsi untuk menampilkan citra hasil deteksi tepi Laplacian Of Gaussian.
8. Axes_P3, berfungsi untuk menampilkan citra hasil deteksi tepi Prewitt. 9. Proses deteksi tepi Marr-Hildreth, dilengkapi dengan tombol MSE, PSNR
dan Save.
10.Proses deteksi tepi Laplacian Of Gaussian, dilengkapi dengan tombol MSE, PSNR dan Save.
11.Proses deteksi tepi Prewitt, dilengkapi dengan tombol MSE, PSNR dan Save.
12.Axes_histoMH, berfungsi untuk menampilkan histogram citra hasil dari deteksi tepi Marr-Hildreth.
13.Axes_histoLOG, berfungsi untuk menampilkan histogram citra hasil dari deteksi tepi Laplacian Of Gaussian.
14.Axes_histoP, berfungsi untuk menampilkan histogram citra hasil dari deteksi tepi Prewitt.
(63)
3.4.2.6. Form Speckle Noise
Form Speckle Noise merupakan tampilan untuk pilihan speckle noise pada sistem analisis pengaruh noise terhadap deteksi tepi ini. Berikut merupakan tampilan form Speckle-Gaussian Noise dapat dilihat pada Gambar 3.13
Gambar 3.13 Form Speckle Noise
Keterangan:
1. Tombol browse, berfungsi untuk mencari inputan citra. 2. Axes_browse, berfungsi untuk menampilkan citra inputan.
3. Proses speckle noise, dimana user akan memberikan nilai variance dan kemudian melakukan noising dengan tombol Noising.
4. Axes_SN, berfungsi untuk menampilkan citra hasil noise.
5. Axes_histoAsli, berfungsi untuk menampilkan histogram citra asli atau citra inputan.
6. Axes_MH4, berfungsi untuk menampilkan citra hasil deteksi tepi Marr-Hildreth
7. Axes_LOG4, berfungsi untuk menampilkan citra hasil deteksi tepi Laplacian Of Gaussian.
(64)
8. Axes_P4, berfungsi untuk menampilkan citra hasil deteksi tepi Prewitt. 9. Proses deteksi tepi Marr-Hildreth, dilengkapi dengan tombol MSE, PSNR
dan Save.
10.Proses deteksi tepi Laplacian Of Gaussian, dilengkapi dengan tombol MSE, PSNR dan Save.
11.Proses deteksi tepi Prewitt, dilengkapi dengan tombol MSE, PSNR dan Save.
12.Axes_histoMH, berfungsi untuk menampilkan histogram citra hasil dari deteksi tepi Marr-Hildreth.
13.Axes_histoLOG, berfungsi untuk menampilkan histogram citra hasil dari deteksi tepi Laplacian Of Gaussian.
14.Axes_histoP, berfungsi untuk menampilkan histogram citra hasil dari deteksi tepi Prewitt.
(65)
BAB IV
IMPLEMENTASI DAN PENGUJIAN
4.1. Implementasi
Sistem analisis pengaruh noise terhadap deteksi tepi ini dibangun dengan menggunakan bahasa pemrograman MATLAB 7.5.0 (R2007b). Pada sistem ini terdapat 6 form yang digunakan yang mana terdiri dari form home, form deskripsi, form Gaussian-Speckle Noise, form speckle-gaussian noise, form gaussian noise dan form speckle noise.
4.1.1. FormHome
Form Home merupakan tampilan utama dalam sistem analisis pengaruh noise terhadap deteksi tepi ini. Pada form ini terdapat keterangan judul skripsi, nama dan nim penulis skripsi, serta menu sistem yang membantu user (pengguna) menggunakan sistem ini. Menu sistem itu adalah deskripsi program ini. Selain itu juga terdapat tombol-tombol pilihan noise. Berikut ini tampilan dari form home.
(66)
4.1.2. Form Deskripsi
Form deskripsi ini merupakan form yang berisi penjelasan dari sistem ini.
Tampilan form deskripsi dapat dilihat pada Gambar 4.2.
Gambar 4.2. Form Deskripsi
4.1.3. Form Gaussian-Speckle Noise
Form Gaussian-Speckle Noise ini merupakan tampilan untuk pilihan kombinasi gaussian dan speckle noise pada sistem analisis pengaruh noise terhadap deteksi tepi ini. Dimana citra dimasukkan dengan tombol browse dan kemudian dilakukan proses noising terhadap citra dengan memberikan gaussian noise terlebih dahulu kemudian citra yang sudah ada noise Gaussian diberikan lagi noise speckle. Maka didapat citra dengan kombinasi citra gaussian dan speckle noise. Proses selanjutnya adalah deteksi tepi dengan 3 operator yaitu Marr-Hildreth, Laplacian Of Gaussian dan Prewitt. Kemudian dilakukan perhitungan MSE dan PSNR.
(67)
Berikut merupakan tampilan form Gaussian-Speckle Noise dapat dilihat pada Gambar 4.3 dan simulasinya pada Gambar 4.4.
.
Gambar 4.3. FormGaussian-Speckle Noise
(68)
4.1.4. Form Speckle-Gaussian Noise
Sama halnya dengan Gaussian-Speckle Noise, hanya saja urutan kombinasinya dibalik. Form Speckle-Gaussian Noise ini merupakan tampilan untuk pilihan kombinasi speckle dan gaussian noise pada sistem analisis pengaruh noise terhadap deteksi tepi ini. Dimana citra dimasukkan dengan tombol browse dan kemudian dilakukan proses noising terhadap citra dengan memberikan speckle noise terlebih dahulu kemudian citra yang sudah ada noise speckle diberikan lagi noise gaussian. Maka didapat citra dengan kombinasi citra speckle dan gaussian
noise. Tahap proses selanjutnya sama dengan Gaussian-Speckle Noise
sebelumnya. Berikut merupakan tampilan form Speckle-Gaussian Noise dapat dilihat pada Gambar 4.5 dan simulasinya pada Gambar 4.6.
(69)
Gambar 4.6. Form simulasi Speckle-Gaussian Noise
4.1.5. Form Gaussian Noise
Pada form Gaussian Noise ini hanya memberikan gaussian noise pada citra inputan. Dimana citra dimasukkan dengan tombol browse dan kemudian dilakukan proses noising terhadap citra dengan memberikan noise gaussian. Maka didapat citra gaussian noise. Proses selanjutnya adalah deteksi tepi dengan 3 operator yaitu Marr-Hildreth, Laplacian Of Gaussian dan Prewitt. Kemudian dilakukan perhitungan MSE dan PSNR. Berikut merupakan tampilan form Gaussian Noise dapat dilihat pada Gambar 4.7 dan simulasinya pada Gambar 4.8.
(70)
Gambar 4.7. Form Gaussian Noise
(71)
4.1.6. Form Speckle Noise
Pada form Speckle Noise ini hanya memberikan speckle noise pada citra inputan. Dimana citra dimasukkan dengan tombol browse dan kemudian dilakukan proses noising terhadap citra dengan memberikan noise speckle. Maka didapat citra speckle noise. Proses selanjutnya adalah deteksi tepi dengan 3 operator yaitu Marr-Hildreth, Laplacian Of Gaussian dan Prewitt. Kemudian dilakukan perhitungan MSE dan PSNR. Berikut merupakan tampilan form Speckle Noise dapat dilihat pada Gambar 4.9 dan simulasinya pada Gambar 4.10.
(72)
Gambar 4.10. Form Simulasi Speckle Noise
4.2. Pengujian
Pengujian sistem akan dilakukan untuk mengetahui apakah ada pengaruh noise terhadap kinerja metode deteksi tepi dan seberapa besar nilai mean dan variance pada tiap-tiap jenis noise yang dapat mempengaruhinya. Pengujian dilakukan pada citra berformat *.bmp (bitmap). Pengujian dibedakan pada tiap-tiap jenis noise.
4.2.1. Pengujian Gaussian-Speckle Noise
Ketika aplikasi dijalankan, maka dipilih tombol Gaussian-Speckle Noise pada form home. Maka sistem akan masuk pada form Gaussian-Speckle Noise. Selanjutnya input citra dengan tombol browse dan sistem otomatis hanya akan menerima citra dengan format .bmp. Proses tersebut dapat dilihat pada Gambar 4.11 dan 4.12.
(73)
Gambar 4.11. Pilih Tombol Gaussian-Speckle Noise
Gambar 4.12. Browse Citra .bmp Pada FormGaussian-Speckle Noise
Berikutnya dilakukan proses noising atau pemberian noise pada citra inputan. Sebagai contoh, pada gaussian noise diberikan parameter dengan nilai mean 0.01 dan variance 0.01. Pada speckle noise parameter variance bernilai 0.01 juga. Maka hasilnya dapat dilihat pada Gambar 4.13.
(74)
Gambar 4.13. Tampilan Proses Noising dan Deteksi Tepi Pada Form Gaussian-Speckle Noise
Dari gambar di atas, maka diperoleh nilai MSE dan PSNR masing-masing operator deteksi tepi sebagai berikut.
Tabel 4.1 Perbandingan nilai MSE dan PSNR masing-masing operator deteksi tepi
Marr-Hildreth Laplacian Of Gaussian Prewitt
MSE PSNR MSE PSNR MSE PSNR
0.0108643 67.7708 0.0145721 0.474826 0.00862122 0.474379
Untuk melihat seberapa besar pengaruh noise pada Gaussian-Speckle Noise ini, dilakukan sampel dengan beberapa pengujian dengan nilai mean dan variance berkala mulai dari 0 hingga 1. Sesuai dengan batasan masalah, bilangan ini diambil karena jika nilai mean maupun variance yang melebihi angka 1 maka citra sudah tidak dapat lagi diidentifikasi dalam proses deteksi tepi. M mempresentasikan mean dan V mempresentasikan variance. MH untuk
(75)
Marr-Ci
Hildreth, pada citra
Tabel
itra *.bmp
LOG untuk ‘snail.bmp
l 4.2 Perban
Gaussia
M
0 0
0.01 0
0.05 0
0.1 0
0.5 0
k Laplacian
’. Hasilnya
ndingan sa
an Spec
V V
0
.01 0.01
.05 0.05
.1 0.1
.5 0.5
n Of Gaus seperti tabe
ampel pada
ckle
V
ssian dan P el berikut.
a simulasi G
MH
P untuk Pre
Gaussian-Sp
LOG
ewitt. Dilak
peckle Nois kukan
se
(1)
citraAsli=rgb2gray(getimage(handles.axes_browse)); CitraHasil = double(getimage(handles.axes_LOG4)); [a b ]=size(citraAsli)
[c d]=size(CitraHasil)
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.edit_PSNR2,'String',psnrval);
function edit_MSE2_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function edit_MSE2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit_PSNR2_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function edit_PSNR2_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in btn_MSE3.
function btn_MSE3_Callback(hObject, eventdata, handles) citraAsli=rgb2gray(getimage(handles.axes_browse)); citraAsli=double(edge(citraAsli,'prewitt'));
CitraHasil = double(getimage(handles.axes_P4)); [a b ]=size(citraAsli)
[c d]=size(CitraHasil)
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.edit_MSE3,'String',mseval);
% --- Executes on button press in btn_PSNR3.
function btn_PSNR3_Callback(hObject, eventdata, handles) citraAsli=rgb2gray(getimage(handles.axes_browse));
CitraHasil = double(getimage(handles.axes_P4)); [a b ]=size(citraAsli)
[c d]=size(CitraHasil)
[psnrval mseval] = MSE_PSNR(citraAsli,CitraHasil); set(handles.edit_PSNR3,'String',psnrval);
function edit_MSE3_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function edit_MSE3_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function edit_PSNR3_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
(2)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in btn_save1.
function btn_save1_Callback(hObject, eventdata, handles) [filename,pathname] = uiputfile(...
{'*.bmp;*','File Image (*.bmp)';'*.*','All File (*.*)'},'Save Image');
NamaFile = strcat(pathname,'\',filename) [a a]=size(NamaFile)
if (a~=1)
axes(handles.axes_MH4);
Citra = getimage(handles.axes_MH4); imwrite(Citra,filename);
else
return
end
% --- Executes on button press in btn_save2.
function btn_save2_Callback(hObject, eventdata, handles) [filename,pathname] = uiputfile(...
{'*.bmp;*','File Image (*.bmp)';'*.*','All File (*.*)'},'Save Image');
NamaFile = strcat(pathname,'\',filename) [a a]=size(NamaFile)
if (a~=1)
axes(handles.axes_LOG4);
Citra = getimage(handles.axes_LOG4); imwrite(Citra,filename);
else
return
end
% --- Executes on button press in btn_save3.
function btn_save3_Callback(hObject, eventdata, handles) [filename,pathname] = uiputfile(...
{'*.bmp;*','File Image (*.bmp)';'*.*','All File (*.*)'},'Save Image');
NamaFile = strcat(pathname,'\',filename) [a a]=size(NamaFile)
if (a~=1)
axes(handles.axes_P4);
Citra = getimage(handles.axes_P4); imwrite(Citra,filename);
else
return
end
% --- Executes on button press in btn_browse.
function btn_browse_Callback(hObject, eventdata, handles)
[nama_file,nama_path] = uigetfile({'*.bmp','File bmp (*.bmp)'},'Buka File Citra');
if ~isequal(nama_file,0)
handles.citra=imread(fullfile(nama_path,nama_file)); guidata(hObject,handles);
axes(handles.axes_browse); imshow(handles.citra); axes(handles.axes_browse);
(3)
imshow(handles.citra);
axes(handles.axes_histoAsli); imhist(handles.citra(:,:,1)); imhist(handles.citra(:,:,2)); imhist(handles.citra(:,:,3));
else return;
end;
function edit_varianceS_Callback(hObject, eventdata, handles)
% --- Executes during object creation, after setting all properties.
function edit_varianceS_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% --- Executes on button press in btn_noisingS.
function btn_noisingS_Callback(hObject, eventdata, handles) vg = length(get(handles.edit_varianceS, 'String'));
if (vg == 0)
h = msgbox('Variance harus diinput!');
else
citra_asli=handles.citra;
variance=str2num(get(handles.edit_varianceS,'String')); citra_speckle = imnoise(citra_asli,'speckle',variance); axes(handles.axes_SN);
imshow(citra_speckle);
handles.citra2=citra_speckle; guidata(hObject,handles);
end
%
-function backmenu_Callback(hObject, eventdata, handles) AiSoftware
close SpeckleNoise;
% --- Executes on button press in btn_ED_MH.
function btn_ED_MH_Callback(hObject, eventdata, handles) citra_asli=handles.citra2;
mh_output=deteksiMarrHil(citra_asli); axes(handles.axes_MH4);
imshow(mh_output);
citraGray = rgb2gray(handles.citra2); citrahistoMH = edge(citraGray,'marr'); axes(handles.axes_histoMH);
imhist(citrahistoMH);
% --- Executes on button press in btn_ED_LOG.
function btn_ED_LOG_Callback(hObject, eventdata, handles) citra_asli=handles.citra2;
gray=rgb2gray(citra_asli); ED_LOG=edge(gray,'log'); axes(handles.axes_LOG4); imshow(ED_LOG);
citraGray = rgb2gray(handles.citra2); citrahistoLOG = edge(citraGray,'log'); axes(handles.axes_histoLOG);
(4)
% --- Executes on button press in btn_ED_P.
function btn_ED_P_Callback(hObject, eventdata, handles) citra_asli=handles.citra2;
citraP=rgb2gray(citra_asli); [x y]=size(citraP);
%Prewitt
H1 = [-1 0 1; -1 0 1; -1 0 1]; H2 = [-1 -1 -1; 0 0 0; 1 1 1]; fx = conv2(citraP,double(H1)); fy = conv2(citraP,double(H2)); %Arah Tepian
[x,y]=size(fx); count=0; avg=0; for i=1:1:x for j=1:1:y
output(i,j)=sqrt(fx(i,j)*fx(i,j)+fy(i,j)*fy(i,j)); count=count+output(i,j);
end
end
avg=4*count/(x*y); for i=1:1:x
for j=1:1:y
if output(i,j)<avg output(i,j)=0; else output(i,j)=255; end
end
end
prewitt_output=edge(citraP,'prewitt'); axes(handles.axes_P4);
imshow(prewitt_output);
citraGray = rgb2gray(handles.citra2); citrahistoP = edge(citraGray,'prewitt'); axes(handles.axes_histoP);
imhist(citrahistoP);
deteksiMarrHil.m
function hasil=deteksiMarrHil(citra_asli); citraMH=rgb2gray(citra_asli);
[x y]=size(citraMH); mh_output=zeros(x,y); %MarrHildreth sigma=2;
m=ceil(sigma*3)*2+1;
h=fspecial('log',m,sigma); h=h-sum(h(:))/(m^2);
diff2=zeros(x,y); dt=ceil((m-1)/2); for i=1:x
(5)
for j=1:y for k=1:m for l=1:m
xp=i-k+1+dt; yp=j-l+1+dt;
if((xp>=1)&&(xp<=x)&&(yp>=1)&&(yp<=y)) diff2(i,j)=diff2(i,j)+h(k,l)*double(citraMH(xp,yp)); end
end
end
end
end
th=0.75*mean2(abs(diff2(2:x-1,2:y-1))); for i=2:x-1
for j=2:y-1
if(diff2(i,j)<0)
if ((diff2(i,j-1)>0)&&(diff2(i,j-1)-diff2(i,j)>th)) mh_output(i,j)=1; end
if ((diff2(i,j+1)>0)&&(diff2(i,j+1)-diff2(i,j)>th)) mh_output(i,j)=1; end
if ((diff2(i-1,j)>0)&&(diff2(i-1,j)-diff2(i,j)>th)) mh_output(i,j)=1; end
if ((diff2(i+1,j)>0)&&(diff2(i+1,j)-diff2(i,j)>th)) mh_output(i,j)=1; end
elseif(diff2(i,j)==0) if
((diff2(i,j-1)<0)&&(diff2(i,j+1)>0)&&(diff2(i,j+1)-diff2(i,j-1)>2*th)) mh_output(i,j)=1; end
if
((diff2(i,j-1)>0)&&(diff2(i,j+1)<0)&&(diff2(i,j-1)-diff2(i,j+1)>2*th)) mh_output(i,j)=1; end
if
((diff2(i-1,j)<0)&&(diff2(i+1,j)>0)&&(diff2(i+1,j)-diff2(i-1,j)>2*th)) mh_output(i,j)=1; end
if ((diff2(i-1,j)>0)&&(diff2(i+1,j)<0)&&(diff2(i-1,j)-diff2(i+1,j)>2*th)) mh_output(i,j)=1; end
end
end
end
hasil=mh_output;
end
CURRICULUM VITAE
Nama
:
Nur
Ainun
Alamat
: Jl. Pusaka No.921, Pasar XI Tembung, Medan, 20371.
Telp/Hp :
085760933254
:
[email protected]
(6)