中值滤波
来源:互联网 发布:手机解压软件中文 编辑:程序博客网 时间:2024/05/01 12:46
摘 要:数字图像中,噪声主要来源于图像的获取和/或传输过程。当仅存在加性噪声的情况下,可以选择空间滤波方法。本实验主要编写了一个给图像中添加椒盐噪声的程序,程序的输入参数为两个噪声分量的概率值;除此之外还编写了一个3*3的中值滤波函数,对经过椒盐噪声污染的图像进行滤波。
function R=saltandpepper(ima,pa,pb)%功能:给图像添加椒盐噪声%输入参数:原图像ima,两个噪声分量的概率值pa,pb%输出参数:添加噪声后的图像 [m,n]=size(ima);%检查pa+pb是否小于1 if (pa+pb)>1 error('The sum Pa+Pb must not exceed 1.') end R=ima; X=rand(m,n); c=find(X<=pa); R(c)=0; c=find(X>pa&X<=(pa+pb)); R(c)=1;%------------------------------------------function noise ima=imread('Fig5.07(a).jpg'); %添加椒盐噪声 imt=saltandpepper(ima,0.2,0.2); imshow(ima);title('原图像'); figure; imshow(imt);title('添加Pa=Pb=0.2的椒盐噪声后的图像'); %中值滤波 %一次中值滤波 [r,c]=size(imt); imt=double(imt); imta=zeros(r,c); for i=2:r-1 for j=2:c-1 imta(i,j)=medain(imt,i,j); end end imta=uint8(imta); figure;imshow(imta);title('一次中值滤波之后的图像'); %二次中值滤波 imtb=zeros(r,c); for i=2:r-1 for j=2:c-1 imtb(i,j)=medain(imta,i,j); end end imtb=uint8(imtb); figure;imshow(imtb);title('二次中值滤波之后的图像'); %三次中值滤波 imtc=zeros(r,c); for i=2:r-1 for j=2:c-1 imtc(i,j)=medain(imtb,i,j); end end imtc=uint8(imtc); figure;imshow(imtc);title('三次中值滤波之后的图像');%---------------------------------------------function md=medain(ima,I,J)%中值滤波器%将一个3*3的矩阵转换为一行数组 b=zeros(1,9); k=1; for i=I-1:I+1 for j=J-1:J+1 b(1,k)=ima(i,j); k=k+1; end end %按从小到大排序 for i=1:8 for j=1:8 if (b(j)>b(j+1)) t=b(j); b(j)=b(j+1); b(j+1)=t; end end end %取中值返回 md=b(5);
1 0
- 中值滤波
- 中值滤波
- 中值滤波
- 中值滤波
- 中值滤波
- 中值滤波
- 中值滤波
- 中值滤波
- 中值滤波
- 中值滤波
- 中值滤波
- 中值滤波
- 中值滤波
- 中值滤波
- 中值滤波
- 中值滤波
- 中值滤波VS.均值滤波
- 非线性滤波:中值、双边滤波
- jsp 使用properties配置文件方法
- 【创业@移动互联网】PP租车CEO(学安卓,创业移动互联)
- eclipse使用笔记(一):eclipse闪退解决办法
- Activity生命周期
- php stripcslashes stripcslashes
- 中值滤波
- Meteor node.js 复制(copy)文件的方法
- NSUserDefaults
- 1025. PAT Ranking (25)
- Project Euler:Problem 28 Number spiral diagonals
- CTreeCtrl
- Android开发技巧——实现可复用的ActionSheet菜单
- Entity Relationship Diagrm
- 原材料入库控制的三个问题