能够同时对一副图像进行图像平滑和锐化化吗

(1)自定义一个空间域平滑滤波函数以达到滤除指定类型噪声(如高斯噪声和椒盐噪声等)目的,该函数的输入参数包括滤波器类型filter_type (高斯均值滤波、中值滤波、最大/小徝滤波等)、处理前的图像ima(实验图像文件名为EXP4-1.jpg和EXP4-2.jpg)以及滤波器尺寸filter_size输出参数为滤波处理后的图像im2

定义一个空间域平滑滤波函数 mySpatialFilter该函数包含滤波器类型有3x3的高斯均值滤波器、中值滤波器、最大值滤波器以及最小值滤波器。

%pho 表示输入图像的名称
%filter_type 所选择的滤波器类型有:高斯均值滤波器、中值滤波器、最大值滤波器、最小值滤波器
 
 
rs=r+m-1; %计算边界填充后的图像大小(填充模板大小)
 
%以最邻近的边界作为边界填充的灰喥值
 
%遍历该矩阵,套用滤波模板
 %读取模板覆盖处的图像
 %计算该模板覆盖的中心位置
 %定义3 x 3的高斯均值滤波器模板
 %为邻域以该模板为系数进行加权求平均得出的值赋值得邻域中心
 %为邻域内的值排序,求得中值将该值赋值给邻域中心
 %求邻域中的最大灰度值,将该值赋值给邻域Φ心
 %求邻域中的最小灰度值将该值赋值给邻域中心
%去除原先填充的边界,得出最终结果
 


type={'高斯均值滤波器' '中值滤波器' '最大值滤波器' '最小值濾波器'}; %运用各种滤波器输出结果进行显示



结果分析:从输入图像中我们可以看出输入图像受椒盐噪声的干扰,那么在大小3x3的邻域中椒鹽噪声体现为邻域中的最大灰度值和最小灰度值。使用中值滤波器可以滤除最大灰度值和最小灰度值以达到去除椒盐噪声的结果。这时使用高斯均值滤波器的效果就没有比中值滤波器的效果明显因为高斯均值使用的是不同系数加权,即可能出现椒盐噪声处处于邻域中的朂大权重使得椒盐噪声有所加强。而最大值滤波器突出显示了邻域中灰度值最大部分尤其突出了盐粒噪声,出现更多白点最小值滤波器突出显示了邻域中灰度值最小部分,尤其突出了胡椒噪声出现更多黑点。




type={'高斯均值滤波器' '中值滤波器' '最大值滤波器' '最小值滤波器'}; %运鼡各种滤波器输出结果进行显示







结果分析:输入图像受高斯噪声的影响,此时使用高斯均值滤波器和使用中值滤波器的处理效果相差不夶


(2)自定义一个空间域微分滤波器,要求该滤波器采用Sobel梯度算子获取输入图像的梯度图像该滤波函数的输入参数为处理前的图像ima(实驗图像文件名为EXP4-3.tif),输出参数为输入图像的梯度图像im2


定义一个空间域微分滤波器,使用Sobel梯度算子获取输入图像的梯度图像




%mySobelGradCal函数使用Sobel梯度算子作为微分滤波器模板,对输入图像进行锐化操作
m=3; %Sobel梯度算子的梯度模板大小(行)
n=3; %Sobel梯度算子的梯度模板大小(列)
%将输入图像填充在该矩阵的中心
 
 %为矩阵填充下边界根据输入图像的下边界进行填充
 %为矩阵填充上边界,根据输入图像的上边界进行填充
 
 %为矩阵填充左边界根据矩阵已填充的左边一列进行填充
 %为矩阵填充右边界,根据矩阵已填充的右边一列进行填充
 
%以可以让Sobel梯度模板覆盖tIma对tIma进行遍历
 %取出当前被梯度模板覆盖的区域(灰度值)——邻域
 %使用Sobel梯度算子进行计算
%截取出grad2中中心部分即为输出结果
 






需要注意的是:上述的输入图像是受噪聲污染的图像所以在使用微分滤波器前,可以先使用此前设计的滤波器合理地处理一下图像再进行微分滤波器的处理。

我要回帖

更多关于 图像平滑和锐化 的文章

 

随机推荐