SKRIPSI
Disusun oleh :
ADE SATRYA PUTRA
NPM. 0934110145
J URUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL
"
VETERAN
"
J AWA TIMUR SURABAYA
IMPLEMENTASI FILTERING CITRA DIGITAL
PERMUKAAN BUMI 24bit MENGGUNAKAN GAUSSIAN FILTERING
SKRIPSI
Diajukan Untuk Memenuhi Sebagai Persyaratan Dalam Memperoleh Gelar Sarjana Komputer
Jurusan Teknik Informatika
Disusun oleh :
ADE SATRYA PUTRA
NPM. 0934110145
J URUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
J AWA TIMUR
SURABAYA
2013
Hak Cipta © milik UPN "Veteran" Jatim :
IMPLEMENTASI FILTERING CITRA DIGITAL
PERMUKAAN BUMI 24bit MENGGUNAKAN GAUSSIAN FILTERING
Disusun Oleh :
ADE SATRYA PUTRA
NPM. 0934110145
Telah disetujui untuk mengikuti Ujian Negar a Lisan Gelombang Tahun Akademik 2012/2013
Pembimbing Utama Pembimbing Pendamping
Basuki Rahmat, S.si,M.T Intan Yuniar Purbasari, S.Kom.M.Sc NPT. 3 6907 06 0209 1 NPT. 3 8006 04 0198 1
Mengetahui,
Ketua J urusan Teknik Infor matika Fakultas Teknologi Industri UPN ”Veteran” J awa Timur
SKRIPSI
IMPLEMENTASI FILTERING CITRA DIGITAL PERMUKAAN
BUMI 24bit MENGGUNAKAN GAUSSIAN FILTERING
Disusun Oleh :
ADE SATRYA PUTRA NPM. 0934110145
Telah dipertahankan di hadapan dan diterima oleh Tim Penguji Skr ipsi J ur usan Teknik Infor matika Fakultas Teknologi Industri
Univer sitas Pembangunan Nasional ”Veteran” J awa Timur Pada Tanggal 31 J anuar i 2013
Pembimbing : Tim Penguji :
1. 1.
Basuki Rahmat, S.si,M.T Budi Nugroho S.Kom,M.Kom NPT. 3 6907 06 0209 1 NPT. 3800 9050 2051
2. 2.
Intan Yuniar Purbasari, S.Kom.M.Sc Ir.R Purnomo Edi Sasongko, MP.
NPT. 3 8006 04 0198 1 NPT. 19640714 198803 1 001
3.
Intan Yuniar Purbasari, S.Kom.M.Sc NPT. 3 8006 04 0198 1
Mengetahui,
Dekan Fakultas Teknologi Industri
Univer sitas Pembangunan Nasional ”Veteran” J awa Timur
Ir. SUTIYONO, MT. NIP. 19600713 198703 1001
Hak Cipta © milik UPN "Veteran" Jatim :
PANI TI A UJ I AN SKRIPSI / KOMPREHENSI F
KETERANGAN REVISI Mahasiswa di bawah ini :
Nama : ADE SATRYA PUTRA
NPM : 0934110145 Jurusan : Teknik Informatika
Telah mengerjakan revisi/ tidak ada revisi*) pra rencana (design)/ skripsi ujian lisan gelombang VI, TA 2012/2013 dengan judul:
”
IMPLEMENTASI FILTERING CITRA DIGITAL PERMUKAAN BUMI 24bit MENGGUNAKAN GAUSSIAN FILTERING”
Surabaya, 17 April 2013 Dosen Penguji yang memerintahkan revisi:
1) Budi Nugroho S.Kom,M.Kom NPT. 3800 9050 2051
2) Ir.R. Purnomo Edi Sasongko, MP NPT. 19640714 198803 1 001 3) Intan Yuniar Purbasari, S.Kom.M.Sc
NPT. 3800 6040 1981
Mengetahui,
Pembimbing Utama Pembimbing Pendamping
Basuki Rahmat, S.si,M.T Intan Yuniar Purbasari, S.Kom.M.Sc NPT. 3800 6040 1981 NPT. 3 6907 06 0209 1
{
}
{
}
i
Judul : IMPLEMENTASI FILTERING CITRA DIGITAL
PERMUKAAN BUMI 24bit MENGGUNAKAN
GAUSSIAN FILTERING Pembimbing I : Basuki Rahmat S.si,M.T. Pembimbing II : Intan Yuniar S.Kom,M.sc Penyusun : Ade Satrya Putra
ABSTRAK
Menghilangkan noise dalam sebuah citra image (gambar) yang memiliki ketajaman berlebih atau yang berkaitan dengan proses transfer data sangat dibutuhkan untuk mendapatkan hasil citra gambar yang sesuai dengan yang dibutuhkan, pada aplikasi ini permasalahan diselesaikan dengan metode Gaussian filter dengan dukungan pemilihan nilai sigma dan ukuran mask secara manual dari yang telah disediakan dalam aplikasi untuk mendapat hasil yang diperlukan dengan interface yang mudah dioprasikan dan user juga dapat memahami sistem, mengetahui keunggulan dan kelemahan dalam bahasan pada tugas akhir ini.
Dengan permasalahan yang ada, membentuk sebuah tujuan yang akan dicapai pada tugas akhir ini yaitu membuat aplikasi filtering menggunakan Gaussian filter dengan matlab 10b didukung dengan GUI untuk mempermudah interaksi aplikasi dengan (user).
Aplikasi Gaussian filter yang telah terbentuk dilakuakn sebuah ujicoba yang dilakukan, didapatkan kombinasi nilai sigma 5 (lima) dengan ukuran mask 3x3 untuk mendapatkan hasil yang sesuai dengan permasalahan yang ada pada gambar berukuran 512x320.
Kata Kunci : Image, Citra , Gaussian filter, GUI, Nilai sigma, Ukuran mask.
Hak Cipta © milik UPN "Veteran" Jatim :
Syukur Alhamdulillaahi rabbil ‘alamin terucap ke hadirat Allah SWT atas segala limpahan Kekuatan-Nya sehingga dengan segala keterbatasan waktu, tenaga, pikiran dan keberuntungan yang dimiliki peneliti, akhirnya peneliti dapat menyelesaikan Skripsi yang berjudul “Implementasi Filtering Citr a Digital Per mukaan Bumi 24bit Menggunakan Gaussian Filter” tepat waktu.
Skripsi dengan beban 4 SKS ini disusun guna diajukan sebagai salah satu syarat untuk menyelesaikan program Strata Satu (S1) pada jurusan Teknik Informatika, Fakultas Teknologi Industri, UPN ”VETERAN” Jawa Timur.
Melalui Skripsi ini peneliti merasa mendapatkan kesempatan emas untuk memperdalam ilmu pengetahuan yang diperoleh selama di bangku perkuliahan, terutama berkenaan tentang pengolahan citra digital. Namun, penyusun menyadari bahwa Skripsi ini masih jauh dari sempurna. Oleh karena itu penyusun sangat mengharapkan saran dan kritik dari para pembaca untuk pengembangan aplikasi lebih lanjut.
Surabaya, 12 April 2013
iii
UCAPAN TERIMA KASIH
Puji syukur ke pada Allah SWT atas segala rahmat kasihnya dan atas limpahan rahmat-Nya sehingga dengan keterbatasan kami baik waktu, tenaga, dan pikiran yang kami miliki, akhirnya kami dapat menyelesaikan laporan Tugas Akhir ini tepat pada waktunya.
Pembuatan laporan Tugas Akhir ini tidak lepas dari bantuan dan kerja sama banyak pihak yang terkait oleh penulis. Oleh karena itu dengan segala kerendahan hati, penulis ingin mengucapkan terima kasih sebesar-besarnya kepada :
1. Bapak Prof. Dr. Ir. Teguh Soedarto, MP selaku Rektor Universitas Pembangunan Nasional “Veteran” Jawa Timur.
2. Bapak Sutiyono, MT selaku Dekan Fakultas Teknologi Industri UPN “Veteran” Jawa Timur.
3. Ibu Dr.Ir.Ni Ketut Sari, MT Kepala Jurusan Teknik Informatika, FTI UPN “VETERAN” Jawa Timur.
4. Bapak Firza Prima Aditiawan, S.Kom. Selaku PIA Tugas Akhir Teknik Informatika UPN “Veteran” Jawa Timur.
5. Bapak Basuki Rahmat, S.si, M.T. dan ibu Intan Yuniar, S.Kom, M.sc selaku dosen pembimbing Tugas Akhir.
6. Kedua orang tua dan keluarga saya tercinta atas motivasi dan doanya kepada saya dalam menyelesaikan laporan Tugas Akhir ini.
7. Tidak lupa saya ucapkan banyak terima kasih kepada teman-teman yang tidak bisa kami sebutkan satu-persatu dan Annisa Dyan Triarsih
dalam mendukung saya dalam menyelesaikan Tugas Akhir ini.
Hak Cipta © milik UPN "Veteran" Jatim :
ABSTRAK ... i
KATA PENGANTAR ... ii
UCAPAN TERIMA KASIH ... iii
DAFTAR ISI ... iv
DAFTAR GAMBAR ... viii
DAFTAR TABEL . ... ix
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang... ... 1
1.2 Perumusan Masalah... ... 2
1.3 Batasan Masalah... ... 3
1.4 Tujuan... ... 3
1.5 Manfaat... ... 4
1.6 Metodologi Pembuatan skripsi... 4
1.7 Sistematika Penulisan... ... 6
BAB II TINJ AUAN PUSTAKA ... 8
2.1 Definisi Noise ... 8
2.1.1Intensity Filtering... 9
2.1.2 High pass intensity filtering... 9
2.1.3 Low pass intensity filtering... 10
2.2 Penjelasan Umum Tentang Citra ... 10
v
2.3.1 Mean filtering... ... 11
2.3.2 Modus filtering...,... 12
2.3.3 Gaussian filtering... 13
2.4 Matlab... 16
2.4.1 Beberapa Bagian dari Window pada tool... 17
2.4.2 Current Directory... 17
2.4.3 Command History... 17
2.3.4 Command Window... 17
2.4.5 Workspace... 17
2.4.6 Getting Help... 18
2.4.7 Interupting dan Terminating dalam... 18
2.4.8 Variabel Pada... 18
2.4.9 Matriks... 19
2.4.10 Operator Aritmatika... 21
2.4.11 Fungsi Matematika lainnya... 21
2.4.12 M File... 22
2.4.13 Fungsi... 22
2.4.14 Flow Control... 23
2.4.15 If, Else, Elseif... 23
2.4.16 Switch... 24
2.4.17 While... 24
2.4.18 For... 25
2.4.19 Operator... 26
Hak Cipta © milik UPN "Veteran" Jatim :
2.5.2 Tampilan GUIDE... ... 28
2.5.3 Komponen GUIDE... ... 28
2.5.4 Push Button... ... 28
2.5.5 Toggle Button... 29
2.5.6 Radio Button... ... 29
2.5.7 Edit Text dan Static Text ... 29
2.5.8 Frames... ... 29
2.5.9 Checkboxes... ... 30
2.5.10 Slider... 30
2.5.11 Pop – up Menu... 30
2.5.12 Axes... 30
2.5.13 Membuat GUI... ... 31
BAB III METODOLOGI PENELITIAN ... 32
3.1 Analisis Sistem ... ... 32
3.2 Analisis Masalah ... 33
3.3 Analisis Kebutuhan Fungsion ... 33
3.3.1 Kebutuhan Fungsional... ... 33
3.3.2 Kebutuhan Antarmuka... ... 34
3.4 Perancangan Proses ... 34
3.4.1 Konteks Diagram... ... 35
3.4.2 DFD level 1... ... 36
vii
3.4.4 Proses Pengaturan nilai sigma... 37
3.4.5 Proses Pengaturan ukuran mask... ... 38
3.4.6 Prinsip Metode Gaussian... 39
3.5 Perancangan Interface ... 41
BAB IV HASIL dan PEMBAHASAN... 43
4.1 Implementasi Interface ... 43
4.1.1 GUI... ... 42
4.1.2 Pop – up Menu Gambar... 44
4.1.3 Slider Menu Sigma... 45
4.1.4 Pop – up Menu Mask... 45
4.1.5 Rumus Gaussian... 46
4.1.6 Tombol Go... 47
4.1.7 Tombol Selesai... 48
4.2 Interface ... 49
4.3 Uji Coba Aplikasi gambar ukuran 512x320 pixel ... 49
4.4 Uji Coba Aplikasi gambar ukuran 1440x900 pixel... 56
4.5 Hasil Uji coba ... 62
BAB V PENUTUP ... 64
5.1 Kesimpulan ... 64
5.2 Saran ... 65
DAFTAR PUSTAKA ... 66
Hak Cipta © milik UPN "Veteran" Jatim :
Gambar 2.1 High pass filter ... 9
Gambar 2.2 Low pass filter ... 10
Gambar 2.3 Halaman editor . ... 22
Gambar 3.1 Perancangan proses jalannya program secara garis besar ... 34
Gambar 3.2 Konteks diagram. ... 35
Gambar 3.3 DFD level 1 aplikasi Gaussian filter ... 36
Gambar 3.4 Proses filtering menggunakan Gaussian filter ... 37
Gambar 3.5 Proses pengaturan nilai sigma ... 38
Gambar 3.6 Proses menjalankan pilihan ukuran mask ... 39
Gambar 3.7 Proses prinsip metode Gaussian ... 40
ix
DAFTAR TABEL
halaman
Tabel 2.1 Operator Aritmatika ... 21
Tabel 2.2 Jenis Operator Pada Matlab ... 26
Tabel 4.1 Uji coba aplikasi gambar 512x320 pixel ... 50
Tabel 4.2 Uji coba aplikasi gambar 1440x900 pixel ... 56
Hak Cipta © milik UPN "Veteran" Jatim :
1.1LATAR BELAKANG
Diera digital saat ini masih terdapat beberapa kelemahan atau gangguan pada sebuah citra yang dihasilkan dan menyebabkan citra tersebut menjadi terhalangi atau terganggu oleh beberapa gangguan seperti yang akan kita bahas dalam tugas akhir ini adalah noise yang berupa bercak titik – titik menyebar di sebuah citra yang ada yang kemudian akan mengganggu pandangan atau mempengaruhi keutuhan citra tersebut.
2
Banyak metode yang bisa di implementasikan pada image semoothing namun metode gaussian yang cukup populer sehingga terbentuklah sebuah “IMPLEMENTASI FILTERING CITRA DIGITAL PERMUKAAN BUMI 24bit MENGGUNAKAN GAUSSIAN FILTERING” . Didalam tool yang digunakan untuk membuat aplikasi ini terdapat special fungsi untuk memanggil Gaussian filter seperti berikut :
gambar=imread(‘f:/tripod.jpg’);
gaussianFilter = fspecial(‘gaussian’, [24, 24], 30)
hasil = imfilter(gambar, gaussianFilter, ‘symmetric’, ‘conv’);
subplot(1,2,1), image(gambar);
subplot(1,2,2), image(hasil), title(‘Blurred Turtle, blur
matrix size 12′);
dari contoh script di atas hanya bisa melakukan filtering sekali saja dan tidak bisa menambah atau mengurangi intensitas filteringnya hanya saja bisa merubah secara manual melalui matrix yang diisikan.
Implementasi yang dilakukan dalam tugas akhir ini adalah dengan memasukkan rumus Gaussian secara manual tanpa menggunakan fspecial
dan akan memberikan intensitas pada Gaussian filter tersebut sehingga bisa dikurangi atau dilebihkan tingkat filteringnya oleh pengguna.
1.2PERUMUSAN MASALAH
Berdasarkan latar belakang yang telah dijelaskan diatas, maka dapat dirumuskan masalah dalam tugas akhir ini, yaitu :
a. Bagaimana merancang sebuah aplikasi filtering image dengan menggunakan metode gaussian?
Hak Cipta © milik UPN "Veteran" Jatim :
b. Bagaimana mendesain interface yang mudah dalam penggunaannya sehingga tidak menyulitkan pengguna dalam menjalankan aplikasi tersebut?
1.3 BATASAN MASALAH
Pada pembuatan aplikasi ini perlu didefinisikan batasan masalah mengenai sejauh mana pembuatan aplikasi ini akan dikerjakan. Beberapa batasan masalah tersebut antara lain :
a) Batasan pada aplikasi ini adalah hanya untuk menampilkan gambar kemudian menyamarkan noise tersebut dengan metode gaussian.
b) Citra yang digunakan 24bit RGB
c) Matrix yang digunakan dalam aplikasi ini hanya terbatas pada matrix dari 2x2 sampai dengan 5x5.
d) Nilai sigma dalam aplikasi ini dari 0,1 sampai dengan 5 dengan langkah tiap pergeseran slider 0,1.
e) Gambar yang digunakan dalam aplikasi ini adalah gambar permukaan bumi yang diambil dari foto satelit diatas atmosfir bumi yang telah disediakan dalam aplikasi.
f) Gaussian filter dalam aplikasi ini digunakan untuk menghilangkan noise berupa adanya badai meteor atau tebaran bintang diatas atmosfir bumi.
1.4 TUJ UAN
Dalam hal ini tujuan perancangan sistem ini adalah :
4
1.5 MANFAAT
Manfaat dari pembuatan aplikasi ini adalah :
a) Membantu dalam pengelihatan citra tanpa noise pada permukaan bumi yang dijadikan target.
b) Mampu mempermudah dalam menganalisa permukaan bumi dari foto satelit.
1.6 METODOLOGI PEMBUATAN SKRIPSI
Beberapa metode dan teknik yang dipergunakan dalam pengumpulan dan pengolahan data skripsi ini antara lain :
I. Studi Literatur
Pada tahap ini dilakukan pengumpulan dokumen, buku, referensi dari internet, atau referensi – referensi lain yang diperlukan untuk merancang dan mengimplementasikan aplikasi Gaussian filtering yang akan dibuat.
II. Studi Observasi
Merupakan aktivitas melakukan pengamatan dan analisa terhadap kondisi yang terdapat dilapangan serta kemudian memberikan solusinya yang bertujuan agar aplikasi yang dibuat benar – benar mempermudah pengguna.
III. Analisa dan Perancangan Aplikasi
Dari hasil studi literatur dan studi observasi akan dibuat deskripsi umum sistem berupa flowchart jalannya aplikasi, flowchart nilai sigma, flowchart ukuran mask dan flowchart metode Gaussian filter, serta dilakukan
Hak Cipta © milik UPN "Veteran" Jatim :
analisis sistem, analisis masalah, analisis kebutuhan fungsional, kebutuhan fungsional, selain itu juga dilakukan perancangan awal aplikasi yang akan dibuat, sehingga akan dihasilkan desain antar muka dan proses yang siap untuk diimplementasikan.
IV. Pembuatan Aplikasi
Pada tahap ini merupakan tahap yang paling banyak memerlukan waktu karena model dan perancangan aplikasi yang telah dibuat akan diimplementasikan dengan menggunakan perangkat Laptop/ NetBook dan terinstal tools yang digunakan dalam pembuatan aplikasi Gaussian filter.
V. Uji Coba dan Evaluasi Aplikasi
Pada tahap ini aplikasi yang telah dibuat ini akan dilakukan beberapa skenario uji coba untuk kelayakan pemakai sistem, seperti melakukan beberapa kombinasi nilai sigma dan ukuran mask pada gamabr dengan beberapa ukuran pixsel yang berbeda untuk diketahui keberhasilan dari aplikasi Gaussian filter yang telah dibuat.
VI. Penyusunan Buku Skripsi
6
1.7 SISTEMATIKA PENULISAN
Sistematika pembahasan yang akan dibuat dalam skripsi ini disusun beberapa bab, yang dijelaskan sebagai berikut :
BAB I PENDAHULUAN
Bab ini berisi tentang deskripsi umum skripsi yang meliputi latar belakanng, perumusan masalah, batasan masalah, tujuan dan manfaat, serta metodologi dan sitematika pembahasan.
BAB II TINJAUAN PUSTAKA
Bab ini berisi mengenai konsep dan teori pembelajaran yang menjadi landasan pembuatan skripsi antara lain : Sistem Informasi, Aplikasi teknologi informasi untuk mendukung manajemen informasi kesehatan.
BAB III METODOLOGI PENELITIAN
Bab ini berisi tentang analisis dan perancangan sistem dalam pembuatan Tugas Akhir implementasi filtering citra digital permukaan bumi 24bit menggunakan gaussian filtering.
BAB IV HASIL DAN PEMBAHASAN
Bab ini berisi hasil implementasi dari perancangan yang telah dibuat sebelumnya yang meliputi : implementasi antar muka, penjelasan lingkungan uji coba aplikasi, pelaksanaan uji coba dan evaluasi dari hasil uji coba yang telah dilakukan untuk kelayakan pemakaian aplikasi Gaussian filter.
Hak Cipta © milik UPN "Veteran" Jatim :
BAB V KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dan saran untuk pengembangan aplikasi lebih lanjut dalam upaya memperbaiki kelemahan pada aplikasi guna untuk mendapatkan hasil kinerja aplikasi yang lebih baik.
DAFTAR PUSTAKA
8
BAB II
TINJ AUAN PUSTAKA
2.1 NOISE
Noise dan Pengur angan Noise (Denoise)
Noise adalah titik-titik pada citra yang sebenarnya bukan merupakan bagian dari citra, melainkan ikut tercampur pada citra karena suatu sebab. Ada tiga macam noise, yaitu:
a. Noise Aditif
Noise aditif adalah noise yang bersifat menambahkan secara seragam pada sebuah bidang citra dengan varian tertentu. Contoh noise ini adalah noise salt-and-peppers yang menambahkan aras gelap dan terang pada citra.
b. Noise Gaussian
Noise ini memiliki intensitas yang sesuai dengan distribusi normal yang memiliki rerata (mean) dan varian tertentu.
c. Noise Speckle
Noise ini muncul pada saat pengambilan citra tidak sempurna karena alasan cuaca, perangkat pengambil citra dan sebagainya. Sifat noise ini mulipikatif, artinya semakin besar intensitas citra atau semakin cerah citra, semakin jelas juga noise. Noise muncul biasanya sebagai akibat dari pembelokkan yang tidak bagus (sensor noise, photographic gain noise). Gangguan tersebut umumnya berupa variasi intensitas suatu piksel yang tidak
Hak Cipta © milik UPN "Veteran" Jatim :
berkorelasi dengan piksel-piksel tetangganya. Secara visual, gangguan mudah dilihat oleh mata karena tampak berbeda dengan piksel tetangganya. Piksel yang mengalami gangguan umumnya memiliki frekuensi tinggi. Komponen citra yang berfrekuensi rendah umumnya mempunyai nilai piksel konstan atau berubah sangat lambat. Operasi denoise dilakukan untuk menekan komponen yang berfrekuensi tinggi dan meloloskan komponen yang berfrekuensi rendah.
2.1.1 Intensity filtering
Dengan metode ini, noise akan di reduksi dengan mendeteksi intensitas dari setiap titik di layar. Cara ini akan efektif apabila banyak titik noise yang memiliki warna sama pada titik-titik pada gambar asli. Intensity filtering akan bagus digunakan apabila terdapat sedikit titik-titik noise yang memiliki warna sama dengan gambar asli. Terdapat dua macam noise reduction pada intensity filtering, yaitu high pass filtering dan low pass filtering.
2.1.2 High pass intensity filtering
High pass intensity filtering digunakan jika noise diketahui memiliki intensitas warna tinggi. Misalnya noise berwarna 220-255, maka dilakukan pendeteksian untuk setiap titik yang memiliki warna antara 220 hingga 255 akan ditandai sebagai noise yang ditunjukkan padaGambar 2.1.
10
2.1.3 Low pass intensity filtering
Low pass intensity filtering digunakan pada gambar yang memiliki intensitas warna yang rendah. Karena letak noise berada di intensitas rendah, maka dilakukan pencarian pada titik-titik gambar dan kemudian akan ditandai sebagai noise. Selanjutnya titik tersebut akan diganti dengan mencari warna rata-rata di sekitar titik tersebut yang ditunjukkan padaGambar 2.2.
Gambar 2.2 Low pass filter
2.2 Penjelasan Umum Tentang Citr a
Istilah “citra” yang pada umumnya digunakan dalam bidang pengolahan citra diartikan sebagai suatu fungsi kontinu dari intensitas cahaya f(x,y) dalam bidang dua dimensi, dengan (x,y) menyatakan suatu koordinat dan nilai f pada setiap titik (x,y) menyatakan intensitas atau tingkat kecerahan (brightness) [6]. Suatu citra digital adalah suatu citra kontinu yang diubah ke dalam bentuk diskrit, baik koordinat maupun intensitas cahayanya. Kita dapat menganggap suatu citra digital sebagai suatu matriks, dimana indeks baris dan kolomnya menyatakan koordinat sebuah titik pada citra tersebut dan nilai masing-masing elemennya menyatakan intensitas cahaya pada titik tersebut [6]. Suatu titik pada sebuah citra digital sering disebut sebagai “image element” (elemen citra), “picture element” (elemen gambar), “pixel” ataupun “pel”.
Hak Cipta © milik UPN "Veteran" Jatim :
2.3 Metode filtering citr a
pengolahan citra digital terdapat beberapa metode untuk filtering image yaitu metode Mean, Modus dan Gaussian. Dari ketiga metode ini salah satunya akan dibahas lebih dalam dan digunakan sebagai dasar pembuatan aplikasi tugas akhir ini yaitu Gaussian filter.
2.3.1 Mean Filtering
Mean adalah nilai rata-rata dari kumpulan data (Usman, 2005). Rumusan menghitung mean adalah pada Persamaan berikut :
Persamaan Mean filter:
̅
=
1
Keterangan :
X = Nilai rata-rata (Mean) n = Jumlah data
i x = Nilai ke -i i = Nilai Awal
12
1
2
3
4
5
6
7
8
Nilai 1, 2, 3, 4, 5, 6, 7, dan 8 pada gambar 2.1 adalah piksel-piksel disekitar piksel T yang akan diproses. Nilai 4 didapat dari piksel sebelah kiri dari piksel T, nilai 5 didapat dari piksel di sebelah kanan dari piksel T, proses pengambilan piksel dimulai dengan mengambil piksel yang akan diproses, disimpan dalam nilai T. Kemudian diambil piksel-piksel sekitarnya sehingga matrik terisi penuh. Proses selanjutnya dijumlahkan semua nilai yang terdapat pada matrik tersebut. Hasil penjumlahan tersebut dibagi dengan jumlah titik yang terdapat pada matrik tersebut. Bilangan pembagi ini dapat diperoleh dari perkalian antara N X N. Pada gambar 2.1, maka hasil pembaginya adalah 9. Sembilan diperoleh dari hasil kali matrik 3 X 3. Hasil pembagian tersebut akan menggantikan nilai T. Nilai T yang baru akan ditampilkan pada layar monitor untuk menggantikan nilai T yang lama. Proses diatas adalah untuk menggambar grayscale (hitam-putih), untuk menggambar berwarna maka masing-masing titik terlebih dahulu ditentukan nilai warna merah (R), hijau (G), dan biru (B). Masing-masing nilai RGB dijumlahkan. Hasil penjumlahan nilai RGB dibagi dengan jumlah titik yang diproses. Hasil dari pembagian digunakan untuk menentukan warna baru yang akan di letakkan pada titik T.
2.3.2 Modus Filtering
Modus adalah nilai variable yang memiliki frekuensi tertinggi (Usman, 2005). Modus dapat ditemukan pada data yang telah diurutkan maupun yang belum terurut. Untuk menentukan modus filter ini, pertama-tama ditentukan
Hak Cipta © milik UPN "Veteran" Jatim :
piksel utama yang akan diproses dari piksel-piksel disekitarnya. Pada modus filtering digunakan matrik berdimensi N X N. Dari matriktersebut, kemudian data yang ada diurutkan dan dimasukkan dalam sebuah matrik berukuran1X(N X N). Hal ini berguna untuk mempermudah menemukan modusnya untuk pencarian nilai yang terbanyak frekuensinya dari kumpulan data yang telah urut tersebut Sebagai contoh, jika diketahui suatu piksel utama dan piksel-piksel disekitanya adalah:
5
7
2
7
4
7
2
7
1
Maka data pada matrik dibawah ini harus diurutkan terlebih dahulu sehingga menjadi:
[1
2
2
4
5
7
7
7
7]
Sehingga dari matrik 2.3 dapat diketahui bahwa modus dari matrik tersebut adalah 7. Nilai 7 akan menggantikan piksel utama yang semula bernilai 4.
2.3.3 Gaussian filter
Gaussian filtering didapat dari operasi konvolusi. Operasi perkalian yang dilakukan ialah perkalian antara matriks kernel dengan matriks gambar asli. Matriks kernel gauss didapat dari fungsi komputasi dari distribusi gaussian, seperti pada persamaan berikut :
( , ) = . − ( − ) + ( − )
14
Keterangan :
c dan = konstanta
G (i,j) = elemen matriks kernel gauss pada posisi (i,j) (u,v) = indeks tengah dari matriks kernel gauss Berikut ini contoh matrik kernel Gauss 3 X 3 dengan = 1.0
1 2 1
2 3 2
1 2 1
Perkalian antara bobot matriks gambar asli dengan bobot matrik kernel gauss dapat dirumuskan seperti pada persamaan berikut:
( , ) = 1 . ( , ) . + − ( − 1)
2 , + −
( − 1)
2
Keterangan :
Pixel A = gambar A (Gambar Asli)
Pixel B(i,j) = bobot hasil perkalian pada posisi (i,j) N = jumlah kolom matriks kernel
M = jumlah baris matriks kernel K = penjumlahan semua bobot di G
G(p,q) = elemen matriks kernel gauss pada posisi (p,q)
Gambar yang akan diproses dibagi menjadi 2 jenis piksel, yaitu piksel batas dan piksel dalam. Piksel batas yaitu piksel yang berada dipaling luar pada gambar, selain piksel tersebut disebut piksel dalam.
Hak Cipta © milik UPN "Veteran" Jatim :
Untuk piksel yang berada didalam, perkalian dilakukan menggunakan persamaan bobot matrik kernel, yaitu menjadikan piksel yang dicari nilai barunya sebagai piksel tengah dan bobotnya dikalikan dengan bobot pada piksel tengah matrik kernel, lalu dijumlahkan dengan hasil perkalian antara bobot piksel-piksel tetangga-tetangganya dengan bobot piksel matrik kernel. Untuk piksel yang berada disudut atau perbatasan, sebelum dilakukan perkalian, sebelumnya harus mencari bobot pada piksel-piksel luar (dummy). Bobot piksel-piksel ini dicari dengan menggunakan interpolasi yaitu dengan melihat dua piksel di dekatnya yang searah (horizontal atau vertikal). Apabila ada piksel yang memiliki bobot lebih kecil dari 0 maka bobot dijadikan 0. Apabila ada piksel yang memiliki bobot lebih besar dari 255 maka bobotnya dijadikan 255.
Contoh konvolusi matrik gambar asli(A) dengan matrik kernel gauss(G):
X =
A G B
x
=
B C
0 5 70 45 0 0 0
0 20 55 30 10 5 0 30 35 40 15 60 45 30
0 15 50 85 23 37 51 44 52 66 16 33 44 55 46 47 28 36 7 51 3
0 62 0 56 0 56 0
390 6585 510 325 215 440 570 523 503 483
529 660 602 579 615 644 663 556 468 568 627 468 415 435 649
1 2 1
2 3 2
1 2 1
26 39 34 22 14 29 38 35 34 32 35 44 40 39 47
43 44 37 31 38 42 31 28 29 43 390 6585 510 325 215
440 570 523 503 483
529 660 602 579 615
644 663 556 468 568
16
Keterangan:
A = Matriks gambar asal B = Matrik hasil perkalian G = Matrik kernel gauss C = Matrik gambar hasil
Pada aplikasi yang akan dibuat dalam tugas akhir ini akan menggunakan Gaussian filter dikarenakan secara perhitungan yang ditunjukkan oleh metode mean filter dan metode modus filter hanya melalui satu tahapan persamaan sehingga proses filtering yang dihasilkan tidak terlalu detail atau masih kurang dalam mengngurangi noise yang ada.
Pada persamaan yang ditunjukkan dalam metode Gaussian filter melalui beberapa tahapan dalam proses perhitungannya sehingga mampu menghasilkan sebuah citra image yang lebih halus atau mampu mengurangi noise yang ada pada citra image yang terkena noise.
2.4 Matlab
Matlab merupakan bahasa pemrograman yang hadir dengan fungsi dan karakteristik yang berbeda dengan bahasa pemrograman lain yang sudah ada lebih dahulu seperti Delphi, Basic maupun C++. Tool ini merupakan bahasa pemrograman level tinggi yang dikhususkan untuk kebutuhan komputasi teknis, visualisasi dan pemrograman seperti komputasi matematik, analisis data, pengembangan algoritma, simulasi dan pemodelan dan grafik-grafik perhitungan. Tool ini hadir dengan membawa warna yang berbeda. Hal ini karena matlab membawa keistimewaan dalam fungsi-fungsi matematika, fisika, statistik, dan visualisasi. Tool ini dikembangkan oleh MathWorks, yang pada awalnya dibuat untuk memberikan kemudahan mengakses data matrik pada proyek LINPACK
Hak Cipta © milik UPN "Veteran" Jatim :
dan EISPACK. Saat ini matlab memiliki ratusan fungsi yang dapat digunakan sebagai problem solver mulai dari simple sampai masalah-masalah yang kompleks dari berbagai disiplin ilmu.
2.4.1 Bagian dari Window pada tool untuk membuat aplikasi.
Dalam aplikasi matlab terdapat beberapa window yang memiliki fungsi atau tugas tersendiri dan akan dijelaskan pada point – point berikut, dari point 2.4.2 sampai dengan point 2.4.19 secara terperinci dan setiap bagian dari aplikasi matlab akan dibahas.
2.4.2 Cur rent Directory
Window ini menampilkan isi dari direktori kerja saat menggunakan matlab. Kita dapat mengganti direktori ini sesuai dengan tempat direktori kerja yang diinginkan. Default dari alamat direktori berada dalam folder works tempat program files Matlab berada.
2.4.3 Command History
Window ini berfungsi untuk menyimpan perintah-perintah apa saja yang sebelumnya dilakukan oleh pengguna terhadap matlab.
2.4.4 Command Window
Window ini adalah window utama dari Matlab. Disini adalah tempat untuk menjalankan fungsi, mendeklarasikan variable, menjalankan proses-proses , serta melihat isi variable.
2.4.5 Wor kspace
18
double klik pada variabel tersebut. Matlab secara otomatis akan menampilkan window “array editor” yang berisikan data pada setiap variabel yang dipilih user.
2.4.6 Getting Help
Matlab menyediakan fungsi help yang tidak berisikan tutorial lengkap mengenai Matlab dan segala keunggulannya. User dapat menjalankan fungsi ini dengan menekan tombol pada toolbar atau menulis perintah ‘helpwin’ pada command window. Matlab juga menyediakan fungsi demos yang berisikan video tutorial matlab serta contoh-contoh program yang bisa dibuat dengan matlab
2.4.7 Interupting dan Ter minating
Untuk menghentikan proses yang sedang berjalan pada matlab dapat dilakukan dengan menekan tombol Ctr l-C. Sedangkan untuk keluar dari matlab dapat dilakukan dengan menuliskan perintah exit atau quit pada comamnd window atau dengan menekan menu exit pada bagian menu file dari menu bar.
2.4.8 Var iabel
Matlab hanya memiliki dua jenis tipe data yaitu Numeric dan String. Dalam matlab setiap variabel akan disimpan dalam bentuk matrik. User dapat langsung menuliskan variabel baru tanpa harus mendeklarasikannya terlebih dahulu pada command window.
Contoh pembuatan variabel pada matlab:
>> varA = 1000 varA =
1000
>> varB = [45 2 35 45] varB =
45 2 35 45
>> varC = 'test variabel' varC =
Hak Cipta © milik UPN "Veteran" Jatim :
test variable
Penamaan variabel pada matlab bersifat caseSensitif karena itu perlu diperhatikan penggunaan huruf besar dan kecil pada penamaan variabel. Apabila terdapat variabel lama dengan nama yang sama maka matlab secara otomatis akan me-replace variabel lama tersebut dengan variabel baru yang dibuat user.
2.4.9 Matr iks
Dapat diasumsikan bahwa didalam matlab setiap data akan disimpan dalam bentuk matriks. Dalam membuat suatu data matriks pada matlab, setiap isi data harus dimulai dari kurung siku ‘[‘ dan diakhiri dengan kurung siku tutup ‘]’. Untuk membuat variabel dengan data yang terdiri beberapa baris, gunakan tanda ‘titik koma’ (;) untuk memisahkan data tiap barisnya.
Contoh pembuatan data matriks pada matlab:
>> DataMatriks = [1 2 3;4 5 6] DataMatriks =
1 2 3 4 5 6
Matlab menyediakan beberapa fungsi yang dapat kita gunakan untuk menghasilkan bentuk-bentuk matriks yang diinginkan. Fungsi-fungsi tersebut antara lain:
• zeros : untuk membuat matriks yang semua datanya bernilai 0 • ones : matriks yang semua datanya bernilai 1
20
contoh penggunaan fungsi-fungsi diatas:
>> a = zeros(2,3) a =
0 0 0 0 0 0
>> b = ones(1,3) b =
1 1 1
>> c = rand(2,2) c =
0.9501 0.6068 0.2311 0.4860 >> d = rand (1,4) d =
0.8214 0.4447 0.6154 0.7919 >> e = eye(3,3)
e = 1 0 0 0 1 0 0 0 1
Untuk memanggil isi dari suatu data matriks, gunakan tanda kurung ‘()’ dengan isi indeks dari data yang akan dipanggil. Contoh penggunaan :
>> c(2,2) ans = 0.4860
Untuk pemanggilan data berurutan seperti a(1,2,3) dapat disingkat dengan menggunakan tanda titik dua ‘:’ sehingga menjadi a(1:2). Penggunaan tanda titik dua ‘:’ juga dapat digunakan untuk memanggil data matriks perbaris atau perkolom.
Contoh penggunaan:
c(2:5) = memanggil data matrik baris 2 sampai baris 5 a(1,:) = memanggil data matriks pada baris pertama b(:,3) = memanggil data matris pada kolom ketiga
Hak Cipta © milik UPN "Veteran" Jatim :
2.4.10 Operator
Beberapa penggunaan operator aritmatika antara dua operand (A dan B) ditunjukkan pada Tabel 2.1 berikut ini :
Tabel 2.1 Operator aritmatika.
Operasi Bentuk Aljabar Bentuk Matlab Contoh
Perkalian A x B A * B 5*3
Pembagian A ÷ B A ¥ B 2¥3
Penambahan A + B A + B 1+2
Pengurangan A – B A – B 4-3
Eksponensial AB A ^ B 4^3
2.4.11 Fungsi Matematika lainnya
Beberapa fungsi matematika lainnya yang dapat kita gunakan untuk operasi matematika antara lain sebagai berikut:
• abs(x) : fungsi untuk menghasilkan nilai absolut dari x
• sign(x) : fungsi untuk menghasilkan nilai -1 jika x<0, 0 jika x=0 dan 1 jika x>1 • exp(x) : untuk menghasilkan nilai eksponensian natural, e x
• log(x) : untuk menghasilkan nilai logaritma natural x, ln x
• log10(x) : untuk menghasilkan nilai logaritma dengan basis 10, x 10 log • sqrt(x) : untuk menghasilkan akar dari nilai x, x
22
2.4.12 M File
Di dalam matlab, kita dapat menyimpan semua script yang akan digunakan dalam file pada matlab dengan ekstensi .M. M-File dapat dipanggil dengan memilih menu file->new->M-File yang ditunjukkan pada Gambar 2.3.
Gambar 2.3 Halaman editor.
Di dalam M-File, kita dapat menyimpan semua perintah dan menjalankan dengan menekan tombol atau mengetikan nama M-File yang kita buat pada command window.
2.4.13 Fungsi
Di dalam M File, kita dapat menuliskan fungsi-fungsi yang berisikan berbagai operasi sehingga menghasilkan data yang diinginkan. Bentuk penulisan nama fungsi
Function [Nilai keluaran ] = namaFungsi (nilai masukan)
% operasi dari fungsi % …
% …
Contoh penggunaan:
fungsi yang akan dibuat bernama ‘testfungsi’ memiliki tiga nilai masukan ‘c,d,e’ dan dua nilai keluaran ‘a,b’:
function [a,b] = testFungsi(c,d,e) %operasi yang dijalankan
a = c + d +e; b = c * d *e;
Hak Cipta © milik UPN "Veteran" Jatim :
Selanjutnya Fungsi tersebut akan dijalankan melalui command window dengan nilai masukan ’10,2,4’. Perhatikan penulisan kurung siku ‘[ ]’ pada nilai keluaran dan kurung biasa ‘( )’ pada nilai masukan.
>> [a,b] = testFungsi(10,2,3)
a = 15 b = 60
2.4.14 Flow Contr ol
Matlab memiliki empat macam statement yang dapat digunakan untuk mengatur aliran data pada fungsi yang akan dibuat
2.4.15 If, Else, Elseif
Bentuk dasar penggunaan statement jenis ini adalah sebagai berikut:
if ekspresi1 statements1; elseif ekspresi2 statements2; else statements3; end
Ekspresi akan bernilai 1 jika benar dan bernilai 0 jika salah. Contoh penggunaan:
function testFungsi(A,B) if A > B
disp('A lebih besar dari B') elseif A == B
disp('A sama dengan B') else
disp('A lebih kecil dari B') end
Fungsi disp digunakan untuk menampilkan pesan pada command window. Fungsi tersebut setelah dijalankan melalui command window:
24
>> testFungsi(2,2) A sama dengan B >> testFungsi(2,3) A lebih kecil dari B
2.7.16 Switch
Bentuk dasar penggunaan statement switch
switch switch_ekspresi case case_ekspresi1 statement1 case case_ekspresi2 statement2 ... ... otherwise statementN end Contoh penggunaan: function testFungsi(x) switch x case 1
disp('x is 1') case {2,3,4}
disp('x is 2, 3 or 4') case 5
disp('x is 5') otherwise
disp('x is not 1, 2, 3, 4 or 5') end
Hasil setelah dijalankan :
>> testFungsi(2) x is 2, 3 or 4 >> testFungsi(1) x is 1
>> testFungsi(5) x is 5
>> testFungsi(6)
x is not 1, 2, 3, 4 or 5
2.4.17 while
Statement while digunakan untuk aliran data yang bersifat perulangan. Bentuk dasar penggunaan while :
Hak Cipta © milik UPN "Veteran" Jatim :
while ekspresi statements ... End Contoh penggunaan function testFungsi(x)
%selama nilai x kurang dari 10 while x < 10
disp('nilai saat ini : '); %tampilkan nilai x
x
%increment nilai x x = x+1;
end
Hasil setelah dijalankan :
>> testFungsi(6) nilai saat ini : x =
6
nilai saat ini : x =
7
nilai saat ini : x =
8
nilai saat ini : x =
9
2.4.18 for
Bentuk dasar penggunaan bentuk for:
for index = start:increment:stop
statement ...
...
statement
end
Default dari nilai increment (penambahan nilai setiap perulangan) jika tidak ditentukan oleh user adalah 1.
26
function a = testFungsi for y = 1:10
a(y) = y^2; end
Hasil setelah fungsi dijalankan
>> a = testFungsi a =
1 4 9 16 25 36 49 64 81 100
2.4.19 Operator
Pada Tabel 2.2 adalah jenis-jenis operator pada matlab yang dapat digunakan untuk operasi ekspresi pada statement yang membutuhkan perbandingan seperti if atau while.
Tabel 2.2 Jenis operator.
Gunaidi Abdia Away, the shortcut of Matlab, Informatika Bandung, Juni 2006.
2.5 GUI / GUIDE
Dibangun dengan obyek grafik seperti tombol (button), kotak teks, slider, menu dan lain-lain. Aplikasi yang menggunakan GUI umumnya lebih mudah dipelajari dan digunakan karena orang yang menjalankannya tidak perlu mengetahui perintah yang ada dan bagaimana kerjanya. Sampai saat ini, jika kita membicarakan pemrograman berorientasi visual, yang ada di benak kita adalah
Operator Keterangan
A < B A lebih kecil dari B
A > B A lebih besar dari B
A < = B A lebih kecil atau sama dengan B
A > = B A lebih besar atau sama dengan B
A = = B A sama dengan B
A ~ = B A tidak sama dengan B
Hak Cipta © milik UPN "Veteran" Jatim :
sederetan bahasa pemrograman, seperti visual basic, Delphi, visual C++, visual Fox Pro, dan lainnya yang memang didesai secara khusus untuk itu. Matlab merintis ke arah pemrograman yang menggunakan GUI dimulai dari versi 5, yang terus disempurnkan sampai sekarang. GUIDE Matlab mempunyai kelebihan tersendiri dibandingkan dengan bahasa pemrogram lainnya, diantaranya:
a) GUIDE banyak digunakan dan cocok untuk aplikasi-aplikasi berorientasi sains, sehingga banyak peneliti dan mahasiswa menggunakan GUIDE Matlab untuk menyelesaikan riset atau tugas akhirnya.
b) GUIDE mempunyai fungsi built-in yang siap digunakan dan pemakai tidak perlu repot membuatnya sendiri.
c) Ukuran file, baik FIG-file maupun M-file, yang dihasilkan relatif kecil. d) Kemampuan grafisnya cukup andal dan tidak kalah dibandingkan dengan bahasa pemrograman lainnya.
2.5.1 Memulai GUIDE
Memulai GUIDE Matlab dapat dilakukan dengan dua cara, yaitu: a. Melalui command matlab dengan mengetikkan: >> guide
28
pada template agar menjadi GUI seperti yang kita harapkan. Sebagai pemula, kita gunakan Blank GUI (Default) yang merupakan sebuah GUI dengan figure kosong dan merupakan kondisi default dari GUIDE dan diplih jika kita memang akan membuat sebuah aplikasi dengan komponen yang layout-nya tidak terdapat pada GUI template yang lain. Setelah kita memilih Blank GUI templates, maka akan muncul tampilan Menu Utama GUIDE.
2.5.2 Tampilan GUIDE
Komponen palet pada GUIDE Matlab terdiri dari beberapa uicontrol (kontrol user interface), seperti pada bahasa pemrograman visual lainnya, yaitu: pushbutton, togglebutton, radiobutton, chexkboxes, edit text, static text, slider, frames, listboxes, popup menu, dan axes. Kita dapat meletakkan semua kontrol pada layout editor dan selanjutnya hanya tinggal mengaturnya melalui property inspector.
2.5.3 Komponen GUIDE
Semua kontrol pada GUIDE dapat dimunculkan pada layout/figure dengan cara mendrag kiri kontrol yang diinginkan ke figure. Adapun penjelasan fungsi masing-masing kontrol adalah sebagai berikut:
2.5.4 Pushbutton
Pushbutton merupakan jenis kontrol berupa tombol tekan yang akan menghasilkan tindakan jika diklik, misanya tombol OK, Cancel, Hitung, Hapus, dan sebagainya. Untuk menampilkan tulisan pada pushbutton kita dapat mengaturnya melalui property inspector dengan mengklik obeyek pushbutton pada figure, lalu mengklik toolbar property inspector atau menggunakan klik
Hak Cipta © milik UPN "Veteran" Jatim :
kanan lalu pilih property inspector. Selanjutnya isilaha tab string dengan label yang diinginkan, misalnya Hitung.
2.5.5 Toggle Button
Toggle button memiliki fungsi yang sama dengan pushbutton. Perbedaanya adalah saat pushbutton ditekan, maka tombol akan kembali pada posisi semula jika tombol mouse dilepas, sedangkan pada toggle button, tombol tidak akan kembali ke posisi semula, kecuali kita menekannya kembali.
2.5.6 Radio Button
Radio button digunakan untuk memilih atau menandai satu pilihan dari beberapa pilihan yang ada. Misalnya, sewaktu kita membuat aplikasi operasi Matematika (penjumlahan, pengurangan, perkalian, dan pembagian).
2.5.7 Edit Text dan Static Text
Edit text digunakan untuk memasukkan atau memodifikasi suatu text yang diinputkan dari keyboard, sedangkan static text hanya berguna untuk menampilkan text/tulisan, sehingga kita tidak bisa memodifikasi/mengedit text tersebut kecuali memalui property inspector.
2.5.8 Frames
Frames merupakan kotak tertutup yang dapat digunakan untuk mengelompokkan kontrol-kontrol yang berhubungan. Tidak seperti kontrol lainnya, frames tidak memiliki rutin callback.
2.5.9 Checkboxes
30
penggunaan checkboxes adalah ketika kita diminta untuk memilih hobi. Karena hobi bisa lebih dari satu, maka kita dapat mengklik checkboxes lebih dari satu kali.
2.5.10 Slider
Slider berguna jika kita menginginkan inputan nilai tidak menggunakan keyboarad, tatapi hanya dengan cara menggeser slider secara vertical maupun horizontal ke nilai yang kita inginkan. Dengan menggunakan slider, kita lebih fleksibel dalam melakukan pemasukan nilai data karena kita dapat mengatur sendiri nilai max, nilai min, serta sliderstep.
2.5.11 Popup Menu
Popop menu berguna menampilkan daftar pilihan yang didefinisikan pada String Propoerty ketika mengklik tanda panah pada aplikasi dan memiliki fungsi yang sama seperti radio button. Ketika tida dibukak, popup menu hanya menampilkan satu item yang menjadi pilihan pertama pada String Property. Popupmenu sangat bermanfaat ketika kita ingin memberi sebuah pilihan tanpa jarak, tidak seperti radiobutton.
2.5.12 Axes
Axes berguna untuk menampilkan sebuah grafik atau gambar (image). Axes sebenarnya tidak masuk dalam UIControl, tetapi axes dapat deprogram agar pemakai dapat berinteraksi dengan axes dan obyek grafik yang ditampilkan melalui axes.
2.5.13 Membuat GUI
GUI sebagai sebuah figure yang berisi barbagai style obyek UIControl. Selanjutnya kita harus memprogram masing-masing obyek agar dapat bekerja
Hak Cipta © milik UPN "Veteran" Jatim :
ketika diaktifkan oleh pemakai GUI. Langkah dasar yang harus dikerjakan dalam membuat GUI adalah :
a) Mengatur layout komponen GUI
Setelah kita membuka GUIDE Matlab dan telah menentukan template GUI, langkah selanjutnya adalah adalah mendesai figure dengan menggunakan komponen palet sesuai dengan kebutuhan, seperti p ushbutton, radiobutton, chexkboxes, edit text, static text, slider, frames, popup menu, axes, dan sebagainya. Selanjutnya kita dapat mengatur layout masing-masing komponen, baik string(caption), font, color, size, dan sebagainya menggunakan property inspector. Jika kita telah selesai mendesain, jangan lupa untuk menyimpan file figure yang secara default akan memiliki ekstensi *.fig. Dari sini, matlab secara otomatis akan membuatkan sebuah m-file dengan nama yang sama, yaitu file berekstensi *.m.
b) Memprogram Komponen GUI
32
BAB III
METODOLOGI PENELITIAN
Bab ini mencakup analisis permasalahan seperti bagaimana program berjalan secara garis besar dan secara detail mengenai alur dari fungsi Gaussian, sigma dan matriks.
3.1 Analisis system
Analisis sistem merupakan tahap yang bertujuan untuk memahami suatu sistem, mengetahui kelemahan dan keunggulan sistem ditinjau dari sisi pengguna. Dengan menganalisis prosedur sistem yang sering digunakan, maka sistem yang sering dipakai dapat dievaluasi, sehingga dapat dijadikan acuan untuk membangun sistem yang baru dari hasil evaluasi tersebut.
Dalam penelittian ini akan dianalisis tahapan membangun aplikasi filtering yaitu penyaringan atau penghalusan sebuah gambar untuk menghilangkan noise dari gambar tersebut menggunakan Gaussian filter.
Sistem yang akan dibangun adalah sistem yang diimplementasikan menggunakan teknik filtering metode Gaussian dengan penambahan slider parameter sigma dan pop – up menu mask didalam aplikasi tersebut, adapun gambar yang akan ditampilkan dalam program telah diset secara default agar mempercepat proses jalannya load gambar kedalam program, namun dalam program ini terdapat dua kolom gambar untuk gambar awal sebelum diproses dan satu lagi untuk gambar yang telah diproses.
Hak Cipta © milik UPN "Veteran" Jatim :
Sehingga dari sistem tersebut harus dibangun sesuai dengan kebutuhan – kebutuhan sebagai berikut:
3.2 Analisis masalah
a) Membangun aplikasi yang dapat menghaluskan sebuah gambar.
b) Mengimplementasikan filtering citra digital menggunakan Gaussian filter.
c) Melakukan pengujian aplikasi untuk mendapatkan kesimpulan atas keberhasilan metode Gaussian dengan kombinasi sigma dan mask yang sesuai.
Langkah selanjutnya adalah identifikasi masalah dari hasil analisis terhadap sistem. Maka dapat diidentifikasi masalah, yaitu sebagai berikut : a) Aplikasi yang dibangun harus dapat menghaluskan atau mengurangi
noise pada sebuah citra (image).
b) Parameter sigma dan mask dalam menunjang fungsi Gaussian filter sangat berperan untuk keberhasilan pengurangan noise atau proses filtering pada citra (image).
3.3 Analisis kebutuhan fungsional
Pada analisis kebutuhan fungsional terdapat dua point yang menjelakan tentang kebutuhan fungsional pada point 3.3.1 dan kebutuhan antarmuka pada point 3.3.2.
3.3.1 Kebutuhan fungsional
34
a) Dapat memberikan kemudahan kepada user untuk menggunakan aplikasi penghalusan atau pengurangan noise pada citra permukaan bumi.
b) User dapat menyesuaikan sigma dan mask yang dibutuhkan sesuai dengan besarnya size pixel pada citra permukaan bumi yang akan di filter agar mendapatkan hasil yang diinginkan.
3.3.2 Kebutuhan Antar muka
Kebutuhan antarmuka merupakan kebutuhan yang sangat penting. Karena perangkat lunak dinilai dari external performance yaitu tampilan luar yang di sesuaikan dengan kebutuhan pengguna computer, agar mudah digunakan mudah diadaptasi oleh pengguna karena sudah familiar.
Kebutuhan ini diharapkan dapat disesuaikan oleh kebiasaan pengguna, hal ini dimaksudkan untuk mempermudah pekerjaan karena pengguna sudah terbiasa dengan tampilan yang digunakan.
3.4 Perancangan Pr oses
Memilih gambar berukuran 24Bit ke dalam program melalui pop – up menu yang ada di dalam aplikasi (GUI) matlab.
Gambar yang sudah berada di dalam aplikasi diproses menggunakan Gaussian filter untuk menghilangkan noise atau mengurangi ketajaman pada gambar.
User dapat merubah parameter sigma dan nilai mask yang ada didalam program melalui menu slider dan pop – up menu yang terdapat di (GUI) matlab.
Menampilkan gambar yang dipilih ke kolom gambar.
Mengatur slider nilai sigma yang disediakan dan ukuran mask Mengeluarkan output A Hak Cipta © milik UPN "Veteran" Jatim :
Gambar 3.1 Perancangan proses jalannya program secara garis besar.
3.4.1 Konteks Diagram
Konteks diagram yaitu digram yang menggambarkan sistem secara umum serta memberikan gambaran mengenai hubungan antara lingkungan di luar sistem (eksternal entity), seperti dibawah ini :
- Eksternal entity yaitu user, karena user hanya melakukan pengaksesan berupa meload gambar yang telah disediakan, merubah parameter yaitu sigma dan mask dengan nilai tang tersedia. Adapun diagram konteks dari aplikasi filtering ini adalah sebagai berikut :
Gambar 3.2 Konteks diagram.
Hasil output setelah meng-klik tombol go berupa :
- Gambar hasil filtering berada dalam kolom yang berbeda dengan
gambar awal yang di pilih, sehingga bisa dilihat perbandingannya sebelum dan sesudah mengalami proses filtering menggunakan gaussian
36
Pada konteks diagram Gambar 3.2 menunjukkan bahwa proses filtering menggunakan Gaussian ini berlangsung 2 arah. User pengirim memilih file gambar (.jpg) yang telah disediakan serta dapat merubah nilai sigma dan ukuran mask yang telah disediakan sedangkan user penerima menerima file hasil filtering berupa file gambar (.jpg).
3.4.2 DFD Level 1
Gambar 3.3 DFD level 1 aplikasi Gaussian filter.
Pada Gambar 3.3 DFD level 1, terdapat 4 proses yaitu proses menampilkan gambar, proses pengaturan nilai sigma, proses pengaturan ukuran mask dan proses filtering menggunakan Gaussian itu sendiri, disini user memilih nama gambar yang disediakan kemudian secara visual tampil diaplikasi, kemudian user dapat mengatur nilai sigma dan mask yang tersedia, gambar yang telah diatur sigma dan masknya diproses dengan fungsi Gaussian filter yang nantinya kan kluar outputnya berupa gambar hasil filtering yang diterima oleh user penerima.
Hak Cipta © milik UPN "Veteran" Jatim :
3.4.3 Pr oses Gaussian Filter
Gambar 3.4 adalah proses Gaussian filter secara garis besar yang dimaksud dalam tugas akhir yang telah dibahas seperti pada Gambar 3.1 dan Gambar 3.2.
Gambar 3.4 Proses filtering menggunakan Gaussian filter.
3.4.4 Pr oses pengaturan nilai sigma
38
sigma yang dipilih maka gambar yang akan diproses dengan fungsi Gaussian akan semakin halus di area mask yang sudah ditentukan.
Gambar 3.5 Proses pengaturan nilai sigma
3.4.5 Pr oses pengaturan ukuran mask
Proses pengaturan ukuran mask pada Gambar 3.6 telah disediakan 4 pilihan ukuran mask yaitu dari 2x2, 3x3, 4x4, dan 5x5 yang dapat di pilih sesuai dengan kebutuhan user yang disesuaikan dengan ukuran gambar dan untuk mendapatkan hasil yang diinginkan dalam filtering menggunakan Gaussian.
Hak Cipta © milik UPN "Veteran" Jatim :
Gambar 3.6 Proses menjalankan pilihan ukuran mask.
3.4.6 Pr insip metode Gaussian
40
START
Cit ra image
Cit ra Hasil
END
Gambar 3.7 Proses prinsip metode Gaussian.
Dalam proses pada Gambar 3.7 yang menjalaskan tentang proses metode Gaussian berjalan dalam aplikasi tugas akhir ini, yaitu dari gambar yang telah dipilih akan dicari nilai G untuk mendapatkan kernel Gaussian kemudian apabila perhitungan matrik gambar asli telah didapat maka akan dilanjutkan dengan perhitungan untuk mendapatkan hasil citra yang telah terfilter dengan mengkalikan matrik gambar asli dan hasil dari nilai G yang telah didapat pada perhitungan sebelumnya. Dari perkalian yang dilakukan maka gambar terfilter akan tampil pada hasil citra dan akan tampil pada aplikasi di kolom gambar hasil yang dapat dilihat oleh user dan dibandingkan dengan gambar asli yang tampil dikolom gambar awal yang ada diatasnya seperti pada Gambar 3.8.
Hak Cipta © milik UPN "Veteran" Jatim :
3.5 Perancangan Interface
Perancangan interface pada Gambar 3.8 merupakan struktur gambaran aplikasi yang akan dibuat, adapun rancangan – rancangan utama aplikasi Gaussian filter yaitu :
42
Keterangan :
a. Gambar : Secara statis gambar dipilih dari yang sudah disediakan melalui menu pop – up.
b. Nilai sigma : Slider menu untuk memilih nilai sigma yang dibutuhkan dari 0,1 sampai dengan 5.
c. Ukuran mask : Pop – up menu mask untuk memilih ukuran mask yang dibutuhkan dan telah di sediakan ukuran mask dari 2x2 sampai dengan 5x5.
d. Tombol GO : Tombol go ini digunakan untuk menjalankan fungsi Gaussian setelah semua pengaturan yang dilakukan sebelumnya seperti memilih gambar, memilih sigma yang sesuai dan memilih mask yang sesuai dan akan ditampilkan gambar hasil di kolom hasil proses.
e. Tombol Selesai : Tombol selesai ini difungsikan untuk menutup aplikasi yang telah dijalankan atau dibuka.
Hak Cipta © milik UPN "Veteran" Jatim :
43
4.1 Implementasi Inter face
Pada tahap ini akan dijelaskan mengenai implementasi interface dari aplikasi berdasarkan perancangan yang telah dibuat. Ada beberapa tombol dan bagian dari GUI yang akan dibahas yaitu:
4.1.1 GUI
Merupakan sebuah tampilan atau interface yang dimiliki oleh matlab atau lebih di kenal matlab guide, di bawah ini adalah potongan script perintah awal pembutan gui dalam matlab :
function varargout = h3_gaussianblur(varargin) gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @h3_gaussianblur_OpeningFcn, ...
'gui_OutputFcn', @h3_gaussianblur_OutputFcn, ...
'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1}); end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else
gui_mainfcn(gui_State, varargin{:}); end
44
4.1.2 Pop – up menu gambar
Dalam pop up menu deprogram ini digunakan sebagai bagian dari GUI untuk memilih gambar yang telah disediakan, berikut ini adalah potongan script dari proses yang digunakan membentuk pop – up menu gambar :
function image_selection_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundCol or')); end
Memulai membuat pop – up menu secara visual melalui tampilan gui pada matlab secara automatis tertulis dalam script, dalam aplikasi ini pop – up menu berbackgroud putih.
function image_selection_Callback(hObject, eventdata, handles)
image_file = get(handles.image_selection,'String'); image_number = get(handles.image_selection,'Value'); im_original=imread(char(image_file(image_number))); set(handles.original_image,'HandleVisibility','ON') set(handles.filtered_image,'HandleVisibility','OFF') imagesc(im_original) axis equal; axis tight;
set(handles.original_image,'XTickLabel',' ','YTickLabel',' ') colormap(gray)
Image_file dalam aplikasi ini memanggil dari nama file yang ada dalam string pada gui matlab dan kemudian ditampilkan secara berurutan sesuai dengan urutan yang tertulis dalam string pada gui, setelah list nama gambar keluar dan di klik maka pop – up akan menutup kembali, gambar ditampilkan dengan batas yang fix pada aplikasi ini sehingga berapapun
Hak Cipta © milik UPN "Veteran" Jatim :
besar kecilnya gambar yang ditampilkan maka ukurannya akan tetap sesuai dengan kolom gambar yang tersedia.
4.1.3 Slider menu sigma
Slider menu dalam program ini bertujuan untuk menambag dan mengurangi atau mengatur intensitas blur atau filtering dalam bentuk merungangi dan menambahkan sigma dalam perhitungan rumus Gaussian itu sendiri, berikut ini adalam potongan script untuk menampilkan slider sigma :
function sigma_value_CreateFcn(hObject, eventdata, handles) if ispc
set(hObject,'BackgroundColor','white'); else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundCol or'));
end
%---function sigma_value_Callback(hObject, eventdata, handles)
sigma = (get(handles.sigma_value,'Value'));
set(handles.sigma_value_display,'String',num2str(sigma,2))
Secara visual slider yang kita buat pada gui akan secara automatis muncul pada script yang menjelaskan tentang warna dari slider itu sendiri dalam program ini sigma bisa kita atur secara manual namun memiliki batasan tersendiri yang dipanggil perintahnya dari value yang telah kita tentukan.
4.1.4 Pop – up mask
46
matrix 2x2 sampai dengan 5x5. Berikut potongan script mask dalam program yang telah di buat :
if method_number == 1 | method_number == 2,
mask_size = get(handles.mask_size,'String'); mask_size_number = get(handles.mask_size,'Value'); if mask_size_number == 1;
n = 2; m = n;
elseif mask_size_number == 2; n = 3;
m = n;
elseif mask_size_number == 3; n = 4;
m = n;
elseif mask_size_number == 4; n = 5;
m = n; end
Mask size yang telah kita set di dalam string akan di baca dan disesuaikan atau disamakan dengan data yang ada dalam script aplikasi ini, yaitu: mask pada utrutan sring pertama berukuran 2x2, pada urutan ke dua (2) mask berukuran 3x3, mask pada urutan ke tiga (3) berukuran 4x4 dan mask pada urutan ke empat (empat) berukuran 5x5.
4.1.5 Rumus gaussian
Untuk memenuhi metode yang digunakan dalam tugas akhir ini menggunakan Gaussian, maka rumus tersebut akan dimasukkan kedalam script matlab yang natinya akan dijalankan saat tombol ‘go’ di tekan. Berikut potongan script rumus Gaussian dalam program tugas akhir ini :
function res = image_blur(data,sigma,n,m)
x = double(data); filter1 = i_gauss(n,sigma); res = uint8(convn(x,filter1,'same')); function res = i_gauss(x_dim,sigma)
Hak Cipta © milik UPN "Veteran" Jatim :
n = x_dim; for i = 1:n,
for j = 1:n
M_temp = [j-(n+1)/2 i-(n+1)/2]';
M(i,j) = gauss(M_temp(1),sigma)*gauss(M_temp(2),sigma); end
end
res = M/sum(sum(M));
function res = gauss(x,sigma)
res = exp(-x^2/(2*sigma^2))/(sigma*sqrt(2*pi));
Pendeklarasian rumus Gaussian kedalam aplikasi yang mengambil nilai sigma dari value sigma dan melakukan perkalian dengan ukuran matriks yang telah dipilih.
4.1.6 Tombol go
Tombol go di dalam program ini bertujuan tuntuk menjalankan semua pilihan yang telah dipilih seperti misalnya gambar, slider sigma, dan mask. Yang kemudian outputnya akan di tampilkan dikolom gambar yang berbeda dari kolom gambar awal yang telah di pilih sehingga pengguna program ini mampu melihat dan membandingkan perbadaan anatara gambar awal dan gambar setelah melalui proses filtering menggunakan Gaussian dengan pengaturan sigma dan matrix nya. Berikut adalah potongan script tombol go atau apply dalam program ini:
function apply_button_Callback(hObject, eventdata, handles)
image_file = get(handles.image_selection,'String'); image_number = get(handles.image_selection,'Value');
im_original=imread(char(image_file(image_number)));
set(handles.original_image,'HandleVisibility','ON') set(handles.filtered_image,'HandleVisibility','OFF')
set(handles.original_image,'XTickLabel',' ','YTickLabel',' ') method_number = get(handles.method_selection,'Value');
48
mask_size = get(handles.mask_size,'String'); mask_size_number = get(handles.mask_size,'Value');
if mask_size_number == 1; n = 2;
m = n;
elseif mask_size_number == 2; n = 3;
m = n;
elseif mask_size_number == 3; n = 4;
m = n;
elseif mask_size_number == 4; n = 5;
m = n; end
sigma = get(handles.sigma_value,'Value'); set(handles.sigma_value_display,'String',num2str(sigma,2)); if method_number ==1,
im_filtered = image_blur(im_original,sigma,n,m);
end end set(handles.original_image,'HandleVisibility','OFF') set(handles.filtered_image,'HandleVisibility','ON') imagesc(im_filtered) axis equal; axis tight;
set(handles.filtered_image,'XTickLabel',' ','YTickLabel',' ')
Mulai dari pemilihan gambar, menampilkan gambar pada tampilan antarmuka aplikasi kemudian proses pemilihan matrik yang diinginkan sesuai dengan batasan yang di tentukan dan pemanggilan nilai sigma dari value yang telah dipilih kemudian dilakukan filtering dengan perhitungan rumus dari Gaussian untuk mendapatkan hasil output berupa gambar ter- filter.
4.1.7 Tombol selesai
Didalam program ini terdapat tombol selesai yang bertujuan untuk menutup jendela program yang sebelumnya telah dijalankan. Berikut potongan script untuk tombol selesai :
function close_button_Callback(hObject, eventdata, handles) close(gcbf)
Hak Cipta © milik UPN "Veteran" Jatim :
4.2 Interface
Didalam gui kita bisa melihat tampilan secara visual dan pengguna dapat melakukan interaksi langsung dengan program dalam pemilihan gambar yang tersedia, pengaturan nilai sigma dan merubah ukuran mask sesuai dengan yang dibutuhkan oleh pengguna, gamabar yang disedian dengan berbagai ukuran yang telah dipilih bisa secara langsung muncul pada kolom gambar awal yang ukurannya sesuai dengan kolom yang tersedia atau secara langsung akan dilakukan resize gambar pada kolom gambar yang terdapat pada aplikasi.
4.3 Uji coba aplikasi dengan gambar ukuran 512x320 pixel
Dalam uji coba yang akan dilakukan pada tabel 4.1 yang akan menajdi tujuan keberhasilan adalah dimana pada sebuah kombinasi nilai sigma dan ukuran mask yang diuji yaitu nilai sigma 0.1, 2.7, dan 5 dengan ukuran mask 2x2, 3x3, 4x4, 5x5 mampu menghilangkan noise berupa badai meteor yang terdapat pada gambar uji yang berukuran 512x320 pixel.
50
Tabel 4.1 Uji coba aplikasi Gaussian filter dengan gambar 512x320 pixel
Nilai Sigma
Ukuran Mask
Gambar
0,1 2x2
Ukur an gambar 512x320 pixel
2,7 2x2
Ukur an gambar 512x320 pixel
Hak Cipta © milik UPN "Veteran" Jatim :
Lanjutan Tabel 4.1.
5 2x2
Ukur an gambar 512x320 pixel
0,1 3x3
52
Lanjutan Tabel 4.1.
2,7 3x3
Ukur an gambar 512x320 pixel
5 3x3
Ukur an gambar 512x320 pixel
Hak Cipta © milik UPN "Veteran" Jatim :
Lanjutan Tabel 4.1.
0,1 4x4
Ukur an gambar 512x320 pixel
2,7 4x4
54
Lanjutan Tabel 4.1.
5 4x4
Ukur an gambar 512x320 pixel
0,1 5x5
Ukur an gambar 512x320 pixel
Hak Cipta © milik UPN "Veteran" Jatim :
Lanjutan Tabel 4.1.
2,7 5x5
Ukur an gambar 512x320 pixel
5 5x5
56
4.4 Uji coba aplikasi dengan ukuran gambar 1440x900 pixel
Dalam uji coba kedua pada tabel 4.2 yang akan dilakukan pada sebuah gambar permukaan bumi yang diambil dari foto satelit diatas atmosfer bumi dengan ukuran keseluruhan gambar 1440 x 900 pixel.
Gambar uji coba terlihat diselimuti badai meteor sehingga gambar target berupa permukaan bumi dan identifikasi objek disekitar bumi menjadi tersamarkan secara visual, dengan aplikasi ini akan diuji coba kombinasi sigma 0.1, 2.7, dan 5 dengan ukuran mask 2x2, 3x3, 4x4, 5x5.
Tabel 4.2 Uji coba aplikasi dengan gambar 1440x900 pixel.
Nilai sigma
Ukuran mask
Gambar
0,1 2x2
Ukur an gambar 1440x900 pixel
Hak Cipta © milik UPN "Veteran" Jatim :
Lanjutan Tabel 4.2.
2,7 2x2
Ukur an gambar 1440x900 pixel
5 2x2
58
Lanjutan Tabel 4.2.
0,1 3x3
Ukur an gambar 1440