ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

【图像去噪】基于自适应中值滤波实现图像去噪matlab代码

2026/8/3 0:17:20 拓冰建站 浏览量
【图像去噪】基于自适应中值滤波实现图像去噪matlab代码 1 简介由于图像噪声会对后续的图像处理结果产生影响,所以在对图像进行其他处理前应先对图像去噪.针对传统中值滤波器在去除均匀分布椒盐噪声时效果并不理想,设计出一种自适应阈值中值滤波器.分别用两种滤波器进行图像去噪实验,通过对比去噪后图像的信噪比,峰值信噪比以及视觉效果发现:较之传统的中值滤波器,新的自适应中值滤波器能更有效地去除椒盐噪声并减少图像失真.2 完整代码%******************************************* %———自适应中值滤波法去除大密度椒盐噪声——— % 主要思想 % 判断当前像素是否为噪声点 % 1) NO -不处理 % 2) YES-自适应中值滤波 % 3) 边缘处理 %****************************************** close all;clc; clear all set(0,defaultfigurecolor,w) %读取图像 Iimread(rice.png); %变为灰度图 % Irgb2gray(I); %加椒盐噪声 Inimnoise(I,salt pepper,0.7); %求图像最大最小值 maxmax(max(In)); minmin(min(In)); %创建一幅图像 sizesize(In); Jzeros(size); %自适应中值滤波 for i2:size(1)-1 for j2:size(2)-1 if(In(i,j)max||In(i,j)min) J(i,j)I(i,j); else for k1 AIn(i-k:ik,j-k:jk); Bmedian(median(A)); if(Bmax||Bmin) J(i,j)B; break; end end end end end %边缘处理 %第一行 for i2:size(2)-1 around((In(1,i-1)In(1,i)In(1,i1))/3); J(1,i)a; end %最后一行 for i2:size(2)-1 around((In(size(1),i-1)In(size(1),i)In(size(1),i1))/3); J(size(1),i)a; end %第一列 for i2:size(1)-1 around((In(i-1,1)In(i,1)In(i1,1))/3); J(i,1)a; end %最后一列 for i2:size(1)-1 around((In(i-1,size(2))In(i,size(2))In(i1,size(2)))/3); J(i,size(2))a; end %左上角 J(1,1)round((J(1,2)J(2,1))/2); %左下角 J(size(1),1)round((J(size(1),2)J(size(1)-1,1))/2); %右上角 J(1,size(2))round((J(1,size(2)-1)J(2,size(2)))/2); %右下角 J(size(1),size(2))round((J(size(1),size(2)-1)J(size(1)-1,size(2)))/2); Juint8(J); %figure,imshow(I); %用评价函数评价SMF处理结果 Kmedfilt2(In); snr_1snr(I,K); %用评价函数评价本算法处理结果 snr_2snr(I,J); %显示处理结果 subplot(131),imshow(I);title(原图) subplot(132),imshow(In);title(加噪图) subplot(133),imshow(J);title(去噪图)3 仿真结果​4 参考文献[1]耿帅, and 王希常. 一种基于中值滤波的图像去噪算法. 计算机与现代化 11(2011):3.部分理论引用网络文献若有侵权联系博主删除。