3
나는 Opencv에서 hough transformation 함수를 호출하여 생성 된 선의 벡터를 가지고 있으며이를 이미지 좌표로 다시 변환해야한다. 이 샘플 코드는 Opencv의 공식 문서에서 찾았지만 이해할 수는 없습니다. 아무에게도 설명해 주시겠습니까?좌표를 hough 변환 (ρ, theta)에서 이미지 (x, y)로 다시 변환하는 방법은 무엇입니까?
for(size_t i = 0; i < lines->size(); i++)
{
float rho = lines->at(i)[0]; //[0] is rho
float theta = lines->at(i)[1]; //[1] is theta
double a = cos(theta), b = sin(theta);
double x0 = a*rho, y0 = b*rho;
cv::Point pt1(cvRound(x0 + 1000*(-b)),
cvRound(y0 + 1000*(a)));
cv::Point pt2(cvRound(x0 - 1000*(-b)),
cvRound(y0 - 1000*(a)));
line(*mat, pt1, pt2, Scalar(255,0,0), 1, 8);
}
1000 줄은 무엇입니까?
pt1(cvRound(x0 + 1000*(-b)), cvRound(y0 + 1000*(a)))
왜 pt2에 음수 y 코드가 있습니까? 예를 들어, 내 첫 번째 줄이 (ρ, theta) 형식의 (0,0)이면 pt2는 (0, -1000)이됩니다.
감사합니다,
정상 라인에 대한 수학이 작동하는 방법