霍夫变换 是一种特征检测(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中