我正在实现霍夫变换概率算法。
我了解了算法的精髓,但是有些事情我不理解。
下面的代码来自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);
这是一个关于算法的问题,没有错误消息要投放
答案 0 :(得分:0)
rho和theta是离散化步骤,您可以将它们设置为您喜欢的任何值。
“(宽度+高度)* 2”是要离散化的周长(别名:图像的“周长”)