Modul 2 PCD Zahra 10.29

29
LAPORAN RESMI PRAKTIKUM PENGOLAH CITRA DIGITAL MODUL II “TRANSFORMASI DAN RESTORASI CITRA” Disusun Oleh : LABORATORIUM COMMON COMPUTING JURUSAN TEKNIK INFORMATIKA TGL PRAKTIKUM : 10 OKTOBER 2012 NAMA : ZAHRATUL AINIYAH NRP : 10.04.111.00029 KELAS/KELOMPOK : C /C2B DOSEN PENGAMPU : ARIF MUNTASA ASISTEN : IKA NOVITASARI Disetujui : ....../……./………../Bangkalan (IKA NOVITASARI) 09.04.111.00036

Transcript of Modul 2 PCD Zahra 10.29

Page 1: Modul 2 PCD Zahra 10.29

LAPORAN RESMI

PRAKTIKUM PENGOLAH CITRA DIGITAL

MODUL II

“TRANSFORMASI DAN RESTORASI CITRA”

Disusun Oleh :

LABORATORIUM COMMON COMPUTING

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK

UNIVERSITAS TRUNOJOYO MADURA

2012 / 2013

TGL PRAKTIKUM : 10 OKTOBER 2012NAMA : ZAHRATUL AINIYAHNRP : 10.04.111.00029KELAS/KELOMPOK : C /C2BDOSEN PENGAMPU : ARIF MUNTASAASISTEN : IKA NOVITASARI

Disetujui : ....../……./………../Bangkalan

(IKA NOVITASARI)

09.04.111.00036

Page 2: Modul 2 PCD Zahra 10.29

BAB I

PENDAHULUAN

1.1 Latar Belakang

Image Transformation adalah proses untuk merubah nilai – nilai grayscale dari suatu

citara dengan persamaan transfer functions tertentu, hal ini dilakukan untuk beberapa

macam tujuan salah satunya ialah untuk meningkatkan kualitas citra dalam persepsi mata

manusia, dikarenakan mata manusia terbatas dalam melihat perbedaan graylevel yang

kecil dan pada posisinya yang berdekatan, maka diperlukan ungsi transformasi untuk

meningkatkan level contrast maupun brightness dengan hal ini dapat meningkatkan

kandungan informasi yang diinderakan manusia. Namun selain untuk meningkatkan

kualitas citra terhadap persepsi manusia, image transformation dilakukan juga untuk

memberikan highlights atau perhatian lebih pada bagian – bagian citra yang ingin

ditonjolkan untuk diamati

1.2 Tujuan

Tujuan mahasiswa mengikuti praktikum PCD Modul 2 ini adalah :

1. Mahasiswa dapat memahami konsep Transformasi Dan Restorasi Citra

2. Mahasiswa dapat mengimplementasikan Transformasi Dan Restorasi Citra

dengan matlab.

Page 3: Modul 2 PCD Zahra 10.29

BAB II

DASAR TEORI

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:

F (u)= 1M

∑x=0

M−1

f ( x )e− i2 π ux

M

F (u)= 1M

∑x=0

M−1

f ( x )cos(2 πux )−i1M

∑x=1

M−1

f ( x )sin(2π ux )

f ( x )=∑u=0

M−1

F (u)ei2 π ux

M

f ( x )=∑u=0

M−1

F (u)cos( 2 πuxM

)+i ∑u=1

M−1

F (u )sin ( 2 πuxM

)

F (u , v )= 1MN

∑x=0

M −1

∑y=0

N −1

f ( x , y )e−i2 π ( ux

M+ vy

N)

F (u , v )= 1MN

∑x=0

M −1

∑y=0

N −1

f ( x , y )(cos 2 π ( uxM

+ vyN

))−i1

MN∑x=0

M −1

∑y=0

N −1

sin(2 π ( uxM

+ vyN

))

f ( x , y )=∑u=0

M −1

∑v=0

N −1

F (u , v )ei 2 π (ux

M+ vy

N)

f ( x , y )=∑x=0

M −1

∑y=0

N −1

F (u , v )(cos (2π ( uxM

+ vyN

))+ i ∑x=0

M−1

∑y=0

N−1

sin (2π ( uxM

+ vyN

)))

F (u)= 12 M

∑x=0

2 M−1

f ( x )k Mux

Page 4: Modul 2 PCD Zahra 10.29

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:

F (u)=12 N

∑x=0

2 N −1

f ( x )k 2 Nux

=12

(1N

∑x=0

N−1

f (2 x )k2 Nu(2 x )+ 1

N∑x=0

N−1

f (2 x+1 )k 2 Nu(2 x+1))

=12

(1N

∑x=0

N−1

f (2 x )k2 Nu(2 x )+

1N

∑x=0

N−1

f (2 x+1 )k 2 N2ux k2 N

u )

Page 5: Modul 2 PCD Zahra 10.29

Source code dalam matlab dapat dilihat sebagai berikut:

clear;

clc;

Image=imread('cameraman.tif');

[ImageHeight ImageWidth]=size(Image);

X=dct(double(Image));

Y=idct(X);//dikembalikan nilai dct

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

C (u)=α (u ) ∑y=0

N−1

f ( x )cos [ π (2 x+1)u2 N ]

α (u)={√ 1N

Untuk u=0

√ 2N

Untuk u <>0

f ( x )=∑x=0

N−1

α(u ).C (u )cos [ π (2x+1 )u2 N ]

g( x , y , u , v )= 2√M . N

α (u )α( v )∑x=0

N −1

∑y=0

M −1

f (x , y )cos [ π (2 x+1 )u2 N ]cos [ π (2 y+1)v

2 M ]

Page 6: Modul 2 PCD Zahra 10.29

[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

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:

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.

f ( x , y )= 2√M . N

α(u )α ( v )∑x=0

N −1

∑y=0

M −1

g( x , y , u , v )cos [ π (2 x+1 )u2 N ]cos [ π (2 y+1)v

2 M ]

F (u)=∑x=1

N

f (x )sin [ π( x+1 )(u+1)

N+1]

f ( x , y )= 2N+1

∑u=0

N −1

∑v=0

M −1

g( x , y )

g( x , y )=C (u , v )sin [( x+1 )(u+1) π

N+1]sin [

( y+1)( v+1)πM+1

]

Page 7: Modul 2 PCD Zahra 10.29

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 m, dan simpangan s2, dirumuskan

sebagai berikut:

g( x , y )=f ( x , y )∗h( x , y )+n( x , y )

Pr (q=f )=1−αPr (q=max)=α /2Pr (q=min )=α /2

Pq ( x )=(2πσ 2 )12 e

−(x−μ)2

2 σ2

Page 8: Modul 2 PCD Zahra 10.29

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

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,

Page 9: Modul 2 PCD Zahra 10.29

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

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

Page 10: Modul 2 PCD Zahra 10.29

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

F̂ (u , v )=W (u , v )G(u , v )

Page 11: Modul 2 PCD Zahra 10.29

BAB III

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!

JAWABAN :

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

Jenis jenis transformasi :

a. Transfmasi Hadamard

Pada aplikasi pengolahan citra berbasiskan pada transformasi N = 2n, sampel per

baris atau kolom dari suatu citra. 2-D HT lebih mudah didapatkan dari transformasi

matriks-nya.

b. Transformasi Wavelet

Sebuah gelombang wave biasanya didefinisikan sebagai sebuah fungsi osilasi dari waktu

(space), misalnya sebuah gelombang sinusoidal. Sebuah wavelet merupakan sebuah

gelombang singkat (small wave) yang energinya terkonsentrasi pada suatu selang waktu untuk

memberikan kemampuan analisis transient, ketidakstasioneran, atau suatu fenomena yang

berubah tehadap waktu (time-verying).

Wavelet dapat digunakan sebagai alat bantu matematis untuk melakukan dekomposisi suatu

sinyal, seperti audio dan citra, menjadi komponen-komponen frekuensi yang berbeda

sehingga masing-masing komponen tersebut dapat dipelajari dengan menggunakan skala

resolusi yang sesuai

c. Transformasi Wavelet Kontinu

Cara kerja Transformasi Wavelet Kontinu (TWK) adalah dengan menghitung konvolusi

sebuah sinyal dengan sebuah jendela modulasi pada setiap waktu dengan setiap skala yang

diinginkan.

Page 12: Modul 2 PCD Zahra 10.29

2. 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. Metode yang digunakan

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

Noise ada dua macam : Salt & pepperg( x , y )=f ( x , y )∗h( x , y )+n( x , y )

Page 13: Modul 2 PCD Zahra 10.29

BAB IV

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

JAWABAN:

Percobaan & Perbandingan citra ‘cameraman.tif’ dengan citra sendiri

Transformasi Fourier

- FFT satu dimensi

citra ‘cameraman.tif’

Code

>> Image=imread('cameraman.tif');

>> [ImageHeight ImageWidth]=size(Image);

>> X=fft(Image);

>> Y=ifft(X);

>> imshow([Image X uint8(Y)]);

Running FFT satu dimensi citra ‘cameraman.tif’

Diatas adalah Running satu dimensi citra ‘sakura.jpg’

citra ‘sakura.jpg’

Code

>> sakura =imread('C:\Users\Aini\Pictures\sakura.jpg');

Page 14: Modul 2 PCD Zahra 10.29

>> [sakuraHeight sakuraWidth]=size(sakura);

>> z=fft(sakura);

>> f=ifft(z);

>> imshow([Image z uint8(f)]);

Analisa dari 2 gambar yang berbeda :

Dari segi eksistensinya,ukuran, dan wana serta semakin image tidak terconvert ke

gray maka ranahnya akan semakin banyak

- FFT dua dimensi

citra ‘cameraman.tif’

Code

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

Running FFT dua dimensi

Page 15: Modul 2 PCD Zahra 10.29

citra ‘sakura.jpg’

Code

>>F=imread('C:\Users\Aini\Pictures\Sakura-cardcaptor.jpg');>> [FHeight FWidth]=size(F);>> Z=fft2(F);>> A=ifft2(Z);>> imshow([F Z uint8(A)]);>> if Cek==1Hasilnya='sama'elseHasilnya='tidak sama'end

Hasilnya =

Sama

Analisa : gambar yang sudah diconvertke gray,maka hasil ranahnya lebih tidak

merata dibandingkan dengan gambar yang belum di convert ke gray

Transformasi Cosinus Diskrit (Discrete Cosinus Transform = DCT)

DCT mengubah fungsi dari domain spasial ke domain frekuensi

Source Code citra ‘cameraman.tif’ satu dimensi

Image=imread('cameraman.tif');[ImageHeight ImageWidth]=size(Image);X=dct(double(Image));Y=idct(X);//dikembalikan nilai dctimshow([Image uint8(X) uint8(Y)]);Cek=isequal(Image, uint8(Y))if Cek==1 Hasilnya='sama'else Hasilnya='tidak sama'End

Page 16: Modul 2 PCD Zahra 10.29

Analisa :

Citra Asli “images.jpg” dan perubahan muncul gambar tak dikenal (gambar biru)

>> [EHeight EWidth]=size(E);

>> L=dct(double(image));

Dan setelah proses running muncul pesan error

Setelah ganti objek maka gambarnya tetap mengacu pada cameraman.tif’

*(observasi pertama sebelum citra diganti)

Running Citra ‘smile star.gif’

- invers DCT-2D

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

Page 17: Modul 2 PCD Zahra 10.29

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

Running cameraman.tif

Running smile star.gif

Image=imread('C:\Users\Aini\Pictures\smile star.gif');

>> [ImageHeight ImageWidth]=size(Image);

>> X=dct2(double(Image));

>> Y=idct2(X);

>> imshow([Image uint8(X) uint8(Y)]);

Analisa:

Citra satu dimensi dan dua dimensi adalah sama-sama terletak pada ukuran gambar.

Gambar dengan ukuran besar tidak akan bisa di eksekusi akan tetapi hanya bisa

ditampilkan, dan tidak bisa dijalankan dengan source code yang ada.

RESTORASI CITRA- Salt & pepper

Code

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

Page 18: Modul 2 PCD Zahra 10.29

Running cameraman.tif

Running melati.jpg Dengan source code tanpa ada perubahan sedikitpun

Running melati.jpg dengan penambahan 0,5 pada masing-masing Noise

Code

>> a=imread('C:\Users\Aini\Pictures\melati.jpg');

>> aNoise=imnoise(a,'salt & pepper', 0.05);

bNoise=imnoise(a,'salt & pepper', 0.10);

cNoise=imnoise(a,'salt & pepper', 0.20);

dNoise=imnoise(a,'salt & pepper', 0.25);

eNoise=imnoise(a,'salt & pepper', 0.30);

imshow([a aNoise bNoise cNoise dNoise eNoise ])

Analisa :

ukuran gambar tetap berpengaruh akan tetapi perbedaannya adalah ketika nilai Noise semakin

ditambah maka bintik-bintik didalam citra akan semakin banyak, begitupun sebaliknya.

Gaussian (Kepadatan Noise)

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

Page 19: Modul 2 PCD Zahra 10.29

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

Running citra cameraman.tif

Running melati.jpg

Code

>> a=imread('C:\Users\Aini\Pictures\melati.jpg');

>> aNoise=imnoise(a,'gaussian', 0.001);

bNoise=imnoise(a,'gaussian', 0.005);

cNoise=imnoise(a,'gaussian', 0.007);

dNoise=imnoise(a,'gaussian', 0.009);

eNoise=imnoise(a,'gaussian', 0.01);

imshow([a aNoise bNoise cNoise dNoise eNoise ])

Analisa :

ukuran gambar tetap berpengaruh akan tetapi perbedaannya adalah ketika nilai kepadatan

Noise semakin ditambah maka noise didalam citra akan semakin banyak, begitupun

sebaliknya.

Penanganan noise salt & pepper

Code citra cameraman.tifa=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 ])

Page 20: Modul 2 PCD Zahra 10.29

Running cameraman.tif Running melati.jpg

Code melati.jpg

>> a=imread('C:\Users\Aini\Pictures\melati.jpg');>> 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 ])

Analisa :

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.

Menggunakan filter

Code

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

Running cameraman.tif Running smile star.gif

Page 21: Modul 2 PCD Zahra 10.29

Analisa:

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

hasil median filter diproses lagi menggunakan median filter

code

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

Running cameraman.tif Running smile star.gif

Analisa : jika noise dikurangi maka gambar akan semakin jelas.

Penanganan noise Gaussian menggunakan Wiener Filter

Page 22: Modul 2 PCD Zahra 10.29

Code cameraman.tifa=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 ])

Code pada citra smile star.gif

a=imread('C:\Users\Aini\Pictures\smile star.gif');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 ])

Analisa:

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

bagus. Winner filter mencari sebuah estimasi yang meminimisasi fungsi kesalahan statistik.

Page 23: Modul 2 PCD Zahra 10.29

BAB IV

PENUTUP

5.1 Kesimpulan

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

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.

5.2 Saran

Page 24: Modul 2 PCD Zahra 10.29

Agar para praktikan lebih memahami dari berbagai konsep materi yang telah

disampaikan alangkah lebih baiknya bila lebih banyak difokuskan pada praktiknya dan

contoh-contoh yang mudah ditemui atau mudah difamahi serta saling membantu sesama

praktikan selama praktikum berlangsung.