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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| int main(int argc, char* argv)
{
remove("rotation_out.xml");
remove( "translation_out.xml");
remove( "essential_out.xml");
remove("fundamental_out.xml");
CvCapture* capture_g= cvCreateFileCapture("video_g.avi");
CvSize size_g = parametre_camera(capture_g,"calibration_g","undistort_g","intrinsic_g.xml","distortion_g.xml","rotation_g.xml","translation_g.xml","point_image_g.xml","point_objet_g.xml","count_obj_g.xml");
CvCapture* capture_d= cvCreateFileCapture("video_d.avi");
CvSize size_d = parametre_camera(capture_d,"calibration_d","undistort_d","intrinsic_d.xml","distortion_d.xml","rotation_d.xml","translation_d.xml","point_image_d.xml","point_objet_d.xml","count_obj_d.xml");
CvMat* rotation_output = cvCreateMat( 3, 3, CV_64F);
CvMat* rotation_vec =cvCreateMat(3,1,CV_32FC1);
CvMat* essential_output = cvCreateMat( 3, 3, CV_32FC1 );
CvMat* fundamental_output = cvCreateMat( 3, 3, CV_32FC1 );
CvMat* rotation_rectify_g = cvCreateMat( 3, 3, CV_32FC1 );
CvMat* rotation_rectify_d = cvCreateMat( 3, 3, CV_32FC1 );
CvMat* projection_rectify_g = cvCreateMat( 3, 4, CV_32FC1 );
CvMat* projection_rectify_d = cvCreateMat( 3, 4, CV_32FC1 );
CvMat* translation_output = cvCreateMat( 3, 1, CV_32FC1 );
CvMat* rotation_matrix_g = (CvMat*)cvLoad( "rotation_g.xml" );
CvMat* rotation_matrix_d = (CvMat*)cvLoad( "rotation_d.xml" );
CvMat* intrinsic_matrix_g = (CvMat*)cvLoad("intrinsic_g.xml");
CvMat* intrinsic_matrix_d = (CvMat*)cvLoad("intrinsic_d.xml");
CvMat* distortion_matrix_g = (CvMat*)cvLoad( "distortion_g.xml" );
CvMat* distortion_matrix_d = (CvMat*)cvLoad( "distortion_d.xml" );
CvMat* translation_matrix_g = (CvMat*)cvLoad( "translation_g.xml" );
CvMat* translation_matrix_d = (CvMat*)cvLoad( "translation_d.xml" );
CvMat* point_image_g = (CvMat*)cvLoad( "point_image_g.xml" );
CvMat* point_image_d = (CvMat*)cvLoad( "point_image_d.xml" );
CvMat* point_objet = (CvMat*)cvLoad( "point_objet_g.xml" );
CvMat* count_objet_g = (CvMat*)cvLoad( "count_obj_g.xml" );
CvMat* count_objet_d = (CvMat*)cvLoad( "count_obj_d.xml" );
cvStereoCalibrate(point_objet,point_image_g,point_image_d,count_objet_g,intrinsic_matrix_g,distortion_matrix_g,intrinsic_matrix_d,distortion_matrix_d,size_g,rotation_output,translation_output,essential_output,fundamental_output,cvTermCriteria(1+2,30,0.000001),CV_CALIB_USE_INTRINSIC_GUESS);
cvSave( "rotation_out.xml", rotation_output );
cvSave( "translation_out.xml",translation_output);
cvSave( "essential_out.xml", essential_output );
cvSave( "fundamental_out.xml",fundamental_output );
CvMat* disparity_rectify = cvCreateMat( 4, 4, CV_32FC1 );
cvStereoRectify(intrinsic_matrix_g,intrinsic_matrix_d,distortion_matrix_g,distortion_matrix_d,size_g,rotation_output,translation_output,rotation_rectify_g,rotation_rectify_d,projection_rectify_g,projection_rectify_d,0,0);
return 0;
} |
Partager