Image Processing and Pattern Recognition: Experiment VI
Image Processing and Pattern Recognition: Experiment VI
Experiment VI
11bce022
Objective: For the same image set enhanced using frequency domain filter find
closest spatial domain filter to obtain similar images.
Implementation Code:
I = imread('C:\Users\Niks_$marty\Desktop\Lena.jpg');
I = imnoise(I,'gaussian');
figure;
subplot(2,3,1);
imshow(I);
title('Gaussian Noise Image');
[m,n] = size(I);
m_size=input('Mask Size');
mn=(m_size)*(m_size);
p=floor(m_size/2);
disp(p);
%padding
for i = 1:m+(m_size-1)
for j = 1:n+(m_size-1)
for i=1:p
B(i,j) = 0;
end
for j=1:p
B(i,j) = 0;
end
q=m+p+1;
r=(2*p+m);
for i=q : r
B(i,j) = 0;
end
for j=q : r
B(i,j) = 0;
end
end
end
% Arithmetic Filter
for i = 1:m-2
for j = 1:n-2
A(i,j) = uint8(I(i,j)/mn + I(i,j+1)/mn + I(i,j+2)/mn + I(i+1,j)/mn + I(i+1,j+1)/mn +
I(i+1,j+2)/mn + I(i+2, j)/mn + I(i+2,j+1)/mn + I(i+2,j+2)/mn);
end
end
subplot(2,3,2);
imshow(A);
title('Arithmetic Filter');
for i = 1:m+2
for j = 1:n+2
if (i==1)||(j==1)
C(i,j) = 0;
elseif (i==m+2)||(j==m+2)
C(i,j) = 0;
else
C(i,j) = I(i-1,j-1);
end
end
end
% Harmonic Filter
for i = 1:m
for j = 1:n
D(i,j) = uint8(9/(1/C(i,j) + 1/C(i,j+1) + 1/C(i,j+2) + 1/C(i+1,j) + 1/C(i+1,j+1) + 1/C(i+1,j+2) +
1/C(i+2, j) + 1/C(i+2,j+1) + 1/C(i+2,j+2)));
end
end
subplot(2,3,3);
imshow(D);
title('Harmonic Filter');
for i = 1:m+2
for j = 1:n+2
if (i==1)||(j==1)
E(i,j) = 0;
elseif (i==m+2)||(j==m+2)
E(i,j) = 0;
else
E(i,j) = I(i-1,j-1);
end
end
end
% Geometric Filter
for i = 1:m
for j = 1:n
F(i,j) = uint8((E(i,j) * E(i,j+1) * E(i,j+2) * E(i+1,j) * E(i+1,j+1) * E(i+1,j+2) * E(i+2, j) *
E(i+2,j+1) * E(i+2,j+2))^(1/9-2));
end
end
subplot(2,3,4);
imshow(F);
title('Geometric Filter');
Q = input('Order of filter:');
for i = 1:m+2
for j = 1:n+2
if (i==1)||(j==1)
G(i,j) = 0;
elseif (i==m+2)||(j==m+2)
G(i,j) = 0;
else
G(i,j) = I(i-1,j-1);
end
end
end
% Contra Harmonic Filter
for i = 1:m
for j = 1:n
H(i,j) = uint8(((G(i,j) + G(i,j+1) + G(i,j+2) + G(i+1,j) + G(i+1,j+1) + G(i+1,j+2) + G(i+2, j) +
G(i+2,j+1) + G(i+2,j+2))^(Q+1))/(G(i,j) + G(i,j+1) + G(i,j+2) + G(i+1,j) + G(i+1,j+1) + G(i+1,j+2) +
G(i+2, j) + G(i+2,j+1) + G(i+2,j+2))^(Q));
end
end
subplot(2,3,5);
imshow(H);
title('Contraharmonic Filter');
for i = 1:m+2
for j = 1:n+2
if (i==1)||(j==1)
J(i,j) = 0;
elseif (i==m+2)||(j==m+2)
J(i,j) = 0;
else
J(i,j) = I(i-1,j-1);
end
end
end
end
subplot(2,3,6);
imshow(K);
title('Alpha Trimmed Filter');
Output: