Anda di halaman 1dari 23

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
Disetujui : .....././../Bangkalan


(IKA NOVITASARI)
09.04.111.00036
TGL PRAKTIKUM : 10 OKTOBER 2012
NAMA : ZAHRATUL AINIYAH
NRP : 10.04.111.00029
KELAS/KELOMPOK : C /C2B
DOSEN PENGAMPU : ARIF MUNTASA
ASISTEN : IKA NOVITASARI
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.















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:

=
+
=
1
0
1
0
) ( 2
) , (
1
) , (
M
x
N
y
N
vy
M
ux
i
e y x f
MN
v u F
t

=
+ + =
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 t t

=
1
0
2
) (
1
) (
M
x
M
ux i
e x f
M
u F
t


=

=
=
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 t t

=
=
1
0
2
) ( ) (
M
u
M
ux i
e u F x f
t


=

=
+ =
1
1
1
0
)
2
sin( ) ( )
2
cos( ) ( ) (
M
u
M
u
M
ux
u F i
M
ux
u F x f
t t

=
+
=
1
0
1
0
) ( 2
) , ( ) , (
M
u
N
v
N
vy
M
ux
i
e v u F y x f
t
) )) ( 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 t t

=
=
1 2
0
) (
2
1
) (
M
x
ux
M
k x f
M
u F




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:

=
+

=
+ + =
+ + =
=
1
0
2
2
2
1
0
) 2 (
2
1
0
) 1 2 (
2
1
0
) 2 (
2
1 2
0
2
) ) 1 2 (
1
) 2 (
1
(
2
1

) ) 1 2 (
1
) 2 (
1
(
2
1

) (
2
1
) (
N
x
u
N
ux
N
N
x
x u
N
N
x
x u
N
N
x
x u
N
N
x
ux
N
k k x f
N
k x f
N
k x f
N
k x f
N
k x f
N
u F





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

+
=
1
0
2
) 1 2 (
cos ) ( ) ( ) (
N
y
N
u x
x f u u C
t
o

0 u
N
2
0 u
N
1
) (

<>
=
=
Untuk
Untuk
u o

+
=

=
N
u x
u C u x f
N
x
2
) 1 2 (
cos ) ( ). ( ) (
1
0
t
o

+
=

=
M
v y
N
u x
y x f v u
N M
v u y x g
N
x
M
y
2
) 1 2 (
cos
2
) 1 2 (
cos ) , ( ) ( ) (
.
2
) , , , (
1
0
1
0
t t
o o
[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.

]
1
) 1 )( 1 (
sin[ ]
1
) 1 )( 1 (
sin[ ) , ( ) , (
+
+ +
+
+ +
=
M
v y
N
u x
v u C y x g
t t

+
=

=
M
v y
N
u x
v u y x g v u
N M
y x f
N
x
M
y
2
) 1 2 (
cos
2
) 1 2 (
cos ) , , , ( ) ( ) (
.
2
) , (
1
0
1
0
t t
o o

=
+
=
1
0
1
0
) , (
1
2
) , (
N
u
M
v
y x g
N
y x f
]
1
) 1 )( 1 (
sin[ ) ( ) (
1

=
+
+ +
=
N
x
N
u x
x f u F t
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 u, dan simpangan o2, dirumuskan
sebagai berikut:


) , ( ) , ( * ) , ( ) , ( y x n y x h y x f y x g + =
2 / min) Pr(
2 / max) Pr(
1 ) Pr(
o
o
o
= =
= =
= =
q
q
f q
2
2
2
) (
2
1
2
) 2 ( ) (
o
u
to

=
x
q
e x P
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,
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])
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 ])
















) , ( ) , ( ) , (

v u G v u W v u F =
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.
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 & pepper





















) , ( ) , ( * ) , ( ) , ( y x n y x h y x f y x g + =
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');
>> [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




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==1
Hasilnya='sama'
else
Hasilnya='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 dct
imshow([Image uint8(X) uint8(Y)]);
Cek=isequal(Image, uint8(Y))
if Cek==1
Hasilnya='sama'
else
Hasilnya='tidak sama'
End


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

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

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

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

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


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.






















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

Anda mungkin juga menyukai