OpenCV calibrateCamera函数需设置何flags以返回全部畸变系数
在OpenCV的cv.calibrateCamera中获取全部畸变系数的flags设置
要让cv.calibrateCamera返回所有畸变系数(k1,k2,p1,p2,k3,k4,k5,k6,s1,s2,s3,s4,τx,τy),需要组合以下关键flags:
cv.CALIB_RATIONAL_MODEL:启用计算径向畸变系数k4、k5、k6- 不设置
cv.CALIB_FIX_K3:默认会自动计算k3(如果显式设置该flag会固定k3为0,因此不要添加) cv.CALIB_THIN_PRISM_MODEL:启用计算薄棱镜畸变系数s1、s2、s3、s4cv.CALIB_TILTED_MODEL:启用计算倾斜畸变系数τx、τy
注意:p1、p2(切向畸变系数)和k1、k2是默认就会计算的,无需额外flags开启。
修改后的代码如下:
retR, cameraMatrixR, distR, rvecsR, tvecsR = cv.calibrateCamera( objpoints, imgpointsR, frameSize, None, None, None, None, flags=cv.CALIB_RATIONAL_MODEL | cv.CALIB_THIN_PRISM_MODEL | cv.CALIB_TILTED_MODEL, criteria=None )
运行后,distR数组会包含所有14个畸变系数,顺序为:[k1, k2, p1, p2, k3, k4, k5, k6, s1, s2, s3, s4, τx, τy]。
内容的提问来源于stack exchange,提问作者houssein
相关产品推荐
相关产品推荐

