Pertemuan 3 Perbaikan Citra pada Domain Spasial (1), S.Kom, M.Comp.Sc
Tujuan Memberikan pemahaman kepada mahasiswa mengenai berbagai teknik perbaikan citra pada domain spasial, antara lain : Transformasi negatif/identitas, log/inverse log, pangkat/akar Transformasi linier sepotong-sepotong untuk contrast stretching Gray-level slicing Bit-plane slicing Histogram Equalization Penggunaan nilai statistik dari histogram 2
Gambaran Umum Tujuan perbaikan adalah memproses citra sehingga didapatkan hasil yang lebih sesuai dibandingkan citra aslinya, untuk dipergunakan pada aplikasi tertentu. Metode-metode perbaikan citra dikelompokkan menjadi dua, yaitu: Metode-metode pada domain spasial Metode-metode pada domain frekuensi 3
Gambaran Umum Teknik pemrosesan pada domain spasial didasarkan pada manipulasi piksel dalam citra secara langsung. Teknik pemrosesan pada domain frekuensi didasarkan pada manipulasi terhadap transformasi Fourier dari suatu citra. 4
Gambaran Umum Proses-proses pada domain spasial dinyatakan dengan ekspresi berikut: g(x,y) = T [ f(x,y) ] f(x,y) adalah citra input g(x,y) adalah citra output T adalah operator terhadap f, yang didefinisikan pada ketetanggaan (neighborhood) dari (x,y). 5
Gambaran Umum Tetangga di sekitar titik (x,y) didefinisikan sebagai sub citra berupa segi empat dengan titik pusat pada (x,y). Pusat dari sub citra dipindahkan piksel demi piksel, mulai dari sudut kiri atas citra. Operator T diaplikasikan pada setiap lokasi (x,y) untuk menghasilkan output g pada lokasi tersebut. Perhitungan hanya menggunakan piksel-piksel pada area citra yang direntang oleh neighborhood. 6
Gambaran Umum 7
Gambaran Umum Bentuk paling sederhana dari T adalah ketika ukuran neighborhood 1x1 (piksel tunggal). Dalam kasus tersebut, g hanya tergantung pada nilai f pada (x,y), dan T menjadi fungsi transformasi tingkat keabuan (atau intensitas) berbentuk: s = T(r) r dan s adalah variabel yang menyatakan tingkat keabuan dari f(x,y) dan g(x,y) pada sembarang titik (x,y). 8
Gambaran Umum Efek dari transformasi (a) akan menghasilkan citra dengan kekontrasan yang lebih tinggi dibandingkan citra asal. Hal ini dilakukan dengan cara menggelapkan intensitas di bawah m dan memperterang intensitas di atas m. Teknik seperti ini disebut contrast stretching. Transformasi (b) akan menghasilkan citra dua level (biner). Pemetaan semacam ini disebut fungsi thresholding. Dua teknik di atas termasuk kategori point processing, yaitu teknik perbaikan di mana intensitas sembarang piksel pada citra output hanya tergantung pada intensitas piksel pada citra input pada lokasi yang sama. 9
Gambaran Umum Jika ukuran neighborhood lebih besar dari 1x1, biasanya digunakan filter (disebut juga kernel atau window). Filter biasanya berukuran kecil (mis, 3x3). Setiap elemen dari filter memiliki koefisien tertentu. Intensitas dari sembarang piksel pada citra output tergantung pada intensitas dari piksel-piksel pada citra input dalam neighborhood yang direntang oleh filter, dengan bobot seperti koefisien yang tercantum pada filter. Teknik perbaikan dengan model seperti ini disebut mask processing atau filtering. 10
Transformasi Tingkat Keabuan Dasar Tiga tipe transformasi tingkat keabuan dasar yang sering digunakan untuk perbaikan citra adalah: Linear (transformasi negatif dan identitas) Logaritmik (transformasi log dan inverse-log) Pangkat (transformasi pangkat n dan akar n) 11
Transformasi Tingkat Keabuan Dasar 12
Negatif dari Citra Negatif dari suatu citra dengan tingkat keabuan antara [0, L-1] dapat dihitung menggunakan transformasi negatif dengan rumus berikut: s=l 1 r L adalah jumlah intensitas citra r adalah nilai intensitas input s adalah nilai intensitas output Contoh sederhana: L = 2 (citra hitam putih), jika inputnya: r = 0 maka outputnya: s = 2 1 0 = 1. Membalik intensitas citra dengan rumus seperti di atas akan menghasilkan negatif dari photo. Pencarian negatif dari suatu citra cocok untuk memperbaiki gambar yang memiliki rincian sub citra terang pada area yang gelap, khususnya jika ukuran dari area gelap cukup dominan. 13
Negatif dari Citra 14
Transformasi Log Bentuk umum dari transformasi log adalah: s = c log (1+r) dengan c adalah konstanta, dan diasumsikan bahwa r 0. Transformasi log memetakan rentang yang sempit dari nilai-nilai tingkat keabuan gelap pada citra input ke dalam rentang yang lebih luas pada citra output. Kebalikannya berlaku untuk tingkat keabuan terang. Transformasi inverse log memperbanyak jumlah piksel bernilai gelap dan mengurangi jumlah piksel bernilai terang. Pada transformasi log, yang terjadi adalah kebalikannya. 15
Transformasi Log 16
Transformasi Pangkat Transformasi pangkat dirumuskan sbb: s = crγ dengan c dan γ adalah konstanta positif. 17
Transformasi Pangkat 18
Transformasi Pangkat 19
Fungsi Transformasi Linier Sepotongsepotong Selain tiga fungsi transformasi dasar yang dibahas sebelumnya, fungsi transformasi linear sepotong-sepotong juga biasa digunakan. Keuntungannya, bentuk dari fungsi sepotongsepotong bisa lebih kompleks dibandingkan fungsi transformasi dasar. 20
Contrast stretching Salah satu di antara fungsi linier sepotong-sepotong yang paling sederhana adalah transformasi contrast stretching. Citra dengan kekontrasan rendah bisa disebabkan oleh kurangnya pencahayaan, kurangnya rentang dinamis dari peralatan sensor citra, atau setting lensa yang salah pada saat pengambilan citra. Ide dibalik contrast stretching adalah meningkatkan rentang dinamis tingkat keabuan dari citra. 21
Contrast stretching Lokasi titik-titik (r1,s1) dan (r2,s2) mengontrol bentuk dari fungsi transformasi. 255 Jika r1=s1 dan r2=s2, transformasi adalah fungsi linear yang tidak mengubah tingkat keabuan. (r2,s2) Jika r1=r2, s1=0 dan s2=l-1, transformasi menjadi s fungsi thresholding yang akan menghasilkan citra biner. Nilai-nilai di antara (r1,s1) dan (r2,s2) menghasilkan berbagai derajat penyebaran tingkat keabuan dari citra output, sehingga mempengaruhi kekontrasan citra. T(r) (r1,s1) 0 r 255 Secara umum, r1 r2 dan s1 s2 diasumsikan sedemikian sehingga fungsi bernilai tunggal dan monotonically increasing. 22
Contrast stretching 23
Contrast stretching Gambar (c) menunjukkan hasil contrast stretching yang didapat dengan men-set (r1,s1)=(rmin,0) dan (r2,s2)=(rmax,l-1) dengan rmin dan rmax menyatakan tingkat keabuan minimum dan maksimum pada citra asal. Jadi, fungsi transformasi menarik tingkat keabuan secara linier dari rentang asal ke rentang penuh [0, L-1]. Gambar (d) menunjukkan hasil penggunaan fungsi thresholding dengan r1 = r2 = m, m adalah tingkat keabuan rata-rata dari citra. 24
Gray-level slicing Terkadang diperlukan untuk menonjolkan rentang tertentu dari tingkat keabuan yang ada dalam citra. Misalnya, menonjolkan gumpalan air yang ada pada citra satelit dan menonjolkan cacat yang ada pada citra sinar X. Salah satu cara yang bisa dilakukan adalah dengan menampilkan secara lebih terang semua tingkat keabuan dalam range yang ingin ditonjolkan, dan menampilkan secara lebih gelap semua tingkat keabuan lainnya. Cara lain adalah dengan menampilkan secara lebih terang semua tingkat keabuan dalam range yang ingin ditonjolkan, dengan tetap mempertahankan proporsi tingkat keabuan lainnya. 25
Gray-level slicing 26
Bit-plane slicing Selain menonjolkan range tingkat keabuan tertentu, menonjolkan kontribusi dari bit tertentu pada kemunculan citra, terkadang juga dilakukan. Misalkan intensitas tiap piksel dalam citra dinyatakan dengan 8 bit. Sehingga citra tersusun atas 8 bidang 1-bit, mulai dari bidang bit 0 untuk least significant bit sampai bidang bit 7 untuk the most significant bit. 27
Bit-plane slicing 28
Bit-plane slicing 29
Bit-plane slicing 30
Pemrosesan Histogram Histogram dari suatu citra digital dengan range tingkat [0 L-1] adalah sebuah fungsi diskrit h(rk)=nk, dengan rk adalah tingkat keabuan ke-k dan nk adalah jumlah piksel dalam citra yang memiliki tingkat keabuan rk. Histogram: diagram yang menunjukkan jumlah kemunculan grey level (0-255) pada suatu citra Normalisasi histrogram dilakukan dengan membagi setiap nilai nk dengan total jumlah piksel dalam citra, yang dinyatakan dengan n. Histogram yang sudah dinormalisasi dinyatakan dengan p(rk)= nk/n, untuk k=0,1,,l-1. p(rk) menyatakan estimasi probabilitas kemunculan tingkat keabuan rk. Jumlah dari semua komponen normalized histogram sama dengan 1. 31
Pemrosesan Histogram Empat tipe citra: gelap, terang, kekontrasan rendah dan kekontrasan tinggi, beserta histogramnya. 32
Pemrosesan Histogram Sumbu horisontal dari histogram menyatakan nilai tingkat keabuan rk. Sumbu vertikal menyatakan nilai dari h(rk)=nk atau p(rk) = nk/n (jika nilainya dinormalisasi). Histogram adalah dasar dari sejumlah teknik pemrosesan citra pada domain spasial, seperti perbaikan, kompresi dan segmentasi citra. 33
Histogram Equalization Histogram equalization digunakan untuk memperlebar range tingkat keabuan, sehingga akan meningkatkan kekontrasan citra. Transformation berikut: sk = T ( rk ) = = k j=0 nj k j= 0 pr ( r j ) n untuk k=0,1,2,,l-1 disebut histogram equalization atau histogram linearization. 34
Histogram Equalization Ide: mengubah pemetaan greylevel agar sebarannya (kontrasnya) lebih menyebar pada kisaran 0-255 Sifat: Grey level yang sering muncul lebih dijarangkan jaraknya dengan grey level sebelumnya Grey level yang jarang muncul bisa lebih dirapatkan jaraknya dengan grey level sebelumnya Histogram baru pasti mencapai nilai maksimal keabuan (contoh: 255) 35
Histogram Equalization 36
Contoh Citra Akhir: 19 9 95 95 9 55 91 5 55 5 9 10 10 1 Citra awal: 35554 54544 53444 45663 Contoh : citra dengan derajat keabuan hanya berkisar 0-10 Derajat Keabuan 0 1 2 3 4 5 6 7 8 9 10 Kemunculan 0 0 0 3 8 7 2 0 0 0 0 Probabilitas Kemunculan 0 0 0 0.15 0.40 0.35 0.1 0 0 0 0 Sk 0 0 0 0.15 0.55 0.90 1 1 1 1 1 SK * 10 0 0 0 1.5 5.5 9 10 10 10 10 10 Derajat keabuan baru 0 0 0 1 5 9 10 10 10 10 10 37
Perbaikan Lokal Metode pemrosesan histogram yang sudah dibahas, yaitu histogram equalization bersifat global, karena piksel-piksel dimodifikasi menggunakan fungsi transformasi berbasis pada intensitas seluruh piksel pada citra. Seringkali diperlukan perbaikan pada suatu daerah yang kecil pada di dalam citra. 38
Perbaikan Lokal Teknik histogram equalization bisa diterapkan untuk perbaikan lokal. Caranya, definisikan daerah ketetanggaan (neighborhood), dan pindahkan pusat neighborhood piksel demi piksel pada keseluruhan citra. Pada setiap lokasi piksel, histogram dari piksel-piksel dalam neighborhood dihitung. Selanjutnya dispesifikasikan fungsi transformasi histogram equalization dan fungsi ini digunakan untuk memetakan intensitas piksel pada pusat neighborhood. Ulangi langkah tersebut pada seluruh piksel dalam citra. 39
Perbaikan Lokal 40
Perbaikan Lokal 41
Penggunaan Nilai Statistik dari Histogram untuk Perbaikan Citra Selain menggunakan histogram secara langsung untuk perbaikan citra, dapat pula digunakan parameter-parameter statistik yang didapat dari histogram. Untuk keperluan perbaikan citra, parameter statistik yang bisa digunakan adalah mean, yaitu rata-rata tingkat keabuan dalam citra, dan variance (atau deviasi standard), yaitu rata-rata kekontrasan citra. Deviasi standard didefinisikan sebagai akar dari variance. 42
Penggunaan Nilai Statistik dari Histogram untuk Perbaikan Citra Misalkan r adalah variabel random diskrit yang menyatakan tingkat keabuan diskrit dalam range [0, L-1], dan p(ri) adalah komponen normalized histogram pada nilai ke-i dari ri. Bisa diasumsikan bahwa p(ri) adalah estimasi probabilitas kemunculan tingkat keabuan ri. Mean dari r bisa dihitung dengan: L 1 m= i= 0 ri p( ri ) Variance dari r bisa dihitung dengan: σ 2 L 1 2 ( r ) = ( ri m ) p( ri ) i= 0 43
Penggunaan Nilai Statistik dari Histogram untuk Perbaikan Citra Mean dan variance global diukur terhadap seluruh citra dan digunakan untuk menilai intensitas dan kekontrasan citra secara keseluruhan. Mean dan variance lokal digunakan sebagai dasar untuk membuat perubahan di dalam citra, dimana perubahan tersebut tergantung pada karakteristik di suatu sub daerah di dalam citra. 44
Penggunaan Nilai Statistik dari Histogram untuk Perbaikan Citra Misalkan (x, y) adalah koordinat piksel, dan Sxy menyatakan neighborhood (subimage) dengan ukuran tertentu serta berpusat di (x, y). Mean msxy dari piksel-piksel dalam Sxy dapat dihitung sebagai berikut: ms xy = ) rs,t p ( rs,t ) ( s,t S xy rs,t adalah tingkat keabuan pada koordinat (s,t) dalam neighborhood, dan p(rs,t) adalah komponen normalized histogram pada neighborhood untuk tingkat keabuan rs,t. 45
Penggunaan Nilai Statistik dari Histogram untuk Perbaikan Citra Variance dari piksel-piksel pada daerah Sxy dapat dihitung dengan: σ 2 S xy = ) [r ( s,t S xy s,t ] ms xy p ( rs,t ) 2 Mean lokal adalah ukuran tingkat keabuan rata-rata dalam neighborhood Sxy dan variance adalah ukuran kekontrasan dalam neighborhood. 46
Penggunaan Nilai Statistik dari Histogram untuk Perbaikan Citra Permasalahan adalah bagaimana mempertajam daerah gelap dengan tetap mempertahankan daerah terang. 47
Penggunaan Nilai Statistik dari Histogram untuk Perbaikan Citra Misalkan f(x,y) menyatakan intensitas piksel pada koordinat (x,y), dan g(x,y) menyatakan piksel yang sudah diperbaiki pada koordinat yang sama. Maka: E. f ( x, y ) jika ms xy k0 M G dan k1dg σ g ( x, y ) = f ( x, y ) lainnya S xy k 2 DG E, k0, k1, k2 adalah parameter-parameter yang harus ditentukan. MG adalah mean global dan DG adalah deviasi standard global. 48
Penggunaan Nilai Statistik dari Histogram untuk Perbaikan Citra Citra yang sudah diperbaiki dengan pemilihan parameter E=4.0, k0=0.4, k1=0.02, k0 k2=0.4 dan daerah lokal berukuran (3x3). 49
Referensi Bab 3, Image Enhancement in Spatial Domain, Digital Image Processing, edisi 2, Rafael C. Gonzales dan Richard E. Woods, Prentice Hall, 2002 Nanik Suciati, S.Kom, M.Kom, Slide kuliah PCD Teknik Informatika ITS. 50