Top Banner
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

BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

Jul 19, 2018

Download

Documents

doanthuy
Welcome message from author
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
Page 1: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

Page 2: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

Page 3: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

Page 4: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

Page 5: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

Page 6: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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)

>>

Page 7: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

Page 8: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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;

Page 9: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

Page 10: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

Page 11: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

Page 12: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

Page 13: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

Page 14: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

Page 15: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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:

Page 16: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

Page 17: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

Page 18: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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:

Page 19: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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):

Page 20: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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:

Page 21: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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)

Page 22: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

Page 23: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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)

Page 24: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

Page 25: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

Page 26: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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)

>>

Page 27: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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)

Page 28: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

Page 29: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

Restorasi Citra 525

>> G = drgaussian(Img, 5);

>> K = uint8(konvolusi(G,H)); imshow(K)

>>

Contoh hasil ditunjukkan pada Gambar 11.17(b).

Page 30: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

Page 31: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

Page 32: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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:\Image\pantai.png');

>> G = drgaussian(Img, 10);

>> K = filarithmean(G); imshow(K);

>>

Ukuran jendela dapat ditentukan secara bebas dan terarah, misalnya, seperti

berikut:

Page 33: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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 (d) Filter rerata aritmetika 9 x 9

(b) Filter rerata aritmetika 3 x 3

Gambar 11.19 Contoh efek filter rerata aritmetik

pada citra yang telah diberi derau Gaussian

Page 34: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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 (d) Filter rerata aritmetika 9 x 9

(b) Filter rerata aritmetika 3 x 3

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)

Page 35: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

Restorasi Citra 531

Sebagai contoh, perhitungan dengan rumus di atas ditunjukkan pada Gambar

11.21.

7 5

3 2

1 4

7

6

7

3

g 𝑓

9

1

2 +

1

6 +

1

7 +

1

4 +

1

1 +

1

3 +

1

7 +

1

5 +

1

7

= 3,1266 ≈ 3

x x

y y

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

Page 36: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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:\Image\pantai.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.

Page 37: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

Restorasi Citra 533

(a) Citra kartun.tif yang telah diberi

derau Gaussian, = 10

(c) Filter rerata harmonik 5 x 5 (d) Filter rerata harmonik 9 x 9

(b) Filter rerata harmonik 3 x 3

Gambar 11.22 Contoh efek filter rerata harmonik

pada citra yang diberi derau Gaussian

Page 38: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

534 Pengolahan Citra Teori dan Aplikasi

(a) Citra kartun.png yang telah diberi

derau garam dan merica, p = 0,01

(c) Filter rerata harmonik 5 x 5 (d) Filter rerata harmonik 9 x 9

(b) Filter rerata harmonik 3 x 3

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

Page 39: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

Restorasi Citra 535

untuk membuang derau garam (Gonzalez dan Woods, 2002). Sebagai contoh,

perhitungan pada filter rerata kontraharmonik ditunjukkan pada Gambar 11.24.

7 5

3 2

1 4

7

6

7

6

g f̂

22+62+72+42+12+39+72+52+72

2+6+7+4+1+3+7+5+7=

238

42= 5,6667 ≈ 6

y y

x x

Q=1

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);

Page 40: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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:\Image\boneka.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.

Page 41: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

Restorasi Citra 537

(a) Citra boneka.png yang telah diberi

derau Gaussian, = 10

(c) Filter rerata kontraharmonik 5 x 5

Orde = 2

(d) Filter rerata kontraharmonik 3 x 3

Orde = 10

(b) Filter rerata kontraharmonik 3 x 3

Orde = 2

Gambar 11.25 Contoh efek filter rerata kontraharmonik

pada citra boneka yang diberi derau Gaussian

Page 42: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

538 Pengolahan Citra Teori dan Aplikasi

(a) Citra boneka.png yang telah diberi

derau garam dan merica, p =0,01

(c) Filter rerata kontraharmonik 3 x 3

Orde = -2 (menghilangkan garam)

(b) Filter rerata kontraharmonik 3 x 3

Orde = 2 (Menghilangkan merica)

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.

Page 43: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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:\Image\innsbruck.png');

>> G = drgaussian(Img, 10);

>> K = filyp(G,3,2); imshow(K);

Page 44: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

(c) Filter rerata Yp 5 x 5, Orde = 5 (d) Filter rerata Yp 9 x 9, Orde = -5

(b) Filter rerata Yp 3 x 3, Orde = 2

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

Page 45: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

7 5

3 2

1 4

7

6

7

5

g f̂

1, 2, 3, 4, 5, 6, 7, 7, 7

1 2 3 4 5 6 7 8 9

y y

x x

Pengurutan

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.

Page 46: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

542 Pengolahan Citra Teori dan Aplikasi

(a) Citra innsbruck.png yang telah diberi

derau garam dan merica, = 10

(c) Filter median 5 x 5 (d) Filter median 9 x 9

(b) Filter median 3 x 3

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

Page 47: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

Page 48: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

544 Pengolahan Citra Teori dan Aplikasi

G = uint8(G);

Akhir Program

Contoh penggunaan fungsi filmed:

>> Img = imread('C:\Image\innsbruck.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.

Page 49: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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:

Page 50: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

7 5

3 2

1 4

7

6

7

7

g f̂

7

1 2 3 4 5 6 7 8 9

y y

x x

Bilangan

terbesar

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);

Page 51: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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:\Image\innsbruck.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.

Page 52: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

548 Pengolahan Citra Teori dan Aplikasi

(a) Citra innsbruck.png yang telah diberi

derau garam dan merica, = 10

(c) Filter max 5 x 5 (d) Filter i 9 x 9

(b) Filter max 3 x 3

Gambar 11.32 Efek filter max pada citra yang diberi

derau impulsif (garam dan merica)

Page 53: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

Restorasi Citra 549

(a) Citra boneka.png

(b) Filter max 3 x 3

Warna hitam

berkurang

Gambar 11.33 Efek filter max pada citra yang tidak diberi derau

Page 54: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

7 5

3 2

1 4

7

6

7

1

g f̂

1

1 2 3 4 5 6 7 8 9

y y

x x

Bilangan

terkecil

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

Page 55: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

Restorasi Citra 551

% 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:\Image\boneka.png');

>> K = filmin(Img); imshow(K);

>>

Hasilnya ditunjukkan pada Gambar 11.35.

Ukuran jendela dapat ditentukan seperti berikut:

>> K = filmin(G, 5);

Page 56: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

552 Pengolahan Citra Teori dan Aplikasi

(a) Citra boneka.tif

(b) Filter min 3 x 3

Warna hitam

bertambah

Gambar 11.35 Efek filter min pada citra yang tidak diberi derau

Page 57: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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:

𝑓(𝑦,𝑥) =𝑚𝑎𝑥(𝑝,𝑞)∈𝑆𝑦𝑥

(𝑔(𝑝,𝑞))+𝑚𝑖𝑛(𝑝,𝑞)∈𝑆𝑦𝑥(𝑔(𝑝,𝑞))

2 (11.30)

Sebagai contoh, perhitungan pada filter titik tengah ditunjukkan pada Gambar

11.36.

7 5

3 2

1 4

7

6

7

4

g f̂

y y

x x

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

Page 58: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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:\Image\innsbruck.png');

>> G = drgaussian(Img, 10);

>> K = filmid(G,3,2); imshow(K);

>>

Page 59: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

(c) Filter titik tengah 5 x 5 (d) Filter titik tengah 9 x 9

(b) Filter titik tengah 3 x 3

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

Page 60: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

filter band-reject ditunjukkan pada Gambar 11.38).

Am

pli

tud

o

Frekuensi

Am

pli

tud

o

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).

Page 61: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

Restorasi Citra 557

(a) Citra absam.png

(c) Citra diberi derau periodis

(d) Bintik cerah

(b) Spektrum citra absam.png

(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.

Page 62: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

Page 63: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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:\Image\absam.png');

[a, b] = size(Img);

% Kenakan derau vertikal dan horizontal

CitraBerderau = drperiodik(Img,10,1,10000000);

Page 64: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

560 Pengolahan Citra Teori dan Aplikasi

CitraBerderau = drperiodik(CitraBerderau,10,100000,-1);

% Tampilkan citra yang berderau

figure, imshow(CitraBerderau);

% Menentukan ukuran baru untuk perluasan citra

r = nextpow2(2 * max(a, b));

p = 2 ^ r;

q = p;

% Buat filter notch

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);

% 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);

Page 65: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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 masing-

masing 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 Y-

nya. Pada Octave, letakkan penunjuk mouse pada bintik cerah. Dengan sendirinya,

nilai X dan Y ditampilkan di bagian bawah.

Page 66: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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)

Page 67: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

Restorasi Citra 563

Perhitungan untuk mendapatkan pusat frekuensi pada kuadran IV sebagai berikut:

�̅� = 𝑥1 +𝑞 �̅� = 𝑦1 + 𝑝 (11.34)

Kuadran IV Kuadran I

Kuadran III Kuadran II

Frekuensi

(0,0)

(x1,y1)

(x0,y0)

(x2,y2)

(x4,y3) (x4,y4)

p

q

Bintik cerah

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:

Page 68: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

564 Pengolahan Citra Teori dan Aplikasi

>> inversi('C:\Image\pantai.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.

Page 69: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

Restorasi Citra 565

(a) Citra pantai.png

(c) Hasil filter inversi gambar b

(b) Hasil penapisan dengan ambang

frekuensi = 0,3

(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.

Page 70: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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);

% Peroleh ukuran untuk kepentingan perluasan citra

r = nextpow2(2 * max(a, b));

p = 2 ^ r;

q = 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.

Page 71: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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); %Peroleh ukuran citra

% Menentukan ukuran baru untuk perluasan citra

r = nextpow2(2 * max(a, b));

p = 2 ^ r;

q = 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)

Page 72: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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

𝑀𝑁∑ ∑ (𝑓(𝑖, 𝑗) − 𝑓(𝑖, 𝑗))2𝑁

𝑗=1𝑀𝑖=1 (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):

𝐹(𝑖, 𝑗) ≈ [1

𝐻(𝑖,𝑗)

|𝐻(𝑖,𝑗)|2

|𝐻 (𝑖,𝑗)|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.

Page 73: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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);

% Peroleh ukuran untuk kepentingan perluasan citra

r = nextpow2(2 * max(a, b));

p = 2 ^ r;

q = 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;

Page 74: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

570 Pengolahan Citra Teori dan Aplikasi

Pernyataan di atas adalah implementasi Persamaan 11.40.

Contoh penggunaan fungsi filwien ditunjukkan di bawah ini:

>> filwien('C:\Image\pantai.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

𝑀𝑁∑ ∑ (𝑓𝑎(𝑖, 𝑗) − 𝑓𝑏(𝑖, 𝑗))

2𝑁𝑗=1

𝑀𝑖=1 (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

Page 75: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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:\Image\pantai.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).

Page 76: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

572 Pengolahan Citra Teori dan Aplikasi

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.

Latihan

Page 77: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

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.

Page 78: BAB 11 · Jenis derau yang umum bervariasi Gaussian ... sering muncul pada citra yang diperoleh melalui kamera. ... PDF derau Gamma didefinisikan sebagai ...

574 Pengolahan Citra Teori dan Aplikasi