NeRF从入门到放弃6:两种OpenCV去畸变模型

针孔相机和鱼眼相机的去畸变模型是不一样的。

针孔相机的畸变参数有12个,k1~k6是径向畸变参数,p1 p2是切向畸变,s1s4;而鱼眼相机是等距模型,畸变参数只有4个k1k4。

针孔相机

畸变分为径向畸变和切向畸变。

把相机平面坐标系下的点表示为极坐标(r,θ),则径向畸变表示径r变化δr,而切向变换表示角度θ变化δθ。

径向畸变是透镜改变了光线传播,使得光不再直线传播导致的;切向变换是由于透镜安装与成像平面不平行导致的。(SLAM 14讲)

此图是OpenCV官方文档示例https://docs.opencv.org/3.4/d9/d0c/group__calib3d.html,很清晰。

桶形畸变和枕形畸变

假设只有k1,如果k1大于0,则x'' = x'(1+k1r2),x''>x',去畸变后的图像会变大,为帧形畸变;反之为桶形畸变。

针孔相机去畸变函数

复制代码
cv2.undistort(image, K, distCoeffs)

distCoeffs格式为

也就是说,如果只传入4个参数,则是k1,k2,p1,p2,后面的参数都是0.

鱼眼相机

官方文档公式推导https://docs.opencv.org/3.4/db/d58/group__calib3d__fisheye.html

鱼眼相机去畸变函数

distCoeffs为k1,k2,k3,k4

pyhton 复制代码
image_undis = cv2.fisheye.undistortImage(image, K, distCoeffs, None,
                                                     np.copy(K))

  1. 图片去畸变
python 复制代码
def undistort_images(image_dir,
                     output_dir,
                     K,
                     distCoeffs,
                     is_equidistant: bool = False):
    for img in tqdm(sorted(os.listdir(image_dir))):
        image = cv2.imread(f'{image_dir}/{img}')
        if is_equidistant:
            image_undis = cv2.fisheye.undistortImage(image, K, distCoeffs, None,
                                                     np.copy(K))
        else:
            image_undis = cv2.undistort(image, K, distCoeffs)
        cv2.imwrite(f'{output_dir}/{img}', image_undis)
  1. 参考链接

​ 针对OpenCV官方文档的翻译:https://blog.csdn.net/Thomson617/article/details/103987952

相关推荐
踩着两条虫1 分钟前
AI驱动的Vue3应用开发平台深入探究(二十五):API与参考之Renderer API 参考
前端·javascript·vue.js·人工智能·低代码·前端框架·ai编程
Li emily9 分钟前
解决了用美股历史数据api分析价格波动的困扰
数据库·人工智能·python
DX_水位流量监测10 分钟前
德希科技在线 COD 传感器
人工智能·水质监测·水质传感器·水质厂家·供水水质监测·在线cod传感器·污水在线监测系统
龙文浩_12 分钟前
AI深度学习演进之路:从机器学习到大模型的范式变革
人工智能·深度学习·神经网络·算法·回归·线性回归
Xpower 1714 分钟前
PHM念叨叨系列--工业场景大模型幻觉治理
人工智能·python·语言模型
AEIC学术交流中心14 分钟前
【快速EI检索 | SPIE出版】2026年第六届计算机视觉与模式分析国际会议(ICCPA 2026)
人工智能·计算机视觉
AI先驱体验官16 分钟前
数字人技术正在改变企业服务:一场静悄悄的效率革命
大数据·运维·人工智能·重构·aigc
风巽·剑染春水22 分钟前
【扩散模型原理】(三)Score-Based Perspective: From EBMs to NCSN
人工智能·深度学习·生成模型·diffusion·扩散模型
紧固视界22 分钟前
轨道交通紧固件有哪些?应用场景及技术要求详解_2026上海紧固件专业展
大数据·人工智能·上海紧固件展·紧固件展·上海紧固件专业展