Anda di halaman 1dari 11

LATIHAN 4

PEMROSESAN CITRA DIGITAL

MATERI:
1. RESTORASI CITRA YANG TERDEGRADASI
2. REGISTRASI GAMBAR

Misalkan diberikan gambar digital f yang selanjutnya menjadi gambar referensi.

1. Bangkitkan gambar g dengan menggunakan fungsi degradasi motion dengan derajat tertentu.
Selanjutnya berikan noise pada gambar g menggunakan salah satu fungsi distribusi yang telah
dipelajari. Restorasi gambar g tersebut untuk menghilangkan efek blur dan noise yang ada. Tampilkan
perbandingan histogram data digital f, g dan hasil restorasi, hitung nilai erornya, dan jelaskan hasil
yang anda peroleh, khususnya terkait kombinasi metode restorasi yang anda gunakan.

No. Restorasi dengan metode aritmatic mean


1. Gambar asli (gambar f)

2. Gambar fungsi degradasi motion (gambar g) a. Gambar restorasi aritmatic mean 3x3

Error= 0.0023
b. Gambar restorasi aritmatic mean 5x5
Error= 0.0027
c. Gambar restorasi aritmatic mean 7x7

Error= 0.0027
Kesimpulan:
Dapat dilihat dari 3 gambar hasil restorasi diatas bahwa
gambar restorasi aritmatic mean 3x3 mengahasilkan
gambar yang terbaik dilihat dari nilai error yang terkecil
yaitu 0.0023 dan dari histogramnya lebih halus dari 2
gambar yang lain, meskipun gambar hasilnya belum
mendekati gambar aslinya karena pada gambar hasil
restorasi masih sedikit blur.
3. Gambar distribusi uniform a. Gambar restorasi aritmatic mean 3x3

Error= 0.0024
b. Gambar restorasi aritmatic mean 5x5
Error= 0.0030
c. Gambar restorasi aritmatic mean 7x7

Error= 0.0038

Kesimpulan:
Pada latihan 3 kita ketahui bahwa metode yang tepat untuk
memperbaiki citra derau uniform adalah dengan metode
aritmatic mean. Dapat dilihat dari 3 gambar hasil restorasi
diatas bahwa gambar restorasi aritmatic mean 3x3
mengahasilkan gambar yang terbaik dilihat dari nilai error
yang terkecil yaitu 0.0024 dan dari histogramnya lebih halus
dari 2 gambar yang lain, meskipun gambar hasilnya belum
mendekati gambar aslinya karena masih terdapat noise.

%restorasi menghilangkan blur


a=imread('ied.jpeg');
t=im2double(a);
subplot(3,4,1);
imshow(t);
title('gambar asli');
j=rgb2gray(t);
subplot(3,4,2);
imhist(j);
title('histogram')
PSF=fspecial('motion',20,10);
b=imfilter(t,PSF,'circular');
subplot(3,4,3);
imshow(b);
title('degradasi motion; len=20, theta=10');
k=rgb2gray(b);
subplot(3,4,4);
imhist(k);
title('histogram')
x1=spfilt(b,'amean',3,3);
subplot(3,4,5);
imshow(x1);
title('gambar arithmatic mean filter 3x3');
m=rgb2gray(x1);
subplot(3,4,6);
imhist(m);
title('histogram')
x2=spfilt(b,'amean',5,5);
subplot(3,4,7);
imshow(x2);
title('gambar arithmatic mean filter 5x5');
n=rgb2gray(x2);
subplot(3,4,8);
imhist(n);
title('histogram')
x3=spfilt(b,'amean',7,7);
subplot(3,4,9);
imshow(x3);
title('gambar arithmatic mean filter 7x7');
o=rgb2gray(x3);
subplot(3,4,10);
imhist(o);
title('histogram')
mse(t-x1)
mse(t-x2)
mse(t-x3)

%restorasi menghilangkan noise


a=imread('ied.jpeg');
t=im2double(a);
subplot(3,4,1);
imshow(t);
title('gambar asli');
j=rgb2gray(t);
subplot(3,4,2);
imhist(j);
title('histogram')
PSF=fspecial('motion',20,10);
b=imfilter(t,PSF,'circular');
subplot(3,4,3);
imshow(b);
title('degradasi motion; len=20, theta=10');
k=rgb2gray(b);
subplot(3,4,4);
imhist(k);
title('histogram')
c=imnoise(b,'speckle',0.04);
subplot(3,4,5);
imshow(c);
title('gambar uniform');
l=rgb2gray(c);
subplot(3,4,6);
imhist(l);
title('histogram')
x1=spfilt(c,'amean',3,3);
subplot(3,4,7);
imshow(x1);
title('gambar arithmatic mean filter 3x3');
m=rgb2gray(x1);
subplot(3,4,8);
imhist(m);
title('histogram')
x2=spfilt(c,'amean',5,5);
subplot(3,4,9);
imshow(x2);
title('gambar arithmatic mean filter 5x5');
n=rgb2gray(x2);
subplot(3,4,10);
imhist(n);
title('histogram')
x3=spfilt(c,'amean',7,7);
subplot(3,4,11);
imshow(x3);
title('gambar arithmatic mean filter 7x7');
o=rgb2gray(x3);
subplot(3,4,12);
imhist(o);
title('histogram')
mse(t-x1)
mse(t-x2)
mse(t-x3)

2. Bangkitkan empat gambar g yang berbeda menggunakan gambar referensi f dan beberapa jenis
transformasi geometri yang berbeda (usahakan gambar-gambar g tersebut mempunyai sedikit
perbedaan).

No. Fungsi degradasi motion Transformasi geometri


1. Gambar degradasi motion; len=30, theta=10 Gambar transformasi geometri 1

2. Gambar degradasi motion; len=50, theta=30 Gambar transformasi geometri 2


3. Gambar degradasi motion; len=70, theta=50 Gambar transformasi geometri 3

4. Gambar degradasi motion; len=90, theta=70 Gambar transformasi geometri 3

a=imread('ied.jpeg');
t=im2double(a);
PSF1=fspecial('motion',30,10);
b=imfilter(t,PSF1,'circular');
subplot(3,3,1);
imshow(b);
title('degradasi motion; len=30, theta=10');
PSF2=fspecial('motion',50,30);
c=imfilter(t,PSF2,'circular');
subplot(3,3,2);
imshow(c);
title('degradasi motion; len=50, theta=30');
PSF3=fspecial('motion',70,50);
d=imfilter(t,PSF3,'circular');
subplot(3,3,3);
imshow(d);
title('degradasi motion; len=70, theta=50');
PSF4=fspecial('motion',90,70);
e=imfilter(t,PSF4,'circular');
subplot(3,3,4);
imshow(e);
title('degradasi motion; len=90, theta=70');
s=0.8;
theta=pi/6;
q1=[s*cos(theta) s*sin(theta) 0
-s*sin(theta) s*cos(theta) 0
0 0 1];
tform=maketform('affine',q1);
g=imtransform(t,tform,'nearest');
subplot(3,3,5);
imshow(g);
title('transformasi geometri 1 ');
h=imtransform(t,tform,'FillValue',0.5);
subplot(3,3,6);
imshow(h);
title('transformasi geometri 2');
q2=[1 0 0; 0 1 0; 50 50 1];
tform2=maketform('affine',q2);
i=imtransform(t,tform2,'XData',[1 700],'YData',[1 700],'FillValue', 0.5);
subplot(3,3,7);
imshow(i);
title('transformasi geometri 3');
r=[1 0 0; 0 2 0;20 20 1];
tform4=maketform('affine',r);
j=imtransform(t,tform4,'XData',[1 900],'YData',[1 900],'FillValue', 0.5);
subplot(3,3,8);
imshow(j);
title('transformasi geometri 4 ');

3. Lakukan registrasi secara acak pada keempat gambar g tersebut untuk mendapatkan
gambar hasil align yang mendekati gambar referensi f.

No Gambar transformasi geometri Gambar registrasi


.
1.
2.

3.

4.

a=imread('ied.jpeg');
t=im2double(a);
subplot(3,3,1);
imshow(t);
title('gambar asli');
s=0.8;
theta=pi/6;
q1=[s*cos(theta) s*sin(theta) 0
-s*sin(theta) s*cos(theta) 0
0 0 1];
tform=maketform('affine',q1);
g=imtransform(t,tform,'nearest');
subplot(3,3,2);
imshow(g);
title('transformasi geometri 1 ');
h=imtransform(t,tform,'FillValue',0.5);
subplot(3,3,3);
imshow(h);
title('transformasi geometri 2');
q2=[1 0 0; 0 1 0; 50 50 1];
tform2=maketform('affine',q2);
i=imtransform(t,tform2,'XData',[1 700],'YData',[1 700],'FillValue', 0.5);
subplot(3,3,4);
imshow(i);
title('transformasi geometri 3');
r=[1 0 0; 0 2 0;20 20 1];
tform4=maketform('affine',r);
j=imtransform(t,tform4,'XData',[1 900],'YData',[1 900],'FillValue', 0.5);
subplot(3,3,5);
imshow(j);
title('transformasi geometri 4 ');
basepoints=[83 81; 450 56; 43 293; 249 392; 436 442];
inputpoints=[68 66; 375 47; 42 286; 275 434; 523 532];
tform3=cp2tform(inputpoints,basepoints,'projective');
r=imtransform(g, tform3, 'XData',[1 502],'YData',[1 502]);
subplot(3,3,6);
imshow(r);
title('registrasi dari transformasi geometri 1');
s=imtransform(h, tform3, 'XData',[1 502],'YData',[1 502]);
subplot(3,3,7);
imshow(s);
title('registrasi dari transformasi geometri 2');
t=imtransform(i, tform3, 'XData',[1 502],'YData',[1 502]);
subplot(3,3,8);
imshow(t);
title('registrasi dari transformasi geometri 3');
u=imtransform(j, tform3, 'XData',[1 502],'YData',[1 502]);
subplot(3,3,9);
imshow(u);
title('registrasi dari transformasi geometri 4');

4. Dari beberapa proses registrasi yang dilakukan, jelaskan urutan registrasi mana yang
menghasilkan gambar yang paling mendekati gambar referensi f. Berikan interpretasi dari
hasil yang diperoleh.
No. Urutan registrasi terbaik Keterangan
1. Registrasi dari transformasi geometri 3 yang terbaik
karena gambar aslinya sudah termuat secara
keseluruhan pada hasil registrasinya meskipun masih
terdapat ruang luar disamping kiri dan kanannya .

2. Kedua terbaik ialah Registrasi dari transformasi


geometri 4 karena sama seperti registrasi dari
transformasi geometri 3 gambar aslinya sudah termuat
secara keseluruhan pada hasil registrasinya namun
masih terdapat ruang luar dibagian samping kiri,
kanan, atas, dan bawahnya.

3. Ketiga terbaik ialah registrasi dari transformasi


geometri 1 karena gambar hasil registrasi pada bagian
bawahnya sudah terpotong serta terdapat ruang luar
disamping kiri dan kanannya.

4. Terakhir ialah registrasi dari transformasi geometri 2


karena gambar hasil registrasi pada bagian atas dan
bawahnya sudah terpotong serta gambarnya menjadi
sedikit blur.
a=imread('ied.jpeg');
t=im2double(a);
subplot(3,3,1);
imshow(t);
title('gambar asli');
s=0.8;
theta=pi/6;
q1=[s*cos(theta) s*sin(theta) 0
-s*sin(theta) s*cos(theta) 0
0 0 1];
tform=maketform('affine',q1);
g=imtransform(t,tform,'nearest');
subplot(3,3,2);
imshow(g);
title('transformasi geometri 1 ');
h=imtransform(t,tform,'FillValue',0.5);
subplot(3,3,3);
imshow(h);
title('transformasi geometri 2');
q2=[1 0 0; 0 1 0; 50 50 1];
tform2=maketform('affine',q2);
i=imtransform(t,tform2,'XData',[1 700],'YData',[1 700],'FillValue', 0.5);
subplot(3,3,4);
imshow(i);
title('transformasi geometri 3');
r=[1 0 0; 0 2 0;20 20 1];
tform4=maketform('affine',r);
j=imtransform(t,tform4,'XData',[1 900],'YData',[1 900],'FillValue', 0.5);
subplot(3,3,5);
imshow(j);
title('transformasi geometri 4 ');
basepoints=[11 11; 41 71];
inputpoints=[14 44; 70 81];
x=imrotate(g,30);
k=cpselect(x,g,inputpoints,basepoints);
subplot(3,3,6);
imshow(k);
title('registrasi dari transformasi geometri 1');
l=cpselect(x,h,inputpoints,basepoints);
subplot(3,3,7);
imshow(l);
title('registrasi dari transformasi geometri 2');
m=cpselect(x,i,inputpoints,basepoints);
subplot(3,3,8);
imshow(m);
title('registrasi dari transformasi geometri 3');
n=cpselect(x,j,inputpoints,basepoints);
subplot(3,3,9);
imshow(n);
title('registrasi dari transformasi geometri 4');

“Saya mengerjakan tugas ini dengan persentase tingkat kejujuran sebesar 100%”.

Anda mungkin juga menyukai