Opencvでハフ変換関数を呼び出して生成された線のベクトルがあり、それらを画像座標に変換し直す必要があります。Opencvの公式ドキュメントからこのサンプルコードを見つけましたが、理解できません。誰か説明してもらえますか?
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コードがあるのですか?たとえば、最初の行が(rho、theta)形式の(0,0)の場合、pt2は(0、-1000)になります。
ありがとう、