Your SlideShare is downloading. ×
Pcd 11
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Pcd 11

1,479
views

Published on

Published in: Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,479
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
131
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. BAB 11 Restorasi Citra Setelah bab ini berakhir, diharapkan pemakai memahami berbagai hal berikut yang berhubungan dengan restorasi citra dan mampu mempraktikkannya.  Restorasi citra  Derau dalam citra  Jenis derau  Penghilangan derau  Penghilangan derau di kawasan frekuensi  Filter inversi  Filter Wiener  Ukuran keberhasilan penghilangan derau
  • 2. 498 Pengolahan Citra Teori dan Aplikasi 11.1 Pengantar Restorasi Citra Istilah restorasi mempunyai perbedaan makna dengan peningkatan citra. Peningkatan citra (image enhancement) merupakan istilah yang menyatakan usaha untuk membuat gambar agar lebih baik dari sudut pandang pengolahnya. Hal ini dilakukan misalnya melalui pengubahan kontras dan kecerahan. Berbeda dengan peningkatan citra, restorasi citra merupakan proses untuk membuat citra yang kualitasnya turun akibat adanya tambahan derau agar menjadi mirip dengan keadaan aslinya. Itulah sebabnya, pembahasan restorasi akan dimulai dengan pembahasan derau. 11.2 Derau dalam Citra Derau sesungguhnya adalah komponen dalam citra yang tidak dikehendaki. Dalam praktik, kehadiran derau tidak dapat dihindari. Sebagai contoh, derau Gaussian biasa muncul pada sebarang isyarat. Derau putih (white noise) biasa menyertai pada siaran televisi yang berasal dari stasiun pemancar yang lemah. Derau butiran biasa muncul dalam film-film fotografi. Derau yang dinamakan „garam dan merica‟ sering mewarnai citra. Derau garam berwarna putih dan derau garam berwarna hitam. Gambar 11.1 menunjukkan efek derau dalam isyarat satu-dimensi. Isyarat asli Isyarat asli + derau Derau Gambar 11.1 Derau pada isyarat satu dimensi
  • 3. Restorasi Citra 499 Derau dapat dikelompokkan menjadi empat kelas (Acharya dan Ray, 2005). 1. Derau tambahan (additive noise): Derau ini biasa muncul karena sensor yang bekerja tidak sempurna dan memberikan isyarat tambahan terdistribusi Gaussian, yang tidak bergantung pada isyarat asli. Isyarat yang dihasilkan dapat dinyatakan secara matematis seperti berikut: 𝑔(. ) = 𝑓(. ) + 𝑑(. ) (11.1) Dalam hal ini, g(.) menyatakan isyarat yang telah terkena derau, f(.) menyatakan citra asli, dan d(.) menyatakan derau. 2. Derau perkalian (multiplicative noise): Derau perkalian biasa terjadi pada filem fotografi. Deraunya biasa disebut sebagai derau bercak (speckle noise). Secara matematis, isyarat yang terkena derau perkalian dapat ditulis seperti berikut: 𝑔(. ) = 𝑓(. ) ∗ 𝑑(. ) (11.2) Dalam hal ini, g(.) menyatakan isyarat yang telah terkena derau, f(.) menyatakan citra asli, dan d(.) menyatakan derau. 3. Derau impuls (impulse noise): Sensor ataupun saluran data terkadang memberikan derau berbentuk biner (0 atau 1). Derau seperti itu dimodelkan sebagai berikut: 𝑔(. ) = (1 − 𝑝) ∗ 𝑓(. ) + 𝑝 ∗ 𝑑(. ) (11.3) Dalam hal ini, g(.) menyatakan isyarat yang telah terkena derau, f(.) menyatakan citra asli, d(.) menyatakan derau, dan p menyatakan parameter biner yang nilainya berupa 0 atau 1. Berdasarkan rumus di atas, isyarat asli akan hilang saat p bernilai 1.
  • 4. 500 Pengolahan Citra Teori dan Aplikasi 4. Derau kuantisasi (quantization noise): Derau kuantisasi termasuk sebagai derau yang bergantung pada isyarat. Hal ini terjadi saat kuantisasi terhadap isyarat dilakukan sebelum dikonversi menjadi isyarat digital. Derau ini dapat mengakibatkan detail citra hilang. 11.3 Jenis Derau Jenis derau yang umum bervariasi Gaussian atau impuls. Namun, berbagai mode derau yang lain terkadang dibicarakan dalam ranah pengolahan citra dengan tujuan untuk menurunkan kualitas citra untuk kepentingan khusus pengujian proses penghilangan derau. 11.3.1 Derau Gaussian Derau Gaussian adalah model derau yang memiliki fungsi kerapatan probabilitas (probability density function / PDF) yang diberikan oleh kurva Gaussian. PDF yang mewakili sifat paling acak dalam bentuk satu dimensi seperti berikut: 𝑝(𝑧) =  1 √2𝜋 𝑒 −(𝑧−𝜇)2 2𝜎2 (11.4) Dalam hal ini,  adalah nilai rerata dan  adalah deviasi standar (atau akar varians) variabel random. PDF-nya ditunjukkan pada Gambar 11.2.
  • 5. Restorasi Citra 501 p(z) 1 √2𝜋𝜎 0,607 √2𝜋𝜎 -  + z Gambar 11.2 Fungsi kepadatan probabilitas derau Gaussian Derau Gaussian dapat dilakukan dengan menggunakan fungsi pembangkit bilangan acak. Sebagai contoh, pada Octave terdapat fungsi bernama randn yang berguna untuk menghasilkan bilangan acak yang terdistribusi secara normal dengan nilai berkisar antara 0 dan 1. Nah, rumus untuk mendapatkan derau Gaussian yang acak dengan deviasi standar sebesar  dan rerata sama dengan  adalah seperti berikut: 𝑑 = 𝑟𝑎𝑛𝑑𝑛 ∗ 𝜎 + 𝜇 (11.5) Apabila  berupa nol, rumus di atas dapat disederhanakan menjadi d = randn * . Contoh penambahan derau pada citra berskala keabuan ditunjukkan pada fungsi drgaussian. Argumen pertama berupa citra berskala keabuan. Argumen kedua bersifat opsional dan menyatakan nilai deviasi standar. Nilai bawaannya berupa 1. Argumen ketiga bersifat opsional dan menyatakan nilai rerata. Nilai bawaannya berupa 0.
  • 6. 502 Pengolahan Citra Teori dan Aplikasi Program : drgaussian.m function [G] = drgaussian(F, sigma, mu) % DRGAUSSIAN Menghasilkan citra yang telah diberi derau % menggunakan Gaussian. % F = citra berskala keabuan % sigma = standar deviasi fungsi Gaussian % mu = rerata fungsi Gaussian if nargin < 3 mu = 0; % Nilai bawaan mu end if nargin < 2 sigma = 1; % Nilai bawaan deviasi standar end [m, n] = size(F); F = double(F); for i=1 : m for j=1 : nc derau = randn * sigma + mu; G(i,j) = round(F(i, j) + derau); if G(i,j) > 255 G(i,j) = 255; elseif G(i,j) < 0 G(i,j) = 0; end end end G = uint8(G); Akhir Program Contoh penggunaan fungsi drgaussian ditunjukkan di bawah ini. >> Img = imread('C:Imageinnsbruck.png');  >> imshow(Img)  >> G = drgaussian(Img, 50); imshow(G)  >>
  • 7. Restorasi Citra 503 Pada contoh di atas,  yang digunakan sebesar 50. Tiga contoh hasil penambahan derau Gaussian pada citra Innsbruck.png ditunjukkan pada Gambar 11.3. (a) Citra Innsbruck.png (c)  = 25 (b)  = 10 (d)  = 50 Gambar 11.3 Derau Gaussian untuk tiga nilai deviasi standar () Cara seperti di atas berlaku untuk citra berskala keabuan. Kalau dikehendaki, derau Gaussian juga dapat diterapkan pada citra berwarna. Dalam hal ini, derau perlu ditambahkan ke komponen R, G, dan B masing-masing. Contoh penerapan derau Gaussian ditunjukkan pada Gambar 11.4.
  • 8. 504 Pengolahan Citra Teori dan Aplikasi (a) Citra bangunan.png (c)  = 150 (b)  = 10 (d)  = 150 Gambar 11.4 Derau Gaussian pada citra berwarna Apabila tidak tersedia fungsi yang menghasilkan bilangan acak yang terdistribusi secara normal, fungsi pembangkit bilangan acak yang terdistribusi seragam dapat digunakan. Pada Octave dan MATLAB, tersedia fungsi seperti itu, yaitu rand. Adapun implementasinya seperti berikut. Program : drgaussian2.m function [G] = drgaussian2(F, sigma, mu) % DRGAUSSIAN Menghasilkan citra yang telah diberi derau % menggunakan Gaussian. % % Berdasarkan kode % Harley R. Myler dan Arthur R. Weeks, 1993 % % F = citra berskala keabuan % sigma = standar deviasi fungsi Gaussian % mu = rerata if nargin < 3 mu = 0;
  • 9. Restorasi Citra 505 end if nargin < 2 sigma = 10; end [m, n] = size(F); F = double(F); for i=1 : m for j=1 : n derau = theta = derau = derau = sqrt(-2 * sigma * sigma * log(1 - rand)); rand * 1.9175345E-4 - 3.14159265; derau * cos(theta); derau + mu; G(i,j) = round(F(i, j) + derau); if G(i,j) > 255 G(i,j) = 255; elseif G(i,j) < 0 G(i,j) = 0; end end end G = uint8(G); Akhir Program 11.3.2 Derau Garam dan Merica (Salt & Pepper Noise) Derau garam dan merica biasa dinamakan sebagai derau impuls positif dan negatif, derau tembakan, atau derau biner. Derau ini biasa disebabkan oleh gangguan yang tiba-tiba dan tajam pada proses perolehan isyarat citra. Bentuknya berupa bintik-bintik hitam atau putih di dalam citra. Gambar 11.5 menunjukkan contoh derau garam dan merica dengan berbagai nilai densitas derau. Derau garam dan merica, sering muncul pada citra yang diperoleh melalui kamera.
  • 10. 506 Pengolahan Citra Teori dan Aplikasi (a) Citra Innsbruck.png (c) Probabilitas = 0,05 (b) Probabilitas = 0,01 (d) Probabilitas = 0,2 Gambar 11.5 Contoh derau garam dan merica untuk berbagai nilai probabilitas Algoritma untuk membangkitkan derau garam dan merica dapat dilihat di bawah ini. ALGORITMA 1.1 – Membangkitkan derau garam dan merica Masukan:  f : Citra berskala keabuan berukuran M x N  p : Probabilitas pembangkitan derau (0 s/d 1) Keluaran:  g : Citra yang telah ditambahi dengan derau derauImpuls(f, p): 1. Salin citra f ke g
  • 11. Restorasi Citra 2. FOR y  1 TO M FOR x  1 TO N nilai_acak  pembangkit_random IF nilai_acak < p / 2 g(y, x)  0 // merica (berwarna hitam) ELSE IF nilai_acak > p / 2 AND nilai_acak <= p g(y, x)  255 // Garam (berwarna putih) END END-IF END-FOR END-FOR 3. RETURN g Skrip untuk membuat derau impuls ditunjukkan di bawah ini. Program : drimpuls.m function [G] = drimpuls(F, probabilitas) % DRIMPULS Menghasilkan citra yang telah diberi derau % menggunakan fungsi impuls. % F = citra berskala keabuan % probabilitas = Probabilitas kemunculan derau % (0 s/d 1) if nargin < 2 probabilitas = 0.05; % Nilai bawaan end; if probabilitas < 0 || probabilitas > 1 error('Nilai probabilitas harus antara 0 s/d 1'); end [m, n] = size(F); G = double(F); for i=1 : m for j=1 : n nilai_acak = rand; if nilai_acak <= probabilitas / 2 G(i,j) = 0; elseif (nilai_acak > probabilitas / 2) && ... (nilai_acak <= probabilitas) G(i,j) = 255; end end 507
  • 12. 508 Pengolahan Citra Teori dan Aplikasi end G = uint8(G); Akhir Program Contoh untuk menambahkan derau impuls pada citra: >> Img = imread('C:Imageinnsbruck.png');  >> imshow(Img)  >> G = drimpuls(Img, 0.005); imshow(G)  >> imshow(Img)  >> 11.3.3 Derau Eksponensial Derau eksponensial (terkadang dinamakan derau eksponensial negatif) merupakan jenis derau yang dihasilkan oleh laser yang koheren ketika citra diperoleh. Oleh karena itu, derau ini sering disebut sebagai bercak laser (Myler and Weeks, 1993). PDF-nya berupa 𝑝(𝑧) = { 𝑎𝑒 −𝑎𝑧 , 𝑢𝑛𝑡𝑢𝑘 0 ≤ 𝑧 < ~ 0, 𝑧 < 0 (11.6) Dalam hal ini, z adalah nilai aras keabuan I dan a>0. Reratanya berupa 𝜇= 1 (11.7) 𝑎 dan varians berupa 𝜎2 = 1 𝑎2 Adapun bentuk PDF dapat dilihat pada Gambar 11.16. (11.8)
  • 13. Restorasi Citra 509 p(z) 1 𝑎 z Gambar 11.6 Fungsi kepadatan probabilitas derau eksponensial negatif Pembangkit derau eksponensial dilakukan dengan menggunakan rumus (Gonzalez, dkk., 2004): 1 𝑑 = − 𝑎 ln(1 − 𝑟𝑎𝑛𝑑) (11.9) Dalam hal ini, rand adalah pembangkit bilangan acak yang bersifat seragam. Implementasinya dapat dilihat di bawah ini. Program : dreksponensial.m function [G] = dreksponensial(F, a) % DREKSPONENSIAL Menghasilkan citra yang telah diberi derau % menggunakan fungsi eksponensial negatif. % % Berdasarkan kode % Rafael C. Gonzales, Richard E. Woods, dan
  • 14. 510 % % % % Pengolahan Citra Teori dan Aplikasi Steven L. Eddins, 2004 F = citra berskala keabuan varians = varians yang dikehendaki if nargin ~= 2 error('Penggunaan: dreksponensial(F, a)'); end if a <= 0 error('Parameter berupa sebarang bilangan > 0'); end [m, n] = size(F); F = double(F); G = zeros(m, n); for i=1 : m for j=1 : n derau = -1/a * log(1 - rand); G(i,j) = round(F(i,j) + derau); if G(i,j) > 255 G(i,j) = 255; end end end G = uint8(G); Akhir Program Contoh penggunaan fungsi dreksponensial: >> Img = imread('C:Imageinnsbruck.png');  >> G = dreksponensial(Img, 100); imshow(G)  >> Beberapa contoh hasil penerapan derau eksponensial negatif dapat dilihat pada Gambar 11.17.
  • 15. Restorasi Citra 511 (a) Citra Innsbruck.tif (c) a = 0,07 (b) a = 0,1 (d) a = 0,01 Gambar 11.7 Contoh derau eksponensial negatif 11.3.4 Derau Gamma Derau gamma (atau kadang disebut Erlang) merupakan efek penapisan lolos-rendah terhadap citra yang mengandung derau eksponensial sebagai hasil pengambilan citra yang teriluminasi oleh laser yang koheren (Myler dan Weeks, 1993). PDF derau Gamma didefinisikan sebagai berikut (Gonzalez dan Woods, 2002): 𝑝(𝑥) = 𝑎 𝑏 𝑥 𝑏−1 (𝑏−1)! 𝑒 −𝑎𝑥 (11.10) Dalam hal ini, x adalah nilai aras keabuan, a>0, b berupa bilangan bulat positif, dan tanda ! menyatakan faktorial. Rerata dan varians berupa:
  • 16. 512 Pengolahan Citra Teori dan Aplikasi 𝜇= 𝑏 (11.11) 𝑎2 dan 𝜎2 = 𝑏 (11.12) 𝑎2 p(x) 𝐾 𝐾= (b-1)/a 0,607𝑎(𝑏 − 1) 𝑏−1 −(𝑏−1) 𝑒 (𝑏 − 1)! x Gambar 11.8 Fungsi kepadatan probabilitas derau Gamma Pembangkit bilangan acak untuk membangkitkan derau gamma berupa (Gonzalez, dkk., 2004): 𝑥 = 𝐸1 + 𝐸2 + ⋯ + 𝐸 𝑏 (11.13) Dalam hal ini, E adalah bilangan random eksponensial dengan parameter a. Implementasinya dapat dilihat berikut ini.
  • 17. Restorasi Citra Program : drgamma.m function [G] = drgamma(F, a, b) % DRGAMMA Menghasilkan citra yang telah diberi derau % menggunakan fungsi Gamma. % % Berdasarkan % Rafael C. Gonzales, Richard E. Woods, dan % Steven L. Eddins, 2004 % % F = citra berskala keabuan % a dan b = argumen untuk menentukan bentuk kurva % a > 0 dan b bilangan bulat positif if nargin ~= 3 error('Penggunaan: drgamma(F, a, b)'); end if (a <= 0) || (a ~= round(a)) error('Argumen kedua harus berupa integer > 0'); end if b < 1 || (b ~= round(b)) error('Argumen ketiga harus berupa integer > 0'); end [m, n] = size(F); alpha = b; varians = b / (a * a); p = sqrt(varians * a ) / 2.0; F = double(F); for i=1 : m for j=1 : n k = -1 / a; derau = 0; for p=1 : b derau = derau + k * log(1 - rand); end G(i,j) = round(F(i,j)+derau); if G(i,j) > 255 G(i,j) = 255; end end end G = uint8(G); Akhir Program 513
  • 18. 514 Pengolahan Citra Teori dan Aplikasi Contoh penggunaan fungsi drgamma: >> Img = imread('C:Imageinnsbruck.png');  >> G = drgamma(Img, 1,20); imshow(G)  >> Beberapa contoh hasil penerapan derau gamma dapat dilihat pada Gambar 11.9. (b) a = 1, b = 20 (a) Citra Innsbruck.png (c) a = 4, b = 120 (d) a = 1, b = 50 Gambar 11.9 Contoh derau gamma 11.3.4 Derau Rayleigh Derau Rayleigh mempunyai PDF seperti berikut:
  • 19. Restorasi Citra 515 2 𝑝(𝑥) = 𝑓(𝑥) = { 2 /𝑏 (𝑧 − 𝑎)𝑒 −(𝑧−𝑎) 𝑏 , 𝑧≥ 𝑎 (11.14) 0, 𝑧 < 0 Dalam hal ini, x adalah nilai aras keabuan. Rerata dihitung dengan menggunakan rumus 𝜇 = √𝜋/(2𝑎) (11.15) dan varians berupa 𝜎2 = 𝑏(4−𝜋) (11.16) 4 Bentuk PDF-nya dapat dilihat pada Gambar 11.10. Derau Rayleigh biasa muncul pada jangkauan radar dan citra bergerak (Myler dan Weeks, 1993). p(x) 2 0,607 𝑏 x 𝑏 𝑎+ 2 Gambar 11.10 Fungsi kepadatan probabilitas derau Rayleigh Pembangkit bilangan acak diperoleh melalui (Gonzales, dkk., 2004):
  • 20. 516 Pengolahan Citra Teori dan Aplikasi 𝑧 = 𝑎 + √𝑏 ln(1 − 𝑟𝑎𝑛𝑑) (11.17) Implementasi untuk membangkitkan derau Rayleigh dapat dilihat di bawah ini. Program : drrayleigh.m function [G] = drrayleigh(F, a, b) % DRRAYLEIGH Menghasilkan citra yang telah diberi derau % menggunakan fungsi Rayleigh. % % Berdasarkan kode % Rafael C. Gonzales, Richard E. Woods, dan % Steven L. Eddins, 2004 % % F = citra berskala keabuan % a dan b = paramater untuk menentukan fungsi Rayleigh if nargin ~= 3 error('Penggunaan: drrayleigh(F, a, b)'); end if a = 0 || b = 0 error('Parameter a atau b berupa sebarang bilangan 0'); end [m, n] = size(F); F = double(F); G = zeros(m, n); for i=1 : m for j=1 : n derau = a + sqrt(-b * log(1 - rand)); G(i,j) = round(F(i,j) + derau); if G(i,j) 255 G(i,j) = 255; end end end G = uint8(G); Akhir Program Contoh penggunaan fungsi drrayleigh:
  • 21. Restorasi Citra 517 Img = imread('C:Imageinnsbruck.png');  G = drrayleigh(Img, 10, 90); imshow(G)  Beberapa contoh hasil penerapan derau Rayleigh dapat dilihat pada Gambar 11.11. (a) Citra Innsbruck.png (c) a = 1, b = 300 (b) a = 10, b = 90 (d) a = 10, b = 490 Gambar 11.11 Contoh derau Rayleigh 11.3.6 Derau Uniform Derau uniform yaitu dengan peluang sama tinggi memiliki PDF seperti berikut: 1 𝑝(𝑥) = { 𝑏−𝑎 , 𝑗𝑖𝑘𝑎 𝑎 ≤ 𝑥 ≤ 𝑏 𝑥, 𝑢𝑛𝑡𝑢𝑘 𝑙𝑎𝑖𝑛𝑛𝑦𝑎 (11.18)
  • 22. 518 Pengolahan Citra Teori dan Aplikasi Rerata pada fungsi tersebut berupa 𝜇= 𝑎+𝑏 (11.19) 2 Varians-nya berupa 𝜎2 = (𝑏−𝑎)2 (11.20) 12 Bentuk PDF ditunjukkan pada Gambar 11.12. p(x) 1 𝑏− 𝑎 𝑎 x 𝑏 Gambar 11.12 Fungsi kepadatan probabilitas derau uniform Pembangkit bilangan acak dapat dihitung melalui rumus (Gonzalez, dkk., 2004): 𝑧 = 𝑎 + (𝑏 − 𝑎) ∗ 𝑟𝑎𝑛𝑑 (11.21) Implementasi untuk membangkitkan derau uniform dapat dilihat di bawah ini.
  • 23. Restorasi Citra Program : druniform.m function [G] = druniform(F, a, b) % DRRAYLEIGH Menghasilkan citra yang telah diberi derau % uniform. % % Berdasarkan kode % Rafael C. Gonzales, Richard E. Woods, dan % Steven L. Eddins, 2004 % % F = citra berskala keabuan % a dan b = paramater untuk menentukan fungsi Rayleigh if nargin ~= 3 error('Penggunaan: drrayleigh(F, a, b)'); end if a = 0 || b = 0 error('Parameter a atau b berupa sebarang bilangan 0'); end [m, n] = size(F); F = double(F); G = zeros(m, n); for i=1 : m for j=1 : n derau = a + (b-a) * rand; G(i,j) = round(F(i,j) + derau); if G(i,j) 255 G(i,j) = 255; elseif G(i,j) 0 G(i,j) = 0; end end end G = uint8(G); Akhir Program Contoh penggunaan fungsi druniform: Img = imread('C:Imageinnsbruck.png');  G = druniform(Img, 1800, 0); imshow(G)  519
  • 24. 520 Pengolahan Citra Teori dan Aplikasi Beberapa contoh hasil penerapan derau uniform dapat dilihat pada Gambar 11.13. (b) a = 10, b = 30 (a) Citra Innsbruck.png (c) a = 10, b = 50 (d) a = 10, b = 100 Gambar 11.13 Contoh derau uniform 11.3.7 Derau Periodis Derau periodis biasa terjadi karena interferensi listrik maupun elektromekanis selama citra diakuisisi. Derau ini biasanya berbentuk sinusoidal. Sifat periodis dapat berbentuk statisioner yaitu memiliki amplitudo, frekuensi, dan fase yang tetap, tetapi dapat juga nonstasioner dengan nilai amplitudo, frekuensi, dan fase berubah di sepanjang area citra.
  • 25. Restorasi Citra (a) Citra pantai.png (c) a = 10, bx = -3, by = 4 521 (b) a = 10, bx = 3, by = 4 (d) a = 20, bx = 10, by = 10 Gambar 11.14 Citra dengan derau berupa gelombang sinus Gambar 11.14 menunjukkan contoh citra yang telah diberi tambahan derau periodis berbentuk sinus. Tambahan derau seperti itu dapat dilakukan dengan menggunakan fungsi drperiodik. Implementasi fungsi tersebut dapat dilihat di bawah ini. Program : drperiodik.m function [G] = drperiodik(F, a, bx, by) % DRPERIODIK Menghasilkan citra yang teklah ditambahi % derau periodis. % % F = Citra berskala keabuan % b = penegas derau (1, 2, 3, ...) % ax dan ay menentukan kemiringan derau
  • 26. 522 Pengolahan Citra Teori dan Aplikasi if nargin 4 a = 3; bx = 3; by = 5; end [m, n] = size(F); for i=1:m for j=1:n X(i,j) = j; Y(i,j) = i; end end derau = a * sin(X/bx + Y/by) + 1; G = uint8(double(F) + derau); Akhir Program Contoh penggunaan fungsi drperiodik: Img = imread('C:Imagepantai.png');  G = drperiodik(Img, 20, 10, 10); imshow(G)  Contoh berikut menggunakan pemanggilan fungsi drperiodik dua arah: Img = imread('C:imageabsam.png');  G = drperiodik(Img,10,1,50000);  G = drperiodik(G,10,50000,1); imshow(G) 
  • 27. Restorasi Citra 523 Gambar 11.15 Hasil pengenaan drperiodik dua arah 11.4 Penghilangan Derau Derau yang ditambahkan ke dalam citra umumnya memiliki spektrum frekuensi yang lebih tinggi daripada komponen citra (Pratt, 2001). Oleh karena itu, filter lolos-rendah dapat digunakan untuk menghilangkan derau. Secara prinsip, penghilangan derau dapat dilakukan dengan pendekatan yang linear ataupun nonlinear. Penghilangan derau secara linear dapat dilakukan baik pada kawasan spasial maupun frekuensi. Termasuk pemrosesan pada kawasan spasial yaitu penggunaan filter lolos-rendah (Pratt, 2001) ataupun filter rerata aritmetik, filter rerata harmonik, dan filter rerata kontraharmonik (Gonzalez dan Woods, 2002). Pada kawasan frekuensi, filter seperti homomorfik ataupun filter lolos-rendah Butterworth dapat digunakan (Pratt, 2001). 11.4.1 Filter Lolos-Rendah Penghilangan derau dengan filter lolos-rendah umumnya di ranah spasial dilakukan dengan menggunakan cadar (biasa disebut tanggapan impuls)
  • 28. 524 Pengolahan Citra Teori dan Aplikasi berukuran 3x3. Contoh ditunjukkan pada Gambar 11.16. Pada cadar tersebut, semua koefisien telah dinormalisasi sehingga total nilai koefisien adalah 1. Cadar pada Gambar 11.16(b) dan 11.16(c) adalah contoh cadar yang memiliki tanggapan impuls seperti berikut: 1 𝐻=[𝑏 1 𝑏 𝑏2 𝑏 1 𝑏] 1 (11.22) 1 1 𝐻 = 9 [1 1 1 1 1 1 1] 1 (a) 1 1 𝐻 = 10 [1 1 1 2 1 1 1] 1 (b) 1 [2 16 1 2 4 2 1 2] 1 (c) 𝐻= 1 Gambar 11.16 Cadar filter lolos-rendah Contoh pengenaan filter lolos-rendah pada citra yang telah diberi derau ditunjukkan pada Gambar 11.17. Pelaksanaan penapisan dapat dilakukan dengan melakukan konvolusi antara citra dan cadar. Contoh untuk melakukan operasi penghilangan derau Gaussian dengan menggunakan cadar filter lolos-rendah ditunjukkan berikut ini. Img = imread('C:Imageboneka.png');  H = [1 1 1; 1 1 1; 1 1 1] / 9 H = 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111
  • 29. Restorasi Citra G = drgaussian(Img, 5);  K = uint8(konvolusi(G,H)); imshow(K)  Contoh hasil ditunjukkan pada Gambar 11.17(b). 525
  • 30. 526 Pengolahan Citra Teori dan Aplikasi (a) Citra boneka.png yang telah diberi derau Gaussian 1 [1 9 1 1 1 1 1 1] 1 (c) 1 [1 10 1 1 2 1 1 1] 1 (d) 1 [2 16 1 2 4 2 1 2] 1 (b) 1 1 1 Gambar 11.17 Contoh efek filter lolos-rendah pada citra boneka yang mengandung derau Gaussian 11.4.2 Filter Rerata Aritmetik Filter rerata aritmetik (arithmetic mean filter) dilakukan dengan melakukan perhitungan rerata nilai pada suatu jendela berukuran m x n dan
  • 31. Restorasi Citra 527 hasilnya digunakan sebagai nilai piksel pada citra keluaran. Dengan demikian, jika g menyatakan citra yang terkena derau dan ̂ adalah citra yang deraunya telah 𝑓 dihilangkan, hubungan kedua fungsi tersebut dapat ditulis menjadi ̂(𝑦, 𝑥) = 𝑓 1 𝑚𝑛 ∑(𝑝,𝑞)∈𝑆 𝑦𝑥 𝑔(𝑝, 𝑞) (11.23) Filter ini cocok untuk menghilangkan derau uniform dan Gaussian, tetapi akan sedikit mengaburkan citra. Dalam praktik, pendekatan rerata di atas dapat dilakukan melalui konvolusi antar g dan cadar H ataupun tanpa konvolusi. Dalam hal ini, semua koefisien dalam cadar H bernilai 1 𝑚𝑛 . Filter rerata aritmetik tidak lain adalah filter pemerataan yang dibahas di Bagian 4.3.2. Gambar 11.18 menunjukkan gambaran perhitungan untuk memperoleh nilai rerata yang diberikan ke ̂(𝑦, 𝑥). Adapun 𝑓 Gambar 11.19 menunjukkan contoh citra yang telah diberi derau dan hasil pemrosesan dengan rerata aritmetik. ̂ 𝑓 g x x 7 7 3 2 6 1 y 5 4 7 2+6+7+4+1+3+7+5+7 9 y = 42 9 5 = 4,6667 ≈ 5 Gambar 11.18 Contoh pemrosesan dengan filter rerata aritmetik Contoh berikut merupakan perwujudan untuk melakukan penapisan dengan filter rerata aritmetik.
  • 32. 528 Pengolahan Citra Teori dan Aplikasi Program : filarithmean.m function [G] = filarithmean(F, ukuran) % FILARITHMEAN Melakukan penghilangan derau dengan % menggunakan filter rerata aritmetik % F = Citra berskala keabuan % ukuran = ukuran jendela % G = Citra hasil pemrosesan if nargin 2 ukuran = 3; end [m, n] = size(F); setengah = floor(ukuran / 2); F = double(F); G = zeros(m-2*setengah, n-2*setengah); for i=1+setengah : m-setengah for j=1+setengah: n-setengah jum = 0; for p = -setengah : setengah for q = -setengah : setengah jum = jum + F(i+p, j+q); end end G(i-setengah, j-setengah) = jum / (ukuran * ukuran); end end G = uint8(G); Akhir Program Contoh penggunaan fungsi filarithmean: Img = imread('C:Imagepantai.png');  G = drgaussian(Img, 10);  K = filarithmean(G); imshow(K);  Ukuran jendela dapat ditentukan secara bebas dan terarah, misalnya, seperti berikut:
  • 33. Restorasi Citra 529 K = filarithmean(G, 5); Pada contoh di atas, ukuran jendela adalah 5 x 5. Efek pererataan dengan filter rerata aritmetik diperlihatkan pada Gambar 11.19 dan Gambar 11.20. Gambar 11.20 menunjukkan bahwa filter rerata aritmetik gagal mengatasi derau merica jika ukuran jendela yang digunakan kecil. (a) Citra pantai.png yang telah diberi derau Gaussian dengan  = 10 (c) Filter rerata aritmetika 5 x 5 (b) Filter rerata aritmetika 3 x 3 (d) Filter rerata aritmetika 9 x 9 Gambar 11.19 Contoh efek filter rerata aritmetik pada citra yang telah diberi derau Gaussian
  • 34. 530 Pengolahan Citra Teori dan Aplikasi (a) Citra pantai.png yang telah diberi derau garam dan merica, p = 0,01 (c) Filter rerata aritmetika 5 x 5 (b) Filter rerata aritmetika 3 x 3 (d) Filter rerata aritmetika 9 x 9 Gambar 11.20 Contoh efek filter rerata aritmetik pada citra yang telah diberi derau garam dan merica 11.4.3 Filter Rerata Harmonik Filter rerata harmonik (harmonic mean filter), yang termasuk dalam golongan filter nonlinear, biasa digunakan untuk mengatasi derau Gaussian. Pada derau garam dan merica, filter ini dapat digunakan untuk menghilangkan derau garam, tetapi akan gagal kalau diterapkan pada derau merica (Gonzalez dan Woods, 2002). Operasi dengan filter ini dilakukan dengan menggunakan rumus ̂(𝑦, 𝑥) = 𝑓 𝑚𝑛 ∑(𝑝,𝑞)∈𝑆 𝑦𝑥 1 𝑔(𝑝,𝑞) (11.24)
  • 35. Restorasi Citra 531 Sebagai contoh, perhitungan dengan rumus di atas ditunjukkan pada Gambar 11.21. ̂ 𝑓 g x x 7 7 3 2 6 1 y 5 4 7 1 + 6 1 + 7 y 9 1 2 1 1 1 1 1 1 + + + + + + 4 1 3 7 5 7 3 = 3,1266 ≈ 3 Gambar 11.21 Contoh perhitungan dengan filter rerata harmonik Contoh berikut merupakan perwujudan untuk melakukan penapisan dengan filter rerata harmonik. Program : filharmonik.m function [G] = filharmonik(F, ukuran) % FILHARMONIK Melakukan penghilangan derau dengan % menggunakan filter rerata harmonik % F = Citra berskala keabuan % ukuran = ukuran jendela % G = Citra hasil pemrosesan if nargin 2 ukuran = 3; end [m, n] = size(F); setengah = floor(ukuran / 2); F = double(F); G = zeros(m-2*setengah, n-2*setengah); for i=1+setengah : m-setengah
  • 36. 532 Pengolahan Citra Teori dan Aplikasi for j=1+setengah: n-setengah jum = 0; for p = -setengah : setengah for q = -setengah : setengah jum = jum + 1 / F(i+p, j+q); end end G(i-setengah, j-setengah) = (ukuran * ukuran) / jum; end end G = uint8(G); Akhir Program Contoh penggunaan fungsi filharmonik: Img = imread('C:Imagepantai.png');  G = drgaussian(Img, 10);  K = filharmonik(G); imshow(K);  Ukuran jendela dapat ditentukan, misalnya, seperti berikut: K = filharmonik(G, 5);  Pada contoh di atas, ukuran jendela adalah 5 x 5. Efek filter rerata harmonik diperlihatkan pada Gambar 11.22 dan Gambar 11.23. Gambar 11.23 menunjukkan bahwa filter rerata harmonik tidak dapat mengatasi derau merica. Bintik warna putih dapat dihilangkan, tetapi bintik warna hitam justru lebih ditonjolkan.
  • 37. Restorasi Citra 533 (a) Citra kartun.tif yang telah diberi derau Gaussian,  = 10 (b) Filter rerata harmonik 3 x 3 (c) Filter rerata harmonik 5 x 5 (d) Filter rerata harmonik 9 x 9 Gambar 11.22 Contoh efek filter rerata harmonik pada citra yang diberi derau Gaussian
  • 38. 534 Pengolahan Citra Teori dan Aplikasi (a) Citra kartun.png yang telah diberi derau garam dan merica, p = 0,01 (b) Filter rerata harmonik 3 x 3 (c) Filter rerata harmonik 5 x 5 (d) Filter rerata harmonik 9 x 9 Gambar 11.23 Contoh efek filter rerata harmonik pada citra yang diberi derau garam dan merica 11.4.4 Filter Rerata Kontraharmonik Penapisan dengan filter rerata kontraharmonik (contraharmonic mean filter) dilaksanakan dengan menggunakan rumus berikut: ̂(𝑦, 𝑥) = 𝑓 ∑(𝑝,𝑞)∈𝑆 𝑦𝑥 𝑔(𝑝,𝑞) 𝑄+1 ∑(𝑝,𝑞)∈𝑆 𝑦𝑥 𝑔(𝑝,𝑞) 𝑄 (11.25) Dalam hal ini, Q dinamakan orde filter. Filter rerata kontraharmonik cocok digunakan untuk menghilangkan derau garam dan merica, tetapi tidak dapat dilakukan sekaligus. Dalam hal ini, nilai Q positif berguna untuk menghilangkan derau merica dan nilai Q negatif berguna
  • 39. Restorasi Citra 535 untuk membuang derau garam (Gonzalez dan Woods, 2002). Sebagai contoh, perhitungan pada filter rerata kontraharmonik ditunjukkan pada Gambar 11.24. ̂ f g x x 7 7 3 2 6 1 y 5 4 7 y 6 Q=1 22 +62 +72 +42 +12 +39 +72 +52 +72 2+6+7+4+1+3+7+5+7 = 238 42 = 5,6667 ≈ 6 Gambar 11.24 Ilustrasi perhitungan dengan filter rerata kontraharmonik Contoh berikut merupakan perwujudan untuk melakukan penapisan dengan filter rerata kontraharmonik. Program : filkontra.m function [G] = filkontra(F, ukuran, orde) % FILKONTRA Melakukan penghilangan derau dengan % menggunakan filter rerata kontraharmonik % F = Citra berskala keabuan % ukuran = ukuran jendela % orde = orde filter % G = Citra hasil pemrosesan if nargin 2 ukuran = 3; end if nargin 3 orde = 2; end [m, n] = size(F);
  • 40. 536 Pengolahan Citra Teori dan Aplikasi setengah = floor(ukuran / 2); F = double(F); G = zeros(m-2*setengah, n-2*setengah); for i=1+setengah : m-setengah for j=1+setengah: n-setengah atas = 0; bawah = 0; for p = -setengah : setengah for q = -setengah : setengah atas = atas + F(i+p, j+q)^orde; bawah = bawah + F(i+p, j+q)^(orde-1); end end G(i-setengah, j-setengah) = atas / bawah; end end G = uint8(G); Akhir Program Contoh penggunaan fungsi filkontra: Img = imread('C:Imageboneka.png');  G = drgaussian(Img, 5);  K = filkontra(G,3); imshow(K);  Ukuran jendela dapat ditentukan. Misalnya, seperti berikut: K = filkontra(G, 5);  Pada contoh di atas, ukuran jendela adalah 5 x 5. Efek pererataan dengan filter rerata kontraharmonik diperlihatkan pada Gambar 11.25 dan Gambar 11.26. Pada Gambar 11.26, salah satu derau garam atau merica dapat dihilangkan dengan mengatur nilai orde filter berupa bilangan positif atau negatif.
  • 41. Restorasi Citra (a) Citra boneka.png yang telah diberi derau Gaussian,  = 10 (c) Filter rerata kontraharmonik 5 x 5 Orde = 2 537 (b) Filter rerata kontraharmonik 3 x 3 Orde = 2 (d) Filter rerata kontraharmonik 3 x 3 Orde = 10 Gambar 11.25 Contoh efek filter rerata kontraharmonik pada citra boneka yang diberi derau Gaussian
  • 42. 538 Pengolahan Citra Teori dan Aplikasi (a) Citra boneka.png yang telah diberi derau garam dan merica, p =0,01 (b) Filter rerata kontraharmonik 3 x 3 Orde = 2 (Menghilangkan merica) (c) Filter rerata kontraharmonik 3 x 3 Orde = -2 (menghilangkan garam) Gambar 11.26 Contoh efek filter rerata kontraharmonik pada citra boneka yang diberi derau garam dan merica 11.4.5 Filter Rerata Yp Filter rerata Yp (Yp mean filter) adalah jenis filter nonlinear yang didefinisikan sebagai berikut (Myler dan Weeks, 1993): ̂(𝑦, 𝑥) = 𝑓 1/𝑄 ∑(𝑝,𝑞)∈𝑆 𝑦𝑥 𝑔(𝑝,𝑞) 𝑄 √ 𝑚 𝑛 (11.26) Dalam hal ini, parameter Q menentukan orde filter, m dan n menyatakan ukuran jendela. Filter ini berguna untuk menghilangkan derau Gaussian. Contoh berikut merupakan perwujudan untuk melakukan penapisan dengan filter rerata Yp.
  • 43. Restorasi Citra 539 Program : filyp.m function [G] = filyp(F, ukuran, orde) % FILYP Melakukan penghilangan derau dengan % menggunakan filter rerata Yp % F = Citra berskala keabuan % ukuran = ukuran jendela % orde = orde filter % G = Citra hasil pemrosesan if nargin 2 ukuran = 3; end if nargin 3 orde = 2; end [m, n] = size(F); setengah = floor(ukuran / 2); F = double(F); G = zeros(m-2*setengah, n-2*setengah); for i=1+setengah : m-setengah for j=1+setengah: n-setengah jum = 0; for p = -setengah : setengah for q = -setengah : setengah jum = jum + F(i+p, j+q)^orde / (ukuran * ukuran); end end G(i-setengah, j-setengah) = jum ^ (1/orde); end end G = uint8(G); Akhir Program Contoh penggunaan fungsi filyp: Img = imread('C:Imageinnsbruck.png');  G = drgaussian(Img, 10);  K = filyp(G,3,2); imshow(K); 
  • 44. 540 Pengolahan Citra Teori dan Aplikasi Ukuran jendela dapat ditentukan, misalnya seperti berikut: K = filyp(G, 5); Pada contoh di atas, ukuran jendela adalah 5 x 5. Efek pererataan dengan filter rerata Yp diperlihatkan pada Gambar 11.27. (a) Citra innsbruck.png yang telah diberi derau Gaussian (b) Filter rerata Yp 3 x 3, Orde = 2 (c) Filter rerata Yp 5 x 5, Orde = 5 (d) Filter rerata Yp 9 x 9, Orde = -5 Gambar 11.27 Contoh efek filter rerata Yp pada citra yang diberi derau Gaussian 11.4.6 Filter Median Sebagaimana telah dijelaskan pada Bagian 4.3.3, filter median dapat dipakai untuk menghilangkan derau dalam citra. Filter ini menggunakan nilai
  • 45. Restorasi Citra 541 median piksel-piksel di dalam jendela sebagai keluaran ̂. Jadi, filter median 𝑓 dapat ditulis sebagai berikut: ̂(𝑦, 𝑥) = 𝑚𝑒𝑑𝑖𝑎𝑛(𝑝,𝑞)∈𝑆 (𝑔(𝑝, 𝑞)) 𝑓 𝑦𝑥 (11.27) Ilustrasi filter median ditunjukkan pada Gambar 11.28. ̂ f g x x 7 7 3 2 6 1 y 5 4 7 y 5 Pengurutan 1, 2, 3, 4, 5, 6, 7, 7, 7 1 2 3 4 5 6 7 8 9 Indeks Median (di tengah) Gambar 11.28 Contoh filter median Filter median cocok dipakai untuk menghilangkan derau impuls dan derau eksponensial negatif. Contoh diperlihatkan pada Gambar 11.29.
  • 46. 542 Pengolahan Citra Teori dan Aplikasi (a) Citra innsbruck.png yang telah diberi derau garam dan merica,  = 10 (b) Filter median 3 x 3 (c) Filter median 5 x 5 (d) Filter median 9 x 9 Gambar 11.29 Efek penghilangan derau impuls menggunakan filter median Contoh berikut merupakan perwujudan untuk melakukan penapisan dengan filter median. Program : filmed.m function [G] = filmed(F, ukuran) % FILMED Melakukan penghilangan derau dengan % menggunakan filter median. % F = Citra berskala keabuan % ukuran = ukuran jendela % orde = orde filter % G = Citra hasil pemrosesan
  • 47. Restorasi Citra 543 if nargin 2 ukuran = 3; end [m, n] = size(F); setengah = floor(ukuran / 2); F = double(F); G = zeros(m-2*setengah, n-2*setengah); Nilai = zeros(1,ukuran * ukuran); for i=1+setengah : m-setengah for j=1+setengah: n-setengah indeks = 1; for p = -setengah : setengah for q = -setengah : setengah Nilai(indeks) = F(i+p, j+q); indeks = indeks + 1; end end indeks = indeks - 1; % jumlah data % Urutkan data pada array Nilai for p = 2: indeks x = Nilai(p); % Sisipkan x ke dalam data[1..p-1] q = p - 1; ketemu = 0; while ((q = 1) (~ketemu)) if (x Nilai(q)) Nilai(q+1) = Nilai(q); q = q - 1; else ketemu = 1; end Nilai(q+1) = x; end end % Gunakan nilai median G(i-setengah, j-setengah) = … Nilai(floor(ukuran * ukuran/2) + 1); end end
  • 48. 544 Pengolahan Citra Teori dan Aplikasi G = uint8(G); Akhir Program Contoh penggunaan fungsi filmed: Img = imread('C:Imageinnsbruck.png');  G = drimpuls(Img, 0.01); imshow(G)  K = filmed(G); imshow(K);  Ukuran jendela dapat ditentukan seperti berikut: K = filmed(G, 5);  Pada contoh di atas, ukuran jendela adalah 5 x 5. Contoh filter median pada citra yang tidak diberi derau dapat dilihat pada Gambar 11.30. Tampak bahwa tekstur agak melembut. Sebagai akibatnya, detail pada citra agak tersamarkan.
  • 49. Restorasi Citra 545 (a) Citra boneka.png (b) Filter median 3 x 3 Gambar 11.30 Efek filter median pada citra yang tidak diberi derau 11.4.7 Filter Max Filter max atau filter maksimum adalah filter yang mencari nilai tertinggi pada jendela dan menggunakannya sebagai nilai untuk citra keluaran. Rumusnya sebagai berikut:
  • 50. 546 Pengolahan Citra Teori dan Aplikasi ̂(𝑦, 𝑥) = 𝑚𝑎𝑥(𝑝,𝑞)∈𝑆 (𝑔(𝑝, 𝑞)) 𝑓 𝑦𝑥 (11.28) Filter max berguna untuk mendapatkan bagian cerah pada citra. Sebagai akibatnya, dengan menggunakan filter ini, derau merica dapat disingkirkan. Sebagai contoh, perhitungan pada filter max diberikan pada Gambar 11.31. ̂ f g x x 7 7 3 2 6 1 y 5 4 7 y 7 Bilangan terbesar 7 1 2 3 4 5 6 7 8 9 Gambar 11.31 Ilustrasi filter max Contoh berikut merupakan perwujudan untuk melakukan penapisan dengan filter max. Program : filmax.m function [G] = filmax(F, ukuran) % FILMAX Melakukan penghilangan derau dengan % menggunakan filter max. % F = Citra berskala keabuan % ukuran = ukuran jendela % orde = orde filter % G = Citra hasil pemrosesan if nargin 2 ukuran = 3; end [m, n] = size(F); setengah = floor(ukuran / 2);
  • 51. Restorasi Citra 547 G = zeros(m-2*setengah, n-2*setengah); for i=1+setengah : m-setengah for j=1+setengah: n-setengah maks = 0; for p = -setengah : setengah for q = -setengah : setengah if F(i+p,j+q) maks maks = F(i+p,j+q); end end end G(i-setengah, j-setengah) = maks; end end G = uint8(G); Akhir Program Contoh penggunaan fungsi filmax: Img = imread('C:Imageinnsbruck.png');  G = drimpuls(Img, 0.01);  K = filmax(G); imshow(K);  Ukuran jendela dapat ditentukan seperti berikut: K = filmax(G, 5);  Pada contoh di atas, ukuran jendela adalah 5 x 5. Efek filter max terhadap citra yang mengandung derau garam dan merica diperlihatkan pada Gambar 11.32. Penerapan filter max terhadap citra yang tidak diberi efek derau ditunjukkan pada Gambar 11.33.
  • 52. 548 Pengolahan Citra Teori dan Aplikasi (a) Citra innsbruck.png yang telah diberi derau garam dan merica,  = 10 (c) Filter max 5 x 5 (b) Filter max 3 x 3 (d) Filter i 9 x 9 Gambar 11.32 Efek filter max pada citra yang diberi derau impulsif (garam dan merica)
  • 53. Restorasi Citra 549 (a) Citra boneka.png Warna hitam berkurang (b) Filter max 3 x 3 Gambar 11.33 Efek filter max pada citra yang tidak diberi derau
  • 54. 550 Pengolahan Citra Teori dan Aplikasi 11.4.8 Filter Min Filter min atau filter minimum adalah filter yang mencari nilai terendah pada jendela dan menggunakannya sebagai nilai untuk citra keluaran. Rumusnya sebagai berikut: ̂(𝑦, 𝑥) = 𝑚𝑖𝑛(𝑝,𝑞)∈𝑆 (𝑔(𝑝, 𝑞)) 𝑓 𝑦𝑥 (11.29) Filter min berguna untuk mendapatkan bagian tergelap dalam citra. Sebagai hasilnya, dengan menggunakan filter ini, derau garam dapat disingkirkan. Sebagai contoh, perhitungan pada filter min ditunjukkan pada Gambar 11.34. ̂ f g x x 7 7 3 2 6 1 y 5 4 7 y 1 Bilangan terkecil 1 1 2 3 4 5 6 7 8 9 Gambar 11.34 Ilustrasi filter min Contoh berikut merupakan perwujudan untuk melakukan penapisan dengan filter min. Program : filmin.m function [G] = filmin(F, ukuran) % FILMIN Melakukan penghilangan derau dengan % menggunakan filter min. % F = Citra berskala keabuan % ukuran = ukuran jendela
  • 55. Restorasi Citra % % orde = orde filter G = Citra hasil pemrosesan if nargin 2 ukuran = 3; end [m, n] = size(F); setengah = floor(ukuran / 2); G = zeros(m-2*setengah, n-2*setengah); for i=1+setengah : m-setengah for j=1+setengah: n-setengah terkecil = 255; for p = -setengah : setengah for q = -setengah : setengah if terkecil F(i+p,j+q) terkecil = F(i+p,j+q); end end end G(i-setengah, j-setengah) = terkecil; end end G = uint8(G); Akhir Program Contoh penggunaan fungsi filmin: Img = imread('C:Imageboneka.png');  K = filmin(Img); imshow(K);  Hasilnya ditunjukkan pada Gambar 11.35. Ukuran jendela dapat ditentukan seperti berikut: K = filmin(G, 5);  551
  • 56. 552 Pengolahan Citra Teori dan Aplikasi (a) Citra boneka.tif Warna hitam bertambah (b) Filter min 3 x 3 Gambar 11.35 Efek filter min pada citra yang tidak diberi derau
  • 57. Restorasi Citra 553 11.4.9 Filter Titik-Tengah Filter titik-tengah (midpoint filter) adalah filter yang mencari nilai tengah pada jendela dan menggunakannya sebagai nilai keluaran. Filter cocok untuk menangani derau Gaussian ataupun uniform. Rumusnya sebagai berikut: ̂(𝑦, 𝑥) = 𝑓 𝑚𝑎𝑥(𝑝,𝑞)∈𝑆 𝑦𝑥 (𝑔(𝑝,𝑞))+𝑚𝑖𝑛(𝑝,𝑞)∈𝑆 𝑦𝑥 (𝑔(𝑝,𝑞)) (11.30) 2 Sebagai contoh, perhitungan pada filter titik tengah ditunjukkan pada Gambar 11.36. ̂ f g x x 7 7 3 2 6 1 y 5 4 7 y 4 Maksimum = 7 Minimum = 1 Titik tengah = (maksimum + minimum) / 2 = 4 Gambar 11.36 Ilustrasi filter titik tengah Contoh berikut merupakan perwujudan untuk melakukan penapisan dengan filter titik tengah. Program : filmid.m
  • 58. 554 Pengolahan Citra Teori dan Aplikasi f function [G] = filmid(F, ukuran) % FILMID Melakukan penghilangan derau dengan % menggunakan filter titik tengah. % F = Citra berskala keabuan % ukuran = ukuran jendela % orde = orde filter % G = Citra hasil pemrosesan if nargin 2 ukuran = 3; end [m, n] = size(F); setengah = floor(ukuran / 2); G = zeros(m-2*setengah, n-2*setengah); for i=1+setengah : m-setengah for j=1+setengah: n-setengah terkecil = 255; terbesar = 0; for p = -setengah : setengah for q = -setengah : setengah if terkecil F(i+p,j+q) terkecil = F(i+p,j+q); end if terbesar F(i+p,j+q) terbesar = F(i+p,j+q); end end end G(i-setengah, j-setengah) = round(... (terbesar + terkecil) / 2); end end G = uint8(G); Akhir Program Contoh penggunaan fungsi filmid: Img = imread('C:Imageinnsbruck.png');  G = drgaussian(Img, 10);  K = filmid(G,3,2); imshow(K); 
  • 59. Restorasi Citra 555 Ukuran jendela dapat ditentukan seperti berikut: K = filmid(G, 5);  Pada contoh di atas, ukuran jendela adalah 5 x 5. Efek filter titik tengah diperlihatkan pada Gambar 11.37. (a) Citra innsbruck.png yang telah diberi derau Gaussian,  = 10 (b) Filter titik tengah 3 x 3 (c) Filter titik tengah 5 x 5 (d) Filter titik tengah 9 x 9 Gambar 11.37 Contoh efek filter titik tengah 11.5 Penghilangan Derau di Kawasan Frekuensi Derau periodis dapat dihilangkan atau dikurangi dengan menggunakan penapisan di kawasan frekuensi. Dalam hal ini, filter yang dapat digunakan yaitu band-reject, band-pass, dan notch (Gonzalez dan Woods, 2002). Namun, dari ketiga filter tersebut, filter notch mempunyai karakteristik yang menarik, karena
  • 60. 556 Pengolahan Citra Teori dan Aplikasi dapat dipakai untuk menghapus derau periodis pada citra. Filter notch berguna untuk menolak atau meloloskan frekuensi-frekuensi pada suatu frekuensi pusat. Filter ini sebenarnya adalah filter band-reject yang memiliki pita sempit (bentuk Amplitudo Amplitudo filter band-reject ditunjukkan pada Gambar 11.38). Frekuensi Frekuensi (b) Filter band-reject (a) Filter band-pass Gambar 11.38 Filter band-reject dan filter band-pass Derau yang bersifat berulang seringkali terlihat sebagai bintik yang cerah pada citra kawasan frekuensi dibandingkan pada citra aslinya. Sebagai contoh dapat dilihat pada Gambar 11.39(d), yang ditandai dengan lingkaran merah. Nah, apabila bintik-bintik seperti itu dihilangkan, derau pun akan tereduksi. Hal itu ditunjukkan pada Gambar 11.39(e).
  • 61. Restorasi Citra 557 (a) Citra absam.png (b) Spektrum citra absam.png (c) Citra diberi derau periodis (d) Bintik cerah (e) Hasil penapisan (f) Bintik cerah dihapus Gambar 11.39 Ilustrasi penghilangan derau periodis di kawasan frekuensi Fungsi bernama filnotch berikut berguna untuk mendapatkan fungsi transfer yang akan melakukan penghapusan pada frekuensi tertentu.
  • 62. 558 Pengolahan Citra Teori dan Aplikasi Program : filnotch.m function H = filnotch(a, b, d0, x, y, n) % FILNOTCH Digunakan untuk memperoleh fungsi transfer % filter notch % Masukan: % a = tinggi % b = lebar % d0 - menentukan frekuensi yang akan dihapus % n = orde filter % Keluaran: % H - Fungsi transfer filter notch % ----------------------------------------------% Menentukan n kalau n tidak disebutkan if nargin 6 n = 1; end % Menentukan jangkauan frekuensi u dan v u = 0:(a - 1); v = 0:(b - 1); % Hitung indeks untuk meshgrid idx = find(u b/2); u(idx) = u(idx) - b; idy = find(v a/2); v(idy) = v(idy) - a; % Peroleh array meshgrid [V, U] = meshgrid(v, u); % Hitung jarak D(v,u) D = sqrt(V.^2 + U.^2); % Hitung fungsi transfer filter lolos-rendah % dengan menggunakan Butterworth Hlpf = 1./(1 + (D./d0) .^ (2*n)); % Peroleh fungsi transfer filter lolos-tinggi Hhpf = 1 - Hlpf; % Lakukan penggeseran secara melingkar H = circshift(Hhpf, [y-1 x-1]); Akhir Program
  • 63. Restorasi Citra 559 Contoh penggunaan fungsi filnotch: filnotch(5,5,10,1, 160)  ans = 0.009901 0.019608 0.047619 0.047619 0.019608 0.038462 0.047619 0.074074 0.074074 0.047619 0.038462 0.047619 0.074074 0.074074 0.047619 0.009901 0.019608 0.047619 0.047619 0.019608 0.000000 0.009901 0.038462 0.038462 0.009901 Pada contoh di atas,  ukuran fungsi transfer yang dihasilkan berukuran 5x5 (nilai aktual berupa ukuran citra yang telah diperluas di bagian kanan dan bawah);  radius frekuensi sebesar 10;  posisi x sebesar 1 dan posisi y sebesar 160, yang menyatakan pusat frekuensi. Dengan berbekal filter notch, penghapusan derau periodis dilakukan dengan cara seperti yang ditunjukkan pada skrip berikut. Program : filterper.m % FILTERPER Mengurangi derau periodis. % Spesifik pada citra absam dengan % tambahan derau seperti terlihat di bawah ini. close all; Img = imread('C:Imageabsam.png'); [a, b] = size(Img); % Kenakan derau vertikal dan horizontal CitraBerderau = drperiodik(Img,10,1,10000000);
  • 64. 560 Pengolahan Citra Teori dan Aplikasi CitraBerderau = drperiodik(CitraBerderau,10,100000,-1); % Tampilkan citra yang berderau figure, imshow(CitraBerderau); % r p q Menentukan ukuran baru untuk perluasan citra = nextpow2(2 * max(a, b)); = 2 ^ r; = p; % Buat filter notch H1 = filnotch(p, q, H2 = filnotch(p, q, H3 = filnotch(p, q, H4 = filnotch(p, q, 10, 10, 10, 10, 1, 165); 165, 1); 1, 860); 862, 1); % Hitung FFT F = fft2(double(CitraBerderau),p,q); % Kenakan keempat filter notch F_frek = F .* H1 .* H2 .* H3 .* H4; % Ubah ke kawasan spasial F_hasil = real(ifft2(F_frek)); % Buang tambahan pada baris dan kolom F_hasil = F_hasil(1:size(CitraBerderau,1), ... 1:size(CitraBerderau,2)); figure, imshow(F_hasil,[]); % Tampilkan citra berderau Fc=fftshift(F); Fcf=fftshift(F_frek); % Menampikan spektrum citra asli dan citra hasil penapisan S1=log(1+abs(Fc)); S2=log(1+abs(Fcf)); figure, imshow(S1,[]) figure, imshow(S2,[]) Akhir Program Kunci penghilangan derau periodis terletak pada kode berikut: H1 = filnotch(p, q, 10, 1, 165); H2 = filnotch(p, q, 10, 165, 1); H3 = filnotch(p, q, 10, 1, 860); H4 = filnotch(p, q, 10, 862, 1);
  • 65. Restorasi Citra 561 Dalam hal ini, p dan q menyatakan tinggi dan lebar citra setelah diperluas. Berdasarkan keempat fungsi transfer tersebut, konvolusi pada kawasan frekuensi dilakukan melalui: F_frek = F .* H1 .* H2 .* H3 .* H4; Nah, yang menjadi perhatian di sini adalah: “Bagaimana menentukan nilai koordinat frekuensi pada H1 hingga H4?” Jawabannya, pusat frekuensi masingmasing diperoleh dengan menentukan letak bintik cerah yang ditandai dengan lingkaran merah pada Gambar 11.39(d). Untuk menentukan lokasi frekuensi tersebut, peranti pada jendela yang dihasilkan imshow dapat dimanfaatkan. Caranya, pada MATLAB, letakkan penunjuk mouse ke ikon yang ditunjukkan pada Gambar 11.40. Selanjutnya, klik pada bintik cerah yang lokasinya ingin diketahui. Langkah ini akan memunculkan tampilan semacam berikut: . Lalu, catatlah nilai X dan Y-nya. Kemudiaan, lakukan pula pencatatan frekuensi (0,0) yang terletak di tengah. Catat pula nilai X dan Ynya. Pada Octave, letakkan penunjuk mouse pada bintik cerah. Dengan sendirinya, nilai X dan Y ditampilkan di bagian bawah.
  • 66. 562 Pengolahan Citra Teori dan Aplikasi Gambar 11.40 Ikon untuk memulai pencarian lokasi bintik cerah Perhitungan selanjutnya yang perlu dilakukan adalah dengan memperhatikan letak kuadran dari bintik cerah. Perhatikan Gambar 11.41. Apabila bintik cerah berada di Kuadran I, perhitungan untuk mendapatkan pusat frekuensi sebagai berikut: 𝑥̅ = 𝑥1 − 𝑥0, ̅ = 𝑦1 + 𝑝 𝑦 (11.31) Perhitungan untuk mendapatkan pusat frekuensi di kuadran II sebagai berikut: 𝑥̅ = 𝑥1 − 𝑥0, ̅ = 𝑦1 − 𝑦0 𝑦 (11.32) Perhitungan untuk mendapatkan pusat frekuensi di kuadran III sebagai berikut: 𝑥̅ = 𝑥1 + 𝑞 ̅ = 𝑦1 − 𝑦0 𝑦 (11.33)
  • 67. Restorasi Citra 563 Perhitungan untuk mendapatkan pusat frekuensi pada kuadran IV sebagai berikut: 𝑥̅ = 𝑥1 + 𝑞 ̅ = 𝑦1 + 𝑝 𝑦 (11.34) Kuadran IV Kuadran I (x4,y4) (x4,y3) Kuadran III Frekuensi (0,0) (x0,y0) Kuadran II p (x2,y2) (x1,y1) Bintik cerah q Gambar 11.41 Kuadran penentuan pusat frekuensi bintik cerah 11.6 Filter Inversi Sebagaimana telah diketahui, pada kawasan frekuensi, suatu citra ditapis dengan menggunakan rumus seperti berikut: 𝐺 = 𝐹. 𝐻 (11.35) Dalam hal ini, G adalah hasil penapisan pada DFT, F adalah DFT citra asal, dan H adalah DFT filter. Secara matematis, Persamaan 11.35 dapat ditulis menjadi 𝐹 = 𝐺/𝐻 (11.36) Persamaan di atas menyatakan bahwa apabila G dan H diketahui, F dapat dihitung. Namun, dalam praktik, apakah persamaan seperti itu bermakna? Untuk mengetahui jawabannya, cobalah untuk mempraktikkan perintah-perintah berikut:
  • 68. 564 Pengolahan Citra Teori dan Aplikasi inversi('C:Imagepantai.png',0.3); Angka 0.3 pada perintah di atas dipakai untuk mengatur ambang frekuensi pada penapisan dengan filter lolos-rendah Butterworth. Hasilnya ditunjukkan pada Gambar 11.42. Gambar 11.42(c) menunjukkan bahwa dengan menggunakan filter inversi dimungkinkan untuk mendapatkan citra asli dengan hasil yang bagus. Namun, jika ambang frekuensi diubah menjadi 0,1, hasilnya menjadi tidak cocok lagi (Gambar 11.42(e)) meskipun citra hasil penapisan lolos-rendah masih terlihat bagus. Hal inilah yang mengisyaratkan bahwa penggunaan filter inversi terlalu riskan. Kegagalan seperti pada Gambar 11.42(e) terjadi manakala terdapat elemen-elemen di dalam matriks Butterworth yang bernilai sangat kecil. Karena bersifat sebagai pembagi, nilai yang sangat kecil akan menimbulkan hasil berupa nilai yang sangat besar, yang akan mendominasi keluaran.
  • 69. Restorasi Citra 565 (a) Citra pantai.png (b) Hasil penapisan dengan ambang frekuensi = 0,3 (c) Hasil filter inversi gambar b (d) Hasil penapisan dengan ambang frekuensi = 0,15 (e) Hasil filter inversi gambar d Gambar 11.42 Gambaran filter inversi Perlu diketahui, kode fungsi inversi adalah seperti berikut.
  • 70. 566 Pengolahan Citra Teori dan Aplikasi Program : inversi.m function [Fb] = inversi(berkas, d) % INVERSI Digunakan untuk melihat efek inversi % penapisan citra pada kawasan frekuensi. % Argumen berkas adalah nama berkas yang diuji, % sedangkan d menentukan ambang frekuensi. Img=imread(berkas); [a,b] = size(Img); % r p q Peroleh ukuran untuk kepentingan perluasan citra = nextpow2(2 * max(a, b)); = 2 ^ r; = p; % Proses untuk memperoleh citra yang ditapis Ff = fft2(Img,p,q); H = fillrb(Img, d, 2); Fh = Ff .* H; Fa = abs(ifft2(Fh)); Fa=uint8(255*mat2gray(Fa)); Fa = Fa(1:a, 1:b); % Menggunakan citra yang ditapis untuk kepentingan inversi Fi = fft2(Fa,p,q) ./ H; Fb = abs(ifft2(Fi)); Fb=uint8(255*mat2gray(Fb)); Fb = Fb(1:a, 1:b); % Tampilkan citra asli dan hasil pemrosesan close all; figure, imshow(Img); figure, imshow(Fa); figure, imshow(Fb); Akhir Program Fungsi inversi memerlukan fungsi lain yaitu fillrb, yang kodenya seperti berikut.
  • 71. Restorasi Citra 567 Program : fillrb.m function H=fillrb(F, d0, n) % FILLRB Digunakan untuk membentuk fungsi transfer % filter lolos-rendah Butterworth. % F = citra berskala keabuan % d0 = ambang frekuensi (0 s/d 1) % n = orde filter [a, b] = size(F); % r p q %Peroleh ukuran citra Menentukan ukuran baru untuk perluasan citra = nextpow2(2 * max(a, b)); = 2 ^ r; = p; % Menentukan jangkauan frekuensi u dan v u = 0:(p - 1); v = 0:(q - 1); % Hitung indeks untuk meshgrid idx = find(u q/2); u(idx) = u(idx) - q; idy = find(v p/2); v(idy) = v(idy) - p; % Peroleh array meshgrid [V, U] = meshgrid(v, u); % Hitung jarak D(v,u) D = sqrt(V.^2 + U.^2); % Menentukan n kalau n tidak disebutkan if nargin == 2 n = 1; end ambang = d0 * p; % Hitung frekuensi ambang H = exp(-(D.^2) ./ (2 * ambang ^ 2)); Akhir Program 11.7 Filter Wiener Contoh pada filter inversi di depan mengabaikan derau. Apabila derau disertakan, Persamaan 11.35 perlu diubah menjadi 𝐺 = 𝐹. 𝐻 + 𝐷 (11.37)
  • 72. 568 Pengolahan Citra Teori dan Aplikasi dengan D adalah derau. Selanjutnya, persamaan di atas dapat ditulis menjadi 𝐹= 𝐺−𝐷 (11.38) 𝐻 Persamaan di atas menunjukkan bahwa persoalan untuk mendapatkan citra asli tidak hanya melibatkan permasalahan pembagian dengan filter H tetapi juga permasalahan untuk mengatasi derau. Kenyataannya, derau dapat membuat filter inversi tidak berguna manakala derau mendominasi keluaran. Untuk mengurangi sensitivitas derau pada filter inversi, berbagai pendekatan untuk melakukan restorasi citra telah dilakukan. Secara umum, pendekatan tersebut dinamakan sebagai filter least square. Salah satu filter yang tergolong sebagai filter least square yaitu filter Wiener atau terkadang disebut sebagai filter minimum mean square error. Filter Wiener yang diusulkan pertama kali oleh N. Wiener pada tahun 1942 dilaksanakan dengan meminimumkan kesalahan kuadrat rerata antara citra ideal ̂ dan citra terestorasi. Apabila f adalah citra ideal dan f adalah citra terestorasi, kesalahan kuadrat reratanya berupa 𝑀𝑆𝐸 = 𝐸[(𝑓(𝑖, 𝑗) − ̂(𝑖, 𝑗))2 ] ≈ 𝑓 1 𝑀𝑁 𝑀 𝑁 ∑ 𝑖=1 ∑ 𝑗=1(𝑓(𝑖, 𝑗) − ̂(𝑖, 𝑗))2 (11.39) 𝑓 dengan M adalah tinggi citra dan N adalah lebar citra. Solusi atas problem di atas dikenal dengan nama filter Wiener. Dalam kawasan frekeuensi, solusi untuk filter Wiener berupa (McAndrew, 2004): 2 |𝐻(𝑖,𝑗)| 1 𝐹(𝑖, 𝑗) ≈ [ 𝐻(𝑖,𝑗) |𝐻(𝑖,𝑗)|2 +𝐾] ̂ (𝑖, 𝑗) 𝐹 (11.40) dengan K adalah suatu konstanta. Nilai konstanta tersebut dipakai untuk melakukan hampiran terhadap derau. Sebagai contoh, jika varians (2) derau diketahui, K dapat diisi dengan 2. Jika varians tidak diketahui, nilai K harus dicoba-coba untuk mendapatkan hasil yang terbaik.
  • 73. Restorasi Citra 569 Di Octave, Persamaan 11.40 dapat dihitung dengan mudah. Contoh ditunjukkan pada skrip berikut. Program : filwien.m function [Fb] = filwien(berkas, d, k) % FILWIEN Digunakan untuk melihat efek filter Wiener % Argumen berkas adalah nama berkas yang diuji, % d menentukan ambang frekuensi, dan k adalah % kosntanta. Img=imread(berkas); [a,b] = size(Img); % r p q Peroleh ukuran untuk kepentingan perluasan citra = nextpow2(2 * max(a, b)); = 2 ^ r; = p; % Proses untuk memperoleh citra yang ditapis Ff = fft2(Img,p,q); H = fillrb(Img, d, 2); Fh = Ff .* H; Fa = abs(ifft2(Fh)); Fa = uint8(255*mat2gray(Fa)); Fa = Fa(1:a, 1:b); % Menggunakan citra yang ditapis untuk kepentingan inversi Fi = fft2(Fa,p,q) .* abs(H).^2 ./ (abs(H) .^ 2 + k) ./ H; Fb = abs(ifft2(Fi)); Fb = uint8(255*mat2gray(Fb)); Fb = Fb(1:a, 1:b); % Tampilkan citra asli dan hasil pemrosesan close all; figure, imshow(Img); figure, imshow(Fa); figure, imshow(Fb); Akhir Program Skrip di atas adalah hasil modifikasi atas inversi.m. Perbedaan pertama terletak pada keberadaan argumen k. Perbedaan kedua terletak pada pernyataan Fi = fft2(Fa,p,q) .* abs(H).^2 ./ (abs(H) .^ 2 + k) ./ H;
  • 74. 570 Pengolahan Citra Teori dan Aplikasi Pernyataan di atas adalah implementasi Persamaan 11.40. Contoh penggunaan fungsi filwien ditunjukkan di bawah ini: filwien('C:Imagepantai.png',0.17, 1);  Perhatikan bahwa dengan menggunakan nilai 0.17, filter inversi gagal melakukan restorasi, tetapi filter Wiener dapat melakukan restorasi. 11.8 Ukuran Keberhasilan Penghilangan Derau Pengamatan baik tidaknya suatu pendekatan untuk melakukan restorasi citra biasa dilakukan dengan menggunakan mata. Namun, cara seperti itu bersifat subjektif. Agar biasa diukur secara kuantitatif, keberhasilan penghilangan derau dapat dilakukan dengan menggunakan 𝑀𝑆𝐸 = 1 𝑀𝑁 𝑀 𝑁 ∑ 𝑖=1 ∑ 𝑗=1(𝑓𝑎 (𝑖, 𝑗) − 𝑓 𝑏 (𝑖, 𝑗))2 (11.41) Dalam hal ini, fa adalah citra sebelum terkena derau dan fb adalah citra yang telah direstorasi. Semakin kecil nilai MSE, kinerja restorasi citra semakin baik. Contoh berikut adalah implementasi untuk menghitung MSE. Program : msecitra.m function [nilai] = msecitra(F1, F2) % MSECITRA Digunakan untuk menghitung MSE (mean square error) % citra F1 dan F2. [a1, b1] = size(F1); [a2, b2] = size(F2); if (a1 == a2) || (b1 == b2) Fa = double(F1); Fb = double(F2); else deltaA = abs(a1-a2); deltaB = abs(b1-b2); if rem(deltaA,2)==1 || rem(deltaB,2)==1
  • 75. Restorasi Citra 571 error('Ukuran kedua citra tidak cocok'); end deltaA = abs(floor((a1-a2) / 2)); deltaB = abs(floor((b1-b2) / 2)); if (a1-a2 0) (b1-b2 0) m = a2; n = b2; Fa = double(F1(1+deltaA:a1-deltaA, … 1+deltaB:b1-deltaB)); Fb = double(F2); else m = a1; n = b1; Fa = double(F1); Fb = double(F2(1+deltaA:a2-deltaA, … 1+deltaB:b2-deltaB)); end end nilai = 0; for i=1 : m for j=1 : n nilai = nilai + (Fa(i,j) - Fb(i,j))^2; end end nilai = nilai / (m * n); Akhir Program Berikut adalah contoh untuk menghitung MSE citra asli dan citra hasil restorasi: Img = imread('C:Imagepantai.png');  G = drgaussian(Img,3,10);  K = filarithmean(G,3);  msecitra(Img,K)  ans = 140.39 Contoh di atas digunakan untuk merestorasi citra pantai.png yang dikenai derau Gaussian dengan jendela 3 x 3 dan  = 10. Selanjutnya, citra yang ternau derau tersebut ditapis dengan filter rerata aritmetik. Hasilnya (K) dibandingkan dengan citra asli (Img).
  • 76. 572 Pengolahan Citra Teori dan Aplikasi  Latihan 1. Jelaskan perbedaan antara peningkatan citra dengan restorasi citra. 2. Sebutkan empat jenis derau menurut kelas dan berikan penjelasan secara singkat masing-masing. 3. Gambarkan fungsi kerapatan probabilitas untuk derau-derau berikut. (a) Derau Gaussian (b) Derau eksponensial negatif (c) Derau Gamma (d) Derau Raylight 4. Apa yang disebut dengan derau-derau berikut? (a) Derau “Garam dan Merica” (b) Derau periodis. 5. Gonzalez dan Wood mendefinisikan derau Gamma sebagai berikut 𝑝(𝑥) = 𝑎 𝑏 𝑥 𝑏−1 (𝑏−1)! 𝑒 −𝑎𝑥 Adapun Myler dan Weeks mendefinisikan sebagai: 𝑝(𝑥) = 𝑥 −1 𝑒 −𝑥/𝑎 ( − 1)! 𝑎 Tunjukkan bahwa kedua rumus tersebut sebenarnya sama saja. 6. Jelaskan bahwa derau eksponensial merupakan bentuk khusus untuk derau Gamma, yakni jika b = 1.
  • 77. Restorasi Citra 573 7. Tunjukkan bahwa pernyataan berikut benar, “Filter Wiener tidak lain adalah filter inversi jika K pada Persamaan 11.40 berupa nol”. Buktikan pula dengan memberikan nilai K sama dengan nol pada saat menguji filtrwien. 8. Berikan derau Gaussian pada citra boneka.png dengan  = 10 dan ukuran jendela 3 x 3. Kemudian, cobalah hilangkan derau dengan menggunakan filter median, max, min, titik tengah, rerata aritmetik, dan rerata Yp. Manakah yang terbaik berdasarkan ukuran MSE? 9. Jelaskan bahwa pemanggilan msecitra(Img,K) dan msecitra(K,Img) memberikan hasil yang sama.
  • 78. 574 Pengolahan Citra Teori dan Aplikasi