pcd-modul 2

6
MODUL 2 TRANSFORMASI DAN RESTORASI CITRA I. TRANSFORMASI CITRA A. Transformasi Fourier Transformasi citra merupakan proses perubahan fungsi dan ranah. Cara ini digunakan untuk mengurangi waktu komputasi yaitu mentransformasi citra dan kernel ke dalam ranah frekuensi, kemudian konvolusi dilakukan dalam ranah waktu. Keuntungan utama dari penggunaan ranah frekuensi adalah proses konvolusi dapat diterapkan dalam bentuk perkalian langsung. Transformasi citra yang melakukan perubahan dari ranah spasial ke ranah frekuensi disebut Transformasi Fourier. Sedangkan perubahan fungsi dan ranah frekuensi ke ranah spasial dilakukan melalui Transformasi Fourier Balikan (invers). Berikut ini diberikan rumusan dari transformasi fourier, yaitu: a. Satu dimensi bentuk diskrit, dirumuskan dengan persamaan: b. Invers satu dimensi bentuk diskrit, dirumuskan dengan persamaan: c. Dua dimensi bentuk diskrit, dirumuskan dengan persamaan: d. Invers dua dimensi bentuk diskrit, dirumuskan dengan persamaan: e. Fast Fourier Transform (FFT) dirumuskan dengan persamaan: 1 0 1 0 ) ( 2 ) , ( 1 ) , ( M x N y N vy M ux i e y x f MN v u F 1 0 1 0 1 0 1 0 )) ( 2 sin( 1 )) ( 2 )(cos , ( 1 ) , ( M x N y M x N y N vy M ux MN i N vy M ux y x f MN v u F 1 0 2 ) ( 1 ) ( M x M ux i e x f M u F 1 1 1 0 ) 2 sin( ) ( 1 ) 2 cos( ) ( 1 ) ( M x M x ux x f M i ux x f M u F 1 0 2 ) ( ) ( M u M ux i e u F x f 1 1 1 0 ) 2 sin( ) ( ) 2 cos( ) ( ) ( M u M u M ux u F i M ux u F x f 1 0 1 0 ) ( 2 ) , ( ) , ( M u N v N vy M ux i e v u F y x f ) )) ( 2 sin( )) ( 2 )(cos( , ( ) , ( 1 0 1 0 1 0 1 0 M x N y M x N y N vy M ux i N vy M ux v u F y x f 1 2 0 ) ( 2 1 ) ( M x ux M k x f M u F

Upload: imel-kamelia

Post on 31-Jan-2016

26 views

Category:

Documents


0 download

DESCRIPTION

pengolahan citra

TRANSCRIPT

Page 1: PCD-Modul 2

MODUL 2

TRANSFORMASI DAN RESTORASI CITRA

I. TRANSFORMASI CITRA

A. Transformasi Fourier Transformasi citra merupakan proses perubahan fungsi dan ranah. Cara ini digunakan untuk

mengurangi waktu komputasi yaitu mentransformasi citra dan kernel ke dalam ranah frekuensi,

kemudian konvolusi dilakukan dalam ranah waktu. Keuntungan utama dari penggunaan ranah

frekuensi adalah proses konvolusi dapat diterapkan dalam bentuk perkalian langsung.

Transformasi citra yang melakukan perubahan dari ranah spasial ke ranah frekuensi disebut

Transformasi Fourier. Sedangkan perubahan fungsi dan ranah frekuensi ke ranah spasial

dilakukan melalui Transformasi Fourier Balikan (invers). Berikut ini diberikan rumusan dari

transformasi fourier, yaitu:

a. Satu dimensi bentuk diskrit, dirumuskan dengan persamaan:

b. Invers satu dimensi bentuk diskrit, dirumuskan dengan persamaan:

c. Dua dimensi bentuk diskrit, dirumuskan dengan persamaan:

d. Invers dua dimensi bentuk diskrit, dirumuskan dengan persamaan:

e. Fast Fourier Transform (FFT) dirumuskan dengan persamaan:

1

0

1

0

)(2

),(1

),(M

x

N

y

N

vy

M

uxi

eyxfMN

vuF

1

0

1

0

1

0

1

0

))(2sin(1

))(2)(cos,(1

),(M

x

N

y

M

x

N

y N

vy

M

ux

MNi

N

vy

M

uxyxf

MNvuF

1

0

2

)(1

)(M

x

M

uxi

exfM

uF

1

1

1

0

)2sin()(1

)2cos()(1

)(M

x

M

x

uxxfM

iuxxfM

uF

1

0

2

)()(M

u

M

uxi

euFxf

1

1

1

0

)2

sin()()2

cos()()(M

u

M

u M

uxuFi

M

uxuFxf

1

0

1

0

)(2

),(),(M

u

N

v

N

vy

M

uxi

evuFyxf

)))(2sin())(2)(cos(,(),(1

0

1

0

1

0

1

0

M

x

N

y

M

x

N

y N

vy

M

uxi

N

vy

M

uxvuFyxf

12

0

)(2

1)(

M

x

ux

MkxfM

uF

Page 2: PCD-Modul 2

Source code FFT satu dimensi dalam matlab dapat dilihat sebagai berikut:

Image=imread('cameraman.tif'); [ImageHeight ImageWidth]=size(Image); X=fft(Image); Y=ifft(X); imshow([Image X uint8(Y)]);

sedangkan source code FFT dua dimensi dalam matlab dapat dilihat sebagai berikut:

Image=imread('cameraman.tif'); [ImageHeight ImageWidth]=size(Image); X=fft2(Image); Y=ifft2(X); imshow([Image X uint8(Y)]); Cek=isequal(Image, uint8(Y)) if Cek==1 Hasilnya='sama' else Hasilnya='tidak sama' end

B. Transformasi Cosinus Diskrit (Discrete Cosinus Transform = DCT) DCT merupakan salah satu transformasi yang penting pada pengolahan sinyal, khususnya

pengolahan citra digital. DCT mengubah fungsi dari domain spasial ke domain frekuensi. Berikut

ini diberikan rumusan sebagai berikut:

a. DCT-1D, dirumuskan dengan persamaan:

Source code dalam matlab dapat dilihat sebagai berikut:

clear; clc; Image=imread('cameraman.tif'); [ImageHeight ImageWidth]=size(Image); X=dct(double(Image));

1

0

2

2

2

1

0

)2(

2

1

0

)12(

2

1

0

)2(

2

12

0

2

))12(1

)2(1

(2

1

))12(1

)2(1

(2

1

)(2

1)(

N

x

u

N

ux

N

N

x

xu

N

N

x

xu

N

N

x

xu

N

N

x

ux

N

kkxfN

kxfN

kxfN

kxfN

kxfN

uF

1

0 2

)12(cos)()()(

N

y N

uxxfuuC

0u N

2

0u N

1

)(

Untuk

Untuk

u

Page 3: PCD-Modul 2

Y=idct(X); imshow([Image uint8(X) uint8(Y)]); Cek=isequal(Image, uint8(Y)) if Cek==1 Hasilnya='sama' else Hasilnya='tidak sama' end

b. Sedangkan invers DCT-1D, dirumuskan dengan persamaan:

c. DCT-2D, dirumuskan dengan persamaan:

Source code dalam matlab dapat dilihat sebagai berikut:

clear; clc; Image=imread('cameraman.tif'); [ImageHeight ImageWidth]=size(Image); X=dct2(double(Image)); Y=idct2(X); imshow([Image uint8(X) uint8(Y)]); Cek=isequal(Image, uint8(Y)) if Cek==1 Hasilnya='sama' else Hasilnya='tidak sama' end

d. Sedangkan invers DCT-2D, dirumuskan dengan persamaan:

C. Transformasi Sinus Diskrit (Discrete Sinus Transform = DST) DST berasal dari imajiner complex kernel. Berikut ini diberikan rumusan sebagai berikut:

a. DST-1D, dirumuskan dengan persamaan:

b. DST-2D, dirumuskan dengan persamaan:

N

uxuCuxf

N

x 2

)12(cos)().()(

1

0

M

vy

N

uxyxfvu

NMvuyxg

N

x

M

y 2

)12(cos

2

)12(cos),()()(

.

2),,,(

1

0

1

0

M

vy

N

uxvuyxgvu

NMyxf

N

x

M

y 2

)12(cos

2

)12(cos),,,()()(

.

2),(

1

0

1

0

]1

)1)(1(sin[]

1

)1)(1(sin[),(),(

M

vy

N

uxvuCyxg

1

0

1

0

),(1

2),(

N

u

M

v

yxgN

yxf

]1

)1)(1(sin[)()(

1

N

x N

uxxfuF

Page 4: PCD-Modul 2

II. RESTORASI CITRA Restorasi citra merupakan operasi yang digunakan untuk mengurangi noise pada saat akuisisi data.

Seringkali pada saat akusisi data, citra yang dihasilkan tidak sesuai dengan apa yang diinginkan

sebelumnya. Ketidaksesuaian citra yang telah didapatkan disebabkan oleh beberapa persoalan, yaitu:

a. Karena lensa kamera yang kurang bersih, sehingga muncul bintik-bintik (noise)

b. Karena adanya gangguan pada saat melakukan pengiriman data.

Hasil pengambilan citra yang tidak sesuai tersebut dapat diperbaiki melalui restorasi citra.

A. Pemodelan noise Misalkan diketahui citra f(x,y), filter spasial disimbolkan menggunakan h(x,y) dan error secara acak

(noise) yang disimbolkan dengan n(x,y), maka hasil konvolusi yang terkena noise dapat dituliskan dalam

persamaan:

Berikut ini akan dibahas dua model noise, yaitu:

1. Salt & pepper Noise tipe ini dengan cara menempelkan dot/titik/piksel warna hitam dan putih pada

citra. Efek tersebut sangat mengganggu kualitas citra aslinya. Misalkan diketahui sebuah

citra f(x,y) dan q(x,y)i adalah citra setelah diberi salt dan pepper noise maka dapat

dimodelkan dalam persamaan:

dimana max dan min masing-masing adalah tingkat keabuan dari maksimal dan minimal

dari citra yang terkena noise. Untuk 8 bit, minimal = 0 dan maksimal = 255.

Source code dalam matlab dapat dilihat sebagai berikut:

a=imread('cameraman.tif'); aNoise=imnoise(a,'salt & pepper', 0.01); bNoise=imnoise(a,'salt & pepper', 0.05); cNoise=imnoise(a,'salt & pepper', 0.15); dNoise=imnoise(a,'salt & pepper', 0.20); eNoise=imnoise(a,'salt & pepper', 0.25); imshow([a aNoise bNoise cNoise dNoise eNoise ])

2. Gaussian Noise yang paling banyak terjadi adalah Additive Gaussian Noise. Fungsi kepadatan dari

Univariate Gaussian Noise, adalah q, dengan rata-rata , dan simpangan 2, dirumuskan

sebagai berikut:

Source code dalam matlab dapat dilihat sebagai berikut:

a=imread('cameraman.tif'); aNoise=imnoise(a,'gaussian', 0.001); bNoise=imnoise(a,'gaussian', 0.005); cNoise=imnoise(a,'gaussian', 0.007);

),(),(*),(),( yxnyxhyxfyxg

2/min)Pr(

2/max)Pr(

1)Pr(

q

q

fq

2

2

2

)(

2

1

2 )2()(

x

q exP

Page 5: PCD-Modul 2

dNoise=imnoise(a,'gaussian', 0.009); eNoise=imnoise(a,'gaussian', 0.01); imshow([a aNoise bNoise cNoise dNoise eNoise ])

B. Penanganan noise Noise merupakan gangguan yang harus ditangani sebelum citra dianalisis. Namun demikian setiap noise,

terdapat cara untuk penanganan noise. Semua noise tidak dapat diperlakukan sama. Noise tipe salt dan

paper mempunyai karakteristik yang berbeda dengan noise tipe gaussian. Penanganan noise seringkali

berhubungan dengan filter. Untuk melakukan filter suatu citra dibutuhkan proses konvolusi. Berikut ini

akan dibahas dua model penanganan noise, yaitu:

1. Penanganan noise salt & pepper Pengurangan atau penghapusan noise dalam bentuk salt & pepper dapat dilakukan dengan

berbagai cara, salah satu cara yang biasa dipakai untuk menghilangkan noise tersebut

yaitu dengan melakukan konvolusi terhadap mask matrik rata-rata.

Source code dalam matlab dapat dilihat sebagai berikut:

a=imread('cameraman.tif'); aNoise=imnoise(a,'salt & pepper', 0.01); bNoise=imnoise(a,'salt & pepper', 0.05); cNoise=imnoise(a,'salt & pepper', 0.15); mask1=ones(3,3)/9; mask2=ones(5,5)/25; mask3=ones(7,7)/49; aRest = imfilter(aNoise,mask1); bRest = imfilter(bNoise,mask2); cRest = imfilter(cNoise,mask3); imshow([a aNoise aRest; a bNoise aRest; a cNoise cRest ])

Namun penggunaan konvolusi dengan matrik rata-rata tidak dapat menyelesaikan

penghapusan atau pengurangan noise secara optimal, semakin banyak noise yang

menempel, maka semakin jelek hasil yang diperoleh, meskipun dengan menggunakan

mask yang lebih besar. Oleh karena itu, digunakan median filter.

Source code dalam matlab dapat dilihat sebagai berikut:

a=imread('cameraman.tif'); aNoise=imnoise(a,'salt & pepper', 0.20); bNoise=imnoise(a,'salt & pepper', 0.25); cNoise=imnoise(a,'salt & pepper', 0.35); aRest = medfilt2(aNoise); bRest = medfilt2(bNoise); cRest = medfilt2(cNoise); imshow([a aNoise aRest; a bNoise aRest; a cNoise cRest ])

Citra yang dihasilkan masih tampak ada noise-noise yang menempel. Noise tersebut

dapat dibersihkan dengan menggunakan median filter secara berulang (dalam hal ini

dilakukan 2 kali, hasil median filter diproses lagi menggunakan median filter).

Source code dalam matlab dapat dilihat sebagai berikut:

a=imread('cameraman.tif');

Page 6: PCD-Modul 2

aNoise=imnoise(a,'salt & pepper', 0.01); bNoise=imnoise(a,'salt & pepper', 0.05); cNoise=imnoise(a,'salt & pepper', 0.15); aRest = medfilt2(aNoise); bRest = medfilt2(bNoise); cRest = medfilt2(cNoise);

aaRest = medfilt2(aRest); bbRest = medfilt2(bRest); ccRest = medfilt2(cRest); imshow([a aNoise aRest aaRest; a bNoise bRest bbRest; a cNoise cRest

ccRest])

2. Penanganan noise Gaussian menggunakan Wiener Filter

Wiener Filter merupakan Discrete Time Linier finite impulse response (FIR) filter. Prinsip ini

telah dikembangkan luas untuk rekonstruksi dari sinyal satu dimensi dan citra dua dimensi.

Wiener Filter sensitif terhadap noise, tapi filter tersebut dapat mengkonstruksi citra secara bagus.

Winner filter mencari sebuah estimasi yang meminimisasi fungsi kesalahan statistik, dapat

dituliskan dalam persamaan:

Source code dalam matlab dapat dilihat sebagai berikut:

a=imread('cameraman.tif'); aNoise=imnoise(a,'gaussian'); aRest = wiener2(aNoise,[3 3]); bRest = wiener2(aNoise,[5 5]); cRest = wiener2(aNoise,[7 7]); imshow([a aNoise aRest; a bNoise aRest; a cNoise cRest ])

Tugas Pendahuluan

1. Apa yang dimaksud dengan transformasi citra? Tujuannya untuk apa? Sebut dan jelaskan

jenis-jenis transformasi yang anda ketahui!

2. Apa yang dimaksud dengan restorasi citra? Tujuannya untuk apa? Sebut dan jelaskan

metode yang anda ketahui untuk restorasi citra!

Tugas

1. Cobalah semua program diatas lakukan percobaan sesuai dengan perintah diatas.

Kemudian gantilah dengan citra yang lain, masing-masing bandingkan dengan citra

‘cameraman.tif’. Berikan analisa anda !!!

),(),(),(ˆ vuGvuWvuF