matlab中最好用的滤波函数,matlab中滤波函数

matlab自带滤波器函数小结(图像处理)   1 线性平滑滤波器 用MATLAB实现领域平均法抑制噪声程序: I=imread(' c4.jpg '); subplot(231) imshow(I) title('原始图像') flag = isrgb(I); if flag==true    I=rgb2gray(I); else     I=I; end I1=imnoise(I,'salt & pepper',0.02); subplot(232) imshow(I1) title(' 添加椒盐噪声的图像') k1=filter2(fspecial('average',3),I1)/255;          %进行3*3模板平滑滤波 k2=filter2(fspecial('average',5),I1)/255;          %进行5*5模板平滑滤波 k3=filter2(fspecial('average',7),I1)/255;          %进行7*7模板平滑滤波 k4=filter2(fspecial('average',9),I1)/255;          %进行9*9模板平滑滤波 subplot(233),imshow(k1);title('3*3 模板平滑滤波'); subplot(234),imshow(k2);title('5*5 模板平滑滤波'); subplot(235),imshow(k3);title('7*7 模板平滑滤波'); subplot(236),imshow(k4);title('9*9 模板平滑滤波'); 2 中值滤波器 用MATLAB实现中值滤波程序如下: I=imread(' c4.jpg '); flag = isrgb(I); if flag==true    I=rgb2gray(I); else     I=I; end J=imnoise(I,'salt&pepper',0.02); subplot(231),imshow(I);title('原图像'); subplot(232),imshow(J);title('添加椒盐噪声图像'); k1=medfilt2(J);            %进行3*3模板中值滤波 k2=medfilt2(J,[5,5]);      %进行5*5模板中值滤波 k3=medfilt2(J,[7,7]);      %进行7*7模板中值滤波 k4=medfilt2(J,[9,9]);      %进行9*9模板中值滤波 subplot(233),imshow(k1);title('3*3模板中值滤波'); subplot(234),imshow(k2);title('5*5模板中值滤波 '); subplot(235),imshow(k3);title('7*7模板中值滤波'); subplot(236),imshow(k4);title('9*9 模板中值滤波'); 3 状态统计滤波器:ordfilt2函数 Y=ordfilt2(X,order,domain) 由domain中非0元素指定邻域的排序集中的第order个元素代替X中的每个元素。Domain是一个仅包括0和1的矩阵,1仅定义滤波运算的邻域。 Y=ordfilt2(X,order,domain,S) S与domain一样大,用与domain的非0值相应的S的值作为附加补偿。 4 二维自适应除噪滤波器:wiener2函数 wiener2函数估计每个像素的局部均值与方差,该函数用法如下: J=wiener2(I,[M N],noise) 使用M×N大小邻域局部图像均值与偏差,采用像素式自适应滤波器对图像I进行滤波。 [J,noise]=wiener2(I,[M N]) 滤波前还有估计附加噪声的能量。 5 特定区域滤波 MATLAB图像处理工具箱中提供的roifilt2函数用于对特定区域进行滤波,其语法格式为: J=roifilt2(h,I,BW) 其功能是:使用滤波器h对图像I中用二值掩模BW选中的区域滤波。 J=roifilt2(I,BW,fun) J=roifilt2(I,BW,fun,P1,P2,…) 其功能是:对图像I中用二值掩模BW选中的区域作函数运算fun,其中fun是描述函数运算的字符串,参数为P1、P2、…。返回图像J在选中区域的像素为图像I经fun运算的结果,其余部分的像素值为I的原始值。 例:对指定区域进行锐化滤波的程序清单: I=imread('eight.tif'); c=[222 272 300 272 222 194]; r=[21 21 75 121 121 75]; BW=roipoly(I,c,r); h=fspecial('unsharp'); J=roifilt2(h,I,BW); subplot(1,2,1);imshow(I); subplot(1,2,2);imshow(J);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值