Android OpenCV Dibujando líneas Hough

Estoy tratando de usar OpenCV en un teléfono Android para detectar líneas. Modifiqué la muestra 'Tutorial 1 Básico - 2. Usar cámara OpenCV'. También estoy usandoHough Line Transform como ejemplo. Sin embargo, obtengo números extraños (al menos lo que creo que son números extraños) para los puntos. En el rango de 1000 a -1000 para b.

No entiendo completamente el código (principalmente la parte sobre sumar / restar 1000 * (a o -b)).

Al final no veo las líneas en absoluto.

¿Alguien podría echarme una mano? También avíseme si necesita más información.

capture.retrieve(mGray, Highgui.CV_CAP_ANDROID_GREY_FRAME);
Imgproc.Canny(mGray, mIntermediateMat, 80, 100);
Imgproc.HoughLines(mIntermediateMat, mLines, 1, Math.PI/180, 100);

Scalar color = new Scalar(0, 0, 255);

double[] data;
double rho, theta;
Point pt1 = new Point();
Point pt2 = new Point();
double a, b;
double x0, y0;
for (int i = 0; i < mLines.cols(); i++)
{
    data = mLines.get(0, i);
    rho = data[0];
    theta = data[1];
    a = Math.cos(theta);
    b = Math.sin(theta);
    x0 = a*rho;
    y0 = b*rho;
    pt1.x = Math.round(x0 + 1000*(-b));
    pt1.y = Math.round(y0 + 1000*a);
    pt2.x = Math.round(x0 - 1000*(-b));
    pt2.y = Math.round(y0 - 1000 *a);
    Core.line(mIntermediateMat, pt1, pt2, color, 3);
}

Imgproc.cvtColor(mIntermediateMat, mRgba, Imgproc.COLOR_GRAY2BGRA, 4);

Bitmap bmp = Bitmap.createBitmap(mRgba.cols(), mRgba.rows(), Bitmap.Config.ARGB_8888);

if (Utils.matToBitmap(mRgba, bmp))
    return bmp;

bmp.recycle();
return null;

Respuestas a la pregunta(3)

Su respuesta a la pregunta