Como converter coordenadas de volta à imagem (x, y) da transformação hough (rho, theta

Eu tenho um vetor de linhas produzidas chamando a função de transformação hough no Opencv e preciso convertê-las novamente em coordenadas da imagem. Encontrei esse código de amostra na documentação oficial do Opencv, mas não o entendo. Alguém poderia explicar por favor?

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 );
}

O que o 1000 está fazendo nessa linha?

pt1(cvRound(x0 + 1000*(-b)), cvRound(y0 + 1000*(a)))

Além disso, por que o pt2 tem cabos y negativos? Por exemplo, se minha primeira linha for (0,0) no formato (rho, theta), pt2 seria (0, -1000).

Obrigado

questionAnswers(1)

yourAnswerToTheQuestion