基于HOUGH变换的矩形的检测

小鱼儿 2022-04-17 04:20 360阅读 0赞

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

基于HOUGH变换的矩形的检测

作者: cndg 2006-03-02

在图像中查找直线、圆、椭圆的方法很多,网上也有很多类似的源代码。但是介绍矩形(正方形,长方形)查找的方法很少,本文介绍基于HOUGH变换的矩形的检测。

1、首先介绍以下直线的极坐标方程。

ρ = x * cos θ + y * sin θ

转换 k = (- cos θ1)/(sin θ1)

y = k*x + b

b = ρ1/(sin θ1) + oy - ox *k

注:(ox,oy)为中心坐标。

用C(ρ,θ)表示累积值数组。

2、平面空间

rect1

注:P1,P2,P3,P4为矩形的四点,a,b为矩形的长宽,α1,α0分别为长宽与坐标系原点的角度。

HT空间:

rect2

(注:H1=(ρ1,θ1),H2=(ρ2,θ2),H3=(ρ3,θ3),H4=(ρ4,θ4))

四个顶点的一般关系:

1)当θ= α1时,形成了H1,H2,即有H1,H2点。

当θ= α0时,形成了H3,H4,即有H3,H4点。

2)判断是否与θ对称,若以θ轴为对称轴,则有:

ρ1 +ρ2 = 0和ρ3 +ρ4 = 0

3)直线垂直时

△θ = 90度(|α1 –α0| = 90)

4)线段的长度

C(ρ1,θ1)= C(ρ2,θ2)= b

C(ρ3,θ3)= C(ρ4,θ4)= a

5)点或直线的距离

ρ1 -ρ2 = a

ρ3 -ρ4 = b

大部分情况下,满足条件1),2),3)。

3.算法:

1)找到一个点,在距离[Dmin,Dmax]之间搜索。

2)增强C(ρ,θ)模型(略)

3)检测矩形类型

若在增强之后的C(ρ,θ)中有H1=(ρ1,θ1),H2=(ρ2,θ2)…Hm=(ρm,θm)。

根据△θ = |θi –θj | < Tθ ,注:Tθ表示域值。

△ρ = |ρi +ρj | < Tρ

| C(ρi,θi–C(ρj,θj | 〈 TL * (C(ρi,θi)+C(ρj,θj))/2

判断直线i,j是否有关联。

若满足上面的关系表达式,就说明有关联。令Pk = (+/- Уk,αk),条件:

αk = 1/2 *(θi +θj)

Уk = 1/2 *(ρi -ρj)

下一步:判断直角线,垂直线

△α = | |αk -αl | — 90’ | < Tα (域值)

则直线Pk,Pl是垂直的。

最后:可以检测到矩形的中心点。

方向为αk。

两边的长度为2Уk与2Уl。

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

发表评论

表情:
评论列表 (有 0 条评论,360人围观)

还没有评论,来说两句吧...

相关阅读