Computer vision 基于hough变换坐标的有效直线

Computer vision 基于hough变换坐标的有效直线,computer-vision,hough-transform,Computer Vision,Hough Transform,我正在使用hough变换(极坐标)。我想从hough变换的坐标计算直线的向量表示 我当前的实现循环遍历图像中从(0,0)到(M,N)的所有像素坐标,其中M和N是图像的大小。当循环遍历空间时,将计算该值: //角度和ρ是hough空间的极坐标 tmp=(int)((i*cos(角))+(j*sin(角)) 其中tmp-rho==0是直线的一部分,所以我跟踪该位置。当循环到达图像(i,j)=(M,N)的末端时,从相反方向(M,N)到(0,0)再次进行循环 从左到右的第一个(tmp rho==0)和从

我正在使用hough变换(极坐标)。我想从hough变换的坐标计算直线的向量表示

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

//角度和ρ是hough空间的极坐标

tmp=(int)((i*cos(角))+(j*sin(角))

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

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


这是非常低效(缓慢),我100%肯定有一个更好的方法来计算它,但我似乎无法找出它。任何帮助都将不胜感激

你可以解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)

你可以解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)

谢谢我曾担心它最终会变得如此简单。我今晚去看看。谢谢!我曾担心它最终会变得如此简单。我今晚去看看。