the definition of calibrateCamera is: CV_EXPORTS_W double calibrateCamera( InputArrayOfArrays objectPoints, InputArrayOfArrays imagePoints, Size imageSize, InputOutputArray cameraMatrix, InputOutputArray distCoeffs, OutputArrayOfArrays rvecs, OutputArrayOfArrays tvecs, int flags = 0, TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 30, DBL_EPSILON) );
some these params :
@param distCoeffs Output vector of distortion coefficients \f$(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6],[s_1, s_2, s_3, s_4]])\f$ of 4, 5, 8 or 12 elements.
@param flags Different flags that may be zero or a combination of the following values: - CV_CALIB_RATIONAL_MODEL Coefficients k4, k5, and k6 are enabled. To provide the backward compatibility, this extra flag should be explicitly specified to make the calibration function use the rational model and return 8 coefficients. If the flag is not set, the function computes and returns only 5 distortion coefficients.
as we see, the fuction calibrateCamera(...)return a 5*1 distCoeffs Mat,but because of k_3,it will undistort too much, I really dont need k_3,as if the k_3 is used for Fisheye Lens, and cvCalibrateCamera2(...) just return a 4*1 distCoeffs Mat
so what can I do to deal with calibrateCamera? I search a lot but still have no ideas.