论文部分内容阅读
椭圆检测是图像匹配与识别、图像理解与分析、计算机视觉等领域的一项基础任务,许多研究人员对椭圆检测问题进行了深入研究,提出了多种检测算法。它们大致可以分为三类:投票/聚类、最优化、基于弧段的方法。前两类算法都是直接基于图像中大量离散的边点进行检测。随着图像复杂性的增加,图像中边点的数目增多,噪声、孤立点、无关点也增多,势必会影响椭圆检测的效率和准确度。因此,一些研究人员提出了用弧段来代替离散的边点作为椭圆检测数据的方法。弧段比离散的边点包含相对更加准确和完整的几何形状信息,可以避免大量无关的其它边点数据参与椭圆检测。这类方法在检测效率和准确度上具有一定优势。本文在研究和分析了常见椭圆检测算法的基础上,从边界跟踪、弧段提取、弧段组合、椭圆检测等方面入手,探讨了与基于弧段组合的椭圆检测算法相关的几个关键问题并提出了解决方法:(1)为了排除图像的噪声、孤立点,正确地连接相邻的边点,获得连续、局部邻域内数值光滑的边段,尽可能避免产生错误边界走向的边段,本文设计了一种边点梯度方向引导的光滑边段提取方法。这种方法利用最近跟踪产生的链码中所含的方向信息来确定下一边点的搜索方向,利用边点的梯度方向来引导边界上分岔处的跟踪路径,从而实现了边界上不连续的1~2个断点的跨越,并有效地降低相交边界上分岔选择错误的发生,其效果优于常用的8-连通边界跟踪算法。(2)为了去除图像中与椭圆检测无关的边点数据,正确地获得椭圆检测需要的弧段,依据理想的椭圆边界上不存在角点和拐点的几何性质,本文设计了一种分段点的检测方法。这种方法利用边点的离散曲率来确定角点,利用相邻4个点形成曲线的凸凹特性来定位拐点,实现了边段的正确分割。然后,结合椭圆弧的特性去除不构成椭圆弧的边段,从而有效地减少了无关边段对检测的干扰,实现了弧段的有效提取,为后续的椭圆检测工作提供更加准确的基础数据。(3)因为上述所提取的弧段一般是椭圆边界的一部分,为了获得尽可能完整的椭圆边点数据,本文设计了弧段的组合算法。该算法根据弧段与弧段两端的连接情况来判断它们是否属于同一椭圆,实现了弧段的正确组合。相比弧段,同属一个椭圆的弧段组合能够为椭圆的检测提供更加完整的边点数据。(4)以数值稳定的直接最小二乘椭圆拟合算法为基础,完成了基于弧段组合的椭圆检测算法的设计与实现。在算法的实现技术方面,采用Java与MATLAB混合编程,充分发挥了Java动态数据类型丰富MATLAB擅长矩阵运算、特征值和特征向量计算的优点,使得算法实现的过程变得更加灵活,降低了程序开发的复杂度。最后,采用所设计的基于弧段组合的椭圆检测算法对合成图像和实际图像进行了实验与分析,它可以准确、有效地完成图像中椭圆的检测及其参数的提取结果表明该算法是有效可行的。