cameraIntr​insicsFrom​OpenCV does not seem to account for differences in distortion model

조회 수: 5 (최근 30일)
The function cameraIntrinsicsFromOpenCV in the Computer Vision toolbox seems to give out wrong distortion coefficients.
According to the MATLAB documentation, the radial distortion is expressed as follows:
Polynomial distortion
However, the OpenCV documentation states that the radial distortion is expressed as:
And thus, the results of MATLAB's undistort functions do not seem to be right when using the camera intrinsics from OpenCV. Is there a way to undistort points manually?

채택된 답변

Giridharan Kumaravelu
Giridharan Kumaravelu 2021년 11월 10일
The two equations mentioned in your question are essentially the same if the higher order radial distortion coefficients (k4-k6) in OpenCV are set to zero.
By default, OpenCV's calibration tools like cv.calibrateCamera calibrate for two radial distortion coefficients (k1 and k2) only. Often times, this is sufficient to model normal lenses.
Unless you have explicitly calibrated for more than 3 radial coefficients in OpenCV, you should be able to accurately import those camera parameters from OpenCV using cameraIntrinsicsFromOpenCV.
  댓글 수: 3
Giridharan Kumaravelu
Giridharan Kumaravelu 2021년 11월 10일
Unfortunately, CVT camera calibration tools currently do not support using more than 3 radial distortion coefficients. Isn't there a way to limit the number of radial distortion coefficients in the Azure Kinect SDK? If not, could you directly calibrate the camera using CVT's Camera Calibrator app or using the estimateCameraParameters function?
Min seok Kang
Min seok Kang 2021년 11월 10일
In the case of the Azure Kinect SDK, unfortunately, there is no option to choose the number of distortion coefficients. I guess I should calibrate the camera myself using the toolbox, or write code to do the math to undistort the points.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by