霍夫变换
标准霍夫变换 (SHT) 旨在检测图像中的直线。SHT 使用线条的参数化表示:
rho = x*cos(theta) + y*sin(theta)
theta 是从原点到线条的垂直投影相对于正 x 轴顺时针测量的角度(以度为单位)。rho 是沿垂直于线条的向量的从原点到线条的平行偏移量。rho 的大小等效于原点和线条之间的垂直距离。以下图像描绘如何相对于一个线条的垂直投影来定义 theta 和 rho。

您可以通过使用 hough 函数对二值图像执行霍夫变换。hough 函数返回一个参数空间矩阵,其行和列分别对应于这些 rho 和 theta 值。对于 rho 和 theta 的每个组合,SHT 使用这些参数计算线条,并返回输入二值图像中沿该线条的所有 true 像素的总和。
在计算霍夫变换后,您可以通过使用 houghpeaks 函数在参数空间矩阵中查找峰值。这些峰值表示输入图像中可能存在的线条。然而,峰值并不保证输入图像中存在线条,因为峰值可能是由许多短的共线线段累积而成的。
要获取有关贡献给霍夫矩阵中峰值的线段的详细信息,您可以使用 houghlines 函数。对于对应于一个峰值的每个线段,houghlines 函数返回线段两个端点的 (x, y) 坐标以及线条的 theta 和 rho 值。houghlines 函数通过自动连接具有小间隙的线段来减少输入二值图像中噪声的影响。您可以使用端点信息来识别图像中最长的线条,或在输入图像上显示线段。有关示例,请参阅Detect Lines and Highlight Longest Segment Using Hough Transform。
另请参阅
hough | houghlines | houghpeaks