Я реализую вероятностный алгоритм преобразования hough.
Я понял концепцию алгоритма, но есть вещь, которую я не понимаю.
Код ниже взят из OpenCV, я понимаю, что остальные строки, но почему они устанавливают numrho равным ((width * height)*2 + 1)/rho, отличному от расстояния от (0,0) до (width, высота)?
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 — это шаги дискретизации, вы можете установить для них любое значение, которое вы предпочитаете.
«(ширина + высота) * 2» — это периметр (псевдоним: «окружность» вашего изображения), подлежащий дискретизации.
Я ценю это, я понимаю это сейчас