BAB 3 PERANCANGAN PROGRAM
Pada bab 3 ini, akan dijelaskan proses rancangan program aplikasi pengurangan noise pada citra digital. Dimulai dari analisa kebutuhan sistem yang akan dirancang, dilanjutkan dengan rancangan cetak biru untuk program yang akan dibangun.
3.1
Analisa Kebutuhan Sistem Berikut ini adalah gambaran sistem secara garis besar yang di dalamnya terkandung proses-proses yang akan dilakukan oleh sistem.
Transformasi wavelet
Reduksi noise
Invers transformasi wavelet Gambar 3.1 Global flowchart proses dalam sistem
Dalam tiap-tiap tahapan di atas, dilakukan analisa dan modifikasi terhadap citra digital yang mengandung noise untuk pada akhirnya menghasilkan citra yang noise-nya telah tereduksi. Proses dimulai dengan melakukan transformasi wavelet pada citra digital untuk mengubah domain citra digital menjadi domain wavelet. Proses kemudian dilanjutkan dengan proses reduksi noise terhadap citra digital dalam domain
48
wavelet. Citra hasil reduksi noise yang masih berada di domain wavelet kemudian perlu diinvers transformasi wavelet untuk dikembalikan ke domain asalnya.
3.1.1
Transformasi wavelet Untuk dapat melakukan reduksi noise dengan metode berbasis wavelet, terlebih dahulu perlu dilakukan transformasi wavelet pada citra digital. Langkahlangkah dalam tahap transformasi wavelet ini adalah sebagai berikut: 1) M embuka file citra digital Citra digital yang dibuka hendaknya adalah citra digital yang mengandung noise, dan harus berukuran lebih dari 256 x 256 piksel. Citra yang dibuka boleh berupa citra grayscale atau citra berwarna. Untuk ujicoba, kedua jenis citra akan digunakan.
Gambar 3.2 Contoh citra digital noisy
49
2) Pemisahan saluran warna Jika citra digital yang digunakan adalah citra berwarna, maka citra dipisahkan menurut saluran warnanya menjadi 3 buah citra, masing-masing mewakili saluran Red, Green dan Blue, seperti ditunjukkan pada gambar 3.3 di bawah.
(a)
(c)
(b)
(d)
Gambar 3.3 Citra berwarna dan saluran warnanya (a) citra berwarna (b) citra saluran Red (c) citra saluran Green (d) citra saluran Blue
3) M embuat Cycle Spin Dari citra digital yang ada, dibuat cycle spin-nya dengan cara membuat image baru hasil pergeseran citra asli sejauh beberapa piksel. Dalam sistem
50
yang dibuat penulis, digunakan 8 buah cycle spin dengan pergeseran diagonal.
4) Transformasi wavelet 2 dimensi Pada bagian ini, dilakukan transformasi wavelet 2 dimensi menggunakan wavelet Daubechies 9/7 pada tiap-tiap citra digital dan versi cycle spin-nya, sehingga total akan dilakukan 9 kali transformasi wavelet untuk satu saluran warna, dengan rincian 1 citra asli dan 8 versi cycle spin-nya.
Gambar 3.4 Hasil transformasi wavelet Daubechies 9/7 satu tingkat
Dalam program aplikasi yang dirancang, junlah tingkatan transformasi wavelet yang dilakukan terhadap citra digital adalah sebanyak 5 tingkat. Untuk setiap tingkatannya, trnsformasi wavelet akan selalu dilakukan pada nilai tren dari hasil transformasi wavelet tingkat sebelumnya.
51
Gambar 3.5 Hasil transformasi wavelet Daubechies 9/7 dua tingkat
3.1.2
Reduksi noise Pada tahapan ini, metode context-based BayesShrink diterapkan pada hasil transformasi wavelet. Tipe thresholding yang digunakan untuk BayesShrink adalah soft thresholding. Nilai threshold yang digunakan untuk thresholding terhadap masing-masing dari 5 level hasil transformasi wavelet ditentukan oleh persamaan (2.43). Context-based dilakukan dengan menggunakan mask berukuran 3x3. Selanjutnya dilakukan context-based soft thresholding menggunakan persamaan (2.46). Untuk citra grayscale dengan hanya 1 saluran warna, operasi di atas akan dilakukan sebanyak 9 kali, yaitu terhadap 1 citra asli dan 8 versi cycle spin-nya. Sedangkan untuk citra berwarna, operasi tersebut akan dilakukan 27 kali, karena
52
proses yang sama akan dilakukan pada tiap-tiap dari 3 saluran warna yang membentuk citra berwarna.
3.1.3
Invers Transformasi Wavelet Di bagian ini, hasil transformasi wavelet yang telah dimodifikasi dengan metode reduksi noise ditransformasi invers wavelet untuk mendapatkan kembali citra digital dengan 8 versi cycle spin-nya dalam bentuk utuh. Proses selanjutnya adalah penyatuan citra digital asli dengan versi cycle spin-nya. Tiap-tiap dari 8 cycle spin, yang merupakan pergeseran dengan arah dan jarak tertentu dari citra asli, digeser kembali ke posisi asalnya, sehingga menghasilkan 8 citra digital yang identik dengan citra digital asli. Kemudian dilakukan perata-rataan nilai piksel dari 9 citra digital itu untuk menghasilkan citra digital yang noise-nya telah tereduksi. Untuk kasus citra berwarna, 3 citra grayscale yang mewakili 3 saluran warna yang berbeda, yaitu Red, Green dan Blue, disatukan kembali untuk mendapatkan citra berwarna.
3.2
Rancangan Program Pada bagian ini akan dijelaskan rincian dari perancangan program aplikasi yang akan dibuat. Pertama dibuat flowchart dan sequence diagram untuk menggambarkan alur dari langkah-langkah yang akan dijalankan program. Kemudian akan dibuat rancangan untuk tampilan layar program aplikasi. Setelah itu, rancangan untuk modul-modul yang akan digunakan olah program akan disusun.
53
3.2.1
Flowchart dan Sequence Diagram Program aplikasi yang akan dibuat secara garis besar memiliki alur sebagai berikut. Pengguna program aplikasi akan langsung masuk ke layar utama. Di layar utama, pengguna kemudian memilih file citra digital yang direduksi noise-nya menggunakan tombol Browse. Citra yang dipilih kemudian akan ditampilkan di layar utama. Pengguna kemudian dapat menekan tombol Denoise yang akan mengaktifkan proses reduksi noise. Citra hasil proses akan langsung ditampilkan pula di layar utama. Hasil pemrosesan dapat disimpan menggunakan tombol Save.
54
Gambar 3.6 Flowchart program aplikasi
55
Sequence diagram berikut adalah menampilkan urutan interaksi pengguna program aplikasi dengan interface program aplikasi.
Program Aplikasi
Pengguna program Pilih file citra
Tekan tombol ‘Denoise’
Citra ditampilkan
Citra diproses untuk direduksi noise-nya
Tekan tombol ‘Save’
Citra hasil proses ditampilkan
Citra hasil proses disimpan
Gambar 3.7 Sequence diagram program aplikasi
3.2.2
Rancangan Layar Sebelum program aplikasi dibuat, terlebih dahulu dibuat rancangan layar sebagai cetak biru untuk pembuatan Graphical User Interface. Berikut ini adalah rancangan untuk layar-layar yang ada pada program aplikasi.
56
a. Rancangan layar menu utama Image Denoiser Full Size Image
Full Size Image
Noisy Picture Box
Denoised Picture Box
Browse
Denoise Image
Save
Gambar 3.8 Rancangan layar menu utama
Pada layar utama ini, citra yang dipilih serta hasil pemrosesannya akan ditampilkan pada 2 kotak gambar yang tersedia. Di atas masing-masing kotak gambar, terdapat sebuah tombol ‘Full Size Image’ untuk menampilkan citra dengan ukuran aslinya pada layar lain yang akan terbuka. Tombol ‘Browse’ dapat ditekan untuk memilih gambar yang akan diproses. Tombol ‘Denoise Image’ jika ditekan akan mengaktifkan proses reduksi noise. Tombol ‘Save’ dapat ditekan untuk menyimpan hasil proses yang telah didapat.
57
b. Rancangan layar Full Size Image Full Size Image Picture Box
Gambar 3.9 Rancangan layar full size image
Pada layar ini hanya terdapat satu kotak gambar berukuran besar untuk menampilkan citra pada ukuran aslinya.
c. Rancangan layar Usage Instruction Usage Instruction Petunjuk pemakaian: 1. 2. 3. 4. 5.
(teks) (teks) (teks) (teks) ….
Gambar 3.10 Rancangan layar Usage Instruction
58
Pada layar ini ditampilkan petunjuk cara pemakaian program aplikasi.
d. Rancangan layar About About
Program Aplikasi Reduksi Noise Citra Digital Created by Varian Citrajaya (2008-2009)
Gambar 3.11 Rancangan layar About
Pada layar ini ditampilkan informasi tentang pembuat program aplikasi
3.2.3
Rancangan Modul M odul yang digunakan dalam program aplikasi ini berjumlah dua belas buah modul, dengan rincian sebagai berikut. a. M odul Bitmap to Array Dalam modul ini, dibuat sebuah array 2 dimensi dengan tipe data double yang berukuran sama dengan citra digital untuk menampung nilai-nilai integer yang dikandung oleh tiap piksel pada citra digital. Hal ini dilakukan karena citra digital bertipe data bitmap, bukan numerik seperti integer atau double, sedangkan pengolahan citra selanjutnya adalah pengolahan numerik.
59
Tipe data double dipilih karena perhitungan yang akan dilakukan adalah perhitungan desimal dengan ketelitian yang cukup tinggi. M odul ini ada 3 buah, yang masing-masingnya mengambil nilai integer dari saluran warna Red, Green dan Blue. b. M odul Array to Grayscale Bitmap M odul ini berguna untuk kembali membentuk citra digital yang bertipe data bitmap dari 1 buah array 2 dimensi yang dibentuk oleh salah satu dari 3 modul Bitmap to Array. Citra digital yang dihasilkan dari modul ini adalah citra grayscale yang hanya memiliki satu saluran warna. c. M odul Array to Color Bitmap M odul ini berguna untuk kembali membentuk citra digital yang bertipe data bitmap dari 3 buah array 2 dimensi yang mewakili 3 saluran warna Red, Green, dan Blue, yang sebelumnya dibentuk oleh 3 modul Bitmap to Array. Citra digital yang dihasilkan dari modul ini adalah citra berwarna. d. M odul Transformasi Wavelet M odul ini berfungsi untuk melakukan transformasi wavelet pada array 2 dimensi yang menampung nilai-nilai piksel citra digital. M odul ini dapat dilakukan berulang-ulang sesuai jumlah tingkat transformasi wavelet yang ditentukan. e. M odul Invers Transformasi Wavelet M odul ini akan melakukan invers transformasi wavelet pada array 2 dimensi yang sebelumnya telah ditransformasi wavelet. M odul ini harus diiterasi sesuai jumlah transformasi wavelet yang telah dijalankan sebelumnya agar array 2 dimensi (citra) kembali ke domain aslinya.
60
f. M odul Context-Based BayesShrink M odul ini akan melakukan modifikasi nilai pada array 2 dimensi yang telah mengalami transformasi wavelet sesuai dengan prosedur metode ContextBased BayesShrink. Proses dalam modul ini mencakup penentuan nilai simpangan baku noise, penentuan nilai-nilai threshold untuk tiap subband sesuai dengan prosedur metode BayesShrink, pembuatan konteks, dan pelaksanaan soft thresholding terhadap setiap koefisien-koefisien wavelet yang terdapat di setiap subband pada setiap level dekomposisi wavelet. g. M odul Denoise Image M odul ini adalah modul penampung beberapa modul di atas untuk menjalankan proses reduksi noise terhadap citra. M odul ini akan meminta parameter berupa array 2 dimensi yang mewakili citra. M odul ini kemudian akan membuat versi cycle spin dari array 2 dimensi tersebut. Array 2 dimensi dan cycle spin-nya kemudian akan menjadi objek untuk modul Transformasi Wavelet, Context-Based BayesShrink, dan
Invers Transformasi Wavelet
secara berturut-turut. Array 2 dimensi selanjutnya akan kembali disatukan dengan versi cycle spin-nya, sebelum dikembalikan kepada pemanggilnya. h. M odul Grayscale Image Denoiser M odul ini adalah modul penampung modul-modul di atas untuk menjalankan keseluruhan proses reduksi noise khusus terhadap citra grayscale. M odul ini akan memanggil salah satu modul Bitmap to Array untuk menampung nilai piksel citra grayscale ke dalam array 2 dimensi. Array 2 dimensi yang dihasilkan kemudian akan digunakan untuk memanggil modul Denoise Image. Array 2 dimensi hasil proses reduksi noise yang dikembalikan oleh
61
modul Denoise Image kemudian akan diubah menjadi citra digital dengan modul Array to Grayscale Bitmap. i. M odul Color Image Denoiser M odul ini adalah modul penampung modul-modul di atas untuk menjalankan keseluruhan proses reduksi noise khusus terhadap citra berwarna. M odul ini akan memanggil 3 modul Bitmap to Array untuk menampung nilai piksel citra berwarna ke dalam 3 buah array 2 dimensi. M asing-masing dari 3 buah array 2 dimensi ini akan digunakan untuk memanggil modul Denoise Image sebanyak 3 kali. 3 buah array 2 dimensi hasil proses reduksi noise yang dikembalikan oleh modul Denoise Image kemudian akan digunakan untuk memanggil modul Array to Color Bitmap, untuk mendapatkan sebuah citra digital berwarna yang noise-nya telah direduksi. j. M odul Open Picture M odul ini berguna untuk membuka file citra digital dan menampilkannya di kotak gambar. k. M odul Save Picture M odul ini berguna untuk menyimpan citra digital hasil proses reduksi noise. Citra digital akan disimpan dalam format PNG. l. M odul Nilai Mutlak M odul ini berguna untuk mengembalikan nilai mutlak dari sebuah nilai yang diberikan. Pada bab ini telah dijelaskan rancangan untuk program aplikasi reduksi noise. Pada bab setelah ini akan ditunjukkan implementasi dari program aplikasi reduksi noise yang telah dibuat, serta pengujian dan evaluasi kinerja program tersebut.