Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Intrinsic Matrix From Calibration Not Matching Documentation

I am trying to calibrate a Logitech c930 HD (1920 x 1080) camera and am getting an intrinsic matrix that does not appear to match what the documentation says I should have.

As I understand http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html and http://docs.opencv.org/doc/tutorials/calib3d/camera_calibration/camera_calibration.html the intrinsic matrix should look like this:

image description

However, the matrix I am getting out of the calibration functions looks like this:

3397.61      0             0

0                3160.85   0

961.02       612.61     1

That matrix appears to be the transpose of the matrix from the documentation. Is it me or the docs that are wrong?

Also, I am getting an RMS and totalAvgErr of 0.1864 and am wondering if all of these numbers are sounding right.

Any help appreciated. Thanks

Intrinsic Matrix From Calibration Not Matching Documentation

I am trying to calibrate a Logitech c930 HD (1920 x 1080) camera and am getting an intrinsic matrix that does not appear to match what the documentation says I should have.

As I understand http://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html and http://docs.opencv.org/doc/tutorials/calib3d/camera_calibration/camera_calibration.html the intrinsic matrix should look like this:

image description

However, the matrix I am getting out of the calibration functions looks like this:

3397.61      0             0

0                3160.85   0

961.02       612.61     1

That matrix appears to be the transpose of the matrix from the documentation. Is it me or the docs that are wrong?

Also, I am getting an RMS and totalAvgErr of 0.1864 and am wondering if all of these numbers are sounding right.

Here is a short code segment where I print out the matrix in a WinForms app.

DrawLabelABS(this->labelCamera0IntRows,tintrinsic.rows.ToString("D"));
DrawLabelABS(this->labelCamera0IntCols,tintrinsic.cols.ToString("D"));
if((tintrinsic.rows == CALIBRATE_INTRINSIC_ROWS) && (tintrinsic.cols == CALIBRATE_INTRINSIC_COLS))
{
    DrawLabelABS(this->labelCamera0Int00,tintrinsic.at<double>(0,0).ToString("F2"));
            DrawLabelABS(this->labelCamera0Int01,tintrinsic.at<double>(0,1).ToString("F2"));
    DrawLabelABS(this->labelCamera0Int02,tintrinsic.at<double>(0,2).ToString("F2"));
    DrawLabelABS(this->labelCamera0Int10,tintrinsic.at<double>(1,0).ToString("F2"));
        DrawLabelABS(this->labelCamera0Int11,tintrinsic.at<double>(1,1).ToString("F2"));
    DrawLabelABS(this->labelCamera0Int12,tintrinsic.at<double>(1,2).ToString("F2"));
    DrawLabelABS(this->labelCamera0Int20,tintrinsic.at<double>(2,0).ToString("F2"));
    DrawLabelABS(this->labelCamera0Int21,tintrinsic.at<double>(2,1).ToString("F2"));
    DrawLabelABS(this->labelCamera0Int22,tintrinsic.at<double>(2,2).ToString("F2"));
}

Any help appreciated. Thanks