1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| printf("Processing the samples\n");
Size2i imsize(w,h);
printf("Calibration of each camera");
//calibrate each camera, calculate intrisinc ans extrinsinc params
calibrateCamera(objPoints, imgPoints, imsize, camMat, distCoeff, rvecs, tvecs);
calibrateCamera(objPoints, imgPoints2, imsize, camMat2, distCoeff2, rvecs2, tvecs2);
printf(" : done\n");
printf("Calibration of each camera according to the other");
//find transformation from 2 cameras
stereoCalibrate(objPoints, imgPoints, imgPoints2, camMat, distCoeff, camMat2, distCoeff2, imsize, R, T, E, F, TermCriteria(TermCriteria::COUNT+TermCriteria::EPS,30,0.000001),CALIB_FIX_INTRINSIC);
printf(" : done\n");
printf("Calculation of the rectification maps");
//Find rectification matrices from calibration
stereoRectify(camMat,distCoeff,camMat2,distCoeff2,imsize,R,T,R1,R2,P1,P2,Q,0);
//maps for rectification
initUndistortRectifyMap(camMat,distCoeff,R1,P1,imsize,CV_32FC1,map11,map12);
initUndistortRectifyMap(camMat2,distCoeff2,R2,P2,imsize,CV_32FC1,map21,map22);
printf(" : done\n");
//approximation for speed calculation
convertMaps(map11,map12,smap11,smap12,CV_16SC2);
convertMaps(map21,map22,smap21,smap22,CV_16SC2);
printf("Calibration over\n"); |