基于matlab的图像处理
基于matlab图像处理的去噪处理
——解图像的运动模糊
院系: 自动化学院
班级: 840704
姓名: 关作钰 学号:2008040704010
基于matlab图像处理的去噪处理
——解图像的运动模糊
一( 问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
提出:
影响图像质量的因素有很多,如亮度,对比度,和噪声等。而其中的噪声又有椒盐噪声,高斯噪声等几种。人们在摄影照相过程中,如果相机与被照对象之间有相对运动发生,则所得图片会产生运动模糊,直观上看就是图像不清晰,有拖影,这也是图像噪声的一种。为提高图像质量解决这样的模糊问题需对图像进行相关的去早处理。
图1 汽车车轮
二(
图1所示为明显的图像退化,而这种退化的典型的表现为模糊,失真和有噪声,造成过这种退化的原因有很多,具体分析有如下几点:
1. 成像系统的像差,畸变和有限带宽造成图像退化;
2. 拍摄时,相机与景物之间的相对运动产生的运动模糊;
3. 镜头聚焦不准产生的散焦模糊; 噪声分析:
成像系统中存在的噪声干扰。 4.
可以看出,造成图1图像退化的主要原因是第二点——运动模糊。
三(
对运动模糊的噪声处理算法有很多,
PSF=fspecial(‘motion’,LEN,THETA)
其中motion是表示摄像头近似线性移动即选用的滤波器或算子;LEN是移动像素的个数,THETA是移动的角度。然后用这个PSF对模糊图像进行维纳滤波
的处理。
维纳滤波,在matlab中可以调用deconvwnr()函数来实现,是对解运动模糊效果较好的一种去噪
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
。具体格式如下:
J=deconvwnr(I,PSF)
其中,J代表处理后的图片,I为模糊图片,PSF是点扩散函数。但是在实际处理过程中发现,使用维纳滤波会给图片带来一些其它的噪声,因而在解运动模糊后需要再对图像进行去噪,
中值滤波器也叫最大滤波器和最小滤波器。其实现的滤波原理是通过预设一个窗口矩阵对数字图像进行扫描,在窗口矩阵范围内,某一点的值用该点邻域中各点的中值替换。其实现格式如下:
K=medfilt2(I,[x,y])
其中K为处理后的图片,I为被处理图片,[x,y]为窗口矩阵。 选用算法:
四(
图像处理:
1. 读入图片
读入图片并转为灰度图像运行指令
i=imread(‘d:/03.jpg’)
I0=rgb2gray(i);
figure;
imshow(I0);
结果如下:
图2
2. 设置生成PSF
PSF=fspecial(‘motion’,LEN,THETA)
为了确定LEN和,,,,,根据观察模糊图像用试代法,先取值为LEN=30,THETA=30
即PSF=fspecial(‘motion’,30,30)
3. 用维纳滤波处理
运行指令
wnrl=deconvwnr(I0,PSF);
figure;
imshow(wnrl);
结果如下:
图3
调整PSF中的
参数
转速和进给参数表a氧化沟运行参数高温蒸汽处理医疗废物pid参数自整定算法口腔医院集中消毒供应
得
PSF=fspecial(‘motion’,35,35),运行如下:
图4
SF=fspecial(‘motion’,25,25),运行如下:
图5
显然,真实值小于30,30.
F=fspecial(‘motion’,20,20),运行如下:
图6
继续不断地试值,逐渐逼近真实值,最后得到处理效果较好一组数据
F=fspecial(‘motion’,26,15)
图7
4. 中值滤波 运行指令
K=medfilt2(wnrl,[3,3]);
figure;
imshow(K)
结果如下:
图8
五( 调试程序出现的错误:
在调试程序时出现如下错误提示:
??? Error using ==> images\private\checkinput>check_attributes
Function ORDFILT2 expected its first input argument, A,
to be two-dimensional.
Error in ==> images\private\checkinput at 37
check_attributes(A, attributes, function_name, variable_name, ...
Error in ==> ordfilt2>ParseInputs at 135
checkinput(A, {‘numeric’,’logical’}, {‘2d’,’real’}, mfilename, ‘A’, 1);
Error in ==> ordfilt2 at 51
[A,order,domain,s,padopt,msg] = ParseInputs(varargin{:});
Error in ==> medfilt2 at 53
b = ordfilt2(a, order, domain, padopt);
Error in ==> Untitled1 at 16
K=medfilt2(wnrl,[3,3]);
经仔细分析观察发现,出现此错误并不影响维纳滤波器的使用,而对于中值滤
波则实现不了,因而判断出错误是出在中值滤波的这段程序,但检查程序后发现
此段程序并没有错误,进而考虑到问题应是源图片对程序的影响,中值滤波所处
理的图像应该是灰度图像,而从D盘读入的图片是彩色的,所以需要用rgb2gray(i)指令将图像转化为灰度图像,改正后程序无误。
六(
总结
初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf
:
Matlab中提供了简单易用的图像处理功能,利用所提供的功能指令基本实现了
对运动模糊图像的去噪处理,其中涉及到了维纳滤波和中值滤波两种去噪算法,
达到问题所要求的处理效果,即能够清晰的观察到车轮的形状及螺丝的数目。
通过本次学习,进一步的了解matlab图像处理功能的强大及一些
相关算法在实际生活中的应用,极大地增强了我对图像处理及相关知识的学习兴趣并坚信,随着图像处理技术的不断完善和发展,会更广泛的应用于社会各个领域。