目录1.理论............................................... - 2 -2.实施............................................... - 3 -3. 范例.............................................. - 4 -4.变化和扩展......................................... - 6 -4.1 利用梯度方向,以减少参数...................... - 6 -4.2 Hough变换的内核............................... - 6 -4.3Hough曲线变换与广义Hough变换.................. - 6 -4.4 三维物体检测(平面和圆柱).................... - 6 -4.5 基于加权特征.................................. - 7 -4.6 选取的参数空间................................ - 7 -4.6.1 算法实现一种高效椭圆检测................ - 8 -5.局限性............................................. - 8 -6. 参见.............................................. - 8 - 参考文献............................................. - 9 - 附件: ............................................... - 10 -Hough 变换Wikipedia 自由的百科全书霍夫变换是一个使用图像分析,计算机视觉和数字图像处理的特征提取技术。
[1]该技术的目的是要找到一个完美的程序,实现一个在一定阶级形状的对象实例。
这个实现过程添加了参数空间,从中获取最合适的对象作为程序一个所谓的累加器空间,明确的算法构造由Hough 变换计算。
经典的霍夫变换与鉴定图像中的行有关,但后来的Hough 变换识别一直延伸到任意形状和位置,最常见是圆形或椭圆形。
今天普遍使用霍夫变换的是由理查德杜达和彼得哈特于1972年发明的,当时把它叫做“广义Hough 变换”[2] 1962年后,霍夫相关专利保罗。
[3]巴拉德达纳阁下通过1981年的期刊文章,题为“推广了霍夫变换检测任意形状 ”实现了普及计算机视觉社区的转换。
1.理论在数字图像的自动分析中,往往会出现一个子检测简单形状,如直线,圆或椭圆形。
在多数情况下,一个边缘检测可作为前处理阶段获得的图像或图像的像素点,空间上的图像所需的曲线研究。
由于缺陷无论是在图像数据或是边缘检测器,都有可能会错过想要的曲线或像素点之间以及空间的理想路线偏差/圆/椭圆和嘈杂的优势,因为它们是从点边缘检测器所获得的。
由于这些原因,往往是不平凡的群组边缘特征提取到一个直线,圆或椭圆形适当选择。
霍夫变换的目的是为了解决使我们能够通过执行超过执行参数化的图像对象(夏皮罗和Stockman ,304)设置明确的表决程序边缘点分组到对象的候选人这一问题。
最简单的霍夫变换是线性变换检测直线。
在图像空间,直线可谓为y = mx+b 和点可绘制图形图像的每个双(x ,y )。
在霍夫变换之中,主要的想法是考虑直线特色的形象并不像点),(,,x 2211y x y )(等,但相反的情形是在其参数方面,即斜率参数m 和截距参数b 。
在此基础上,直线为y = mx + b 可以表示为空间,参数a 点为(B ,m )。
但是,一个面临的问题是垂直线引起的参数m 和无界值。
为方便计算的原因,最好使用R 和 θ(8)对不同的参数,表示Hough 变换,对Hough 的线路研究。
参数R 代表路线和起点之间的距离,而θ为从原点到这个最近点的向量角度(见坐标 )。
使用这个线性参数化方程的可写为[4]它可以重新放到 r = x cosθ + y sinθ (夏皮罗和Stockman ,304)。
因此,可以相关联想到,如果 和 R r ∈ ,或 和 0≥r , 图像每行的一对(r ,θ),都是独一无二的。
相关(r ,θ)平面有时被称为霍夫直线的两维空间。
这种表示使得Hough 变换概念上非常接近二维Radon 变换。
(它们可以被看作是同一事物会有不同的寻求途径类型。
[5] )对于平面图像上的任意一点的坐标)(00,x y ,它的行是经过, ,其中 R (该线之间的距离和起点)取决于θ。
这相当于一个正弦曲线的相关(r ,θ)平面所特有的那一点。
如果曲线对应的两个点叠加,位置(在霍夫空间 ),他们对应的交叉线(在原始图像空间)指向穿过两个点。
更普遍的,一个点,在该行的参数交叉设置形成一条直线将产生正弦曲线。
因此,检测问题的共线点可以转换为发现问题的同时曲线。
[6]2.实施霍夫变换算法使用一个数组,称为累加器,及时发现存在的直线y =mx+b 。
该部分的总和等于问题编号Hough 变换的未知参数。
例如,线性Hough 变换问题有两个未知参数:m 和b 。
累加器的数组的二维将对应于m 和量化值b 。
对于每个像素及其邻近地区,霍夫变换算法确定是否有在该像素的边缘足够的迹象。
如果是的话,它会计算该行的参数,然后寻找累加器的组,参数落入,增加了该组价值。
通过寻找具有最高值的组通常由累加器在空间的局部极大值看,最有可能的行可以被提取,和他们(近似)几何定义中读出。
(夏皮罗和Stockman,304),找到这些峰值简单的方法是采用某种形式阈值,但不同的技术在不同情况下可能会产生更好的结果- 确定哪些行被发现,以及有多少。
由于返回不包含任何长度信息的行,它往往是未来需要找到哪部分图像与该行向上匹配。
此外,由于在边缘检测步骤不完善的误差,这些误差通常将在累加器空间,这可能使找到适当的峰值很困难,因此,适当的行是错误的。
3. 范例考虑三个数据点,这里显示为黑点。
▪对于每个数据点,行数将通过它绘制,它们都在不同的角度。
这些都在这里显示为实线。
▪对于每一条实线绘制的线是它和它垂直相交原点。
这些都显示为虚线。
▪长度(即垂直距离原点)和每个虚线的角度进行了测量。
结果显示在上图表中。
▪这是每个数据点的重复。
▪先作为一个对于霍夫空间图已知的的夹角线长度图,然后创建。
该曲线的交叉点给出了一个距离和角度。
这个距离和角度说明线交叉点正在测试中。
图所示的紫色线相交点,这对应于图表在紫线线以上,它都符合这三点。
下面是一个不同的例子,显示了霍夫变换的结果在一个包含两个粗线光栅图像。
此变换的结果存储在一个矩阵之中。
单元格的值代表了曲线经过任意点的数目。
值较高的象元呈现明亮。
这两个明显的亮点是两个线的霍夫参数。
从这些点的位置角度和输入图像中的两条现的中心距离来确定。
4.变化和扩展4.1 利用梯度方向,以减少参数一种改进的由奥戈曼和克劳夫斯所提出的可以用来检测线方法,如果考虑到图像亮度梯度必然是局部的边缘采用的正交边缘。
由于一般涉及边缘的强度计算梯度幅值检测,梯度方向是经常发现有缺陷的。
如果给定点的坐标(x,y)确定上一条线,那么可以立即获得局部的梯度方向给出的相应的参数θ表示路线和R参数。
(夏皮罗和Stockman,305)的梯度方向可以预计在20°,从而缩短了从完整正弦波180°追踪到大约45°。
这减少了计算时间,并减少无用的参数,从而提高了峰值对应于图像实线可视性的效果。
4.2 Hough变换的内核费尔南德斯和奥利维拉[7]提出一个改进的Hough变换参数机制,允许软件执行来实现的,1280 × 960)的实时性能,即使在相对较大的图像。
例如:内核基于Hough变换使用同样的哈特和杜达提出的相关(r,θ)参数,但像素群可能共线运行。
对于每个集群,参数是转换一个定向使用椭圆高斯内核模型的不确定性方面与相应的群集最佳拟合直线相关。
该方法不仅大大提高了选取方案的性能,而且还产生了更简洁的累加器,使产生更强大的线检测。
4.3Hough曲线变换与广义Hough变换虽然上述转换的版本只适用于直线发现,类似的变换可以用来找出任何可以由一系列参数所代表的形状。
一个圆圈,例如:可以转化成三参数集合,分别代表该中心和半径,从而使霍夫空间变成三维。
任意椭圆和曲线也可以发现这种方式,因为可以轻松地为任何形状的一组参数来表示。
对于更复杂的形状,广义Hough变换使用,它允许一个功能选取特定的位置,方向或使用预定义的查询表形缩放。
4.4 三维物体检测(平面和圆柱)Hough变换,也可以用于三维物体范围内的数据或三维云点检测。
扩展了经典的霍夫变换的平面检测,使之十分方便。
一架飞机的代表,其显式方程是z = a x * x + a y * y + d ,我们可以使用3D Hough空间对应X, Y和 D。
这个扩展的部分,即从反患有相同的问题,因为它的二维,近水平飞机能够可靠地检测,而性能变差成为平面垂直方向(数据大值的X 和Y在放大的噪声)。
这架飞机已用于制订的飞机在从机载激光扫描获得的点云[8]检测和工程,因为在该域中的所有飞机水平非常好。
广义平面用霍夫变换检测,飞机可以通过正常的参数化的向量 n(使用球面坐标)和其原产地距离ρ空间造成了三维霍夫。
表面上的正弦结果输入数据中的每个选取点在霍夫空间上。
这些正弦曲面交线指示飞机的存在。
[9]Hough变换也被用来查找圆柱云点对象,用的是两个步骤的方法。
第一步,找到圆柱。
第二步,找到圆柱的位置和导向半径。
[10]4.5 基于加权特征一个常见的细节变化。
也就是说,在今后,发现同在一个阶段的最大点算值可用于限制搜索范围的值。
4.6 选取的参数空间霍夫变换为高维参数空间不仅是缓慢的,而且如果没有远见,可以很容易地实现可用内存溢出。
即使编程环境允许一个阵列,通过虚拟内存比可用内存空间较大的分配,这需要的数页交换将是非常苛刻的,因为累加器数组是随机访问的使用方式,很少在连续内存停止,因为它跳过项目的索引编制索引。
考虑寻找一个800 * 600椭圆图像任务。
假设半径的沿椭圆主轴导向,参数空间是四维的。
(x,y)定义为椭圆的中心,A和B分别表示两个半径。
允许该中心将在图像的任何地方,加约束0<x<800和0<y<600。
如果给予半径作为约束条件,而剩下的就是一个值超过2300亿累加器的稀疏填充矩阵的相同值。
利用Matlab着眼专门为稀疏矩阵的功能,但它们只能处理二维矩阵,而不是四维的。