基于OpenCV 的圆形标记点的提取*

2013-12-23 04:46江,张
组合机床与自动化加工技术 2013年5期
关键词:轮廓椭圆边缘

刘 江,张 岑

(北京科技大学 机械工程学院,北京 100083)

0 引言

多视点云拼接是将不同坐标系下采集到的点云经过空间变换,转为一个坐标系下的点云,进而将模型各个部分拼接在一起。近年来,国际上许多学者做了大量的研究,提出大量的拼接方法。标记点拼接法以操作方便,稳定性高,得到了广泛的应用。世界级的Creaform 公司就采用标记点拼接法来拼接扫描的点云。另外德国的ATOS 系统也是采用这种方法。

标记点拼接方法首先要对贴在被测物上的一组或多组标记点中心进行提取,得到同组标记点在不同坐标系下的坐标位置,换算出两组坐标系的变换矩阵,从而将两组坐标系下被测物的点云转换到相同坐标系下,完成多视点云的拼接。

在对圆形标记点进行提取时随机性因素很强,图像背景复杂,扫描光照特性未知[1],标记点面积较小,成像后变形为类椭圆,提取轮廓和圆心比较困难。

OpenCV 是开源的计算机视觉函数库[2],实现了大量通用算法,具有强大的图像和矩阵运算能力,在物体跟踪、模式识别、图像处理和三维视觉等方面得到广泛的应用,为数字图像处理和计算机视觉应用提供了极大的方便。利用OpenCV 对类椭圆图像进行图像处理以及椭圆拟合,方便快捷,对多视点云拼接中的标记点提取以及计算机视觉其他方面的应用有着重要意义。

本研究中对于圆标记点的提取,首先提取与圆标记点相关的图像元素,然后对图像元素进行椭圆特征参数提取。提取图像元素时采用边缘检测的方法,提取椭圆特征参数采用椭圆拟合的方法,在椭圆拟合时采用几何约束,以便精确识别所需要的标记点。

1 圆形标记点提取技术

1.1 平滑处理

平滑处理用来减少图像的噪声或失真。平滑处理有五种不同的方法:简单平均法,简单无缩放的模糊,中值滤波,高斯滤波和双边滤波。

本文采集的图像精度较高,噪声较少,一般采用简单平均法。假设输入的像素为a5,它的8 邻域像素为a1、a2、a3、a4、a6、a7、a8、a9,输出像素为b,那么:

1.2 边缘检测

边缘检测实际上是基于幅度不连续性进行分割的一种方法,也即检测变化类型的局部特征[3],例如,灰度值的突变[4]、颜色的突变[5]、纹理的突变等。边缘检测的算法有很多,一般分为四类:经典算子法、最优算子法、多尺度方法、自适应平滑滤波法等。

Canny 算子[6]进行边缘检测的方法属于最优算子法,是目前最有效的一种方法。Canny 算法给定了最优化检测边缘的三个指标:好的信噪比;好的边缘定位性能;对唯一边缘有唯一的响应。

具体算法如下:

步骤1:用高斯滤波器平滑图象;

以二维信号为例加以讨论:二维高斯滤波函数G(x,y)定义为:

图像卷积:

其中,σ 是一个尺度参数,σ 越小,图像在小的范围内平滑,σ 越大,图像在大的范围内平滑;I(x,y)是原图像函数。

步骤2:边缘点定位;

首先求出每一点的局部梯度:

计算平滑梯度方向:

梯度方向上满足局部梯度值最大的点为边缘点。

步骤3:用双阈值算法检测和连接边缘。

双阈值算法对步骤2 得到的边缘点进行进一步检测,作用两个阈值τ1和τ2,一般情况下τ1与τ2的比值在2:1 至3:1 之间,从而可以得到两个阈值边缘图象G1[x,y]和G2[x,y]。但是边缘不闭合。双阈值法要使G2[x,y]中的边缘闭合,当到达边缘的断点时,该算法就在G1[x,y]的8 邻点位置寻找阈值在τ1和τ2之间的像素,因此算法不断地在G1[x,y]中收集边缘,直到将G2[x,y]连接起来为止。

1.3 轮廓查找

虽然用Canny 算子进行边缘检测可以根据像素间的差异检测出轮廓边界的像素,但是它并没有将轮廓作为一个整体。下一步是要将这些边缘像素组装成轮廓。

轮廓是构成一个形状的边界,一个轮廓一般由一系列的点组成一条曲线,有多种方法可以表示曲线。OpenCV 中一般用序列来存储轮廓信息,序列是内存存储器某种结构形式的链表,其中每一个元素是曲线中一个点的位置。函数cvFindContours()可以查找二值图像的轮廓,cvFindContours()查找的轮廓可以是从cvCanny()得到的有边缘像素的轮廓,也可以是cvThreshold()函数阈值分割后得到的图像轮廓。该函数查找到轮廓后讲像素点存放到序列中。

1.4 几何约束

边缘检测和轮廓查找的结果不仅包括类椭圆标记点特征,也包括被测物或背景中其他椭圆的边缘以及其他形状干扰特征,因此必须进行完整的类椭圆特征识别,提取出所需的圆标记点的轮廓。利用轮廓变化的基本特征进行约束,即对轮廓边缘进行几何约束,查找出有效的类椭圆圆标记点轮廓。

几何约束包括面积法和长度法。

图像中图形面积S 可用图形区域中像素的个数来表示,单位为像素。

其中,Smin和Smax为区域面积阈值。

轮廓的长度用L 来表示,单位为像素,同样Lmin<L <Lmax其中,Lmin和Lmax为长度阈值。

面积和长度是轮廓的简单特性,cvCountArea()用来计算轮廓包围的面积,cvArcLength()用来计算轮廓的长度。

1.5 椭圆拟合

在对类椭圆特征进行椭圆拟合时,常用的方法有霍夫变换法和最小二乘法[7-9]。

利用霍夫变换进行椭圆拟合,需要对每一个检测点计算,时间较长,而且拟合不准确。因此本研究采用最小二乘法。

最小二乘法是在随机误差为正态分布时,由最大似然法推出的最优估计技术[10]。它可以使测量误差的平方和最小,适用于从一组测量值中求出一组未知量。

假设一般的椭圆方程为:

为参数设置一个约束条件,避免零解,假设A +C=1 显然,直接用上述方程对边缘检测后的点进行最小二乘处理,可以得到方程中的各系数,求目标函数:

最小值来确定各系数,再通过极值原理,使f(A,B,D,E,F)最小,必有:

由此,可以得到一个线性方程组,利用求解线性方程组的方法(主高斯消元法)求解。结合约束条件,求得各参数的值。

OpenCV 中函数cvFitEllipse()使用最小二乘法进行椭圆拟合,返回一个与轮廓最相似的椭圆。

图1 流程图

2 圆形标记点提取的实现

2.1 流程

应用OpenCV 函数库中有关图像处理的一系列函数对采集的圆形标记点图像进行处理,最终提取出类椭圆的标记点图像,所用的流程如图1 所示。

2.2 圆形标记点识别过程

从文件中读取图像时的语句为:

从文件中读取图像程序如下:

读取的原图像如图2 所示,转换后灰度图像如图3 所示。

图2 原图像

图3 灰度图

对图像进行平滑处理以及边缘检测的程序如下:

cvSmooth ();//采用简单模糊的方法,因此设置方法参数为CV_BLUE

cvCanny();//将最高阈值为最低阈值的三倍

平滑处理后图像如图4 所示,边缘检测的图像如图5 所示。

图4 平滑处理结果

图5 边缘检测结果

进行类椭圆标记点识别的程序如下:

几何约束后的图像如图6 所示。

如图7 将椭圆拟合后的图像在原图上显示,如图8 去除干扰后单独显示。

图6 几何约束结果

图7 椭圆拟合在原图显示

图8 单独显示

拟合后得到的圆心坐标如表1 所示。

表1 圆心坐标

3 结束语

本研究在于利用OpenCV 计算机视觉函数库准确提取标记点的类椭圆轮廓以及中心,从而直接求出变换矩阵,完成不同坐标系下的点云拼接。实验中边缘提取采用的阈值、几何约束采用的阈值都直接影响拟合的类椭圆,采用合适的阈值可以有效排除杂质背景,更为简单、快捷的提取所需的类椭圆标记点。

[1]杨伟光. 三维扫描系统中标志点识别与人脸图像的立体匹配研究[D]. 南京:东南大学,2008.

[2]Gary Bradski,Adrian Kaehler 著. Learning OpenCV(中文版)[M]. 北京:清华大学出版社,2009.

[3]刘祚时,沈哲. 改进的图像分割方法的应用[J]. 煤炭技术,2010,29(3):218-220.

[4]于梅,殷冰,梁栋,等. 基于边缘检测的contourlet 变换图像去噪[J]. 计算机技术与发展,2008,18(6):104-106.

[5]李惠光,任爽,李国友,等. 一种基于颜色信息的足球机器人目标搜索方法[J]. 计算机仿真,2007(3):152-155.

[6]Canny.J,A computational approach to edge detection,IEEE Transactions on Pattern Analysis and Machine Intelligence,1986,PAMI-8:639-643.

[7]Grander W,strebel R,et. al. Least-squares fitting of circles and ellipses. BIT Numerical Mathematics,1993,34(4):558-578.

[8]Rosin P L,Ellipse fitting by accumulating five-point fits.Pattern Recognition Letters.1993,14(8):661-669.

[9]钮毅. 部分遮挡条件下椭圆目标识别[D]. 上海:上海交通大学自动化学院,2007.

[10]闫蓓,王斌,李媛. 基于最小二乘法的椭圆拟合改进算法[J]. 北京航空航天大学学报,2008,34(3):295-298.

猜你喜欢
轮廓椭圆边缘
Heisenberg群上由加权次椭圆p-Laplace不等方程导出的Hardy型不等式及应用
例谈椭圆的定义及其应用
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
巧用点在椭圆内解题
高速公路主动发光轮廓标应用方案设计探讨
一张图看懂边缘计算
椭圆的三类切点弦的包络
创造早秋新轮廓
在边缘寻找自我