In the source code for calibrateCamera
(in calibration.cpp
), there is an error check for the camera matrix that verifies that the skew is zero. Otherwise, it throws an error:
if (fabs(A(0, 1)) > 1e-5)
CV_Error(CV_StsOutOfRange, "Non-zero skew is not supported by the function");
Is there a reason that the skew must be non-zero? If this error check was removed, and calibrateCamera
was allowed to run, would skew be appropriately modeled by the camera calibration? The reason I am asking is that I am interested in modeling skew in my camera calibration, and would like to understand the limitations of the method (since skew is described in Zhang's paper).