您现在的位置:首页 >> 技术文章 >> 图像语音处理 >> 内容

图像去噪算法实现

时间:2019-1-22 3:00:23 点击:

  核心提示:中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。中值滤波器可以做到既去除噪声又能保护图像的边缘,从而获得较满意的复原效果,而且,在实际运算过程中...

图像去噪算法实现

1、对于Circuit.jpg图像,这里采用中值滤波算法对其进行去噪。

中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。中值滤波器可以做到既去除噪声又能保护图像的边缘,从而获得较满意的复原效果,而且,在实际运算过程中不需要图象的统计特性,这也带来不少方便,但对一些细节多,特别是点、线、尖顶细节较多的图象不宜采用中值滤波的方法。

实现方法:

1:通过从图像中的某个采样窗口取出奇数个数据进行排序

2:用排序后的中值取代要处理的数据即可

函数B=medfilt2(A,[M,N])实现对二维矩阵A的中值滤波,每一个输出像素包含输入图像中相应像素周围的M*N个相邻像素点的平均值,medfilt2 将图像的边缘用值为0的像素填补,同时用到了ordfilt2函数,该函数可进行二维统计顺序过滤。当模板值为3时,虽然图像非常清楚,但明显有几个特别亮的点存在,若加大模板值,亮点的亮度减弱,图像的清晰度减弱,当中值滤波的模板选为7x7的时候椒盐噪声的处理效果最好,但是同时它也模糊了边缘的清晰度,因此使用了自适应中值滤波器,目的是为了区分椒盐噪声和边缘颜色的突变。

程序源代码:

clear

I=imread('E:\新建文件夹 \图像处理作业\Circuit.jpg');

subplot(2,3,1),title('原图像'),xlabel('a'),imshow(I)

subplot(2,3,1),imshow(I);

title('原图像'),xlabel('a')

J=medfilt2(I,'symmetric');

subplot(2,3,2),imshow(J);

title('3X3 中值滤波'),xlabel('b')

K=medfilt2(I,[5,5],'symmetric');

subplot(2,3,3),imshow(K);

title('重复使用中值滤波'),xlabel('c')

O=medfilt2(J,[5,5],'symmetric');

subplot(2,3,4),imshow(O);

title('5X5 中值滤波'),xlabel('d')

O=medfilt2(J,[7,7],'symmetric');

subplot(2,3,5),imshow(O);

title('7X7 中值滤波'),xlabel('e')

其处理后的图像为:

2、对于图像boy_noisy.gif,这里采用巴特沃斯低通滤波器算法去噪即可得到很好的效果。

巴特沃斯低通滤波器是在单位圆上,以实轴为对称轴在复平面的左平面对称的配置极点,因此它具有较理想的极点位置,且具有低通滤波的特性。巴特沃斯低通滤波器的优点是:

(1)   模糊大大减少。因为包含了许多高频分量。

2)没有振铃现象。因为滤波器是平滑连续的。

nButterworth低通滤波器的公式为:

其中D0为滤波的截止频率,小于D0的频率就保留,大于D0的就全部过滤掉。n为阶数,它的大小主要影响幅度特性下降的速度,当n越大时,越接近理想滤波器,但其实现也越难。

程序源代码:

clear

I=imread('E:\新建文件夹\图像处理作业\boy_noisy.gif');%读入图像

subplot(2,3,1),imshow(I),title('原图'),xlabel('a');%显示图像

i_f=fft2(I);

i_f=fftshift(i_f);

i_f=log(1+i_f);

subplot(2,3,2),imshow(i_f,[]),title('源图像频谱'),xlabel('b');

F=fft2(I);%傅立叶变换

S=abs(F);%求绝对值

subplot(2,3,3),imshow(S,[]),title('频域变换后的幅度图'),xlabel('c');%图像显示

FC=fftshift(F);%原点移动到图像中心

subplot(2,3,4),imshow(abs(FC),[]),title('原点移动到图像中心位置'),xlabel('d');

S2=log(1+abs(FC));%对数之后,可放大图像

subplot(2,3,5),imshow(S2,[]),title('放大后的图像'),xlabel('e');

FC(241,:)=0;

FC(273,:)=0;%把噪声区域设置成零,可以去掉噪声。

fc=ifftshift(FC);%原点移动

fc=ifft2(fc);%反变换

subplot(2,3,6),imshow(fc,[]),title('d图中的俩条水平线处理掉'),xlabel('f');

其处理后的图像为:

3、对于图像california_22_13.bmp,采用了多种去噪方法,如中值滤波、均值滤波、二维自适应维纳滤波及小波滤波,均未得到特别理想的结果,经比较,采用均值滤波的方法稍微好于其他方法,先介绍如下:

均值滤波算法:也称线性滤波,主要思想为邻域平均法,即用几个像素灰度的平均值来代替每个像素的灰度。有效抑制加性噪声,但容易引起图像模糊,可以对其进行改进,主要避开对景物边缘的平滑处理。

matlab自带的filter2.m文件中,在命令K1=filter2(fspecial('average',3),i)/255;fspecial('average',3) 创建预定义的滤波算子,在此程序中定义了均值滤波,参数3代表模版尺寸,用向量表示,默认值为[3,3],也可以直接用数字3。改变该数值,即改变了模板的尺寸。K1=filter2(fspecial('average',[33]),i)/255;即表示用模板为3的均值滤波器来过滤i图像,在此要注意最后的归一化处理。在具体程序中,采用了不同的模板尺寸来对同一图片进行处理,从结果可以看出,模板尺寸越大,处理后的图像越模糊。

程序源代码:

i=imread('E:\新建文件夹\图像处理作业\california_22_13.bmp');

subplot(221)

imshow(i)

title('原图像');

K1=filter2(fspecial('average',[3 3]),i)/255; %模板尺寸为3,均值滤波

K2=filter2(fspecial('average',5),i)/255;% 模板尺寸为5

K3=filter2(fspecial('average',7),i)/255; %模板尺寸为7

subplot(2,2,2);imshow(K1);

title(' 均值滤波 模板3');

subplot(2,2,3); imshow(K2);

title(' 均值滤波 模板5');

subplot(2,2,4);imshow(K3);

title(' 均值滤波 模板7');

其处理后的图像为:

-------------------------------------------------------------------------------------

专业,代做,代写,承接,MATLAB,SIMULINK,FPGA项目,博士,硕士,本科,毕业设计,课题设计,论文,

期刊,毕业论文,杂志,Coursework,Eassy,Assignment,ISE,QuartusII,Vivado,PlanAhead,

SystemGenerator,Verilog,VHDL,VRML,DSPBuilder,EDK,SDK,MaxplusII,PowerPC,Microblaze

专业代做/代写/承接、MATLAB、SIMULINK、FPGA项目、博士/硕士/本科毕业设计、课题设计、

论文,毕业论文,Coursework、Eassy、Assignment

QQ:122 4848 052

Tags:图像 去噪 
作者:本站 来源:网络
  • 您是如何找到本站的?
  • 百度搜索
  • Google搜索
  • 查阅资料过程中
  • 论坛发现
  • 百度贴吧发现
  • 朋友介绍
本站最新成功开发工程项目案例
  • 上一篇:没有了
  • 下一篇:图像分割
  • 相关文章
    相关评论
    发表我的评论
    • 大名:
    • 内容:
  • matlab代做|matlab专业代做|python代做|matlab淘宝代做|matlab代写(www.hslogic.com) © 2019 版权所有 All Rights Reserved.
  • Email:highspeed_logic@163.com 站长QQ: 1224848052

    专业代做/代写/承接、MATLAB、SIMULINK、FPGA项目、博士/硕士/本科毕业设计、课题设计、论文,毕业论文,Coursework、Eassy、Assignment