📄 exp05.m
字号:
% % % % % % % % % % % % % % %
% Program for SMOOTHING %
% % % % % % % % % % % % % % %
clc;clear all;close all;
%%%%%%%CONVERTING TO GREY SCALE IMAGE %%%%%%
%%% Reading the images
I1 = imread('img_with_gaussian.bmp');
I2 = imread('img_with_salt_pepper.bmp');
%%% Converting 'unit8' values to 'double'
Im1 = im2double(I1)*255;
Im2 = im2double(I2)*255;
% Seperating R,G and B components
R1 = Im1(:,:,1);
G1 = Im1(:,:,2);
B1 = Im1(:,:,3);
% Converting to Gray Scale Image
IMAGE1 = 0.299*R1 + 0.587*G1 + 0.114*B1;
% Rounding
IMAGE1 = round (IMAGE1);
% Seperating R,G and B components
R2 = Im2(:,:,1);
G2 = Im2(:,:,2);
B2 = Im2(:,:,3);
% Converting to Gray Scale Image
IMAGE2 = 0.299*R2 + 0.587*G2 + 0.114*B2;
% Rounding
IMAGE2 = round (IMAGE2);
figure;
imshow(IMAGE1/255); title (' GAUSSIAN GRAY SCALE IMAGE ');
figure;
imshow(IMAGE2/255); title (' IMAGE WITH SALT & PEPPER NOISE ');
%imwrite(IMAGE1/255,'IMAGE1.bmp');
%imwrite(IMAGE2/255,'IMAGE2.bmp');
[R C] = size(IMAGE1);
%%%%%%%%%%%% AVERAGE FILTERING %%%%%%%%%%%%%%%%
m = 3;
n = m^2 ;
for i=1:1:m
for j=1:1:m
w1(i,j) = 1/n ;
end
end
s = (m+1)/2;
for x=1:1:R
for y=1:1:C
IMAGE_1(x,y) = IMAGE1(x,y);
IMAGE_2(x,y) = IMAGE2(x,y);
end
end
for x=s:1:R-s
for y=s:1:C-s
IMAGE_1(x,y) = 0;
IMAGE_2(x,y) = 0;
end
end
for x=s:1:R-s
for y=s:1:C-s
for i=1:1:m
for j=1:1:m
IMAGE_1(x,y) = IMAGE1(x-s+i,y-s+j)*w1(i,j)+IMAGE_1(x,y);
IMAGE_2(x,y) = IMAGE2(x-s+i,y-s+j)*w1(i,j)+IMAGE_2(x,y);
end
end
end
end
figure;
imshow(IMAGE_1/255);title (' GAUSSIAN FILTERED IMAGE ');
figure;
imshow(IMAGE_2/255);title (' SALT & PEPPER FILTERED IMAGE ');
%imwrite(IMAGE_1/255,'IMAGE_1.bmp');
%imwrite(IMAGE_2/255,'IMAGE_2.bmp');
%%% WAITED MASK %%%
w2 = [ 1 1 1 ; 1 1 1 ; 1 1 1]/9;
for x=1:1:R
for y=1:1:C
IMAGE3(x,y) = IMAGE1(x,y);
IMAGE4(x,y) = IMAGE2(x,y);
end
end
for x=s:1:R-s
for y=s:1:C-s
IMAGE3(x,y) = 0;
IMAGE4(x,y) = 0;
end
end
for x=s:1:R-s
for y=s:1:C-s
for i=1:1:m
for j=1:1:m
IMAGE3(x,y) = IMAGE1(x-s+i,y-s+j)*w1(i,j)+IMAGE3(x,y);
IMAGE4(x,y) = IMAGE2(x-s+i,y-s+j)*w1(i,j)+IMAGE4(x,y);
end
end
end
end
figure;
imshow(IMAGE3/255);title (' GAUSSIAN WAITED IMAGE ');
figure;
imshow(IMAGE4/255);title (' SALT & PEPPER WAITED IMAGE ');
%imwrite(IMAGE3/255,'IMAGE3.bmp');
%imwrite(IMAGE4/255,'IMAGE4.bmp');
%%%%%%%% FILTERS %%%%%%%%
I = IMAGE1;
II =IMAGE2;
for x=2:1:R-1
for y=2:1:C-1
%%% MIN Filtering %%%
%%% To make 3 x 3 mask into 1 x 9 mask
a=[I(x-1,y-1) I(x-1,y) I(x-1,y+1) I(x,y-1) I(x,y) I(x,y+1) I(x+1,y-1) I(x+1,y) I(x+1,y+1) ];
Imin_G(x,y) = min(a);
b=[II(x-1,y-1) II(x-1,y) II(x-1,y+1) II(x,y-1) II(x,y) II(x,y+1) II(x+1,y-1) II(x+1,y) II(x+1,y+1) ];
Imin_SP(x,y) = min(b);
%%% MAX Filtering %%%
a=[I(x-1,y-1) I(x-1,y) I(x-1,y+1) I(x,y-1) I(x,y) I(x,y+1) I(x+1,y-1) I(x+1,y) I(x+1,y+1) ];
Imax_G(x,y) = max(a);
b=[II(x-1,y-1) II(x-1,y) II(x-1,y+1) II(x,y-1) II(x,y) II(x,y+1) II(x+1,y-1) II(x+1,y) II(x+1,y+1) ];
Imax_SP(x,y) = max(b);
%%% MEDIAN Filtering %%%
a=[I(x-1,y-1) I(x-1,y) I(x-1,y+1) I(x,y-1) I(x,y) I(x,y+1) I(x+1,y-1) I(x+1,y) I(x+1,y+1) ];
a1=sort(a);
med_a=a1(5);
Imedian_G(x,y) = med_a;
b=[II(x-1,y-1) II(x-1,y) II(x-1,y+1) II(x,y-1) II(x,y) II(x,y+1) II(x+1,y-1) II(x+1,y) II(x+1,y+1) ];
b1=sort(b);
med_b=b1(5);
Imedian_SP(x,y) = med_b;
%%% MID-POINT Filtering %%%
a=[I(x-1,y-1) I(x-1,y) I(x-1,y+1) I(x,y-1) I(x,y) I(x,y+1) I(x+1,y-1) I(x+1,y) I(x+1,y+1) ];
Imidpt_G(x,y) = (min(a)+max(a))/2;
b=[II(x-1,y-1) II(x-1,y) II(x-1,y+1) II(x,y-1) II(x,y) II(x,y+1) II(x+1,y-1) II(x+1,y) II(x+1,y+1) ];
Imidpt_SP(x,y) = (min(b)+max(b))/2;
end
end
figure;
imshow(Imin_G/255);title (' GAUSSIAN MIN FILTER ');
figure;
imshow(Imin_SP/255);title (' SALT & PEPPER MIN FILTER ');
%imwrite(Imin_G/255,'Imin_G.bmp');
%imwrite(Imin_SP/255,'Imin_SP.bmp');
figure;
imshow(Imax_G/255);title (' GAUSSIAN MAX FILTER ');
figure;
imshow(Imax_SP/255);title (' SALT & PEPPER MAX FILTER ');
%imwrite(Imax_G/255,'Imax_G.bmp');
%imwrite(Imax_SP/255,'Imax_SP.bmp');
figure;
imshow(Imedian_G/255);title (' GAUSSIAN MEDIAN FILTER ');
figure;
imshow(Imedian_SP/255);title (' SALT & PEPPER MEDIAN FILTER ');
%imwrite(Imedian_G/255,'Imedian_G.bmp');
%imwrite(Imedian_SP/255,'Imedian_SP.bmp');
figure;
imshow(Imidpt_G/255);title (' GAUSSIAN MID POINT FILTER ');
figure;
imshow(Imidpt_SP/255);title (' SALT & PEPPER MID POINT FILTER ');
%imwrite(Imidpt_G/255,'Imidpt_G.bmp');
%imwrite(Imidpt_SP/255,'Imidpt_SP.bmp');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -