logo资料库

基于OpenCV的圆形标记点的提取.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
第 5 期 2013 年 5 月 组 合 机 床 与 自 动 化加 工 技 术 Modular Machine Tool & Automatic Manufacturing Technique No. 5 May 2013 文章编号:1001 - 2265(2013)05 - 0027 - 03 基于 OpenCV 的圆形标记点的提取* 刘 江,张 岑 ( 北京科技大学 机械工程学院,北京 100083) 摘要:文章提出了一种基于 OpenCV 的圆形标记点的提取方法,通过对图像进行平滑处理、边缘检测、轮 廓查找、几何约束以及椭圆拟合,实现圆形标记点的提取,求出中心坐标。该方法主要应用于多视点云 拼接以及其他有关圆形物体识别的场合。实验结果证明,该方法能快速有效的提取圆形标记点。 关键词:OpenCV; 圆形标记点的提取; 中心坐标 文献标识码:A 中图分类号:TH165;TG65 ( The Extraction of Circular Markers Based on OpenCV LIU Jiang ZHANG Cen , , : , University of Science and Technology Beijing China School of Mechanical Engineering This study proposes a circular markers extraction method based on OpenCV. After image Abstract , smoothing edge detection the circular markers , are extracted and the center coordinates are computed. This method is mainly used in multi-view point clouds registration and other round object recognition occasions. Experiments results prove that this meth- od is fast and efficient to extract circular markers. Key words contour finding geometric constraints and ellipse fitting circular markers Beijing 100083 extraction OpenCV , : ; ; , , ) 0 引言 多视点云拼接是将不同坐标系下采集到的点云经 过空间变换,转为一个坐标系下的点云,进而将模型各 个部分拼接在一起。近年来,国际上许多学者做了大 量的研究,提出大量的拼接方法。标记点拼接法以操 作方便,稳定性高,得到了广泛的应用。世界级的 Cre- aform 公司就采用标记点拼接法来拼接扫描的点云。 另外德国的 ATOS 系统也是采用这种方法。 标记点拼接方法首先要对贴在被测物上的一组 或多组标记点中心进行提取,得到同组标记点在不 同坐标系下的坐标位置,换算出两组坐标系的变换 矩阵,从而将两组坐标系下被测物的点云转换到相 同坐标系下,完成多视点云的拼接。 在对圆形标记点进行提取时随机性因素很强,图 ],标记点面积较小, 像背景复杂,扫描光照特性未知[ 成像后变形为类椭圆,提取轮廓和圆心比较困难。 OpenCV 是开源的计算机视觉函数库[ ],实现了 大量通用算法,具有强大的图像和矩阵运算能力,在 物体跟踪、模式识别、图像处理和三维视觉等方面得 到广泛的应用,为数字图像处理和计算机视觉应用 提供了极大的方便。利用 OpenCV 对类椭圆图像进 1 2 行图像处理以及椭圆拟合,方便快捷,对多视点云拼 接中的标记点提取以及计算机视觉其他方面的应用 有着重要意义。 本研究中对于圆标记点的提取,首先提取与圆标 记点相关的图像元素,然后对图像元素进行椭圆特征 参数提取。提取图像元素时采用边缘检测的方法,提 取椭圆特征参数采用椭圆拟合的方法,在椭圆拟合时 采用几何约束,以便精确识别所需要的标记点。 1 圆形标记点提取技术 1. 1 平滑处理 平滑处理用来减少图像的噪声或失真。平滑处 理有五种不同的方法: 简单平均法,简单无缩放的模 糊,中值滤波,高斯滤波和双边滤波。 本文采集的图像精度较高,噪声较少,一般采用 ,它的 8 邻域像 ,那么: 简单平均法。假设输入的像素为 a5 素为 a1 、a2 、a3 、a4 、a6 、a7 、a8 、a9 ,输出像素为 b a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 ( ) 1 b = 9 1. 2 边缘检测 边缘检测实际上是基于幅度不连续性进行分割 收稿日期:2012 - 10 - 23;修回日期:2012 - 11 - 27 * 基金项目:广东省教育部广学研结合项目资助( 2011A090200007 ) 作者简介:刘江( ) ,男,北京人,北京科技大学机械工程学院副教授,研究方向为数控技术和逆向工程; 通讯作者: 张岑( 1968— ) ,女, 1987— 河北人,北京科技大学机械工程学院研究生,研究方向为逆向工程,( ) E - mail zhangcenqueen@ 163. com。
·82· 组合机床与自动化加工技术 第 5 期 3 ] 4 ] 5 、颜色的突变[ ],例 的一种方 法,也 即 检 测 变 化 类 型 的 局 部 特 征[ 如,灰度值的突变[ 、纹理的突变等。 边缘检测 的 算 法 有 很 多,一 般 分 为 四 类: 经 典 算 子 法、最优算子法、多尺度方法、自适应平滑滤波法等。 ]进行边缘检测的方法属于最优算 子法,是目前最有效的一种方法。Canny 算法给定了 最优化检测边缘的三个指标: 好的信噪比; 好的边缘 定位性能; 对唯一边缘有唯一的响应。 Canny 算子[ 6 : 用高斯滤波器平滑图象; 具体算法如下: 步骤 1 以二维信号为例加以讨论: 二维高斯滤波函数 , ) 定义为: y ( G x ( G , ) y x = exp - ( ) x2 + y2 2σ ( 2 ( ) 2 ( x IG , ) y ( σ 是一个尺度参数, σ 越大,图像在大的范围内平滑; , ) ) y σ 越小,图像在小的范围内 ) 是原图 , y , ) y I = G x 3 I ( x x ( 图像卷积: 其中, 平滑, 像函数。 : 边缘点定位; 步骤 2 首先求出每一点的局部梯度: ( ( y槡 ] [ α = tg - 1 IG y = 计算平滑梯度方向: IG x  G x  , ) y G  ) M + x ( 2 2 ) ( ) 4 ( ) 5 : 和 τ2 ,一般情况下 τ1 : 用双阈值算法检测和连接边缘。 梯度方向上满足局部梯度值最大的点为边缘点。 步骤 3 双阈值算法对步骤 2 得到的边缘点进行进一步 检测,作用两个阈值 τ1 的 : 1 之间,从而可以得到两个阈值边缘 1 至 3 比值在 2 , [ ]和 G2 ] 。但是边缘不闭合。双阈 图象 G1 y x ]中的边缘闭合,当到达边缘的断点 , [ 值法要使 G2 y x ]的 8 邻点位置寻找阈值在 τ1 时,该算法就在 G1 [ , x y , ]中收 和 τ2 y 集边缘,直到将 G2 1. 3 轮廓查找 之间的像素,因此算法不断地在 G1 , ]连接起来为止。 y 与 τ2 [ x [ x [ x , y 虽然用 Canny 算子进行边缘检测可以根据像素 间的差异检测出轮廓边界的像素,但是它并没有将 轮廓作为一个整体。下一步是要将这些边缘像素组 装成轮廓。 轮廓是构成一个形状的边界,一个轮廓一般由 一系列的点组成一条曲线,有多种方法可以表示曲 线。OpenCV 中一般用序列来存储轮廓信息,序列是 内存存储器某种结构形式的链表,其中每一个元素 ( ) 可 是曲线中一个点的位置。函数 cvFindContours 以查找二值图像的轮廓, ( ) 查找的轮 ( ) 得到的有边缘像素的轮廓,也 廓可以是从 cvCanny ( ) 函数阈值分割后得到的图像轮 可以是 cvThreshold 廓。该函数查找到轮廓后讲像素点存放到序列中。 1. 4 几何约束 cvFindContours 边缘检测和轮廓查找的结果不仅包括类椭圆标 记点特征,也包括被测物或背景中其他椭圆的边缘 以及其他形状干扰特征,因此必须进行完整的类椭 圆特征识别,提取出所需的圆标记点的轮廓。利用 轮廓变化的基本特征进行约束,即对轮廓边缘进行 几何约束,查找出有效的类椭圆圆标记点轮廓。 几何约束包括面积法和长度法。 图像中图形面积 S 可用图形区域中像素的个数 来表示,单位为像素。 Smin < S < Smax ( ) 6 其中, 和 Smax 为区域面积阈值。 Smin 轮廓的长度用 L 来表示,单位为像素,同样 Lmin 其中, < L < Lmax 为长度阈值。 面积和长度是轮廓的简单特性, 和 Lmax Lmin cvCountArea ( ) ( ) 用来计算 cvArcLength 用来计算轮廓包围的面积, 轮廓的长度。 1. 5 椭圆拟合 在对类椭圆特征进行椭圆拟合时,常用的方法 有霍夫变换法和最小二乘法[ 7-9 ] 。 利用霍夫变换进行椭圆拟合,需要对每一个检 测点计算,时间较长,而且拟合不准确。因此本研究 采用最小二乘法。 最小二乘法是在随机误差为正态分布时,由最 大似然法推出的最优估计技术[ 。它可以使测量误 差的平方和最小,适用于从一组测量值中求出一组 未知量。 ] 10 假设一般的椭圆方程为: Ax2 + Bxy + Cy2 + Dx + Ey + F = 0 ) 为参数设置一个约束条件,避免零解,假设 A + C = 1 显然,直接用上述方程对边缘检测后的点进行最 小二乘处理,可以得到方程中的各系数,求目标函数: 8 ( ( f , B , D , E , F ) A ( n = ∑ i = 1 Ax2 i + Bxi yi + Cy2 i + Dxi + Eyi + F ( ( ) 9 ) 2 , A 最小值来确定各系数,再通过极值原理,使 f , E ) 最小,必有: , F , D B f A f B f D f E f F = = = = 10 由此,可以得到一个线性方程组,利用求解线性 方程组的方法( 主高斯消元法) 求解。结合约束条 件,求得各参数的值。 = 0 ( ) OpenCV 中函数 cvFitEllipse 进行椭圆拟合,返回一个与轮廓最相似的椭圆。 2 圆形标记点提取的实现 ( ) 使用最小二乘法 2. 1 流程 应用 OpenCV 函数库中有关图 像处理的一系列函数对采集的圆形 标记点图像进行处理,最终提取出 类椭圆的标记点图像,所用的流程 如图 1 所示。 图 1 流程图
2013 年 5 月 刘 江,等: 基于 OpenCV 的圆形标记点的提取 ·92· 2. 2 圆形标记点识别过程 从文件中读取图像时的语句为: ) ; 0 IplImage * Image = 0 ; ( Image = cvLoadImage “filename” , 从文件中读取图像程序如下: ; IplImage * Image = 0 ( Image = cvLoadImage ( ) ; cvNamedWindow ( ) ; cvShowImage ( ) ; cvCvtColor ) ; , 0 “filename” / / 创建窗口 / / 显示图像 / / 将彩色图像转换为灰度图像 读取的原图像如图 2 所示,转换后灰度图像如 / / 载入原图像 图 6 几何约束结果 图 3 所示。 图 2 原图像 图 3 灰度图 对图像 进 行 平 滑 处 理 以 及 边缘 检 测 的 程 序 如 图 7 椭圆拟合在原图显示 图 8 单独显示 拟合后得到的圆心坐标如表 1 所示。 表 1 圆心坐标 圆心 x y 1 2 3 4 5 6 349. 0 288. 0 555. 0 496. 0 331. 0 513. 0 160. 0 154. 0 149. 0 148. 0 103. 0 102. 0 cvSmooth ( ) ; / / 采用简单模糊的方法,因此设置方法参 3 结束语 下: 数为 CV_BLUE ( ) ; cvCanny / / 将最高阈值为最低阈值的三倍 平滑处理后图像如图 4 所示,边缘检测的图像 如图 5 所示。 本研究在于利用 OpenCV 计算机视觉函数库准确 提取标记点的类椭圆轮廓以及中心,从而直接求出变 换矩阵,完成不同坐标系下的点云拼接。实验中边缘 提取采用的阈值、几何约束采用的阈值都直接影响拟 合的类椭圆,采用合适的阈值可以有效排除杂质背景, 更为简单、快捷的提取所需的类椭圆标记点。 [参考文献] 图 4 平滑处理结果 进行类椭圆标记点识别的程序如下: 图 5 边缘检测结果 [ ] 2 CvMemStorage* stor CvSeq* cont / / 定义序列指针 ; ; / / 分配存储空间 cont = cvCreateSeq ( ) ; cvFindContours / / 序列初始化 ( ) ; / / 轮廓查找,查找方式为 CV _RETR _ LIST ( ; ; cont double a = abs ( double b = abs cont = cont - > h_next ( cvContourArea cvArcLength cont ( ) ) ; cont ) ) ; ( / / 求轮廓面积 / / 求轮廓长度 ) a > = minArea && a < = maxArea && b > = minLen && / / 进 行 几 何 约 束,面 积 阈 值 设 置 为 300 到 ) ; b < = maxLen for { ( if 800 ,长度阈值设置为 50 到 200 { cvDrawContours ( ) ; ( ) ; / / 绘制轮廓 / / 将选择的轮廓放到序列中 cvCvtSeqToArray cvFitEllipse ( ) ; ( ) ; / / 拟合椭圆轮廓 / / 绘制椭圆轮廓 cvEllipse } } 几何约束后的图像如图 6 所示。 如图 7 将椭圆拟合后的图像在原图上显示,如 图 8 去除干扰后单独显示。 [ ] 杨伟光. 三维扫描系统中标志点识别与人脸图像的立体 1 ] 匹配研究[ . 南京: 东南大学, D , Adrian Kaehler 著. Learning OpenCV 2008. ( 中文 Gary Bradski 版) [ M ] . 北京: 清华大学出版社, 2009. [ ] 刘祚时,沈哲. 改进的图像分割方法的应用[ ] J 3 . 煤炭技 术, 2010 ( , 29 3 ) : 218 - 220. [ ] 于梅,殷冰,梁栋,等. 基于边缘检测的 contourlet 变换图 4 104 - 106. [ ] 李惠光,任爽,李国友,等. 一种基于颜色信息的足球机器 5 ] 像去噪[ . 计算机技术与发展, J , 18 2008 ) : 6 ( ] 人目标搜索方法[ . 计算机仿真, J 2007 ( 3 ) : , Canny. J A computational approach to edge detection 152 - 155. , IEEE , Transactions on Pattern Analysis and Machine Intelligence 1986 : , PAMI-8 , Grander W 639 - 643. , et. al. Least - squares fitting of cir- strebel R , , 1993 34 cles and ellipses. BIT Numerical Mathematics ( ) : 4 558 - 578. , Rosin P L Ellipse fitting by accumulating five - point fits. Pattern Recognition Letters. 1993 ) : 661 - 669. ] [ ] 钮毅. 部分遮挡条件下椭圆目标识别[ . 上海: 上海交 D 9 , 14 8 ( 2007. 通大学自动化学院, ] 闫蓓,王斌,李媛. 基于最小二乘法的椭圆拟合改进算 , 34 295 - ( 编辑 李秀敏) ] 法[ . 北 京 航 空 航 天大 学 学 报 , J 2008 ) : 3 ( [ 10 298. [ ] 6 [ ] 7 [ ] 8
分享到:
收藏