【问题标题】:efficient line from hough transform coordinates霍夫变换坐标的有效线
【发布时间】:2011-11-24 07:50:14
【问题描述】:

我正在使用霍夫变换(极坐标)。我想根据霍夫变换的坐标计算直线的矢量表示。

我当前的实现循环遍历图像中从 (0,0) 到 (M, N) 的所有像素坐标,其中 M 和 N 是图像的大小。当循环遍历空间时,计算该值:

//角度和rho是霍夫空间的极坐标。

tmp = (int) ( (i * cos( angle ) ) + ( j * sin(angle) ) );

其中 tmp - rho == 0 是该行的一部分,因此我跟踪该位置。当循环到达图像的末端时(i,j) == (M,N),从相反的方向(M,N)再次循环到(0,0)。

从左到右的第一个 (tmp-rho == 0) 和从右到左的第二个 (tmp-rho == 0) 是线的坐标。然后我减去这些像素坐标,得到霍夫空间中线的向量。

这是非常低效的(慢),我 100% 确定有更好的方法来计算它,但我似乎无法弄清楚。任何帮助将不胜感激!

【问题讨论】:

    标签: computer-vision hough-transform


    【解决方案1】:

    您可以为 i=0、i=M、j=0、j=N 求解方程,而不是循环

    rho = i * cos(angle) + j * sin(angle)
    
    i = 0 --> j1 = rho / sin(angle)
    i = M --> j2 = (rho - M*cos(angle)) / sin(angle)
    j = 0 --> i1 = rho / cos(angle)
    j = N --> i2 = (rho - N*sin(angle)) / cos(angle)
    

    【讨论】:

    • 谢谢!我曾担心它最终会变得如此简单。今晚我去看看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 2013-03-09
    相关资源
    最近更新 更多