1 简介
脉冲噪声作为一种来源于图像在获取、传输以及压缩等环节中,由于传感器发生故障、硬件存储单位失效,错误地开关操作等因素而产生的非线性噪声,在图像中以大量的“黑点”或“白点”的形式出现,严重阻碍了图像后续的处理和应用。自适应伪中值滤波[8]作为一种分区域中值滤波方法,将大小为 m×m 的滤波模板分解为 m 个大小为 1×m 的滤波子窗口,通过各子窗口中分别进行中值滤波获得一系列的滤波值序列,然后再对该序列进行中值滤波。基于绝对差分中值滤波、加权中值滤波法、改进加权中值滤波实现脉冲噪声图像去噪。
2 部分代码
function RVIN_img=add_RVIN(init_img,nl)
%init_img----原始图像矩阵
%reflesh_img----恢复后的图像
%nl----噪声密度值
[M,N,Z]=size(init_img);
if Z>1
init_img=rgb2gray(init_img);
end
noise_img=imnoise(uint8(init_img),'salt & pepper',nl);%加入椒盐噪声
RVIN_img=init_img;
noise_num=0;
for i=1:M
for j=1:N
if init_img(i,j)~=noise_img(i,j)
noise_num=noise_num+1;
rand_num=round(rand(1,1)*255);
RVIN_img(i,j)=rand_num;
end
end
end
noise_density=noise_num/(M*N);
noise_map=zeros(M,N);
noise_map=RVIN_img-init_img~=0;
noise_total=sum(noise_map(:));
end
3 仿真结果
4 参考文献
[1]郑明言. 一种小波域多方向自适应加权伪中值滤波算法[J]. 红外技术, 2014, 36(9):6.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。