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) Membuka 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) (b) (c) (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) Membuat 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.
Gambar 3.6 Flowchart program aplikasi 54
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 Noisy Picture Box Full Size Image Full Size Image 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. (teks) 2. (teks) 3. (teks) 4. (teks) 5.. 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 Modul yang digunakan dalam program aplikasi ini berjumlah dua belas buah modul, dengan rincian sebagai berikut. a. Modul 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. Modul ini ada 3 buah, yang masing-masingnya mengambil nilai integer dari saluran warna Red, Green dan Blue. b. Modul Array to Grayscale Bitmap Modul 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. Modul Array to Color Bitmap Modul 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. Modul Transformasi Wavelet Modul ini berfungsi untuk melakukan transformasi wavelet pada array 2 dimensi yang menampung nilai-nilai piksel citra digital. Modul ini dapat dilakukan berulang-ulang sesuai jumlah tingkat transformasi wavelet yang ditentukan. e. Modul Invers Transformasi Wavelet Modul ini akan melakukan invers transformasi wavelet pada array 2 dimensi yang sebelumnya telah ditransformasi wavelet. Modul ini harus diiterasi sesuai jumlah transformasi wavelet yang telah dijalankan sebelumnya agar array 2 dimensi (citra) kembali ke domain aslinya.
60 f. Modul Context-Based BayesShrink Modul ini akan melakukan modifikasi nilai pada array 2 dimensi yang telah mengalami transformasi wavelet sesuai dengan prosedur metode Context- Based 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. Modul Denoise Image Modul ini adalah modul penampung beberapa modul di atas untuk menjalankan proses reduksi noise terhadap citra. Modul ini akan meminta parameter berupa array 2 dimensi yang mewakili citra. Modul 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. Modul Grayscale Image Denoiser Modul ini adalah modul penampung modul-modul di atas untuk menjalankan keseluruhan proses reduksi noise khusus terhadap citra grayscale. Modul 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. Modul Color Image Denoiser Modul ini adalah modul penampung modul-modul di atas untuk menjalankan keseluruhan proses reduksi noise khusus terhadap citra berwarna. Modul ini akan memanggil 3 modul Bitmap to Array untuk menampung nilai piksel citra berwarna ke dalam 3 buah array 2 dimensi. Masing-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. Modul Open Picture Modul ini berguna untuk membuka file citra digital dan menampilkannya di kotak gambar. k. Modul Save Picture Modul ini berguna untuk menyimpan citra digital hasil proses reduksi noise. Citra digital akan disimpan dalam format PNG. l. Modul Nilai Mutlak Modul 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.