Praktikum 4
Image Restoration Using Global Filter (Notch)
I. Tujuan
1. Dapat mengetahui dan bisa melakukan percobaan mengenai Image
Restoration Using global Filter (Notch)
a=imread('img3.jpg');
a = imresize(a,[256 256]);
a = rgb2gray(a);
a = im2double(a);%convert the range of colors from 0-255
to 0-1
subplot(3,3,1);
imshow(a);
title('Image without noise');
% add noise
[m,n] = size(a);
for i=1:m for j=1:n
a_1(i,j)=a(i,j)+sin(5*i);
end
end
subplot(3,3,3);
imshow(a_1);
title('Image with noise');
A = fft2(a_1); %fourier transform of image
A_shift = fftshift(A); %shifting origin
A_real = abs(A_shift); %Magnitude of A_shift(Freq. domain
repre.) subplot(3,3,4)
imshow(uint8(A_real));
title('Frequency domain image (w/ noise)');
for u=1:m
for v=1:n
D1 =((u-m/2-u0).^2+(v-n/2-v0).^2).^0.5;
D2 =((u-m/2+u0).^2+(v-n/2+v0).^2).^0.5;
if ((D1<=D0)||(D2<=D0))
H(u,v) = 0;
else
H(u,v) = 1;
end
end
end
subplot(3,3,5)
imshow(H)
title('Ideal Notch Reject Filter');
subplot(3,3,6) imshow(uint8(H_high_real))
title('Frequency domain after filtered');
subplot(3,3,7)
imshow(abs(H_high_image));
title('Ideal Notch Reject Filtered image');
- Gaussian
clc;
clear all;
close all;
%read image
a=imread('img3.jpg');
%resize image to 256x256
a = imresize(a,[256 256]);
%convert image to grayscale
a = rgb2gray(a);
%convert the range of colors from 0-255 to 0-1
a = im2double(a);
subplot(3,3,1);
imshow(a);
title('Image without noise');
A = fft2(a); %fourier transform of image
A_shift = fftshift(A); %shifting origin
A_real = abs(A_shift); %Magnitude of A_shift(Freq. domain
repre.)
subplot(3,3,2)
imshow(uint8(A_real));
title('Frequency domain image (w/o noise)');
%add noise
[m,n] = size(a);
for i=1:m
for j=1:n a_1(i,j)=a(i,j)
+sin(5*i); end
end
subplot(3,3,3);
imshow(a_1);
title('Image with noise');
subplot(3,3,5)
imshow(H)
title('Gaussian Notch Band Reject Filter');
subplot(3,3,6) imshow(uint8(H_high_real))
title('Frequency domain after filtered');
subplot(3,3,7)
imshow(abs(H_high_image));
title('Gaussian Notch Band Reject Filtered image');
Butterworth
Program :
clc;
clear all;
close all;
%read image
a=imread('img3.jpg');
%resize image
a = imresize(a,[256 256]);
%convert to grayscale
a = rgb2gray(a);
%convert the range of colors from 0-255 to 0-1
a = im2double(a);
subplot(3,3,1);
imshow(a);
title('Image without noise');
%add noise
[m,n] = size(a);
for i=1:m
for j=1:n a_1(i,j)=a(i,j)
+sin(5*i); end
end
subplot(3,3,3);
imshow(a_1);
title('Image with noise');
subplot(3,3,5)
imshow(H)
title('Butterworth Band Notch Reject Filter');
subplot(3,3,6) imshow(uint8(H_high_real))
title('Frequency domain after filtered');
subplot(3,3,7)
imshow(abs(H_high_image));
title('Butterworth Band Notch Reject Filtered image');
clc;
clear all;
close all;
a=imread('img3.jpg');
a = imresize(a,[256 256]);
a = rgb2gray(a);
a = im2double(a);%convert the range of colors from 0-255
to 0-1
subplot(3,3,1);
imshow(a);
title('Image without noise');
%add noise
[m,n] = size(a);
for i=1:m
for j=1:n a_1(i,j)=a(i,j)
+sin(5*i); end
end
subplot(3,3,3);
imshow(a_1);
title('Image with noise');
for u=1:m
for v=1:n
D1 =((u-m/2-u0).^2+(v-n/2-v0).^2).^0.5;
D2 =((u-m/2+u0).^2+(v-n/2+v0).^2).^0.5;
if ((D1<=D0)||(D2<=D0))
H(u,v) = 0;
else
H(u,v) = 1;
end
H(u,v) = 1 - H(u,v);
end
end
subplot(3,3,5)
imshow(H)
title('Ideal Notch Reject Filter');
subplot(3,3,6) imshow(uint8(H_high_real))
title('Frequency domain after filtered');
subplot(3,3,7)
imshow(abs(H_high_image));
title('Ideal Notch Reject Filtered image');
Gaussian
Program :
clc;
clear all;
close all;
%read image
a=imread('img3.jpg');
%resize image to 256x256
a = imresize(a,[256 256]);
%convert image to grayscale
a = rgb2gray(a);
%convert the range of colors from 0-255 to 0-1
a = rgb2gray(a);
%convert the range of colors from 0-255 to 0-1
a = im2double(a);
subplot(3,3,1);
imshow(a);
title('Image without noise');
%add noise
[m,n] = size(a);
for i=1:m
for j=1:n a_1(i,j)=a(i,j)
+sin(5*i); end
end
subplot(3,3,3);
imshow(a_1);
title('Image with noise');
A = fft2(a_1); %fourier transform of image
A_shift = fftshift(A); %shifting origin
A_real = abs(A_shift); %Magnitude of A_shift(Freq. domain
repre.)
subplot(3,3,4)
imshow(uint8(A_real));
title('Frequency domain image (w/ noise)');
D0 = 35; %Cut-Off frequency OR Standard deviation sigm
u0 = 55;
v0 = 0;
%W = 10; %Width of rejection
for u=1:m
for v=1:n
D1 =((u-m/2-u0).^2+(v-n/2-v0).^2).^0.5;
D2 =((u-m/2+u0).^2+(v-n/2+v0).^2).^0.5;
H(u,v) = 1 - exp(-(1/2)*((D1*D2)/(D0).^2)^2);
H(u,v) = 1-H(u,v);
end
end
H_high = H.*A_shift; H_high_real =
H.*A_real; H_high_shift =
fftshift(H_high); H_high_image =
ifft2(H_high_shift);
subplot(3,3,5)
imshow(H)
title('Gaussian Notch Band Pass Filter');
subplot(3,3,6)
imshow(uint8(H_high_real))
title('Frequency domain after filtered');
subplot(3,3,7)
imshow(abs(H_high_image));
title('Gaussian Notch Band Pass Filtered image');
Butterworth
Program :
clc;
clear all;
close all;
%read image
a=imread('img3.jpg');
%resize image
a = imresize(a,[256 256]);
%convert to grayscale
a = rgb2gray(a);
%convert the range of colors from 0-255 to 0-1
a = im2double(a);
subplot(3,3,1);
imshow(a);
title('Image without noise');
%add noise
[m,n] = size(a);
for i=1:m
for j=1:n a_1(i,j)=a(i,j)
+sin(5*i); end
end
subplot(3,3,3);
imshow(a_1);
title('Image with noise');
subplot(3,3,5)
imshow(H)
title('Butterworth Band Notch Pass Filter');
subplot(3,3,6) imshow(uint8(H_high_real))
title('Frequency domain after filtered');
subplot(3,3,7)
imshow(abs(H_high_image));
title('Butterworth Band Notch Pass Filtered image');
Butterworth
Butterworth
V. Analisa
Pada percobaan praktikum keempat, dibuat program band reject notch filter
dan band pass filter pada ideal, gaussian, dan butterworth filter. Untuk membuat
notch band reject filter dan notch band pass filter, maka pertama-tama perlu
diketahui rumus dari masing-masing notch filter.Oleh karena itu, untuk notch pass
filter dapat digunakan rumus sebagai berikut :
Setelah diketahui rumus-rumus tersebut, maka akan diimplementasikan
ke dalam progam sebagai berikut :
if ((D1<=D0)||(D2<=D0))
H(u,v) = 0;
else
H(u,v) = 1;
end
end
end
Pada Gaussian Notch Filter, gambar mawar tampak lebih jelas dari Ideal
Notch Reject Filter dan pada gaussian notch filter terlihat tidak tampak
ringing-effect. Namun, masih terdapat noise berupa garis pada gambar
mawar.
Pada Butterworth Notch Reject Filter, terlihat gambar mawar paling jelas
diantara ketiga gambar hasil filter. Walaupun masih terlihat noise sedikit
pada pinggir gambar mawar, tetapi dibandingkan dengan gambar hasil filter
lainnya, butterworth notch reject filter menghasilkan gambar yang paling
jelas. Terlihat gambar mawar tidak terdapat noise dan ringing-effect.
Kemudian, dicoba untuk mengganti beberapa parameter pada filter notch reject :
D0 =40, u0 = 0, v0 = 50
Pada percobaan menggunakan parameter ini, terihat ketiga gambar memiliki
hasil gambar yang sama. Hal ini dikarenakan posisi dari u0 bernilai 0. U0
berfungsi untuk mengatur posisi filter pada sumbu y. Sedangkan v0
digunakan untuk mengatur posisi filter pada sumbu x. Posisi dari noise
berada pada sumbu y, bila filter tidak terletak pada sumbu y maka noise akan
berhasil lolos sehingga ketiga gambar hasil filter menghasilkan gambar
bernoise.
D0 = 40, u0 = 70, v0 = 0
Terlihat pada saat digunakan parameter ini, hanya gambar ideal notch reject
filter saja yang terlihat jelas gambar mawar dibandingkan kedua filter yang
lain. Hal ini disebabkan lebar filter dari filter Ideal Notch Reject Filter lebih
besar daripada kedua filter lainnya sehingga dapat menfilter dengan cakupan
yang lebih luas.
D = 35, u0 = 30, v0 = 0
Pada percobaan dengan parameter ketiga, dicoba untuk menggunakan nilai
u0 lebih kecil sehingga filter mendekati satu sama lain. Terlihat gaussian
notch reject filter dan butterworth notch reject filter meloloskan noise dari
gambar mawar. Sedangkan pada ideal notch reject filter, hanya terlihat siluet
dari gambar mawar.
Setelah itu, dibandingkan Ideal Notch Band Pass Filter, Gaussian Notch Band
Pass Filter, dan Butterworth Notch Band Pass Filter. Pada perbandingan ini,
digunakan cut off frequency (D0) sebesar 35, nilai u0 sebesar 50, v0 sebesar 0, dan n
order untuk filter butterworth bernilai 5. Terlihat perbedaan pada gambar Ideal Notch
Filter masih terlihat siluet dari gambar mawar. Selanjutnya pada gambar Gaussian
Notch Pass Filter dan Butterworth Notch Pass Filter, terlihat dibandingkan hasil filter
Ideal Notch Pass Filter, siluet mawar terlihat lebih samar dan noise terlihat lebih
jelas
D0 = 40, u0 = 0, v0 =
Terlihat pada percobaan dengan parameter ini, terlihat pada ketiga gambar
hasil filter hanya muncul gambar mawar dan tidak terlihat noise bergaris
pada gambar filter. Hal ini disebabkan noise bergaris pada sumbu vertical,
bukan horizontal. Sedangkan filter berada pada sumbu horizontal, sehingga
yang diloloskan adalah gambar mawar.
D = 40, u0 = 70, v0 = 0
Terlihat pada percobaan mengubah parameter kedua, terlihat ketiga hasil
filter terlihat sama, tetapi pada Ideal Notch Pass Filtered Imager terlihat lebih
terang dibandingkan kedua filter lainnya.
D = 35, u0 = 30, v0 = 0
Terlihat pada percobaan parameter ketiga, didekatkan kedua filter dengan
mengatur nilai u0. Terlihat bila dua filter semakin didekatkan maka gambar
mawar akan terlihat lebih jelas daripada noise kecuali pada Ideal Notch Pass
Filter.
VI. Kesimpulan
Dari percobaan yang telah dilakukan dapat diperoleh bebearapa kesimpulan bahwa :
Notch bandpass/band reject filter dapat di buat dari rumus masing-masing
filter. Kemudian, nilai d0 pada filter digunakan untuk mengatur lebar dari
filter, u0 digunakan untuk mengatur sumbu vertical dari filter, dan v0
digunakan untuk mengatur sumbu horizontal dari filter.
Dibandingkan dengan filter ideal notch band reject filter, gaussian notch band
reject filter, dan butterworth gaussian notch band reject filter, terlihat bahwa
gambar dengan hasil filter butterworth memiliki gambar yang lebih jelas
dibandingkan filter gaussian notch band reject dan filter ideal notch band
reject. Untuk filter band pass, terlihat filter gaussian notch band pass dan
butterworth notch pass filter meloloskan noise lebih jelas dibandingkan filter
ideal notch pass.