Subversion Repositories seema-scanner

Rev

Rev 68 | Rev 80 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 68 Rev 79
Line 28... Line 28...
28
            continue;
28
            continue;
29
 
29
 
30
        // Camera 0
30
        // Camera 0
31
        std::vector<cv::Point2f> qci0;
31
        std::vector<cv::Point2f> qci0;
32
        // Extract checker corners
32
        // Extract checker corners
33
        bool success0 = cv::findChessboardCorners(SMCalibrationSetI.frame0, checkerCount, qci0, cv::CALIB_CB_ADAPTIVE_THRESH+cv::CALIB_CB_FAST_CHECK);
33
        bool success0 = cv::findChessboardCorners(SMCalibrationSetI.frame0, checkerCount, qci0, cv::CALIB_CB_ADAPTIVE_THRESH + cv::CALIB_CB_FAST_CHECK);
34
        if(success0){
34
        if(success0){
35
            cv::Mat gray;
35
            cv::Mat gray;
36
            cv::cvtColor(SMCalibrationSetI.frame0, gray, CV_RGB2GRAY);
36
            cv::cvtColor(SMCalibrationSetI.frame0, gray, CV_RGB2GRAY);
37
            cv::cornerSubPix(gray, qci0, cv::Size(5, 5), cv::Size(-1, -1),cv::TermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 20, 0.001));
37
            cv::cornerSubPix(gray, qci0, cv::Size(5, 5), cv::Size(-1, -1),cv::TermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 20, 0.001));
38
            // Draw colored chessboard
38
            // Draw colored chessboard
Line 43... Line 43...
43
        emit newFrameResult(i, 0, success0, SMCalibrationSetI.frame0Result);
43
        emit newFrameResult(i, 0, success0, SMCalibrationSetI.frame0Result);
44
 
44
 
45
        // Camera 1
45
        // Camera 1
46
        std::vector<cv::Point2f> qci1;
46
        std::vector<cv::Point2f> qci1;
47
        // Extract checker corners
47
        // Extract checker corners
48
        bool success1 = cv::findChessboardCorners(SMCalibrationSetI.frame1, checkerCount, qci1, cv::CALIB_CB_ADAPTIVE_THRESH);
48
        bool success1 = cv::findChessboardCorners(SMCalibrationSetI.frame1, checkerCount, qci1, cv::CALIB_CB_ADAPTIVE_THRESH + cv::CALIB_CB_FAST_CHECK);
49
        if(success1){
49
        if(success1){
50
            cv::Mat gray;
50
            cv::Mat gray;
51
            cv::cvtColor(SMCalibrationSetI.frame1, gray, CV_RGB2GRAY);
51
            cv::cvtColor(SMCalibrationSetI.frame1, gray, CV_RGB2GRAY);
52
            cv::cornerSubPix(gray, qci1, cv::Size(5, 5), cv::Size(-1, -1),cv::TermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 20, 0.001));
52
            cv::cornerSubPix(gray, qci1, cv::Size(5, 5), cv::Size(-1, -1),cv::TermCriteria(CV_TERMCRIT_EPS + CV_TERMCRIT_ITER, 20, 0.001));
53
            // Draw colored chessboard
53
            // Draw colored chessboard
Line 92... Line 92...
92
    cal.frameWidth = calibrationData[0].frame0.cols;
92
    cal.frameWidth = calibrationData[0].frame0.cols;
93
    cal.frameHeight = calibrationData[0].frame0.rows;
93
    cal.frameHeight = calibrationData[0].frame0.rows;
94
    cv::Size frameSize(cal.frameWidth, cal.frameHeight);
94
    cv::Size frameSize(cal.frameWidth, cal.frameHeight);
95
 
95
 
96
    // determine only k1, k2 for lens distortion
96
    // determine only k1, k2 for lens distortion
97
    int flags = cv::CALIB_FIX_K3;
97
    int flags = 0; //cv::CALIB_FIX_K3;
98
    // Note: several of the output arguments below must be cv::Mat, otherwise segfault
98
    // Note: several of the output arguments below must be cv::Mat, otherwise segfault
99
    std::vector<cv::Mat> cam_rvecs0, cam_tvecs0;
99
    std::vector<cv::Mat> cam_rvecs0, cam_tvecs0;
100
    cal.cam0_error = cv::calibrateCamera(Q, qc0, frameSize, cal.K0, cal.k0, cam_rvecs0, cam_tvecs0, flags);
100
    cal.cam0_error = cv::calibrateCamera(Q, qc0, frameSize, cal.K0, cal.k0, cam_rvecs0, cam_tvecs0, flags);
101
 
101
 
102
    std::vector<cv::Mat> cam_rvecs1, cam_tvecs1;
102
    std::vector<cv::Mat> cam_rvecs1, cam_tvecs1;