hough
霍夫变换
说明
示例
输入参数
名称-值参数
输出参量
算法
标准霍夫变换 (SHT) 使用线条的参数化表示:
rho = x*cos(theta) + y*sin(theta)
坐标系的原点假定位于左上角像素的中心。
变量 theta 是从原点到线条的垂直投影相对于正 x 轴顺时针测量的角度(以度为单位)。theta 的范围是 –90° ≤ theta < 90°。线条本身的角度是 theta + 90°,也是相对于正 x 轴顺时针测量的。
变量 rho 是从原点到线条的垂直偏移量。rho 的大小等效于原点和线条之间的垂直距离。然而,hough 函数支持负的 rho 值,以表示有效旋转角度超出 theta 支持范围的线条。从图形上看,当线条穿过由 theta 定义的法向量相对的象限时,rho 为负值。换句话说,rho 为负值表示有效旋转角度为 –180° ≤ theta < –90° 或 90° ≤ theta < 180° 的线条。

霍夫变换矩阵 H 是参数空间矩阵,其行和列分别对应于 rho 和 theta 值。对于 rho 和 theta 的每一种组合,SHT 都会计算由这些参数确定的线条,并返回 BW 中沿该线条的所有 true 像素的总和。当许多像素沿一个参数化线条具有 true 值时,结果在霍夫变换矩阵中形成一个峰值。峰值表示输入图像中的潜在线条。您可以通过使用 houghpeaks 函数在霍夫变换矩阵中找到峰值。
由于原点位于左上角像素的中心,图像中不存在 rho 为负且 theta 为正的线条。霍夫变换矩阵中对应于负 rho 和正 theta 的元素具有值 0。


