Commit eac03093 authored by Vadim Pisarevsky's avatar Vadim Pisarevsky

converted live camera calibration sample

parent 039fd554
...@@ -3409,16 +3409,28 @@ double cv::calibrateCamera( InputArrayOfArrays _objectPoints, ...@@ -3409,16 +3409,28 @@ double cv::calibrateCamera( InputArrayOfArrays _objectPoints,
double reprojErr = cvCalibrateCamera2(&c_objPt, &c_imgPt, &c_npoints, imageSize, double reprojErr = cvCalibrateCamera2(&c_objPt, &c_imgPt, &c_npoints, imageSize,
&c_cameraMatrix, &c_distCoeffs, &c_rvecM, &c_cameraMatrix, &c_distCoeffs, &c_rvecM,
&c_tvecM, flags ); &c_tvecM, flags );
_rvecs.create((int)nimages, 1, CV_64FC3);
_tvecs.create((int)nimages, 1, CV_64FC3); bool rvecs_needed = _rvecs.needed(), tvecs_needed = _tvecs.needed();
if( rvecs_needed )
_rvecs.create((int)nimages, 1, CV_64FC3);
if( tvecs_needed )
_tvecs.create((int)nimages, 1, CV_64FC3);
for( i = 0; i < (int)nimages; i++ ) for( i = 0; i < (int)nimages; i++ )
{ {
_rvecs.create(3, 1, CV_64F, i, true); if( rvecs_needed )
_tvecs.create(3, 1, CV_64F, i, true); {
Mat rv = _rvecs.getMat(i), tv = _tvecs.getMat(i); _rvecs.create(3, 1, CV_64F, i, true);
memcpy(rv.data, rvecM.ptr<double>(i), 3*sizeof(double)); Mat rv = _rvecs.getMat(i);
memcpy(tv.data, tvecM.ptr<double>(i), 3*sizeof(double)); memcpy(rv.data, rvecM.ptr<double>(i), 3*sizeof(double));
}
if( tvecs_needed )
{
_tvecs.create(3, 1, CV_64F, i, true);
Mat tv = _tvecs.getMat(i);
memcpy(tv.data, tvecM.ptr<double>(i), 3*sizeof(double));
}
} }
cameraMatrix.copyTo(_cameraMatrix); cameraMatrix.copyTo(_cameraMatrix);
distCoeffs.copyTo(_distCoeffs); distCoeffs.copyTo(_distCoeffs);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment