2

我正在阅读,我在这本书中Learning openCV遇到了描述。cvHoughLines2但我无法理解一件事。

我读过霍夫变换,我想我理解它,所以参数rhotheta对我来说有点令人费解。当我们有方程rho=xcos(theta)+ycos(theta)时,当我们决定一组离散值时thetarho应该自动知道 的值。

在这本书中,据说opencv创建了rhoxtheta累加器数组。

opencv 是否只是将角度离散化为 的乘积360/theta?但是rho参数如何拟合?rho离散化的值如何?

4

2 回答 2

5

你的问题不清楚,看来你很困惑。看看这个页面。给定属于一条线的一组点(x 和 y),您可以仅通过两个参数 r 和 theta 来描述同一条线。这是我们想要找到的两个独立参数,它们最能描述我们有点的线。

于 2012-08-17T12:24:51.947 回答
0

在开始时,您决定 theta 的向量让我们说 10 个数字,您需要将结果四舍五入以落在矩阵的像素中,其中行代表半径,列代表角度,因此如果某条线的角度和半径相同,它将向累加器添加一个值。[0 36 .. 360] 也是半径矢量 [1 2 3 .. 10] 然后你创建图像 M*N 全零让我们说例如只有 [0 0 0 0 0 0 0 0 0] 然后你执行你写的公式一些半径和角度你的矩阵变成 [ 1 0 0 0 0 0 0 0 0]

然后 [ 1 0 0 0 0 1 0 0 0] 然后 [ 2 0 0 0 0 1 0 1 0] 依此类推,然后您可以设置阈值并仅找到一些线或某些角度。

于 2015-09-20T14:22:58.013 回答