I am working on image processing using opencv and Eclipse.
vector<Vec2f> lines; HoughLines(dst, lines, 1, CV_PI/180, 100, 0, 0 ); for( size_t i = 0; i < lines.size(); i++ ) { float rho = lines[i][0], theta = lines[i][1]; Point pt1, pt2; double a = cos(theta), b = sin(theta); double x0 = a*rho, y0 = b*rho; pt1.x = cvRound(x0 + 1000*(-b)); pt1.y = cvRound(y0 + 1000*(a)); pt2.x = cvRound(x0 - 1000*(-b)); pt2.y = cvRound(y0 - 1000*(a)); line( cdst, pt1, pt2, Scalar(0,0,255), 3, CV_AA); }
Can anyone explain how exactly these points are defined by this code. We use
y=(-cos(theta)/sin(theta))x + r/(sin(theta)) rho=xo*cos(theta) + yo*sin(theta)
I can not understand why the multiplication of 1000 is performed in a line
pt1.x = cvRound(x0 + 1000*(-b));
try to explain it in simple words. thanks in advance
source share