1. 背景
畸变参数 k3
通常用于描述径向畸变的更高阶效应,即在需要高精度的应用中可以用到,一般的应用中 k1, k2
足矣。
常见的应用中, orbslam3 中是否传入 k3
是可选的,而 kalibr 标定中则只需要传入 k1, k2
。但计算 k3
时的 k1, k2
不等于不计算 k3
时的 k1, k2
,因此需要学会两种场景下参数的计算。
2. 完整的 opencv python 标定相机内参过程
参考:https://blog.csdn.net/zong596568821xp/article/details/115286088文章来源:https://www.toymoban.com/news/detail-700424.html
3. 选择是否计算畸变参数 k3
在调用 cv.calibrateCamera()
时,传入参数 flags=cv.CALIB_FIX_K3
即可,代码如下:文章来源地址https://www.toymoban.com/news/detail-700424.html
# 1. 计算 k1, k2, k3
ret, mtx, dist, rvecs, tvecs = cv.calibrateCamera(
objectPoints=objpoints, imagePoints=imgpoints, imageSize=imageSize, cameraMatrix=None, distCoeffs=None
)
# Camera.k1: -0.0503
# Camera.k2: 0.0654
# Camera.k3: -0.0200
# 2. 计算 k1, k2
ret, mtx, dist, rvecs, tvecs = cv.calibrateCamera(
objectPoints=objpoints, imagePoints=imgpoints, imageSize=imageSize, cameraMatrix=None, distCoeffs=None, flags=cv.CALIB_FIX_K3
)
# Camera.k1: -0.0355
# Camera.k2: 0.0346
到了这里,关于【相机标定】opencv python 标定相机内参时不计算 k3 畸变参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!