使用 Matlab 进行霍夫变换
Posted
技术标签:
【中文标题】使用 Matlab 进行霍夫变换【英文标题】:Hough Transform with Matlab 【发布时间】:2015-05-03 11:53:11 【问题描述】:我正在使用 Matlab 进行一些形状检测编码。我只是想看懂代码段
[H,theta,rho] = hough(BW)
我了解x,y
坐标到theta,rho
坐标系的转换。我无法理解的是hough(BW)
函数的输出格式。简单的问题是[H,theta,rho]
here 是什么。最好能通过一个例子对Hough Transformation Matrix (H)
有一个清晰的认识。
【问题讨论】:
【参考方案1】:H、theta 和 rho
如果您不熟悉 Matlab-isms 以及 Hough 变换的工作原理,输出会有点混乱。
H 是 Hough 变换的累积结果表,维度为 rho-theta。因此,对于阈值图像中的每个像素,您计算 rho(距离)和 theta(角度)并将相应的单元格增加 1。
返回的 rho 和 theta 矩阵本质上是 H 矩阵的行和列标题。
一个简单的 Hough 实现
看看我的Naive Hough implementation for Matlab可能对你有帮助
【讨论】:
【参考方案2】:请仔细阅读hough
函数的文档。
这里有一个清晰的解释什么是H
、theta
和rho
:
该函数返回
H
,即霍夫变换矩阵。theta
(以度为单位)和rho
是rho
和theta
值的数组,hough 在这些值上生成霍夫变换矩阵。
【讨论】:
以上是关于使用 Matlab 进行霍夫变换的主要内容,如果未能解决你的问题,请参考以下文章