clc
close all
clear all
%%%生成高斯平滑滤波模板%%%
%%%%%%%%%%%%%%%%%%%%%%%%%
hg=zeros(3,3); %设定高斯平滑滤波模板的大小为3*3
delta=0.5;
for x=1:1:3
for y=1:1:3
u=x-2;
v=y-2;
hg(x,y)=exp(-(u^2+v^2)/(2*pi*delta^2));
end
end
h=hg/sum(hg(:)); %求平均
%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%读入图像%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%
g= imread('a.jpg');% 读入图像文件
f=imnoise(g,'gaussian',0,0.1);
f=rgb2gray(im2double(f));
imshow(g)
title('原始图像');
imshow(f)
title('加噪图像');
[m,n]=size(f);
ftemp=zeros(m,n); %构造全零矩阵
rowhigh=m-1;
colhigh=n-1;
%%%高斯滤波%%%
for x=2:1:rowhigh-1
for y=2:1:colhigh-1
mod=[f(x-1,y-1) f(x-1,y) f(x-1,y+1); f(x,y-1) f(x,y) f(x,y+1);f(x+1,y-1) f(x+1,y) f(x+1,y+1)];
A=h.*mod; %对应元素相乘
ftemp(x,y)=sum(A(:)); %矩阵中所有的元素求和
end
end
f=ftemp
figure,imshow(f)
title('通过高斯滤波器后的图像');
h=[0 1 0;1 -4 1;0 1 0];
J=conv2(f,h,'same');
K=f-J;
figure,
imshow(K)
title('通过laplacian后的图像');
评论0