aditya wikan mahastama - gunadarma
TRANSCRIPT
PENGOLAHAN CITRA DIGITAL
Aditya Wikan [email protected]
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.
• Disebut juga penyaringan citra / penapisan citra.
• 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.
• For instance a 3×3 kernel that implements a mean filter:
• 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
4-tetangga + 4-tetangga x 8-tetangga
• 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×¼
0 1 1 3
• 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
55• 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)
• Lainnya
• 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
http://docs.gimp.org/en/plug-in-convmatrix.html
• 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
• Mean Square Error:
Pemulihan Citra
Blur ^Blur + Noise >
• 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)
>10 secs exposure 0.1 sec exposure
• 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.
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.)
• 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
Gaussian NR
• Mean filter/filter rata-rata menggunakan hasil rata-
rata dari piksel pusat dan seluruh 8-tetangganya
untuk mendapatkan nilai intensitas baru
• Kernel untuk mean filter:
Mean Filter
• Kernel untuk 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
Citra hasil pemulihan
• 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
SELESAI UNTUK TOPIK INI