23:10,断网,心中万千。。。飘过,各种手段最后还是用手机发了,滤波即设定好算子后,对输入图像的中心像素的与算子大小相同的邻域进行相关运算或者卷积运算进而得到输出图像的过程。对应的算子不同,滤波方法和效果不同,具体算子和MATLAB中滤波规则主要分析如下:
基本滤波函数:output=imfilter2(input,h,filteringmode,boundaryoption,optionsize)
h代表设定好的滤波算子;filteringmode包括corr(相关)和conv(卷积),boundaryoption包括replicate,symmetric,circular,optionsize包括fullh和same,具体参数解读为:
相关运算:逐个相乘求和(默认); 卷积运算:先将算子模板旋转180度,后进行逐个相乘求和运算;
边界处理:默认为用0来填充,replicate直接将边缘像素复制,symmetric镜像后填充,circular将图像看成一个二维周期函数进而扩展一个周期;
输出尺寸:full保持输出和填充后尺寸一致,same将输出保持和输入一致;
接下来讨论算子设计函数:
h=fspecial(type,para);
当type=average(均值滤波)时,size默认为3*3;
当type=disk(圆形区域均值i滤波),size默认为radius=5;
当type=gaussian(高斯低通滤波器),size默认为3*3,sigma默认为0.5像素
当type=laplacian(拉普拉斯滤波器),alpha控制算子形状【0,1】,默认数值为0.2;
当type=log(拉普拉斯高斯算子),参数和gaussian一致;
当type=motion(运动模糊算子),默认参数len=9,theta=0;
当type=prewitt,默认参数为3*3,用于增强边缘【1 1 1,0 0 0,-1 -1 -1】
当type=sobel,默认参数为3*3,用于提取边缘【1 2 1,0 0 0,-1 -2 -1】
当type=unsharp,参数alpha用于控制滤波器形状【0,1】,默认为0.2
分析:均值滤波对边界模糊严重,而且细节丢失比较严重,中值滤波对椒盐噪声处理较好,当也存在边界模糊。
laplacian算子可以较好提取边缘,可以采用laplacian算子提取边缘和原始图像叠加可以得到细节增强的图像。