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
78
Embed
BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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
Derau
Isyarat asli + derau
Gambar 11.1 Derau pada isyarat satu dimensi
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.
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.
Restorasi Citra 501
p(z)
z + -
1
√2𝜋𝜎
0,607
√2𝜋𝜎
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.
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:\Image\innsbruck.png');
>> imshow(Img)
>> G = drgaussian(Img, 50); imshow(G)
>>
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.
(b) = 10
(c) = 25 (d) = 50
(a) Citra Innsbruck.png
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.
504 Pengolahan Citra Teori dan Aplikasi
(b) = 10
(c) = 150 (d) = 150
(a) Citra bangunan.png
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;
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 = sqrt(-2 * sigma * sigma * log(1 - rand));
theta = rand * 1.9175345E-4 - 3.14159265;
derau = derau * cos(theta);
derau = 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.
506 Pengolahan Citra Teori dan Aplikasi
(a) Citra Innsbruck.png
(c) Probabilitas = 0,05 (d) Probabilitas = 0,2
(b) Probabilitas = 0,01
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
Restorasi Citra 507
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
508 Pengolahan Citra Teori dan Aplikasi
end
G = uint8(G);
Akhir Program
Contoh untuk menambahkan derau impuls pada citra:
>> Img = imread('C:\Image\innsbruck.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 (11.8)
Adapun bentuk PDF dapat dilihat pada Gambar 11.16.
Restorasi Citra 509
p(z)
z
1
𝑎
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
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:\Image\innsbruck.png');
>> G = dreksponensial(Img, 100); imshow(G)
>>
Beberapa contoh hasil penerapan derau eksponensial negatif dapat dilihat pada
Gambar 11.17.
Restorasi Citra 511
(a) Citra Innsbruck.tif
(c) a = 0,07 (d) a = 0,01
(b) a = 0,1
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:
512 Pengolahan Citra Teori dan Aplikasi
𝜇 =𝑏
𝑎2 (11.11)
dan
𝜎2 =𝑏
𝑎2 (11.12)
p(x)
x (b-1)/a
𝐾
𝐾 =0,607𝑎(𝑏 − 1)𝑏−1
(𝑏 − 1)!𝑒−(𝑏−1)
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.
Restorasi Citra 513
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
514 Pengolahan Citra Teori dan Aplikasi
Contoh penggunaan fungsi drgamma:
>> Img = imread('C:\Image\innsbruck.png');
>> G = drgamma(Img, 1,20); imshow(G)
>>
Beberapa contoh hasil penerapan derau gamma dapat dilihat pada Gambar 11.9.
(a) Citra Innsbruck.png
(c) a = 4, b = 120 (d) a = 1, b = 50
(b) a = 1, b = 20
Gambar 11.9 Contoh derau gamma
11.3.4 Derau Rayleigh
Derau Rayleigh mempunyai PDF seperti berikut:
Restorasi Citra 515
𝑝(𝑥) = 𝑓(𝑥) = {2
𝑏(𝑧 − 𝑎)𝑒−(𝑧−𝑎)
2/𝑏 , 𝑧 ≥ 𝑎
0, 𝑧 < 0 (11.14)
Dalam hal ini, x adalah nilai aras keabuan. Rerata dihitung dengan menggunakan
rumus
𝜇 = √𝜋/(2𝑎) (11.15)
dan varians berupa
𝜎2 =𝑏(4−𝜋)
4 (11.16)
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)
x
0,607 2
𝑏
𝑎 + 𝑏
2
Gambar 11.10 Fungsi kepadatan probabilitas derau Rayleigh
Pembangkit bilangan acak diperoleh melalui (Gonzales, dkk., 2004):
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:
Restorasi Citra 517
>> Img = imread('C:\Image\innsbruck.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 (d) a = 10, b = 490
(b) a = 10, b = 90
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)
518 Pengolahan Citra Teori dan Aplikasi
Rerata pada fungsi tersebut berupa
𝜇 =𝑎+𝑏
2 (11.19)
Varians-nya berupa
𝜎2 =(𝑏−𝑎)2
12 (11.20)
Bentuk PDF ditunjukkan pada Gambar 11.12.
p(x)
x
1
𝑏 − 𝑎
𝑎 𝑏
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.
Restorasi Citra 519
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:\Image\innsbruck.png');
>> G = druniform(Img, 1800, 0); imshow(G)
520 Pengolahan Citra Teori dan Aplikasi
>>
Beberapa contoh hasil penerapan derau uniform dapat dilihat pada Gambar 11.13.
(a) Citra Innsbruck.png
(c) a = 10, b = 50 (d) a = 10, b = 100
(b) a = 10, b = 30
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.
Restorasi Citra 521
(a) Citra pantai.png
(c) a = 10, bx = -3, by = 4 (d) a = 20, bx = 10, by = 10
(b) a = 10, bx = 3, by = 4
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
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:\Image\pantai.png');
>> G = drperiodik(Img, 20, 10, 10); imshow(G)
>>
Contoh berikut menggunakan pemanggilan fungsi drperiodik dua arah:
>> Img = imread('C:\image\absam.png');
>> G = drperiodik(Img,10,1,50000);
>> G = drperiodik(G,10,50000,1); imshow(G)
>>
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)
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
9[1 1 11 1 11 1 1
] (a)
𝐻 =1
10[1 1 11 2 11 1 1
] (b)
𝐻 =1
16[1 2 12 4 21 2 1
] (c)
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:\Image\boneka.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
Restorasi Citra 525
>> G = drgaussian(Img, 5);
>> K = uint8(konvolusi(G,H)); imshow(K)
>>
Contoh hasil ditunjukkan pada Gambar 11.17(b).
526 Pengolahan Citra Teori dan Aplikasi
(a) Citra boneka.png yang telah
diberi derau Gaussian
(b) 1
9[1 1 11 1 11 1 1
]
(c) 1
10[1 1 11 2 11 1 1
]
(d) 1
16[1 2 12 4 21 2 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
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.
7 5
3 2
1 4
7
6
7
5
g 𝑓
2+6+7+4+1+3+7+5+7
9=
42
9= 4,6667 ≈ 5
y y
x x
Gambar 11.18 Contoh pemrosesan dengan filter rerata aritmetik
Contoh berikut merupakan perwujudan untuk melakukan penapisan dengan
filter rerata aritmetik.
528 Pengolahan Citra Teori dan Aplikasi
Program : filarithmean.m
function [G] = filarithmean(F, ukuran)
% FILARITHMEAN Melakukan penghilangan derau dengan