BAB II LANDASAN TEORI 2.1. Citra Digital Istilah citra biasanya digunakan dalam bidang pengolahan citra yang berarti gambar. Suatu citra dapat didefinisikan sebagai fungsi dua dimensi, di mana dan adalah koordinat spasial, dan amplitudo dari pada sembarang pasangan koordinat disebut intensitas (Prasetyo, 2011). Ketika, dan nilai intensitas dari adalah semua terbatas, maka citra tersebut disebut sebagai citra digital. Citra digital direpresentasikan sebagai citra yang memiliki ukuran dimana sebagai baris dan sebagai kolom. Sistem koordinat pada citra digital dapat dilihat seperti pada Gambar 2.1. Gambar 2.1. Sistem koordinat pada citra digital (Gonzalez, Woods & Eddins, 2009)
7 Citra digital dibentuk oleh kumpulan titik yang dinamakan piksel (Kadir & Susanto, 2012). Piksel (pixel atau picture element ) merupakan elemen terkecil dari sebuah citra dimana satu titik pada citra mewakili satu piksel. Pada Gambar 2.2, sebuah kotak kecil 5 x 5 piksel diambil dari sebuah citra berukuran 128 x 128 piksel. Angka-angka pada Gambar 2.2 menunjukkan besar intensitas pada masing-masing piksel tersebut. 129 69 120 148 72 65 118 65 70 136 26 21 89 62 134 101 25 28 99 90 67 37 94 145 74 Gambar 2.2. Citra digital Citra digital juga dapat direpresentasikan sebagai matriks elemen dalam matriks disebut sebagai piksel seperti pada Gambar 2.3. dan setiap Gambar 2.3. Matriks citra (Gonzalez, Woods & Eddins, 2009) Semakin banyak jumlah piksel dan variasi nilai piksel dari suatu citra, maka semakin tinggi nilai resolusinya. Resolusi merupakan ukuran dari banyaknya titik untuk setiap satuan panjang. Resolusi citra menggambarkan kedetailan dari sebuah citra. Citra dengan resolusi rendah (low resolution) adalah citra dengan jumlah piksel dan variasi nilai piksel rendah dan citra resolusi tinggi (high resolution) adalah citra dengan jumlah piksel dan variasi nilai piksel tinggi (Abdi, Aisyah & Arnia, 2011).
8 2.1.1. Jenis-Jenis Citra Digital 1. Citra Biner (Monokrom) Citra biner direpresentasikan dengan 2 kondisi derajat keabuan yaitu hitam dan putih dimana warna hitam bernilai 0 dan warna putih bernilai 1. Citra biner memiliki kedalaman warna 1 bit (McAndrew, 2004). 0 1 Gambar 2.4. Gradasi warna pada citra biner Berdasarkan Gambar 2.4, maka implementasi citra biner tampak seperti pada Gambar 2.5. 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 Gambar 2.5. Citra biner 2. Citra Skala Keabuan (Grayscale) Citra grayscale adalah citra digital yang hanya memiliki satu nilai kanal pada setiap pikselnya, dengan kata lain bagian red = green = blue. Nilai tersebut digunakan untuk menunjukan tingkat intensitas. Warna yang dimiliki adalah warna dari hitam, keabuan, dan putih. Tingkat keabuan yang dimaksud merupakan warna abu dengan berbagai tingkatan dari hitam hingga mendekati putih. Citra grayscale memiliki kedalaman warna 8 bit (256 kombinasi warna keabuan) (McAndrew, 2004). Citra grayscale dapat dilihat seperti Gambar 2.6.
9 230 229 232 234 235 237 236 236 234 233 255 255 255 251 230 99 90 67 37 94 222 152 255 129 129 Gambar 2.6. Citra grayscale Untuk menghitung nilai piksel grayscale dari citra RGB adalah nilai RGB perpiksel dikonversi ke nilai grayscale dengan cara mencari nilai ratarata per piksel.... (1) dengan: f R adalah nilai komponen red f G adalah nilai komponen green f B adalah nilai komponen blue Berdasarkan persamaan 1, maka dapat diambil contoh perhitungan nilai grayscale: f(1,1) = (255, 240, 240) = (255 + 240 + 240) / 3 = 198 3. Citra Warna (True Color) Jika 2 tipe representasi citra sebelumnya yaitu citra biner dan citra grayscale menggunakan matriks 2D, maka representasi RGB atau yang disebut juga citra true color, menggunakan matriks 3D dengan 3 buah layer. Layer 1 untuk warna merah (red), layer 2 untuk warna hijau (green), dan layer 3 untuk warna biru (blue). Pemetaan warna RGB pada ruang berdimensi tiga dapat dilihat seperti pada Gambar 2.7.
10 B 255 Biru Cyan Magenta Putih 0 Hitam 255 Hijau G 255 Merah Kuning R Gambar 2.7. Warna RGB pada ruang berdimensi tiga (Kadir & Susanto, 2012) Dari Gambar 2.7 terdapat warna-warna lain selain dari ketiga warna layer. Warna-warna tersebut diperoleh dari perpaduan nilai elemen dari ketiga layer. Elemen pada masing-masing layer memiliki range 0-255 dan masingmasing elemen memiliki kedalaman warna 8 bit. Karena terdapat 3 buah layer pada citra RGB sehingga total kombinasi warna yang dapat dihasilkan oleh citra RGB adalah 256 x 256 x 256 = 16.777.216 kombinasi warna. Citra grayscale tampak dapat dilihat seperti Gambar 2.8.
11 49 55 56 57 52 58 60 60 58 55 58 54 53 55 56 83 78 72 69 68 88 91 91 84 83 64 76 82 57 58 58 60 60 58 55 111 94 73 55 56 105 80 78 64 78 96 103 108 107 93 83 83 91 94 92 135 128 126 112 107 141 129 129 117 115 95 99 109 108 112 84 93 107 101 105 Gambar 2.8. Citra true color 2.2. Citra Digital Berformat JPEG (Joint Photographic Experts Group) JPG atau JPEG merupakan standar universal untuk format file citra. Hampir setiap kamera digital dan sistem pencitraan dengan menggunakan komputer mampu membaca dan menggunakan format file ini dalam menghasilkan gambar. JPEG mendukung kedalaman warna 24 bit (pada citra RGB terdapat 3 buah layer dimana kedalaman warna masing-masing layer adalah 8 bit). Format file JPEG menghasilkan ukuran file kecil, namun memiliki kualitas gambar yang kurang baik disebabkan oleh algoritma kompresi lossy. Kompresi Lossy adalah metode memperkecil ukuran file citra dengan membuang beberapa data (McAndrew, 2004).
12 2.3. Noise/Derau Noise/derau merupakan informasi tidak diinginkan yang mencemari suatu citra. Dalam citra digital, noise juga disebut sebagai piksel-piksel berintensitas berbeda yang mengganggu kualitas citra (Montabone, 2010). Dalam praktiknya, kehadiran derau tidak dapat dihindari. Noise/derau dapat timbul biasanya pada saat akuisisi citra, misalnya dari kamera saat memotret dan pada scanner saat proses scan. 2.3.1. Uniform Noise Noise Uniform dapat dibangkitkan dengan cara menggunakan pembangkit bilangan acak [0,1] dengan distribusi uniform. Lalu, untuk titik-titik yang terkena noise, nilai fungsi citra ditambahkan dengan nilai noise yang ada. 2.3.2. Speckle Noise 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 yang tampak (Murinto, Aribowo & Syazali, 2007). Speckle Noise merupakan noise yang memberikan titik berwarna hitam pada citra digital. Titik-titik hitam tersebut dapat dibangkitkan dengan cara membangkitkan bilangan 0 pada titik-titik yang secara probabilitas lebih kecil dari nilai probabilitas noise. 2.3.3. Salt & Pepper Noise Sama seperti namanya, noise ini merupakan model noise yang memiliki warna hitam yang tampak seperti taburan merica/pepper dan warna putih yang tampak seperti taburan garam/salt pada titik yang terkena noise. Jika pada Speckle Noise, yang berupa titik-titik hitam dibangkitkan dengan cara membangkitkan bilangan 0 pada titik-titik yang secara probabilitas lebih kecil dari nilai probabilitas noise, maka pada Salt & Pepper Noise, akan membangkitkan titik-titik berwarna putih dengan membangkitkan bilangan 255 pada titik-titik yang secara probabilitas lebih kecil dari nilai probabilitas noise.
13 Citra yang terdegradasi oleh uniform noise, speckle noise dan salt & pepper noise dapat dilihat pada Gambar 2.9. (a) (b) (c) (d) Gambar 2.9. (a) Citra grayscale (b) Citra yang terdegradasi uniform noise (c) Citra yang terdegradasi speckle noise (d) Citra yang terdegradasi salt & pepper noise
14 2.4. Pengolahan Citra Digital Pengolahan citra digital adalah pemrosesan citra yang secara khusus menggunakan komputer dengan tujuan (McAndrew, 2004): 1. Meningkatkan kualitas informasi dari sebuah citra (gambar) yang digunakan untuk kepentingan interpretasi manusia. 2. Mengubah citra dari sebuah gambar yang digunakan untuk mempermudah pemrosesan persepsi mesin autonomous agar lebih mudah dalam mengambil keputusan. 2.4.1. Teknik-Teknik Pengolahan Citra Teknik pada pengolahan citra dapat dibagi menjadi (McAndrew, 2004): 1. Perbaikan kualitas citra (image enhancement) dari aspek radiometrik (kontras, penajaman, pewarnaan semu) dan aspek geometrik (rotasi, translasi, skala, transformasi geometrik). Penajaman citra pada aspek radiometrik dapat dilihat pada Gambar 2.10. (a) citra blurring (b) citra sharping Gambar 2.10. Penajaman/sharping pada image enhancement 2. Pemugaran citra (image restoration) berupaya untuk merekonstruksi (reconstruct) atau mendapatkan kembali (recover) suatu citra yang telah mengalami penurunan kualitas (degraded). Gambar 2.11 menunjukkan proses restorasi citra pada suatu citra yang terdegradasi.
15 Gambar 2.11. Proses restorasi citra (Gonzalez, Woods & Eddins, 2009) Salah satu cara restorasi pada citra yang terkena noise adalah dengan cara filtering yang tampak pada Gambar 2.12. (a) citra dengan noise (b) citra hasil filtering Gambar 2.12. Restorasi citra dengan reduksi noise 3. Segmentasi citra (image segmentation) merupakan teknik membagi suatu citra menjadi wilayah-wilayah yang homogen berdasarkan keserupaan intensitas atau kesamaan kriteria yang telah didefinisikan (Gonzalez, Woods & Eddins, 2009). Salah satu contoh segementasi citra adalah deteksi tepi citra yang dapat dilihat seperti pada Gambar 2.13.
16 (a) citra asli Gambar 2.13. Segmentasi citra (b) citra segmentasi 2.5. Filtering Filtering merupakan suatu proses pengambilan sebagian sinyal dari frekuensi tertentu, dan menempatkan sinyal tersebut pada frekuensi yang lain. Filtering pada citra juga menggunakan prinsip yang sama, yaitu mengambil fungsi citra pada piksel- piksel tertentu dan mengantikan fungsi citra tersebut pada piksel-piksel tertentu. Teknikteknik filtering pada umumnya bertujuan untuk menghilangkan noise yang terdapat dalam citra dan juga untuk menghaluskan citra. 2.6. Order-Statistic Filters Order-statistic filter adalah filter spasial non-linier yang didasarkan pada pengurutan / perankingan piksel sebuah gambar dan kemudian mengganti nilai pusat piksel dengan nilai hasil yang ditentukan dari proses perankingan (Gonzalez, Woods & Eddins, 2009). Filter ini bekerja dengan menggunakan konsep sliding window yaitu sebuah window berupa matriks m x n yang akan bergeser posisi dengan tujuan mengganti nilai pusat piksel pada window dengan nilai piksel hasil perangkingan. Gambar 2.14 menunjukkan sebuah matriks citra berukuran 6 x 6.
17 = 5 3 3 7 1 4 4 2 1 6 5 5 6 3 0 1 0 6 2 4 5 7 6 8 3 7 0 5 3 2 4 5 3 3 7 1 Gambar 2.14. Matriks citra ukuran 6 x 6 Dari Gambar 2.14 dapat diambil matriks citra 3 x 3 dari pojok kiri atas. Bagian citra 3 x 3 dari matriks citra 6 x 6 tersebut dapat dilihat seperti pada Gambar 2.15. 5 3 3 4 2 1 6 3 0 Gambar 2.15. Matriks citra 3 x 3 dari matriks citra 6 x 6 Piksel-piksel tersebut diurutkan secara ascending, sehingga diperoleh hasil pengurutan nilai pikselnya adalah 0, 1, 2, 3, 3, 3, 4, 5, 6. 2.6.1. Alpha-Trimmed Mean Filter (ATMF) Alpha-trimmed mean filter pada prinsipnya adalah menghilangkan /2 buah piksel dengan nilai gray-level terendah dan /2 buah piksel dengan nilai gray-level tertinggi dari g (s,t) dalam. Range nilai d berada di antara 0 sampai. Ketika, maka alpha-trimmed mean filter menjadi arithmetic mean filter, dan jika, maka alpha-trimmed mean filter menjadi median filter. Formula yang digunakan (Prasetyo, 2011):... (2)
18 dengan: mn g (s,t) : hasil filtering : ukuran panjang dan lebar window : sub-image : window daerah yang diliputi oleh filter Gambar 2.16. Kalkulasi pada metode ATMF (http://www.librow.com/content/common/images/articles/article-7/fig-1.gif) Contoh: Matriks citra 3 x 3 pada Gambar 2.16 yang telah diurutkan, akan di filter dengan d = 4. [0 1 2 3 3 3 4 5 6] Kemudian nilai piksel dengan nilai gray-level terendah dan nilai piksel dengan nilai gray-level tertinggi dihapus sehingga menjadi: [ 1 2 3 3 3 4 5 ] Kemudian lakukan perhitungan dengan menggunakan Persamaan 2, sehingga diperoleh nilai pusat seperti pada Gambar 2.17.
19 5 3 3 4 2 1 6 3 0 5 3 3 4 4 1 6 3 0 [ ] Gambar 2.17. Proses ATMF dengan matriks 3 x 3 (a) (b) Gambar 2.18. (a) Citra terdegradasi dengan Salt and Pepper Noise (b) ATMF 3 x 3, trimmed size = 4 2.7. Adaptive Median Filter (AMF) Adaptive Median Filter yang termasuk didalam adaptive filter merupakan pengembangan dari Median Filter. Median filter adalah salah satu filtering non-linear yang mengurutkan nilai intensitas sekelompok piksel kemudian mengganti nilai piksel yang diproses dengan nilai tengahnya. Namun dalam pengaplikasiannya, Median Filter dinilai kurang efektif di dalam mereduksi noise terutama noise dengan persentase yang tinggi. Perbedaan mendasar dalam diantara Median Filter dan AMF adalah AMF bekerja dengan ukuran window yang dapat berubah menyesuaikan dengan batasan maksimum. Variasi ukuran window ini tergantung pada median dari piksel dalam window tersebut. Jika nilai rata-rata adalah noise, maka ukuran jendela akan diperluas. Adaptive median filter mengklasifikasikan piksel sebagai noise dengan membandingkan setiap piksel pada gambar dengan piksel tetangga disekitarnya
20 dengan piksel pusat dari jendela (window) dievaluasi untuk memverifikasi apakah itu suatu noise atau bukan. Sebuah piksel yang berbeda dari mayoritas tetangganya, maupun yang tidak selaras secara struktural dengan piksel mereka yang sama, akan ditandai sebagai noise (Listiyani, 2013). Tujuan dari algoritma AMF ini adalah mengidentifikasi kandidat noise kemudian mengganti setiap dengan nilai tengah dari piksel yang ada pada window. Algoritma AMF bekerja pada dua bagian, bagian A dan bagian B sebagaimana terlihat pada persamaan 3 dan persamaan 4 (Prasetyo, 2011): Bagian A: A = Z med A =Z med Z min... (3) Z max Jika AND, pindah ke bagian B ELSE naikkan ukuran window IF ukuran window, ulangi bagian A ELSE keluarkan Bagian B: B = Z xy B = Z xy Z min Z max... (4) Jika AND, keluarkan ELSE keluarkan Penjelasan untuk algoritma AMF adalah sebagai berikut (Thivakaran & Chandrasekaran, 2010): Untuk setiap piksel pada lokasi : Langkah 1. Inisialisasi S = 3. Langkah 2. Hitung,, dan yang merupakan nilai minimum, median, dan maksimum dari piksel-piksel di dalam window.
21 Langkah 3. Lakukan perhitungan pada persamaan 3 yang berfungsi untuk melihat apakah. Jika hasilnya bernilai true, dilanjutkan ke langkah 5. Jika tidak, atur ukuran hingga mencapai ukuran maksimum dari. Langkah 4. Jika, ulangi langkah 2. Selain itu, ubah dengan. Langkah 5. Lakukan perhitungan pada persamaan 4 yang berfungsi untuk melihat apakah min. Jika hasilnya bernilai true, maka bukan noise sehingga nilai tidak perlu diubah, selain itu, ubah nilai dengan nilai. dengan, : filtering window : nilai piksel pusat pada window : nilai minimum pada window : nilai tengah pada window : nilai maksimum pada window : ukuran maksimal window Contoh: Pada sebuah matriks citra 6 x 6, inisialisasi window membentuk sebuah filtering window 3 x 3. sehingga = = 5 3 3 7 1 4 4 2 1 6 5 5 6 3 0 1 0 6 2 4 5 7 6 8 3 7 0 5 3 2 4 5 3 3 7 1 5 3 3 4 2 1 6 3 0 Z xy Pada filtering window, dilakukan proses order-statistic untuk mendapatkan nilai minimum, nilai tengah dan nilai maksimum:
22 [ 0 1 2 3 3 3 4 5 6 ] Berdasarkan contoh matriks, diperoleh: = 2; = 0; = 3; = 6 Maka, periksa apakah = (true). Maka, periksa apakah = (true). Dari perhitungan di atas terlihat bahwa tetap. bukan merupakan noise, sehingga nilai (a) (b) Gambar 2.19 (a) Citra terdegradasi dengan salt and pepper noise (b) Citra hasil Adaptive Median Filtering (Thivakaran & Chandrasekaran, 2010)
23 2.8. Penilaian Kualitas Citra 2.8.1. Mean Square Error (MSE) MSE adalah rata-rata kuadrat nilai kesalahan antara citra asli dengan citra hasil pengolahan. Semakin kecil nilai MSE, maka semakin bagus kualitas citra hasil filter. Secara matematis, MSE dapat dirumuskan dengan persamaan 5 (Prasetyo, 2011):... (5) dengan: M N : lebar citra dalam piksel : tinggi citra dalam piksel : citra sebelum reduksi noise : citra setelah reduksi noise 2.8.2. Peak Signal to Noise Ratio (PSNR) PSNR adalah perbandingan antara nilai maksimum warna pada citra hasil filtering dengan kuantitas derau/noise. Semakin besar nilai PSNR citra hasil, maka citra tersebut akan semakin mendekati citra asli. PSNR dapat dihitung dengan menggunakan persamaan 6: ( )... (6) 2.8.3. Runtime (Waktu Eksekusi) Runtime adalah lamanya waktu yang dibutuhkan untuk menjalankan perintah dalam sebuah proses. Waktu yang dibutuhkan dalam melakukan eksekusi dapat dihitungan dengan melakukan pengurangan waktu akhir eksekusi dengan waktu awal eksekusi.