结课论文副本.docx
《结课论文副本.docx》由会员分享,可在线阅读,更多相关《结课论文副本.docx(13页珍藏版)》请在冰豆网上搜索。
结课论文副本
目录
对不均匀光照进行校正2
第1章对不均匀光照进行校正的系统功能2
第2章主要方法及其流程4
2.1算法步骤4
2.3系统流程图9
第3章应用前景10
第4章总结及自我评价11
参考文献12
附录:
13
2012-2013年第一学期《数字图像处理》科目考查卷
专业:
通信工程班级:
任课教师:
王新新
姓名:
学号:
成绩:
CorrectingNonuniformIllumination
对不均匀光照进行校正
第1章对不均匀光照进行校正的系统功能
近年来,随着信息技术的发展,图像资源日益丰富,图像增强在信息处理中占据了越来越重要的位置。
数字图像处理方法已经成为颗粒检测的一种重要手段,其目的就是从颗粒图像中准确获得颗粒外观轮廓的信息,进一步测量颗粒的特征参数并加以分析,为我们更好地了解颗粒特性并对其进行合理利用创造条件。
然而在基于视觉的检测和分析系统中,由于摄像机本身和摄像条件的影响以及被摄物体局部表面对光线的吸收与反射性能不同,常出现光源在景物上照射不均匀的现象,致使光照强的部分较亮,光照弱的部分较暗。
非均匀的光照度在图像中产生背景噪声,它和信号混合在一起,造成图像的对比度不强或出现黑斑,不仅破坏了图像的真实信息,还严重影响了图像的视觉效果,成为影响检测精度和分析结果的一个重要因素。
对于光照不均匀的图像,如果直接对其进行阈值分割,则会造成目标和背景分割的错误,影响后续颗粒的分析。
因此找到一种有效、快速的算法,对在这种环境拍摄的图像进行合理的灰度修正,消除不均匀的光照对图像造成的影响,是机器视觉检测系统必须解决的问题,这在实际生产中具有重要意义。
一方面,在图像产生过程中,由于图像是由光的反射形成的,常出现光源在景物上照射不均匀的现象,至使光照强的部分较亮,光照弱的部分较暗;另一方面,在图像生成和传输的过程中,经常会引起脉冲噪声,从而导致图像呈现出随机分布的黑白相间的噪声点。
上述两种现象的存在,不仅破坏了图像的真实信息,还严重影响了图像的视觉效果,对后续的边缘检测、模式识别等工作也会造成较大影响。
因此如何在噪声环境下对数字图像的光照不均匀校正具有重要意义。
比如说,在颗粒图像的采集过程中,由于实际环境中成像条件的限制,造成图像的背景光照不均匀,这给后续的粒度分析和计数等操作带来困难;汽车牌照自动识别系统工作在复杂的光照环境下,经常会出现车牌光照不均的现象,给图像二值化带来困难。
科学研究中的图像处理公式较多,要求也很严谨,以往采用FORTRAN语言和C等高级语言编程实现,具有难度大、耗时多的缺陷。
照度不均匀图片分辨率较差,许多信息被掩盖,为了较好地去除光照影响,真实再现原场景,本文应用Matlab解决这一难题,并简化了这部分工作,它由主程序及功能丰富的工具箱组成。
以rice图像实例,介绍用形态学方法对灰度图像进行处理与分析的技术要点,即对灰度I刳像进行如下操作:
去除图像的不均匀背景;用设置阈值的方法(thresholding)将结果图像转换成二值图像;通过成分标记(componencSlabeling)返回图像中的目标对象属性,并计算目标对象的统计数字特征。
Matlab图像处理工具箱提供了强大的图像处理、图形界面设计的功能,采用Matlab编程能够节省图像处理工作者的时间和精力,提高图像处理并行率。
第2章主要方法及其流程
以rice图像实例,介绍用形态学方法对灰度图像进行处理与分析的技术要点,即对灰度图像进行如下操作:
去除图像的不均匀背景;用设置阈值的方法(thresholding)将结果图像转换成二值图像;通过成分标记(componencSlabeling)返回图像中的目标对象属性,并计算目标对象的统计数字特征。
2.1算法步骤
(1)用工具箱函数imread和imshow读取和显示8位灰度图,如图1-1。
图1-1原图
(2)用形态学开运算(Morphologicalopening)估计背景。
通过调用imopen并对输入图像I执行形态学开运算,取半径为15的圆盘结构元素,且结构元素通过函数screl建立。
形态学开运算有消除不能完全包含在半径为15的圆盘内的目标对象的作用。
注意到图像(如图1-2)中央的背景照度(backgroundillumination)比底部要亮。
图1-2背景
(3)用surf指令察看背景图像。
用surf指令创建近似背景的彩色表面图(如图1-3),使人可以看到一个矩形区域上的数学函数特征。
在表面图中,[0,O]表示原点,或图像左上角,曲面图柱高部分表示背景的最亮像素(从而rice的背景的最亮像素出现在图像中央行的附近,而最暗像素出现在图像的底部)。
图1-3背景的表面图
(4)从原图像中减去背景图像。
须用图像处理工具箱的图像算术函数imsubtract产生均匀的背景(如图1-4)。
图1-4原图与背景的差
(5)调节图像对比度。
用imadjust指令增大图像对比度(如图1-5)。
imadjust函数需要一个输入图像且也可带两个矢量:
[lowhigh]和[bottomtop].输出图像通过将输入图像中low值映射到输出图像中的bottoom值、high值映射到输出图像中的top值,并将low与high间的值进行线性缩放而产生。
图1-5图像对比度调节结果
(6)对图像进行阈值处理。
先调用graythresh,自动计算一个适当的阈值;然后使用graythresh返回的阈值,调用imshow执行阈值处理,将灰度图像转换成二值图像(如图1-6)。
图1-6阈值处理后的二值图
(7)确定图像中的目标列象并予以标记。
调用bwlabel寻找连通成份而且用惟一的数字将他们分类标记。
bmlabel接受一个二值图像和指定各目标对象的连通性的值(4或8,表示4或8连通)作为输入。
注意:
结果的准确性依赖于许多因素,包括:
目标对象的大小;近似背景的准确程度;是否任何目标对象均相接(在这种情况下他们可能被标记为同一目标对象);在该实例中,rice的一些谷粒正好相接,因此bwlabel把它们视为同一目标对象。
(8)杳看标记矩阵。
看bwlabel产生的标记的近似形状是有用的。
调用imcrop并用鼠标选择包含某一目标对象的一部分及其一些背景的部分图,则所选部分图的像素值会在MATLAB窗口中返回。
若查看上面的结果,你会看到一个对象的一角标以某数字标记k,这意味着它是第k个被bwlabel分类的目标对象。
imcrop函数也可带矢量指定剪裁矩形的坐标。
在这种情况下,它不执行交互式操作。
举例来说,trect=[15251010];rice=imcrop(1abeled.rect)这个调用指定一个剪裁矩形的左上角坐标始于(15,25),而且高度和宽度均为lO。
一种查看标记矩阵的好方法是将它显示成一种似彩色索引图像(如图1-7)。
在假彩色索引图像中,将标记矩阵中区分每一对象的数字映射成了相关色彩映射矩阵中的一种不同的颜色。
当把一个标记矩阵看成一个RGB图像时,图像中的对象是比较容易区别的。
为此,使用label2rgb函数。
使用该函数时,可以指定色彩映射表,背景颜色,以及标记矩阵中的对象如何映射为色彩映射表中的颜色。
图1-7假彩色标记图
(9)测量图像中的对象属性。
regionprops指令可测量图像中的对象或区域的属性,并返回一个结构数组。
当将其作用于一个图像成分的标记矩阵时,它为每个成分建立一个结构元素,而每一结构元素包含一个标记成分的一些基本属性。
regionprops函数支持对许多不同的属性予以测量,但设属性参数为basic在返回最常用的三个量:
面积(Area),质心或块中心(centroid)和边框(BoundingBox)。
边框表示能容纳一个区域(所举实例中的谷粒)的最小长方形,为四元素矢量:
[1entopwidthheight]。
(10)在图像中计算目标对象的统计特性。
使用MATLAB函数max,mean,和hist可计算被阈值处理的目标对象的一些统计属性(如图1-8)。
图1-8谷粒大小分布图
2.3系统流程图
图2-1系统流程图
对灰度图像进行如下操作:
去除图像的不均匀背景;用设置阈值的方法(thresholding)将结果图像转换成二值图像;通过成分标记(componencSlabeling)返回图像中的目标对象属性,并计算目标对象的统计数字特征。
第3章应用前景
由于光照及拍摄角度等方面的原因常常造成拍摄图片照度不均匀,甚至有些图片出现大积的阴影,背景或目标出现全黑。
为了清晰地还真实场景,需对图片进行修正,消除照度影响。
照度不均匀图片分辨率较差,许多信息被掩盖,为了较好地去除光照影响,真实再现原场景,市场上也出现了多种多样的处理方法。
图像处理应用领域非常广泛,由于各种各样的原因,光照的不均匀性始终在影响着各个领域对图像的处理与需求。
在生物等领域中:
在颗粒图像的采集过程中,由于实际环境中成像条件的限制,造成图像的背景光照不均匀,这给后续的粒度分析和计数等操作带来困难;在交通领域:
汽车牌照自动识别系统工作在复杂的光照环境下,经常会出现车牌光照不均的现象,给图像二值化带来困难;在养殖领域:
由于奶牛图像是在奶牛场实地拍摄,故会产生一些光线特别强烈的图像,致使图像光照不均和降质,故影响后期对奶牛图像的二值化及识别处理;在医学领域:
医学上在图片增强、断层X线照技术以及医疗诊断等方面广泛的应用图像处理技术;在摄影以及日常生活中:
经常因为光照的原因,拍摄出来的照片白场和黑场均会出现或多或少的过度饱和影响照片的质量。
照度不均匀图片分辨率较差,许多信息被掩盖,为了较好地去除光照影响,真实再现原场景,应用Matlab解决这一难题,它由主程序及功能丰富的工具箱组成。
Matlab图像处理工具箱提供了强大的图像处理、图形界面设计的功能,采用Matlab编程能够节省图像处理工作者的时间和精力,提高图像处理并行率。
第4章总结及自我评价
随着科技的发展,人们对图像信息需求也随之增大,图像处理的重要性得到人们越来越多的关注。
校正不均匀光照理论作为一个视觉处理过程有着较长的研究历史,产生了大量的新理论、新方法。
一般来讲一个好的算法应满足计算精度高,抗噪声能力强,计算简单等特点。
通过这几天的学习,查阅了大量的相关资料以及文献,进一步深刻的了解到了图形图像处理的重要性,也学习了很多matlab中的函数以及图形图像处理过程中的算法和处理方法。
在此期间学习到了很多知识,收获很大。
感谢宿舍的姐妹们给予我的鼓励与支持,谢谢她们让我体会到了宿舍的凝聚力以及团队合作的乐趣。
在程序的编译设计过程中,产生了找不到工具箱函数等错误,通过仔细对照demo中的源程序并运行,才顺利通过。
调试运行过程还算顺利。
学会了在matlab中使用help函数查找不懂的函数的使用方法以及函数的意义。
这种matlab的处理的方法以及编程的思想非常值得我们借鉴,相信在以后的学习中还会有很大的作用。
数字图像处理以及校正图像光照的不均匀性的应用领域以及应用前景是非常可观的。
由于时间的仓促及自身专业水平的不足,整篇论文肯定存在许多缺点和错误,望老师批评指正。
参考文献
[1]崔屹.图像处理与分析——数学形态学方法及其应用[M]北京:
科学出版社,2000
[2]杨述斌.《数学形态在图像处理中的应用研究》[D].武汉:
华中科技大学,2002
[3]邓超等.《matlab应用实列精讲》[M]电子工艺出版社,2011.2
[4]章霄、赵文娟、董艳雪.《数字图像处理技术》[M].北京冶金工业出版社,2005.7
[5]张德丰等.《MATLAB数字图像处理》[M].北京机械工业出版社,2009.1
附录:
算法实现的程序代码:
%程序代码以及代码解析:
%第1步:
读取和显示8位灰度图rice图像
Clearall,closeall,clc,I=imread(‘rice.png’);
imshow(I)
%第2步:
使用形态开来估计背景
background=imopen(I,strel('disk',15));%取半径为15的圆盘结构元素对图像用开运算估计背景
figure,imshow(background)%显示背景图
%展示背景的彩色表面圈,对8×8格点取样
figure,surf(double(background(1:
8:
end,1:
8:
end))),zlim([0255]);
set(gca,’ydir’,’reverse’);
%第3步:
从原始图像中减去底色的图像
I2=imsubtract(I,background);
figure,imshow(I2)%从原图像中减去背景图像,并显示结果图
%第4步:
增加图像的对比度
I3=imadjust(I2,stretchlim(I2),[01]);
figure,imshow(I3)%调节图像对比度,并显示结果图
%第5步:
在阈值的图像,创建一个新的二进制图像阈值调整后的图像。
level=graythresh(I3);
bw=im2bw(I3,level);
figure,imshow(bw)%将灰度图像转换成二值图像
%第6步:
出版商图像中的对象
[labeled,numobjects]=bwlabel(bw,4);%成分标记,4具体指定4-连通成分。
%运行结果:
numobjects=102
%第7步:
检查标签矩阵
rect=[1051251010];
grain=imcrop(1abeled,rect)%用鼠标选取实现交互式剪裁标记成分的部分。
%运行结果:
grain=
5151515151515151000
5151515151515151000
5151515151515151000
5151515151515151000
5151515151515151000
5151515151515151000
051515151515151000
05151515151510000
05151515151510000
00515151000000
00000000000
%第7步:
查看整个标签矩阵
RGB_label=label2rgb(labeled,@spring,’c’,’shuffle’);
%把一个标记矩阵转换成一个RGB图像
figure,imshow(RGB_label);
%第8步:
测量物体在图像属性
graindata=regionprops(labeled,'basic');%调用regionprops,为rice的每一经阈值处理的谷粒返回一个基本属性的结构。
%运行结果:
102x1structarraywithfields:
Area
Centroid
BoundingBox
%第9步:
计算图像中的对象的统计特性
graindata(50).Area
%运行结果:
ans=209
allgrains=[graindata.Area];%用点号存取graindata的所有元素的面积域并将该数据存人新的矢量allgrains。
这个步骤简化了对面积量的分析,因为不必使用域名存取面积。
max(mlgrains)%找最大谷粒的大小。
allgrains中的数据是一维的,故函数mean和std是适用的。
%运行结果:
max_area=404
biggrain=find(allgrains==ans)%使用find指令返回该最大谷粒的成分标记
%运行结果:
biggrain=5063
mean(allgrains)%求平均粒径
%运行结果:
ans=170.0980
%第10步:
创建的直方图的晶粒的面积
nbins=20;
hist(allgrains,20)%作包含20个方柱的显示谷粒太小分布的直方图。
直方图表明,在rice图像中谷粒最通常的大小在300到400个像素的范围内。