PENGOLAHAN CITRA DIGITAL
Aditya Wikan Mahastama
mahas@ukdw.ac.id
UNIV KRISTEN DUTA WACANA – GENAP 1213
5
Pemfilteran Citra; Sharpening, Blurring dan Noise Reduction
• Pada pengolahan citra digital, filter digunakan untuk (1) menekan frekuensi tinggi pada citra seperti pada memperhalus citra (smoothing), atau (2) menekan frekuensi rendah seperti pada memperjelas atau
Pemfilteran Citra (Image Filtering)
frekuensi rendah seperti pada memperjelas atau mendeteksi tepi pada citra.
• Tujuan: membuat citra menjadi tampak lebih baik, atau tampak lebih jelas untuk analisis.
• Apa beda dengan peningkatan citra? Peningkatan citra bertujuan menormalisasi nilai-nilai yang perlu, sebelum dilakukan olah lebih lanjut atau analisis
pada sebuah citra termasuk pada tahapan image
Peningkatan Citra
(Image Enhancement)?
pada sebuah citra termasuk pada tahapan image preprocessing di computer vision
• Hasil peningkatan citra terlihat lebih nyaman secara visual dan perseptif.
• Peningkatan citra telah kita lakukan dua minggu lalu (operasi titik: thresholding, modifikasi brightness, kontras, clipping; perataan histogram, transformasi)
• Pemfilteran citra dapat dilakukan pada ruang lingkup frekuensi maupun spasial
• Pemfilteran citra pada ruang lingkup frekuensi akan mengubah citra ke domain frekuensi, mengalikannya
Domain
Pemfilteran Citra
mengubah citra ke domain frekuensi, mengalikannya
dengan sebuah fungsi filter/penapis frekuensi, kemudian mentransformasikan kembali hasilnya ke ruang lingkup spasial.
• Fungsi filter bekerja untuk mengurangi (attenuates) frekuensi tertentu dan memperkuat frekuensi lainnya, misalnya fungsi lowpass sederhana menghasilkan nilai 1 untuk frekuensi kurang dari ambang dan 0 untuk lainnya.
• Pemfilteran citra pada ruang lingkup spasial adalah melakukan konvolusi (to convolve) citra input f(i,j) dengan fungsi filter/penapis h(i,j)
Domain
Pemfilteran Citra
• Rumus ini sama dengan perkalian pada ruang
frekuensi, tetapi pada kenyataannya implementasi digitalnya bervariasi, karena fungsi filter yang
digunakan harus disimulasikan dalam bentuk kernel diskret tertentu
• A kernel is a (usually) smallish matrix of numbers that is used in image convolutions. Differently sized kernels
containing different patterns of numbers give rise to different results under convolution.
Kernel
different results under convolution.
• Kernel menggunakan konsep piksel tetangga
(neighbouring pixels), di mana matriks kernel dibuat
dengan asumsi bahwa nilai sebuah piksel bisa dipengaruhi oleh piksel-piksel tetangganya
Konsep Piksel Tetangga
oleh piksel-piksel tetangganya
• Piksel tetangga adalah sejumlah piksel yang bersebelahan langsung (adjacent) dengan sebuah piksel pusat.
A B C H P D G F E A B C H P D G F E A B C H P D G F E
• Konvolusi diskret dapat didefinisikan sebagai operasi “geser dan kalikan” (‘shift and multiply’), di mana kita menggeser kernel sepanjang permukaan citra dan
mengalikan elemennya dengan nilai intensitas piksel
Konvolusi Diskret
mengalikan elemennya dengan nilai intensitas piksel ybs. pada citra
• Untuk kernel persegi dengan ukuran M × M, kita dapat menghitung citra outputnya dengan rumus berikut:
• Citra input: Kernel:
Konvolusi Diskret - Contoh
5 5 6 6 5 4 4 7 0 0 2 2 0 1 1 3 ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼
• Maka hasil perhitungan konvolusi daerah di atas adalah:
g(2,2) = 5×¼ + 5×¼ + 6×¼ + 5×¼ + 4×¼ + 4×¼ + 0×¼ + 0×¼ + 2×¼
• Konvolusi dilakukan sampai semua piksel citra input terkena perhitungan konvolusi
Konvolusi Diskret - Contoh
5 5 6 6 5 4 4 7 5 5 6 6 5 4 4 7 5 5 6 6 5 4 4 7 5 5 6 6 5 4 4 7
• Piksel yang berubah pada citra output: 5 4 4 7 0 0 2 2 0 1 1 3 5 4 4 7 0 0 2 2 0 1 1 3 5 4 4 7 0 0 2 2 0 1 1 3 5 5 6 6 5 ? ? 7 0 ? ? 2 0 1 1 3 5 4 4 7 0 0 2 2 0 1 1 3
5 5
5 5
• Jika diperlukan, dapat dilakukan padding dengan menyalin nilai
piksel terdekat, supaya nilai piksel input yang tidak ada – tetapi
Konvolusi Diskret - Contoh
5 6 6 4 4 7 0 0 2 2 5 5 5
input yang tidak ada – tetapi dibutuhkan – dapat terpenuhi
• Piksel hasil konvolusi pada citra output:
(memungkinkan mendapatkan nilai baru untuk piksel tepi)
? 5 6 6 5 4 4 7 0 0 2 2 0 1 1 3 0 0 2 2 0 1 1 3
• Berkebalikan dengan ruang lingkup frekuensi, adalah memungkinkan untuk mengimplementasikan filter non-linier pada ruang lingkup spasial.
• Dalam kasus seperti ini, maka penjumlahan dalam
Ruang Lingkup Spasial
• Dalam kasus seperti ini, maka penjumlahan dalam fungsi konvolusi diganti dengan sebuah operator non-linier:
• Contoh operator non linier adalah fungsi pengurutan, median, dsb.
• Untuk penapis frekuensi, lebih jelasnya anda
dipersilakan membaca artikel berikut dari University of Edinburgh – School of Informatics:
Filter/Penapis Frekuensi
• http://homepages.inf.ed.ac.uk/rbf/HIPR2/freqfilt.ht m dan • http://homepages.inf.ed.ac.uk/rbf/HIPR2/fourier.ht m• Hasil dari penapis spasial ditentukan oleh elemen matriks kernel, dan dapat menghasilkan efek yang berbeda-beda terhadap citra input, misalnya:
• Sharpening (penajaman)
Filter/Penapis Spasial
• Sharpening (penajaman) • Blurring (pengaburan)
• Noise reduction (pengurangan derau) • Edge detection (deteksi tepi)
• Kernel untuk sharpening/penajaman citra
menggunakan prinsip bahwa intensitas piksel pusat harus lebih diperkuat pada arah yang berlawanan terhadap tetangganya.
Sharpening/Penajaman
terhadap tetangganya.
• Contoh kernel untuk penajaman citra:
0 -1 0 -1 5 -1 0 -1 0 1 1 1 1 -8 1 1 1 1 courtesy http://docs.gimp.org/en/plug-in-convmatrix.html courtesy http://www.imagesincontext.com/IICFeatures/ convolution-filter.htm
• Kernel untuk blurring/pengaburan menggunakan prinsip bahwa nilai piksel pusat harus dibuat
mendekati piksel tetangganya (mengurangi perbedaan)
Blurring/Pengaburan
perbedaan)
• Contoh kernel untuk pengaburan citra:
1 1 1 1 1 1 1 1 1
courtesy
• Kernel untuk emboss didasarkan pada prinsip
memperkuat edge pada satu arah tertentu, tanpa menghilangkan warna lainnya. Arah penguatan
ditunjukkan perubahan dari elemen negatif ke positif
Contoh lainnya: Emboss
ditunjukkan perubahan dari elemen negatif ke positif • Contoh kernel untuk emboss:
-2 -1 0 -1 1 1 0 1 2 1 0 0 0 0 0 0 0 -1 courtesy http://docs.gimp.org/en/plug-in-convmatrix.html courtesy http://www.imagesincontext.com/IICFeatures/ convolution-filter.htm
• Noise reduction (NR) termasuk pada kategori khusus pengolahan citra yaitu image restoration atau
pemulihan citra
• Citra yang dipulihkan adalah citra yang rusak, yaitu
Noise Reduction/Pengurangan Derau
• Citra yang dipulihkan adalah citra yang rusak, yaitu citra yang nilai intensitas pikselnya banyak berubah, misalnya karena blur oleh sebab alamiah, tercemar oleh noise (derau), dan distorsi geometris lensa.
• Bagaimana para ahli menemukan cara restorasi? • Gambar yang bagus didegradasi dengan cara
tertentu (misal melalui simulasi perusakan dengan
sebuah rumus matematik), kemudian rumus tersebut
Pemulihan Citra
sebuah rumus matematik), kemudian rumus tersebut di-invers untuk membuat restorasinya.
• Hasilnya sudah cukup baik
• Untuk mengukur keberhasilan sebuah image
restoration digunakan alat ukur berupa MSE (Mean Square Error)
Pemulihan Citra
Pemulihan Citra
Blur ^
• Noise: informasi tidak diinginkan yang mencemari citra • Bentuknya biasanya titik-titik atau piksel-piksel
ber-intensitas beda yang mengganggu citra
• Noise biasanya terjadi pada saat akuisisi citra. (Kamera -> memotret, scanner -> proses scan, dan sebagainya)
Noise/Derau
memotret, scanner -> proses scan, dan sebagainya)
• Cara untuk memodelkan (menciptakan tiruan) noise diantaranya:
• Gaussian Noise • Rayleigh Noise
• Erlang (Gamma) Noise
Noise/Derau
• Erlang (Gamma) Noise • Exponential Noise
• Uniform Noise
• Salt and Pepper (Impulse Noise)
Noise-noise diatas diciptakan berdasarkan Probabilty Density Function (PDF) kemudian diaplikasikan ke piksel yang bersangkutan. Probabilitasnya umumnya < 0.1.
Salt and Pepper Noise: Sederhana tapi aneh. Mirip gangguan pada televisi (interferensi alat elektronik) Gaussian Noise: Mendekati noise pada dunia nyata. Rumit Dihasilkan oleh noise generator (photoshop, matlab, dsb.)
• Pengurangan derau Gaussian bekerja berdasarkan persamaan berikut:
• Pada ruang 1-D, persamaannya adalah:
Gaussian NR
• Dengan σ adalah deviasi standar dari distribusi tersebut, dan asumsi
bahwa distribusi memiliki nilai rata-rata 0, seperti diilustrasikan oleh gambar berikut (σ = 1) :
• Pada ruang 2-D, Gaussian isotropik persamaannya adalah:
• Dengan σ adalah deviasi standar dari distribusi tersebut, dan asumsi bahwa distribusi memiliki nilai rata-rata 0, seperti
Gaussian NR
asumsi bahwa distribusi memiliki nilai rata-rata 0, seperti diilustrasikan oleh gambar berikut (σ = 1)
• Pendekatan diskret dari Gaussian NR dapat juga
disajikan dalam kernel, contoh berikut adalah kernel untuk Gaussian NR dengan σ = 1,0
• Mean filter/filter rata menggunakan hasil rata-rata dari piksel pusat dan seluruh 8-tetangganya untuk mendapatkan nilai intensitas baru
• Kernel untuk mean filter:
Mean Filter
• Citra Citra input: output:
Mean Filter
5 5 6 6 5 4 4 7 0 0 2 2 0 1 1 3 5 5 6 6 5 3 4 7 0 0 2 2 0 1 1 3 • g(2,2) = 5×1/9 + 5× 1/9 + 6× 1/9 + 5× 1/9 + 4× 1/9 + 4× 1/9 + 0× 1/9 + 0× 1/9 + 2× 1/9 = 1/9 x (5 + 5 + 6 + 5 + 4 + 4 + 0 + 0 + 2) = 1/9 x 31 = 3.4 dibulatkan menjadi 3 0 1 1 3 0 1 1 3• Filter median menggunakan fungsi non-linier dengan
pengurutan statistika, sehingga termasuk dalam golongan ordering filter bersama dengan modus, maksimum dan minimum.
• Median filter mempertahankan detail lebih baik dari mean.
Median Filter
• Median filter mempertahankan detail lebih baik dari mean. • Anggota satu blok 3x3 adalah: 0, 0, 2, 4, 4, 5, 5, 5, 6
dengan nilai median adalah 4
5 5 6 6 5 4 4 7 0 0 2 2 0 1 1 3 5 5 6 6 5 4 4 7 0 0 2 2 0 1 1 3
• Filter maksimum juga menggunakan fungsi non-linier dengan pengurutan statistika, dengan mencari nilai terbesar.
• Baik untuk noise spikes seperti salt and pepper.
Maximum Filter
• Baik untuk noise spikes seperti salt and pepper.
• Anggota satu blok 3x3 adalah: 0, 0, 2, 4, 4, 5, 5, 5, 6 dengan nilai maksimum adalah 6
5 5 6 6 5 4 4 7 0 0 2 2 0 1 1 3 5 5 6 6 5 6 4 7 0 0 2 2 0 1 1 3
• Filter minimum juga menggunakan fungsi non-linier dengan pengurutan statistika, dengan mencari nilai terkecil.
• Baik untuk noise spikes seperti salt and pepper.
Minimum Filter
• Baik untuk noise spikes seperti salt and pepper.
• Anggota satu blok 3x3 adalah: 0, 0, 2, 4, 4, 5, 5, 5, 6 dengan nilai minimum adalah 0
5 5 6 6 5 4 4 7 0 0 2 2 0 1 1 3 5 5 6 6 5 0 4 7 0 0 2 2 0 1 1 3
• Fungsi NR kadang kala juga disebut fungsi smoothing karena efek yang dihasilkan menyerupai smoothing, di mana detail akan hilang (ada yang menyebut juga static blur – band. motion blur)
Noise Reduction
static blur – band. motion blur)
• Mean filter lebih cocok untuk menghilangkan noise yang disebabkan oleh/noise yang jenisnya mirip
dengan gaussian noise (misal uniform noise)
• Ordering filter lebih cocok untuk menghilangkan noise yang disebabkan oleh/noise yang jenisnya mirip dengan salt and pepper noise (negative exponential noise dan Rayleigh noise)
- Metode noise removal yang digunakan saat ini
adalah low-pass filters, di mana apa yang sebenarnya dilakukan adalah semacam blurring (pengaburan)
untuk menghilangkan intensitas piksel yang tidak dikehendaki, dengan cara menggantinya dengan
Noise Reduction
untuk menghilangkan intensitas piksel yang tidak dikehendaki, dengan cara menggantinya dengan intensitas piksel baru yang mempertimbangkan piksel tetangga.
Citra asli Derau salt and pepper
• Kernel dapat juga digunakan untuk memprediksi nilai piksel yang hilang pada citra output sebagai akibat transformasi geometris – misal dilatasi atau rotasi, dengan menggunakan nilai intensitas piksel tetangga.
• Pada contoh di bawah, peramalan dilakukan dengan
Interpolasi
• Pada contoh di bawah, peramalan dilakukan dengan g(2,2) = 1/8 x (5 + 5 + 6 + 5 + 4 + 0 + 0 + 2) = 1/8 x 27 = 3.375 dibulatkan menjadi 3 5 5 6 6 5 ? 4 7 0 0 2 2 0 1 1 3 5 5 6 6 5 3 4 7 0 0 2 2 0 1 1 3
• Materi berikutnya: Edge Detection (Deteksi Tepi) dan Interpolasi