PENGOLAHAN CITRA DIGITAL Aditya Wikan Mahastama
[email protected]
Pemfilteran Citra; Sharpening, Blurring dan Noise Reduction
5 UNIV KRISTEN DUTA WACANA – GENAP 1213
Pemfilteran Citra (Image Filtering) • 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 mendeteksi tepi pada citra. • Tujuan: membuat citra menjadi tampak lebih baik, atau tampak lebih jelas untuk analisis. • Disebut juga penyaringan citra / penapisan citra.
Peningkatan Citra (Image Enhancement)? • 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 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)
Domain Pemfilteran Citra • Pemfilteran citra dapat dilakukan pada ruang lingkup frekuensi maupun spasial • Pemfilteran citra pada ruang lingkup frekuensi akan 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.
Domain Pemfilteran Citra • Pemfilteran citra pada ruang lingkup spasial adalah melakukan konvolusi (to convolve) citra input f(i,j) dengan fungsi filter/penapis h(i,j)
• 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
Kernel • 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. • For instance a 3×3 kernel that implements a mean filter:
Konsep Piksel Tetangga • Kernel menggunakan konsep piksel tetangga (neighbouring pixels), di mana matriks kernel dibuat dengan asumsi bahwa nilai sebuah piksel bisa dipengaruhi oleh piksel-piksel tetangganya • Piksel tetangga adalah sejumlah piksel yang bersebelahan langsung (adjacent) dengan sebuah piksel pusat. A
B
C
A
B
C
A
B
C
H
P
D
H
P
D
H
P
D
G
F
E
G
F
E
G
F
E
4-tetangga +
4-tetangga x
8-tetangga
Konvolusi Diskret • 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 ybs. pada citra • Untuk kernel persegi dengan ukuran M × M, kita dapat menghitung citra outputnya dengan rumus berikut:
Konvolusi Diskret - Contoh • Citra input:
5
5
6
6
5
4
4
0
0
0
1
Kernel:
¼
¼
¼
7
¼
¼
¼
2
2
¼
¼
¼
1
3
• Maka hasil perhitungan konvolusi daerah di atas adalah: g(2,2) = 5×¼ + 5×¼ + 6×¼ + 5×¼ + 4×¼ + 4×¼ + 0×¼ + 0×¼ + 2×¼
Konvolusi Diskret - Contoh • Konvolusi dilakukan sampai semua piksel citra input terkena perhitungan konvolusi 5
5
6
6
5
5
6
6
5
5
6
6
5
5
6
6
5
4
4
7
5
4
4
7
5
4
4
7
5
4
4
7
0
0
2
2
0
0
2
2
0
0
2
2
0
0
2
2
0
1
1
3
0
1
1
3
0
1
1
3
0
1
1
3
• Piksel yang berubah pada citra output:
5
5
6
6
5
?
?
7
0
?
?
2
0
1
1
3
Konvolusi Diskret - Contoh • Jika diperlukan, dapat dilakukan padding dengan menyalin nilai piksel terdekat, supaya nilai piksel input yang tidak ada – tetapi dibutuhkan – dapat terpenuhi • Piksel hasil konvolusi pada citra output: (memungkinkan mendapatkan nilai baru untuk piksel tepi)
5
5
5
5
5
5
6
6
5
5
4
4
7
0
0
2
2
0
1
1
3
?
5
6
6
5
4
4
7
0
0
2
2
0
1
1
3
Ruang Lingkup Spasial • Berkebalikan dengan ruang lingkup frekuensi, adalah memungkinkan untuk mengimplementasikan filter non-linier pada 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.
Filter/Penapis Frekuensi • Untuk penapis frekuensi, lebih jelasnya anda dipersilakan membaca artikel berikut dari University of Edinburgh – School of Informatics: • http://homepages.inf.ed.ac.uk/rbf/HIPR2/freqfilt.ht m dan • http://homepages.inf.ed.ac.uk/rbf/HIPR2/fourier.ht m
Filter/Penapis Spasial • Hasil dari penapis spasial ditentukan oleh elemen matriks kernel, dan dapat menghasilkan efek yang berbeda-beda terhadap citra input, misalnya: • Sharpening (penajaman) • Blurring (pengaburan) • Noise reduction (pengurangan derau) • Edge detection (deteksi tepi) • Lainnya
Sharpening/Penajaman • Kernel untuk sharpening/penajaman citra menggunakan prinsip bahwa intensitas piksel pusat harus lebih diperkuat pada arah yang berlawanan terhadap tetangganya. • Contoh kernel untuk penajaman citra: 0
-1
0
1
1
1
-1
5
-1
1
-8
1
0
-1
0
1
1
1
courtesy http://docs.gimp.org/en/plug-in-convmatrix.html
courtesy http://www.imagesincontext.com/IICFeatures/ convolution-filter.htm
Blurring/Pengaburan • Kernel untuk blurring/pengaburan menggunakan prinsip bahwa nilai piksel pusat harus dibuat mendekati piksel tetangganya (mengurangi perbedaan) • Contoh kernel untuk pengaburan citra: 1
1
1
1
1
1
1
1
1
courtesy http://docs.gimp.org/en/plug-in-convmatrix.html
Contoh lainnya: Emboss • 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 kernel untuk emboss: -2
-1
0
1
0
0
-1
1
1
0
0
0
0
1
2
0
0
-1
courtesy http://docs.gimp.org/en/plug-in-convmatrix.html
courtesy http://www.imagesincontext.com/IICFeatures/ convolution-filter.htm
Noise Reduction/Pengurangan Derau • Noise reduction (NR) termasuk pada kategori khusus pengolahan citra yaitu image restoration atau pemulihan citra • 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.
Pemulihan Citra • Bagaimana para ahli menemukan cara restorasi? • Gambar yang bagus didegradasi dengan cara tertentu (misal melalui simulasi perusakan dengan 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
• Mean Square Error:
Pemulihan Citra
Blur ^ Blur + Noise >
Noise/Derau • Noise: informasi tidak diinginkan yang mencemari citra • Bentuknya biasanya titik-titik atau piksel-piksel berintensitas beda yang mengganggu citra • Noise biasanya terjadi pada saat akuisisi citra. (Kamera -> memotret, scanner -> proses scan, dan sebagainya)
>10 secs exposure
0.1 sec exposure
Noise/Derau • Cara untuk memodelkan (menciptakan tiruan) noise diantaranya: • Gaussian Noise • Rayleigh Noise • 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.
Gaussian Noise
Rayleigh Noise
Erlang Noise
Exponential Noise
Uniform Noise
Salt and Pepper Noise
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.)
Gaussian NR • Pengurangan derau Gaussian bekerja berdasarkan persamaan berikut: • Pada ruang 1-D, persamaannya adalah:
• Dengan σ adalah deviasi standar dari distribusi tersebut, dan asumsi bahwa distribusi memiliki nilai rata-rata 0, seperti diilustrasikan oleh gambar berikut (σ = 1) :
Gaussian NR • 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 diilustrasikan oleh gambar berikut (σ = 1)
Gaussian NR • Pendekatan diskret dari Gaussian NR dapat juga disajikan dalam kernel, contoh berikut adalah kernel untuk Gaussian NR dengan σ = 1,0
Mean Filter • Mean filter/filter rata-rata menggunakan hasil ratarata dari piksel pusat dan seluruh 8-tetangganya untuk mendapatkan nilai intensitas baru • Kernel untuk mean filter:
Mean Filter • Citra input:
5
5
6
6
5
4
4
7
0
0
2
0
1
1
Citra output:
5
5
6
6
5
3
4
7
2
0
0
2
2
3
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
Median Filter • 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. • Anggota satu blok 3x3 adalah: 0, 0, 2, 4, 4, 5, 5, 5, 6 dengan nilai median adalah 4 5
5
6
6
5
5
6
6
5
4
4
7
5
4
4
7
0
0
2
2
0
0
2
2
0
1
1
3
0
1
1
3
Maximum Filter • Filter maksimum juga menggunakan fungsi non-linier dengan pengurutan statistika, dengan mencari nilai terbesar. • 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
5
6
6
5
4
4
7
5
6
4
7
0
0
2
2
0
0
2
2
0
1
1
3
0
1
1
3
Minimum Filter • Filter minimum juga menggunakan fungsi non-linier dengan pengurutan statistika, dengan mencari nilai terkecil. • 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
5
6
6
5
4
4
7
5
0
4
7
0
0
2
2
0
0
2
2
0
1
1
3
0
1
1
3
Noise Reduction • 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) • 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)
Noise Reduction - 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 intensitas piksel baru yang mempertimbangkan piksel tetangga.
Citra asli
Derau salt and pepper
Citra hasil pemulihan
Interpolasi • 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 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
5
6
6
5
?
4
7
5
3
4
7
0
0
2
2
0
0
2
2
0
1
1
3
0
1
1
3
SELESAI UNTUK TOPIK INI • Materi berikutnya: Edge Detection (Deteksi Tepi) dan Interpolasi