使用 Matlab 进行霍夫变换

Hough Transform with Matlab

我正在使用 Matlab 进行一些形状检测编码。我只想看懂代码段

[H,theta,rho] = hough(BW)

我了解 x,y 坐标到 theta,rho 坐标系的转换。我无法理解的是 hough(BW) 函数的输出格式。问题只是这里的 [H,theta,rho] 是什么。我最好能通过示例清楚地了解 Hough Transformation Matrix (H)

请仔细阅读hough函数的文档。
这里有一个明确的解释什么是Hthetarho:

The function returns H, the Hough transform matrix.
theta (in degrees) and rho are the arrays of rho and theta values over which hough generates the Hough transform matrix.

H、theta 和 rho

如果您不熟悉 Matlab-isms 以及 Hough 变换的工作原理,输出会有点混乱。

H是一个table维数为rho-theta的霍夫变换累加结果。因此,对于阈值图像中的每个像素,您计算 rho(距离)和 thetas(角度)并将相应的单元格增加 1。

返回的rho和theta矩阵本质上是H矩阵的行和列headers。

一个朴素的 Hough 实现

看看我的Naive Hough implementation for Matlab

可能会对你有帮助