Anda di halaman 1dari 18

RESTORASI GAMBAR (1)

5.1 Pendahuluan

Restorasi citra menyangkut penghapusan atau pengurangan degradasi yang telah terjadi
selama akuisisi gambar. Degradasi tersebut dapat mencakup gangguan, yang merupakan
kesalahan dalam nilai-nilai pixel, atau efek optik seperti tidak fokus kabur, atau kabur karena
gerakan kamera. Kita akan melihat bahwa beberapa teknik restorasi dapat dilakukan sangat
berhasil menggunakan operasi lingkungan, sementara yang lainnya memerlukan penggunaan
proses frekuensi domain.

Model Degradasi Gambar

Dalam domain spasial, kita mungkin memiliki sebuah gambar f (x,y) , dan filter spasial h
(x,y), dimana konvolusi dengan hasil gambar dalam beberapa bentuk degradasi. F atau contoh,
jika h (x,y) terdiri dari satu baris dari orang-orang, hasil konvolusi akan menjadi blur ke arah
garis.

5.2 Gangguan

Kita dapat mendefinisikan gangguan akan ada degradasi sinyal gambar, yang disebabkan
oleh gangguan eksternal. Jika suatu gambar sedang dikirim secara elektronik dari satu tempat ke
tempat lain, melalui satelit atau transmisi nirkabel, atau melalui kabel jaringan, kita dapat
berharap kesalahan yang terjadi pada sinyal gambar. Kesalahan ini akan muncul pada output
gambar dengan cara yang berbeda, tergantung pada jenis gangguan pada sinyal. Biasanya kita
tahu apa jenis kesalahan yang diharapkan, dan karenanya jenis gangguan pada gambar; maka kita
dapat memilih metode yang paling tepat untuk mengurangi efek.

Membersihkan gambar rusak oleh gangguan sehingga daerah penting dari gambar
kembali aksi. Dalam bab ini kita akan menyelidiki beberapa bentuk gangguan standar, dan
metode yang berbeda menghilangkan atau mengurangi efek mereka pada gambar. Kita akan
melihat pada empat jenis gangguan yang berbeda, dan bagaimana mereka muncul pada gambar

100
Salt and Pepper noise

Juga disebut impulse noise, shot noise, atau binery noise. Degradasi ini dapat disebabkan oleh
tajam, gangguan mendadak pada sinyal gambar; penampilannya secara acak tersebar piksel putih
atau hitam (atau keduanya) di atas gambar.

Untuk menunjukkan penampilan, pertama-tama kita akan menghasilkan gambar skala abu-abu,
dimulai dengan gambar warna:

Untuk menambahkan gangguan, kita menggunakan fungsi Matlab imnoise, yang mengambil
sejumlah parameter yang berbeda. Untuk menambahkan salt and pepper noise.

Jumlah gangguan ditambahkan standarnya 10%; untuk menambah lebih atau kurang gangguan
kita memasukkan parameter opsional, menjadi nilai antara 0 dan 1 menunjukkan fraksi piksel
akan rusak. Jadi, misalnya

akan menghasilkan gambar dengan 20% dari piksel yang rusak oleh salt and pepper noise. Si
kembar gambar ditunjukkan pada gambar 5.1 (a) dan gambar dengan noise yang ditunjukkan
pada gambar 5.1 (b)

Gaussian Noise

Noise gaussian merupakan bentuk ideal dari white noise, yang disebabkan oleh fluktuasi
acak dalam sinyal. Kita dapat mengamati white noise dengan menonton televisi yang sedikit
mistuned ke saluran tertentu. Noise Gaussian white noise yang biasanya didistribusikan. Jika
gambar direpresentasikan sebagai I, dan Gaussian noise dengan N, maka kita dapat model
gambar bising dengan hanya menambahkan dua:

101
(a) Gambar asli (b) Gambar Salt and Pepper noise
Gambar 5.1 gangguan pada gambar

Di sini kita dapat mengasumsikan bahwa (I) adalah matriks yang elemen adalah nilai
piksel dari citra kami, dan N adalah matriks yang elemen terdistribusi secara normal. Hal ini
dapat ditunjukkan bahwa ini adalah model yang sesuai untuk gangguan. Efeknya bisa lagi
ditunjukkan oleh fungsi imnoise:

Seperti dengan salt and pepper noise, "gaussian" parameter juga dapat mengambil
nilai-nilai opsional, memberikan mean dan varians dari kebisingan. Nilai default adalah 0 dan
0,01, dan hasilnya ditunjukkan pada gambar 5.2 (a)

Speckle noise

Sedangkan noise Gaussian dapat dimodelkan oleh nilai-nilai acak yang ditambahkan
ke gambar; speckle noise (atau lebih hanya sekedar speckle) dapat dimodelkan oleh nilai acak
dikalikan dengan nilai pixel, maka ia juga disebut gangguan perkalian. Speckle adalah masalah
besar di beberapa aplikasi radar. Seperti di atas, imnoise dapat melakukan speckle:

102
dan hasilnya ditunjukkan pada gambar 5.2 (b). Dalam Matlab, spekel diimplementasikan sebagai

()

dimana I adalah matriks gambar, dan N terdiri dari nilai-nilai terdistribusi normal dengan rerata 0
Parameter opsional memberikan varian N; nilai default adalah 0,04

Meskipun gangguan Gaussian dan speckle gangguan muncul terlihat serupa, mereka
dibentuk oleh dua metode yang sama sekali berbeda, dan, seperti yang akan kita lihat,
memerlukan pendekatan yang berbeda untuk penghapusan mereka.

(a) Gaussian Noise (b) Speckle Noise

Periodic noise

Jika sinyal gambar dikenakan periodik, daripada gangguan acak, kita mungkin
mendapatkan gambar rusak oleh gangguan periodik. Efeknya adalah bar di atas gambar. Fungsi
imnoise tidak memiliki pilihan periodik, tetapi sangat mudah untuk membuat kita sendiri, dengan
menambahkan matriks periodik (menggunakan fungsi trigonometri), citra kita:

103
dan gambar yang dihasilkan ditunjukkan pada Gambar 5.3

Gambar 5.3 efek periodic noise

Salt and pepper noise, Gaussian noise dan speckle noise semua bisa dibersihkan dengan
menggunakan teknik penyaringan spasial. Gangguan periodik, bagaimanapun, membutuhkan
penggunaan domain frekuensi penyaringan. Hal ini karena bentuk lain kebisingan dapat
dimodelkan sebagai degradasi lokal, kebisingan periodik adalah sebuah efek global.

104
5.3 Membersihkan Salt and Pepper noise

Pas Filter Rendah

Mengingat bahwa piksel rusak oleh garam dan merica kebisingan merupakan komponen
frekuensi tinggi dari suatu gambar, kita harus mengharapkan filter low-pass harus mengurangi
mereka. Jadi kita mungkin mencoba penyaringan dengan filter rata-rata:

dan hasilnya ditunjukkan pada gambar 5.4 (a). Perhatikan, bagaimanapun, bahwa gangguan tidak
begitu banyak dihapus "dioleskan" atas gambar; hasilnya tidak terasa "lebih baik" dari gambar
yang bising. Efek ini bahkan lebih jelas jika kita menggunakan rata-rata penyaring yang lebih
besar:

dan hasilnya ditunjukkan pada gambar 5.4 (b).

Gambar 5.4: Mencoba untuk membersihkan garam & pepper noise dengan rata-rata penyaringan

105
Median Filtering

Median filtering tampaknya hampir dibuat khusus untuk menghilangkan garam dan merica
kebisingan. Ingat bahwa median set adalah nilai tengah ketika mereka diurutkan. Jika ada bahkan
jumlah nilai, median adalah mean dari dua tengah. Sebuah median filter adalah contoh dari filter
spasial non-linear; menggunakan masker 3x3, nilai output adalah median dari nilai-nilai dalam
topeng. Sebagai contoh:

Operasi mendapatkan median berarti sangat besar atau sangat kecil nilai-berisik values- akan
berakhir di bagian atas atau bawah dalam daftar diurutkan. Dengan demikian median akan secara
umum menggantikan bising nilai dengan satu dekat dengan sekitarnya.
Dalam Matlab, median filtering diimplementasikan oleh fungsi medfilt2:

dan hasilnya ditunjukkan pada gambar 5.5. Hasilnya adalah kemajuan besar menggunakan filter
rata-rata. Sebagai

106
Gambar 5.5: Membersihkan garam dan merica noise dengan filter median, dengan sebagian
besar fungsi, medfilt2 mengambil parameter opsional; dalam hal ini vektor 2 elemen
memberikan ukuran masker yang akan digunakan. Jika kita korup piksel lebih dengan
kebisingan:

maka medfilt2 masih melakukan pekerjaan yang sangat baik, seperti yang ditunjukkan pada
gambar 5.6. Untuk menghilangkan kebisingan sepenuhnya, kita dapat mencoba aplikasi kedua
filter 3x3 median, yang hasilnya ditunjukkan pada Gambar 5.7 (a) atau mencoba 5x5 median
filter pada gambar bising asli:

hasil yang ditunjukkan pada gambar 5.7 (b).

Urutan Peringkat Filtering

Median filtering adalah kasus khusus dari proses yang lebih umum disebut rank-order filtering.

107
Daripada mengambil rata-rata set, kami memesan set dan mengambil n th nilai, untuk beberapa
nilai yang telah ditentukan dari n.

Jadi median filtering menggunakan masker 3x3 setara dengan peringkat-order penyaringan
dengan n-5. Demikian pula, median filtering menggunakan masker 5x5 setara dengan peringkat-
order penyaringan dengan n-13. Matlab mengimplementasikan peringkat-order filtering dengan
fungsi ordfilt2; pada kenyataannya prosedur untuk medfilt2 benar-benar hanya pembungkus

108
untuk prosedur yang memanggil ordfilt2. Hanya ada satu alasan untuk menggunakan rank-order
filtering bukan median filtering, dan itu adalah bahwa hal itu memungkinkan kita untuk memilih
median masker non-persegi panjang. Sebagai contoh, jika kita memutuskan untuk menggunakan
sebagai masker 3x3 lintas bentuk:

maka median akan menjadi yang ketiga nilai-nilai ini ketika diurutkan. Perintah untuk
melakukan ini adalah:

Secara umum, argumen kedua ordfilt2 memberikan nilai set memerintahkan untuk mengambil,
dan elemen ketiga memberikan domain; nilai-nilai non-nol yang menentukan topeng. Jika kita
ingin menggunakan silang dengan ukuran dan lebar 5 (sehingga mengandung sembilan elemen),
kita dapat menggunakan:

Sebuah metode outlier

Menerapkan median filter dapat secara umum menjadi operasi lambat: setiap pixel
membutuhkan penyortiran setidaknya sembilan nilai. Untuk mengatasi kesulitan ini, Pratt [8]
telah mengusulkan penggunaan membersihkan garam dan merica kebisingan dengan
memperlakukan piksel bising seperti outlier; yaitu, piksel yang nilai abu-abu dengan nilai
signifikan berbeda dengan tetangga mereka. Hal ini menyebabkan pendekatan berikut untuk
membersihkan noise:

1. Pilih nilai ambang D.


2. Untuk pixel yang diberikan, membandingkan nilai p dengan mean m dari nilai-nilai
delapan negara tetangganya.

110
3. Jika pm > D, maka mengklasifikasikan pixel berisik, jika tidak.
4. Jika pixel berisik, ganti nilainya dengan m; jika tidak meninggalkan nilai tidak berubah.

Tidak ada fungsi Matlab untuk melakukan hal ini, tapi sangat mudah untuk menulis satu.
Pertama, kita dapat menghitung rata-rata pixel delapan tetangga dengan convolving dengan
linear filter.

Kami kemudian dapat menghasilkan r matriks yang terdiri dari 1 ini hanya pada tempat-tempat
di mana perbedaan asli dan filter lebih besar dari D; yaitu, di mana piksel yang bising. Kemudian
1-r akan terdiri dari orang-orang di tempat-tempat di mana hanya piksel yang tidak berisik.
Mengalikan r oleh filter menggantikan nilai-nilai bising dengan rata-rata; mengalikan 1-r dengan
nilai-nilai asli memberikan sisa output. Fungsi Matlab untuk menerapkan ini ditunjukkan pada
gambar 5.8. Masalah langsung dengan metode outlier adalah bahwa itu tidak benar-benar
otomatis ambang d harus dipilih. Sebuah cara yang tepat untuk menggunakan metode outlier
adalah untuk menerapkannya dengan beberapa batasan yang berbeda, dan memilih nilai yang
memberikan hasil terbaik. Misalkan kita mencoba untuk menggunakan metode outlier untuk
membersihkan

111
suara dari angka 5.1 (b); yaitu, kembar gambar dengan 10% garam dan merica kebisingan.
Memilih D = 0,2 memberikan gambar pada gambar 5.9 (a). Hal ini tidak sebagus hasil dengan
menggunakan filter median: pengaruh kebisingan telah berkurang, tetapi masih ada suara
'artefak' di atas gambar. Dalam hal ini kita telah memilih ambang yang terlalu kecil. Jika kita
memilih D = 0,4, kita memperoleh gambar pada gambar 5.9 (b), yang masih memiliki beberapa
artefak kebisingan, meskipun di tempat yang berbeda. Kita bisa melihat bahwa nilai-nilai yang
lebih rendah dari D cenderung untuk menghilangkan suara dari daerah gelap, dan nilai yang
lebih tinggi dari D cenderung untuk menghilangkan kebisingan dari area terang. Nilai
pertengahan jalan, sekeliling D = 0,3 tidak pada kenyataannya menghasilkan diterima Hasilnya,
meskipun tidak sebagus median filtering. Jelas menggunakan nilai yang sesuai dari D sangat
penting untuk membersihkan garam dan merica suara dengan metode ini. Jika D terlalu kecil,
maka terlalu banyak ' tidak berisik' piksel akan termasuk berisik, dan mereka nilai berubah
dengan rata-rata tetangga mereka. Hal ini akan menimbulkan dampak yang kabur, mirip dengan
yang diperoleh dengan menggunakan filter rata-rata. Jika D dipilih untuk menjadi terlalu besar,
maka tidak cukup piksel berisik akan classifed berisik, dan akan ada sedikit perubahan dalam
output. Metode outlier tidak terlalu cocok untuk membersihkan sejumlah besar suara; untuk
situasi seperti median filter yang akan disukai. Metode outlier demikian dapat dianggap sebagai
Metode 'cepat dan kotor' untuk membersihkan garam dan merica kebisingan ketika median filter
membuktikan terlalu lambat.

112
5.4 Pembersihan Gangguan Gaussian

Perataan Gambar

Kadang-kadang dapat terjadi bahwa bukan hanya satu gambar rusak dengan kebisingan
Gaussian, kami memiliki banyak salinan dfferent itu. Contohnya adalah pencitraan satelit; jika
satelit melewati tempat yang sama berkali-kali, kita akan mendapatkan banyak gambar yang
berbeda dari tempat yang sama. Contoh lain adalah di

Gambar 5.9: Menerapkan metode outlier 10% garam dan merica kebisingan

mikroskop: kita mungkin mengambil banyak gambar yang berbeda dari objek yang sama.
Dalam kasus seperti itu pendekatan yang sangat sederhana untuk membersihkan noise Gaussian
adalah dengan hanya mengambil rata-rata mean dari semua gambar. T Untuk melihat mengapa
ini bekerja, misalkan kita memiliki 100 salinan dari foto, masing-masing dengan suara; maka i th
image bising akan:

113
di mana M adalah matriks nilai-nilai asli, dan Ni adalah matriks nilai acak terdistribusi normal
dengan rata-rata 0. Kita dapat menemukan rata-rata M ' gambar-gambar ini dengan menambah
dan membagi biasa metode:

Karena Ni terdistribusi secara normal dengan mean 0, maka dapat segera menunjukkan bahwa
rata-rata semua Ni akan mendekati nol besar jumlah Ni lebih dekat ke nol. Demikian

dan pendekatan yang lebih dekat untuk jumlah yang lebih besar dari gambar M + Ni.

Kita dapat menunjukkan ini dengan kembar gambar. Pertama-tama kita harus membuat versi
yang berbeda dengan kebisingan Gaussian, dan kemudian mengambil rata-rata dari mereka.
Kami akan membuat 10 versi. Salah satu cara adalah dengan membuat sebuah array tiga dimensi
kosong kedalaman 10, dan mengisi setiap "level" dengan gambar bising:

Perhatikan di sini bahwa "gaussian" pilihan imnoise panggilan acak randn number generator,
yang menciptakan terdistribusi normal nomor acak. Setiap kali randn disebut, itu menciptakan
urutan yang berbeda dari angka. Jadi kita bisa yakin bahwa semua tingkatan dalam array tiga-
dimensi kami lakukan memang berisi gambar yang berbeda. Sekarang kita bisa mengambil rata-
rata:

114
Opsional parameter 3 di sini menunjukkan bahwa kita mengambil rata-rata sepanjang dimensi
ketiga dari array kita. Hasilnya ditunjukkan pada gambar 5.10 (a). Hal ini tidak cukup jelas,
tetapi merupakan kemajuan besar pada gambar bising angka 5.2 (a). Sebuah hasil yang lebih baik
diperoleh dengan mengambil rata-rata dari 100 gambar; ini dapat dilakukan dengan mengganti
10 dengan 100 di perintah di atas, dan hasilnya ditunjukkan pada gambar 5.10 (b). Perhatikan
bahwa metode ini hanya bekerja jika suara Gaussian memiliki berarti 0.

Gambar 5.10: Gambar rata-rata untuk menghilangkan noise Gaussian

Rata-Rata Penyaringan

Jika kebisingan Gaussian memiliki berarti 0, maka kita akan berharap bahwa filter rata-rata akan
rata-rata suara ke 0. Semakin besar ukuran masker filter, semakin dekat ke nol. Sayangnya, rata-
rata cenderung mengaburkan gambar, seperti yang kita lihat dalam bab 3. Namun, jika kita siap
untuk perdagangan kabur untuk mengurangi kebisingan, maka kita dapat mengurangi kebisingan
secara signifikan dengan metode ini. Misalkan kita mengambil 3x3 dan 5x5 averaging filter, dan
menerapkannya pada gambar t_ga berisik.

115
Hasilnya ditunjukkan pada gambar 5.11. Hasilnya benar-benar sangat menyenangkan; walaupun
sudah ada beberapa pengurangan kebisingan, sifat "kotor" gambar yang dihasilkan tidak
menarik.

Gambar 5.11: Menggunakan rata-rata penyaringan untuk menghilangkan noise Gaussian

Penyaringan Adaptif

Filter adaptif adalah kelas filter yang mengubah karakteristik mereka sesuai dengan nilai-nilai
greyscales bawah topeng; mereka dapat bertindak lebih seperti filter median, atau lebih seperti
filter rata-rata, tergantung pada posisi mereka dalam gambar. Filter tersebut dapat digunakan
untuk membersihkan noise Gaussian dengan menggunakan sifat statistik lokal dari nilai-nilai di
bawah topeng. Satu filter tersebut adalah filter error rata-square minimum; ini adalah filter
spasial non-linear; dan seperti semua filter spasial, dilakukan dengan menerapkan fungsi untuk
nilai abu-abu di bawah topeng. Karena kita berhadapan dengan kebisingan aditif, gambar bising
M‟ kami dapat ditulis sebagai

di mana M adalah gambar yang benar asli, dan N adalah kebisingan; yang kita asumsikan
terdistribusi secara normal dengan mean 0. Namun, dalam topeng kami, rata-rata mungkin tidak

116
nol; kira mean adalah Mf, dan varians dalam topeng adalah . Misalkan juga bahwa varians
dari kebisingan atas seluruh gambar diketahui . Maka nilai output dapat dihitung sebagai:

di mana g adalah nilai saat ini dari pixel dalam gambar yang bising. Perhatikan bahwa jika
varians lokal tinggi, maka fraksi akan mendekati 1, dan output dekat dengan nilai g gambar
asli . Hal ini sesuai, seperti varians tinggi menyiratkan detail tinggi seperti tepi, yang harus
dilestarikan. Sebaliknya, jika varians lokal rendah, seperti di daerah latar belakang gambar, fraksi
mendekati nol, dan nilai yang dikembalikan dekat dengan nilai rata-rata $? �. Lihat Lim [7]
untuk rincian. Versi lain dari filter ini [15] telah keluaran didefinisikan oleh

dan lagi filter mengembalikan nilai dekat dengan baik g atau Mf tergantung pada apakah varians
lokal tinggi atau rendah. Dalam prakteknya, Mf dapat dihitung dengan hanya mengambil rata-
rata dari semua nilai abu-abu di bawah topeng, dan dengan menghitung varians dari semua
nilai abu-abu di bawah topeng. Nilai belum tentu diketahui, sehingga sedikit varian dari
filter pertama dapat digunakan:

di mana n adalah kebisingan varians dihitung, dan dihitung dengan mengambil rata-rata dari
semua nilai dari atas seluruh gambar. Penyaringan khusus ini diimplementasikan dalam
Matlab dengan fungsi wiener2. Nama mencerminkan fakta bahwa filter ini mencoba untuk
meminimalkan kuadrat perbedaan antara input dan output gambar; filter tersebut secara umum
dikenal sebagai filter Wiener. Namun, filter Wiener lebih biasanya diterapkan dalam domain
frekuensi; lihat bagian 6.3 di bawah ini. Misalkan kita mengambil gambar bising ditunjukkan
pada gambar 5.2 (a), dan berusaha untuk membersihkan gambar ini dengan adaptif penyaringan.
Kami akan menggunakan fungsi wiener2, yang dapat mengambil parameter opsional yang

117
menunjukkan ukuran masker yang akan digunakan. Ukuran standar adalah? ? ? .
Kita akan membuat empat gambar:

dan ini ditunjukkan pada Gambar 5.12. Menjadi low pass filter, adaptif
penyaringan memang cenderung mengaburkan tepi dan komponen frekuensi
tinggi gambar. Tapi itu pekerjaan yang jauh lebih baik daripada menggunakan
pass filter rendah kabur. Kita dapat mencapai hasil yang sangat baik untuk suara
di mana varians tidak setinggi seperti yang di gambar kita saat ini.

Gambar dan penampilan setelah adaptif penyaringan seperti yang ditunjukkan pada gambar 5.13.
Hasilnya adalah perbaikan besar atas gambar bising asli. Perhatikan dalam setiap kasus yang mungkin
ada beberapa kabur dari latar belakang, tapi ujung-ujungnya terjaga dengan baik, seperti yang
diperkirakan oleh analisis kita tentang formul

118

Anda mungkin juga menyukai