基于Hough变换的四边形分类识别算法研究

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

截式方法一样。不同的是,这个公式的轨迹是ρθ平面上的正弦曲线。与斜截式方法一样,
在xcosθj+ysinθj=ρi上共线的点集生成参量空间中交于点(ρi,θj)的正弦曲线。θ的增加
和对应的ρ的求解,给出了由(ρi,θj)决定的单元累加器A(i,j)的输入。
图4说明了参数空间的划分。角θ的取值范围为±90°,以x轴为基准。因此,参考图3,
if(A[j]>A[j+1]) {
temp=A[j]; A[j]=A[j+1]; A[j+1]=temp; } 2 实验结果与分析 如图 5、图 6 和图 7 所示,在实验中分别通过梯形、矩形和平行四边形的识别来检测四 边形识别方法。首先通过 Hough 变换方法检测所构成四边形的四条线段,分别计算出四条线 段与平面直角坐标系横坐标的夹角值(或是斜率),判断结果如图 5、图 6 和图 7 的(b)图所 示;随后在获取四个夹角值之后用冒泡排序法对它们进行排序再进行比较,结果如图 5、图 6 和图 7 的(c)图所示;根据四条线段两两比较后判断线段间的关系(平行,垂直,相交)。 最后按照各种四边形的性质进行分类识别, 最终测试结果如图 5、图 6 和图 7 的(d)图所示。 实验结果验证了本文提出的算法可行,效果较好。 (1)梯形的识别如图 5 所示:
水平线的角度θ=0°,ρ等于正的x截距。同样,垂直线的角度为θ=90°,ρ等于正的y截距, 或θ=-90°,ρ等于负的y截距。
y θ
θmax
0° ρ
θ
x
θmin
ρmin
0
ρmax ρ
图 3 直线的标准表达方法
图 4 将 ρθ 平面细分为不同单元
从直线的检测过程可以看出,若对ρ和θ量化得过粗,则参数空间的凝聚效果较差,无
后与指定的阀值比较小于阀值为符合要求,否则继续比较),根据四条线段两两比较后判断
线段间的关系(平行,垂直,相交)。最后按照各种四边形的性质进行分类识别。
算法如下:
//判断四条线段所构成的四边形类型
if(abs(A[0]-A[1])<=4)
{
if(abs(A[2]-A[3])<=4)
{
if(abs(abs(A[0]-A[2])-90)<=6)
1.3 算法存在问题及改进 计算四条线段与横坐标的夹角后需要进行两两比较,这时若是直接进行比较则需要增加
比较数次,既增加了计算量又降低了算法的效率。为提高算法的质量和效率,在获取四个夹 角值之后用冒泡排序法对它们进行排序再进行比较,从而减少了比较次数提高了算法效率。 同时,从直线的检测过程得知,若对ρ和θ量化得过粗,则参数空间的凝聚效果较差,无法 找到准确的参数空间共线点。反之,若量化过细,那么计算量将大幅度增加,因此实际应用 中需要兼顾这两方面,选取合适的量化值。
目决定了这些点共线性的精确度。
b bmax
0
bmin
amin
0
amax a
图 2 用于 Hough 变换的参数平面的进一步分割
使用等式y=ax+b表示一条直线带来如下一个问题:当直线接近垂直时,直线的斜率接近
无限大。解决这一问题的一种方法是使用直线的标准式:
xcosθ+ysinθ=ρ
(1)
图3说明了用于式(1)的参数的几何解释。使用这一表达式构造一个累加器的表与使用斜
Hough Transform is mainly use to detect lines and line segments. Although it can detect two dimensional images, it has the shortages such as large memory space, long time calculation and lack of reliability. Further more, it is sensitive to the noise of the image and lack of robustness. In order to detect the regular planar graph quickly and exactly, we work out the quadrangular sort recognition algorithm which base on the Hough Transform according to the recognition of line and circle. Firstly, by means of the Hough Transform, this algorithm detects the four line segments which in the quadrangle and work out the abscissa’s separation angles (slope) of the four line segments and the plane rectangular coordinate separately. Secondly, compare the four separation angles after ordering them with bubble sort and decide what the relation among the four line segments is. Parallel, vertical or intersect. Finally, distinguish them classificatorily according to each quadrangle’s characteristic. This kind of algorithm is proved feasible and effectual by the experimental results.
Key words:Hough Transform;quadrangle;detect;distinguish 0 引言
随着时代的发展,一些常见的平面规则图形,在工业产品检测、生物信息提取、集成电 路板在线质量检测 、交通标识牌识别等领域有着愈发广泛的应用。而Hough变换[1]是从图像 中识别几何形状的基本方法之一,该方法由Paul Hough于1962年提出并在美国作为专利。 Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间中的曲线通过曲线表达式 转变为参数空间的一个点,这样就把原始图像中给定曲线的检测问题转化为寻找参数空间中 的峰值问题,即将检测整体特性转化为检测局部特性。
基于 Hough 变换的四边形分类识别算法研究 刘智
(广西工学院 计算机工程系广西 柳州 545006) 基金项目:广西教育厅科研项目(200707MS064);广西工学院青年科学基金项目(院科自 0840206) 摘 要:Hough变换主要用于直线或线段的检测。虽然能够用于检测复杂的2维图形,但其通 常都具有存储空间大、计算时间长、可靠性差等不足,而且往往对图像中的噪声比较敏感、 鲁棒性差。为了对平面规则图形进行快速准确检测,在直线和圆的识别基础上总结出基于 Hough变换的四边形分类识别算法,该算法首先通过Hough变换方法检测所构成四边形的四条 线段,分别计算出四条线段与平面直角坐标系横坐标的夹角值(或是斜率),随后在获取四 个夹角值之后用冒泡排序法对它们进行排序再进行比较,根据四条线段两两比较后判断线段 间的关系(平行,垂直,相交),最后根据各种四边形的性质进行分类识别。实验结果验证 了该算法可行,效果较好。 关键词:Hough 变换;四边形;检测;识别 Abstract:
y
(xi,yi)
(xj,yj)
b b=-xia+yi b=-xja+yj
b′
x
a′
a
(a) xy 平面
百度文库
(b) 参数空间
图 1 xy 平面与参数空间的关系
Hough变换在计算上的优势在于将参数空间进一步分割为累加器单元,如图2所示。这
里(amin,amax)和(bmin,bmax)分别为斜率和截距值期望的范围。位于坐标(i,j)的单元具有累加值
AfxMessageBox("该四边形为梯形!");
else
AfxMessageBox("该四边形为不规则四边形!");
通过实验测试中得知,能否准确的分类识别出各种四边形的关键在于比较两两线段与横
坐标夹角之差的绝对值所选取的阀值。阀值过大过小均会导致识别不准确,所以选取合适的
阀值是该算法分类识别的关键所在。而阀值的选取则需要通过大量的实验测试来确定。
(a)
(b)
(c) (2)矩形的识别如图 6 所示:
(d) 图 5 梯形的识别
(a)
(b)
(c)
(d)
图 6 矩形的识别
(3)平行四边形的识别如图 7 所示:
(a)
(b)
(c)
(d)
图 7 平行四边形的识别
3 结束语
基于 Hough 变换的四边形分类识别算法是在直线和圆的识别基础上进行的,但用来确
目前应用于直线,圆及椭圆检测的各种基于Hough变换的技术已经日益成熟,如朱娟[2] 等提出一种逆向Hough变换检测算法检测直线;张运华[3]等以随机Hough变换为基础,通过对 采样概率进行分析,结合Canny算子以及Zernike正交矩方法,提出改进的圆检测算法;赵京 东[4]提出利用椭圆的斜率特性,降低Hough参数空间的维度,实现对图像中多个椭圆进行检 测。但识别四边形及其它多边形方面的技术仍然很缺乏,鉴于此,本文提出了基于Hough变 换的四边形分类识别算法,以此来研究基于Hough变换的四边形识别检测技术。 1 基于Hough变换的四边形分类识别 1.1 基于Hough变换的直线检测原理[6-8]
定圆和直线的参数要比确定四边形的参数少,因此基于 Hough 变换识别圆和直线的方法要比
四边形识别算法的精练,但目前仍没有一种更巧妙的方法用来对四边形进行识别,所以该形
如下图1所示,考察一个点(xi,yi)和一条直线的斜截式方程yi=axi+b。通过点(xi,yi)的 直线有无数条,且对不同的a和b值,它们都满足这个等式yi=axi+b。但将等式写成b=-xia+yi 的形式并参考ab平面(也叫参数平面)将得到对于定点(xi,yi)的唯一直线方程。在参数空间 中,第2个点(xj,yj)也有与之相关的一条直线,且这条直线与(xi,yi)相关的直线相交于(a′, b′)点,这里a′是斜率,b′是xy平面上过点(xi,yi)和(xj,yj)的直线的截距。实际上,在参 数空间中这条直线所包含的所有点都有过点(a′,b′)的直线。
冒泡排序法: //用数组A[4]记录检测出来的四条线段与横坐标的夹角值 int temp, A[4]={MaxValue1.AngleNumber*2,MaxValue2.AngleNumber*2,
MaxValue3.AngleNumber*2,MaxValue4.AngleNumber*2}; for(i=0; i<3; i++) //冒泡排序 for(j=0; j<3-i; j++)
AfxMessageBox("该四边形为矩形!");
else
AfxMessageBox("该四边形为平行四边形!");
}
else
AfxMessageBox("该四边形为梯形!");
}
else if(abs(A[1]-A[2])<=4)
AfxMessageBox("该四边形为梯形!");
else if(abs(A[2]-A[3])<=4)
法找到准确的参数空间共线点。反之,若量化过细,那么计算量将大幅度增加,因此实际应
用中需要兼顾这两方面,选取合适的量化值。
1.2 基于Hough变换的四边形分类识别算法
该算法通过 Hough 变换方法检测所构成四边形的四条线段,分别计算出四条线段与平面
直角坐标系横坐标的夹角值(也可以是斜率),并对所得夹角值进行两两比较(即两两相减
A(i,j),并对应于与参数空间坐标(ai,bj)相关的矩形区域。这些单元初值均为0,对图像平
面中的每个点(xk,yk),令参数a分别等于a轴上每个允许的细分值ap,同时使用等式得到对应 的b,然后对b进行舍入得到b轴上允许的最近似的值bp,单元累加值A(p,q)=A(p,q)+1。在这
一过程的最后,A(i,j)中的值将对应xy平面中直线y=aix+bj上的点数。在ab平面中细分的数
相关文档
最新文档