关于霍夫变换概率的问题

Question about hough transform probabilistic

我正在实现霍夫变换概率算法。

我了解了算法的概念,但是有一点我不明白。

下面的代码来自 OpenCV,我理解其余的行,但是为什么他们将 numrho 设置为 ((width * height)*2 + 1) / rho 而不是距 (0,0) 的距离) 到 (宽度, 高度)?

int i, j;
float irho = 1 / rho;

CV_Assert( img.type() == CV_8UC1 );

const uchar* image = img.ptr();
int step = (int)img.step;
int width = img.cols;
int height = img.rows;


int numangle = cvRound((max_theta - min_theta) / theta);
int numrho = cvRound(((width + height) * 2 + 1) / rho);

这是一道算法题,没有错误信息可放

rho 和 theta 是离散化步长,您可以将它们设置为您喜欢的任何值。

"(width + height) * 2"是要离散化的周长(别名:"circumference"你的图片)