您当前的位置:首页 > 发表论文>论文发表

霍夫圆检测论文

2023-03-10 11:36 来源:学术参考网 作者:未知

霍夫圆检测论文

For circle detection, many researchers have developed the modified HT methods using the parameter decomposition and/or some geometric properties of circles to reduce the complexities. Yuen et al. (1990) have performed a comparative study of several HT-based techniques for circle finding. The parameter decomposition-based approaches usually start with the detection of the centers of the circles, then determine the radii. One of those properties is that the normal to a point on a circle passes through the center of the circle (Davies, 1987a; Illingworth and Kittler, 1987). Yip et al. (1992) used the property that two points on a circle whose tangent lines are parallel are the endpoints of the diameter of the circle. The above approaches require the gradient information of edge contours which are sensitive to noise (Davies, 1987b).
许多研究者开发了改良的HT方法,这是通过使用参数分解及/或一些圆弧的几何特性来降低它的复杂性。袁氏与伙伴曾于1990年对多种基于HT的圆弧识别技术进行比较研究。参数分解法的步骤通常是以识别圆弧的中心开始,然后才确定它们的半径。其中的一个几何特性是:在圆弧上一点的法线经过圆弧的中心(Davies, 1987a; Illingworth和Kittler, 1987)。叶氏与伙伴于1992年则使用另一个特性:在圆弧上两点的正切线如果是平行,这两点就是圆弧直径的两个端点。上述两种方法都需要对噪音极度敏感的边缘轮廓的梯度信息 (Davies, 1987b)。

The e�ect of noise on the edge direction information is generally larger than that on the edge position. There are several approaches without using the edge direction information. Chan and Siu (1990) proposed a fast ellipse detection based on the horizontal and vertical chord bisectors. Similarly, Ho and Chen (1995) proposed a fast detection algorithm of circles using a global geometric symmetry. It computed the circle center from the symmetrical vertical axis and the symmetrical horizontal axis.
一般来说,边缘方向信息受噪音的影响要大于在边缘的位置;有几种方式可以避免使用边缘方向信息。陈和萧于1990年提出基于水平与垂直平分弦的椭圆识别快速算法。何与陈于1995年也提出通过使用全体几何对称性的类似的圆弧识别快速算法。它是从对称竖轴与横轴计算圆弧的中心。

Sheu et al. (1997) used the symmetric axis information throughout the entire process to compute all five parameters. Goneid et al. (1997) developed the chord bisection method using a 1D array. Davies (1999) studied a simple chord bisection method for the rapid accurate location of ellipses. The method of Ioannou et al. (1999) is based on the property that the line perpendicularly bisecting a chord of the circle passes through its center. Lei and Wong (1999) detected the symmetric axes and found pairs of two orthogonal axes whose intersections are the candidates of the centers. Its disadvantage is that straight lines in the image may make the detection of symmetric axes complex.
萧氏与伙伴则于1997年在整个过程中使用对称轴的信息来计算全部五个参数。Goneid与伙伴开发了使用一维数组的平分弦方法。Davies于1999年研究一种简单的平分弦方法对椭圆的快速、正确定位。1999年Loannou与伙伴的方法则是基于垂直平分圆弧弦的线会经过其中心点的几何特性。黎与黄于1999年测到对称轴线,并发现多双正交轴线,其交叉点是圆弧的中心。它的缺点是图像里的直线会与对称轴线混淆,导致识别的复杂性。

【英语牛人团】

HoughLinesP(霍夫变换直线检测)

霍夫变换 是一种特征检测(feature extraction),被广泛应用在 图像分析 (image analysis)、计算机视觉(computer vision)以及数位影像处理(digital image processing)。霍夫变换是用来辨别找出物件中的特征,例如:线条。他的 算法 流程大致如下,给定一个物件、要辨别的形状的种类,算法会在参数空间(parameter space)中执行投票来决定物体的形状,而这是由累加空间(accumulator space)里的局部最大值(local maximum)来决定。 现在广泛使用的霍夫变换是由RichardDuda和PeterHart在公元1972年发明,并称之为广义霍夫变换(generalizedHoughtransform),广义霍夫变换和更早前1962年的PaulHough的专利有关。经典的霍夫变换是侦测图片中的 直线 ,之后,霍夫变换不仅能识别直线,也能够识别任何形状,常见的有圆形、椭圆形。1981年,因为DanaH.Ballard的一篇期刊论文"Generalizing the Hough transform to detect arbitrary shapes",让霍夫变换开始流行于计算机视觉界。

●源图像

●处理后图像

●函数原型 ○c++

○Android

●参数解释 ○image:输入图像:8-bit,灰度图 ○lines:存储线段极坐标的容器,每一条线由具有四个元素的矢量(x_1,y_1, x_2, y_2) 表示,其中,(x_1, y_1)和(x_2, y_2) 是每个检测到的线段的结束点。 ○rho:生成极坐标的像素扫描步长。 ○theta:生成极坐标的角度步长,一般是π/180。 ○threshold:要”检测” 一条直线所需最少的的曲线交点 。 ○minLineLength :默认值0,表示最低线段的长度,比这个设定参数短的线段就不能被显现出来。 ○maxLineGap :默认值0,允许将同一行点与点之间连接起来的最大的距离。

●c++中

●Android中

Python OpenCV 霍夫(Hough Transform)直线变换检测原理,图像处理第 33 篇博客

霍夫变换(Hough Transform)是图像处理领域中,从图像中识别几何形状的基本方法之一。主要识别具有某些相同特征的几何形状,例如直线,圆形,本篇博客的目标就是从黑白图像中识别出直线。

翻阅霍夫直线变换的原理时候,橡皮擦觉得原理部分需要先略过,否则很容易在这个地方陷进去,但是问题来了,这个原理略过了,直接应用函数,里面有些参数竟然看不懂。例如极坐标,角度扫描范围,这种函数就属于绕不过去的知识点了,所以本文转移方向,死磕原理,下面的博文将语无伦次的为你展示如何学习原理知识。

因为数学知识的贫乏,所以在学习阶段会涉及到很多基础概念的学习,一起来吧。

首先找到相对官方的资料,打开该 地址

下面是一个数学小白对原理的学习经验。

教材说:众所周知,一条直线在图像二维空间可由两个变量表示。

抱歉,小白还真不知道……即使学习过,这些年也早已经还给老师了。

一开始难道要学习笛卡尔坐标系,不,你低估小白的能力了,我第一个查询的是 θ 读作 西塔 ,是一个希腊字母。

什么是笛卡尔坐标系?

这个比较简单,直角坐标系。

斜率和截距

斜率,亦称“角系数”,表示一条直线相对于横坐标轴的倾斜程度。

一条直线与某平面直角坐标系横坐标轴正半轴方向的夹角的正切值即该直线相对于该坐标系的斜率。

如果直线与 x 轴互相垂直,直角的正切直无穷大,故此直线不存在斜率。 对于一次函数 y=kx+b , k 就是该函数图像的斜率。

在学习的时候,也学到如下内容:

截距:对 x 的截距就是 y=0 时, x 的值,对 y 的截距就是 x=0 时, y 的值, 截距就是直线与坐标轴的交点的横(纵)坐标。 x 截距为 a , y 截距 b ,截距式就是: x/a+y/b=1(a≠0且b≠0) 。

斜率:对于任意函数上任意一点,其斜率等于其切线与 x 轴正方向所成的角,即 k=tanα 。 ax+by+c=0中,k=-a/b 。

什么是极坐标系?

关于极坐标系,打开 百度百科 学习一下即可。

重点学到下面这个结论就行:

找资料的时候,发现一个解释的比较清楚的 博客 ,后续可以继续学习使用。

继续阅读资料,看到如下所示的图,这个图也出现在了很多解释原理的博客里面,但是图下面写了一句话

在这里直接蒙掉了,怎么就表示成极坐标系了?上面这个公式依旧是笛卡尔坐标系表示直线的方式呀,只是把 k 和 b 的值给替换掉了。

为何是这样的,具体原因可以参照下图。

chou 图

继续寻找关于霍夫变换的资料,找到一个新的概念 霍夫空间 。

在笛卡尔坐标系中,一条直线可以用公式 表示,其中 k 和 b 是参数,表示的是斜率和截距。

接下来将方程改写为 ,这时就建立了一个基于 k - b 的笛卡尔坐标系。

此时这个新的方程在 k - b 坐标系也有一个新的直线。

你可以在纸上画出这两个方程对应的线和点,如下图所示即可。

chou 图

新的 k - b 坐标系就叫做霍夫空间,这时得到一个结论,图像空间 x - y 中的点 对应了 霍夫空间 k - b 中的一条直线 ,即图像空间的点与霍夫空间的直线发生了对应关系。

如果在图像空间 x - y 中在增加一个点 ,那相应的该点在霍夫空间也会产生相同的点与线的对应关系,并且 A 点与 B 点产生的直线会在霍夫空间相交于一个点。而这个点的坐标值 就是直线 AB 的参数。

如果到这里你掌握了,这个性质就为我们解决直线检测提供了方法,只需要把图像空间的直线对应到霍夫空间的点,然后统计交点就可以达到目的,例如图像空间中有 3 条直线,那对应到霍夫空间就会有 3 个峰值点。

遍历图像空间中的所有点,将点转换到霍夫空间,形成大量直线,然后统计出直线交会的点,每个点的坐标都是图像空间直线方程参数,这时就能得到图像空间的直线了。

上述的内容没有问题,但是存在一种情况是,当直线趋近于垂直时,斜率 k 会趋近于无穷大,这时就没有办法转换了,解决办法是使用法线来表示直线。

上文提及的斜截式如下:

通过第二个公式,可以得到下述公式:

此时,我们可以带入一些数值进行转换。

图像空间有如下的几个点:

转换后的函数,都可以在霍夫空间 θ - ρ (横坐标是 θ ,纵坐标是 ρ )进行表示。

原理这时就比较清晰了:

除了一些数学知识以外,经典的博客我们也有必要记录一下,方便后面学习的时候,进行复盘。

本部分用于记录本文中提及的相关数学原理,后续还要逐步埋坑。

今天涉及了一点点数学知识,能力限制,大家一起学习,有错误的地方,可以在评论区指出,不胜感激。

希望今天的 1 个小时(今天内容有点多,不一定可以看完),你有所收获,我们下篇博客见~

相关阅读

技术专栏

逗趣程序员

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页