好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

数字图像处理课程设计.docx

16页
  • 卖家[上传人]:第***
  • 文档编号:31347564
  • 上传时间:2018-02-07
  • 文档格式:DOCX
  • 文档大小:800.15KB
  • / 16 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 基于光斑定位问题的分析作者:彭冰指导老师:王振东单位:南京理工大学摘要:光斑中心检测室光学测量中常用的关键技术检测算法的精度和速度直接影响了测量的精度和速度常用最优化光斑中心检测算法有均值法、重心法及 Hough 变换法、基于最小二乘法的圆拟合文章针对光斑定位的问题,提出了一种选择方案本文探究光斑定位依靠的是逐像素迭代均值定位法,算法简单易懂,它在光斑图像分布比较均匀情况下精度、速度均较高利用 MATLAB 仿真环境,验证算法具有一定的有效性,能够解决光斑定位和圆心检测问题采用上述方法均有其可取之处关键字:光斑 均值 边缘检测 滤波 MATLAB引言光斑中心检测在激光扫描三角法、准直仪、光斑分析仪等光学测量、检测手段中是一项关键技术在模式识别领域中也一直是研究的热点人们提出了很多圆检测的算法例如:二值化均值法、重心法、Hough 变换圆检测、最小二乘拟合、遗传算法以及结合圆几何特性的算法逐像素迭代均值法属于最优化方法这类算法主要特点是准确性高,但是通常需要预先进行分割或分组处理,无法直接用于多个圆检测,对噪声的敏感度高于前一类方法而且在处理复杂光斑情况下会有些偏差,而本文算法增加了中值滤波,使得算法在中值算法的基础上具有抗噪声的能力,同时降低了对参数的依赖,提高了检测的速度、稳定性。

      正文1 问题分析据定位高精度光斑圆心坐标的要求,对计算机处理图像圆心的多种算法进行研究和比较, 分析产生误差的来源和解决的方法,提出采用约束条件预处理的迭代均值计算圆心的方法采用径向误差作为约束条件选择有效的图像边界点,既可避免不必要的计算, 又简单易懂,提高了精度,是一种准确有效的算法那么现在就立足于图像的本质,提出具体的解决步骤1、 先对图像中值滤波做去噪等预处理工作;(如是彩色图像应第一步进行灰度化再去噪)2、 对灰度图像做迭代阈值分割处理,使之为二值图像,再进行边缘跟踪,提取边缘;3、 把包围圆心位置的几个像素点找到包围起来求取其均值从而找到圆心所在位置2 算法思路在分析之后对算法的设计和选择就清晰了那么现在就阐述算法的具体步骤当图像为简单的圆光斑,再把它看做理想的圆的话,可以认为圆点必然是在水平 X 方向横跨最多像素点的那一行中因此算法设计上,针对每个圆,首先找出满足这个条件的一行(或几行,取中间行或中间两行),然后在 Y 方向上找到该像素行的中间位置,即为圆心——综合来说,圆心位置可能是落在某一个像素上,或 X 方向两个像素之间,或 Y 方向两个像素之间,或 XY 方向的 4 个像素之间,所以求其平均以达到减小偏差的目的。

      算法必须考虑这几种情况,算出精度为 0.5 的圆心位置算法的实现重点在于怎样分离出一个一个的圆,我采用的是逐像素法,先处理最开头的一个圆(底部坐标靠近左下角原点),然后把这个圆从图像中去除(对二值化图像,就是把该圆的白色像素变黑),之后再处理下一个圆(寻得条件同样是,底部坐标靠近左下角原点)……直到处理完怎么判断处理完呢?具体就是当该图像完全黑化的时候停止继续寻觅圆该算法的应用条件是:(1) 图片为二值化黑白图片,uint8非二值化图像可以通过简单的预处理达到,若处理后图像有噪声,此算法已内置滤波器,可对其处理)(2) 图片中仅含圆形,若不满足可进行一定的预处理光斑图片素材可在文件夹内找到)均值方法处理较好的前提是在该光斑为较为理想标准的圆但从事实上并不理想——虽然也可满足以上算法能找到圆心把该圆规范化成一个标准的圆,这样可使找出的圆心具有更高的可信度总而言之,本算法(逐像素迭代均值法)的适用条件为:(1)处理的光斑最好是严格的圆或近似圆如果是椭圆且偏心太厉害的话,径向误差方法也变得无效2)因为采用了逐像素处理,因此也必须满足之前所述该算法的条件查看文献资料,当采用“径向误差预处理的最小二乘”进行拟合运算时得到的效果会更好一些。

      提取圆心坐标,未用过算法,故不予置评下面第 3 部分对圆检测算法做一些简要介绍3 常用圆检测算法介绍1 Hough 变换先从基本的圆检测 Hough 变换入手假设希望在图像平面(X-Y 平面) 考察并确定一个圆周,令 为图像中确定的圆周上的点的集合,而 为集合中的niyxi ,.321|, yx,一点,它在参数系 中方程为:rba(4 )22rybxa显然该方程为三维锥面,对于图像中的任意确定的一点均有参数空间的一个三维锥面与之对应对于圆周上的任何点集合 ,这些三维锥面构成圆锥面簇,如下图所示:)(iyx图 4 圆锥面簇若集合中的点在同一圆周上,这些圆锥簇相交于参数空间上某一点 ,这点0,rba恰好对应于图像平面的圆心坐标及圆的半径对于离散图像,(4)式可以改写为:(5 )2020rybxaii其中 是考虑到对图像进行数字化和量化的补偿Hough 变换的基本思想在于证据积累,一般情况下圆变换的参数空间为三维的,在三维空间上进行证据累加的时间空间消耗是非常大的在具体应用中几乎是不可能的,不现实的若对图像平面上的 个点进行 Hough 变换,则总耗时为 。

      而用于NtRN1累加阵列的存储空间约为 字节(设 分别为图像的高度和宽度,积累单元采nmRn,用单字节)可见,以上运算的时空开销是相当大的2 逐像素迭代中值法(重点探究)1 迭代式阈值选择°迭代式阈值选择方法的基本思想是:开始时选择一个阈值作为初始估计值,然后按某种策略不断地改进这一估计值,知道满足约束条件为止在迭代过程中,关键之处在于选择什么样的阈值改进策略好的阈值改进策略应该具备两个特征:(1)能够快速收敛;(2)在每一个迭代过程中,新产生阈值优于上一次的阈值下面来具体介绍下迭代式阈值选择的数学模型:1)选择图像中灰度的中值作为初始阈值 𝑇02)利用阈值 把图像分割成两个区域—— ,用下式计算区域 的灰度𝑇 𝑅1和 𝑅2 𝑅1和 𝑅2均值 :𝜇1和 𝜇2,𝜇1=∑𝑇𝑖𝑖=0𝑖𝑛𝑖∑𝑇𝑖𝑖=0𝑛𝑖 𝜇2=∑𝐿‒1𝑇𝑖𝑖𝑛𝑖∑𝐿‒1𝑇𝑖𝑛𝑖3)计算出 后,用下式计算出新的阈值 :𝜇1和 𝜇2 𝑇𝑖+1𝑇𝑖+1=𝜇1+𝜇224)重复步骤直到 和 的差小于约束条件𝑇𝑖+1 𝑇𝑖2 逐像素扫描°逐像素扫描提取图像特征:1、位置当图像中的物体不是一个点时,物体的位置用物体面积的中心点表示,若图像中的物体对应的像素位置坐标为 ,则可用下式计算物体位置坐标(𝑥1,𝑦1)(𝑖=0,1,…,𝑛‒1;𝑗=0,1,…,𝑚‒1)𝑥=1𝑚𝑛𝑛‒1∑𝑖=0𝑚‒1∑𝑗=0𝑥𝑖,𝑦=1𝑚𝑛𝑛‒1∑𝑖=0𝑚‒1∑𝑗=0𝑦𝑖2、周长若将图像中的像素视为单位面积小方块时,则图像中的区域和背景均由小方块组成。

      区域的周长即为区域和背景缝隙的长度之和,此时边界用隙码表示,计算出隙码的长度就是物体的周长如图所示图形,边界用隙码表示时,周长为 24周长 24 图)若将像素视为一个个点时,则周长用链码表示,求周长也就是计算链码的长度当链码值为奇数时,其长度为 ;2当链码值为偶数时,其长度为 1; 即周长 p 可表示为: p=𝑁𝑒+ 2𝑁0此算法计算周长的就是利用这种计算方法程序存放于 xintai.m 文件中3、面积面积是衡量物体所占范围的一种方便的客观度量面积与其内部灰度级的变化无关,而完全由物体或区域的边界决定同样面积条件下,一个形状简单的物体其周长相对较短本算法计算面积的方法是像素计数法像素计数法 最简单的面积计算方法是统计边界及其内部的像素的总数根据面积的像素计数法的定义方式,求出物体边界内像素点的总和即为面积,计算公式如下𝐴=𝑁∑𝑥=0𝑀∑𝑦=0𝑓(𝑥,𝑦)%====形态特征值计算===%A=bwarea(I); % 计算目标的面积(存在于 xintai.m 中)4、圆心坐标迭代二值化后找到光斑中心周围像素点取平均:x0=mean(r);y0=mean(c); (5)半径R= ,A 为面积(xintai.m)𝐴𝜋(6)圆度、精度圆度: , (xintai.m)C= 周长 2面积 ×4𝜋-𝜀 𝜀为修正因子精度:Rsq= ,(或者称为欧几里得距离)(主文件 PB.m 中)(𝑋‒𝑥0)2+(𝑌‒𝑦0)24 设计步骤判断光斑图片是否为灰度图if 语句判断 若彩色,灰度化中值滤波去噪图像二值化最优阈值迭代逐像素跟踪处理获得光斑大小包围圆心周围像素点取均值滤波功能在PB.m中迭代至精度范围内 功能存放于Optimumthreshold.mfor循环逐像素寻找功能存放于xintai.m功能存放于主文件PB.mGUI输出结果MATLAB GUI 设计界面及标题栏按钮的设计,按钮程序均在 PB.m 中具体设计耗时共 9 天,界面设计 1 天,通用选题图像处理分析理解编程 3 天,通用处理找错 1 天,专用处理定题分析理解并寻找文献资料 1 天,编写代码 2 天,排错半天,论文形成 1 天半。

      所做的“光斑定位”没有做到老师要求的那种高精度定位,不知道是不是老师要求的那种高精度定位,因为在处理复杂光斑时,发现图像特征参数,如圆度有较大偏差,姑且先把其列为专用选题内的命题另外,程序仍有很多 bug,限于作者水平,未改出来1 GUI 界面设计(2011.1.1 设计)°(1)打开 MATLAB ,点击 GUIDE ,设计空白 GUI,得到所需要的界面Axes 功能是显示图像;另外几个静态文本是为了显示对应的数据;界面把显示光斑定位特征值的 Satics Text 设计为 Enable,方便复制计算结果对“原始图像”、“处理后图像”这两个 Satics Text 设计为 Unable,是为了不便于更改图像路径,减少 Bug 产生的机会2)点击 Menu-Editor ,设计主菜单栏,设计了“文件”、“通用处理”、“专用处理”、“帮助”根栏目及其对应的子栏目求得圆点坐标及偏差精度 Rsq(3)设计完毕,下一步是往各按钮里写代码2 通用选题图像处理设计(2011.1.2-2011.1-5)(简要介绍)°(详情可在程序上做具体试验,PB.m 文件内有详细的注解,对理解算法很方便,在此限于篇幅不做介绍。

      另外,在图片文件夹内有处理后的效果图)(离散小波变换(差分梯度算子锐化效果图)(同态增析效果图)(分水岭阈值分割效果,较自动阈值好)(中值滤波效果图)(一个属于边界描述算法得到的效果图,处理先自称为色彩描绘,有点意思)Huffman 编码并计算压缩比率:通用选题图像处理就介绍到这,下面进入正题:简单光斑定位的介绍3 光斑定位(2011.1.6-1.8 )°1、打开、读取、保存先打开并读取一张灰色或者彩色的椒盐光斑图片,格式为bmp打开功能在函数Open_Callback实现[filename,pathname]=uigetfile('*.bmp') ;set (handles.edit1,'string',[pathname,filename]); % 设置edit1的字符内容file=get(handles.edit1,'string');A1=imread(file);axes(handles.axes1); % 将打开的图像文件显示在轴1imshow(A1); % 对图像进行显示本论文图片示例为”flucapeper.bmp” 。

      而既可以读取彩色也可以读取灰色功能函数,要在全局范围下均实现,限于作者水平,会把这个编的很麻烦,所以只在函数flucalocation_Callback下实现file=get(handles.edi。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.