目录

1、径向畸变

2. 切向畸变

3. 畸变模型


透镜由于制造精度以及组装工艺的偏差会引入畸变,导致原始图像的失真。镜头的畸变分为径向畸变和切向畸变两类。

1、径向畸变

顾名思义,径向畸变就是沿着透镜半径方向分布的畸变,产生原因是光线在原理透镜中心的地方比靠近中心的地方更加弯曲,这种畸变在短焦镜头中表现更加明显,径向畸变主要包括桶形畸变和枕形畸变两种。以下分别是枕形和桶形畸变示意图:

成像仪光轴中心的畸变为0,沿着镜头半径方向向边缘移动,畸变越来越严重。畸变的数学模型可以用主点(principle point)周围的泰勒级数展开式的前几项进行描述,通常使用前两项,即k1和k2,对于畸变很大的镜头,如鱼眼镜头,可以增加使用第三项k3来进行描述,成像仪上某点根据其在径向方向上的分布位置,调节公式为:

公式里(x0,y0)是畸变点在成像仪上的原始位置,(x,y)是校正后新的位置。注意这个公式,(x0,y0)是畸变的原图上像素点的位置;(x,y)是校正后输出图像上像素点的位置。实现过程是,对输出图的点做遍历——以1080p的图像为例,从点(0,0)到点(1919,1079),一行一行的遍历——依次找到输出点(x, y)对应的原图点(x0, y0)的像素值,再将(x0, y0)的值赋给(x, y)。如果计算出来的对应的原图的点(x0, y0)不是整数,则用二次线性插值计算此点,然后赋值给(x, y)。

举个一维差值示例:

计算得到,要用x0=0.3位置的点赋值到纠正后的图像的对应点上。

x0=0的点RGB(120, 120, 240),x0=1的点RGB(100, 110, 250)。

那么可以计算x0=0.3位置的

R=120*(1-0.3)+100*0.3=114;

G=120*(1-0.3)+110*0.3=117;

B=240*(1-0.3)+250*0.3=243

        完成所有遍历后,就得到了输出图像。下图是距离光心不同距离上的点经过透镜径向畸变后点位的偏移示意图,可以看到,距离光心越远,径向位移越大,表示畸变也越大,在光心附近,几乎没有偏移。

2. 切向畸变

切向畸变是由于透镜本身与相机传感器平面(成像平面)或图像平面不平行而产生的,这种情况多是由于透镜被粘贴到镜头模组上的安装偏差导致。

畸变模型可以用两个额外的参数p1和p2来描述:

        下图显示某个透镜的切向畸变示意图,大体上畸变位移相对于左下——右上角的连线是对称的,说明该镜头在垂直于该方向上有一个旋转角度。

3. 畸变模型

同时对径向、切向畸变消除就是将两组式子合并。

最终可以得到5个畸变参数:

畸变参数的一般顺序是k1,k2,p1,p2,k3。之所以把k3放在最后其实也很容易理解,因为前面说了一般k1,k2用来处理径向畸变足矣,k3相对而言用的比较少。

在Opencv中他们被排列成一个5*1的矩阵,经常被定义为Mat矩阵的形式:

Mat distCoeffs=Mat(1,5,CV_32FC1,Scalar::all(0))

这5个参数就是相机标定中需要确定的相机的5个畸变系数。求得这5个参数后,就可以校正由于镜头畸变引起的图像的变形失真,下图显示根据镜头畸变系数校正后的效果:

转载:https://blog.csdn.net/lyfwill/article/details/81636281

ISP—镜头畸变校正相关推荐

  1. 计算摄影:基于深度学习的畸变校正

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 在手机中的计算摄影4-超广角畸变校正中,我为你描述了广角镜头的镜头畸变校正和透视畸变校正,尤其是花了很 ...

  2. 基于深度学习的畸变校正

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 荐语 透镜由于制造精度以及组装工艺的偏差会引入畸变,导致原始图像的 ...

  3. 【camera】【ISP】Lens Shading Correction镜头阴影校正

    ISP-LSC 镜头阴影校正 参考: https://zhuanlan.zhihu.com/p/389334269 https://blog.csdn.net/xiaoyouck/article/de ...

  4. 用OpenCV+Python对广角(包括鱼眼)镜头进行实时畸变校正

    用普通摄像头的标定方式(cv2.calibrateCamera()或cv2.calibrateCameraExtended())去获取摄像头内参(包括畸变参数)已不适用于广角或鱼眼摄像头了. 此文主要 ...

  5. 鱼眼相机的成像模型与畸变校正

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨11号线人 来源丨十一号组织 "800万像素","250m测距能力 ...

  6. OpenCV畸变校正原理以及损失有效像素原理分析

    常用的张正友标定法的流程,其中获取了摄像机的内参矩阵K,和畸变系数D. 1.在普通相机cv模型中,畸变系数主要有下面几个:(k1; k2; p1; p2[; k3[; k4; k5; k6]] ,其中 ...

  7. matlab相机畸变校正csdn,android广角相机畸变校正算法和实现示例

    1.光学相机镜头一般都存在畸变的问题,畸变属于成像的几何失真,它是由于焦平面上不同区域对影像的放大率不同而形成的画面扭曲变形现象.除了一些特定的场合,大部分情况下,这些失真都是需要校正到正常人眼不产生 ...

  8. OpenCV相机标定与畸变校正

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自OpenCV学堂. OpenCV单目相机标定,图像畸变校正 相机标定定义与原理 01 在图像测量过程以及机器视觉应用中,为确定空间物体表面某点 ...

  9. 摄像机标定以及镜头畸变

    摄像机标定其本质就是计算摄像机的内参和外参.关于标定板上的世界坐标对应到图像像素坐标的过程这里就不做推导,网上太多博客都有详细推导过程.本篇主要说明摄像机标定原理里的几个要点: 1. 外参矩阵所含旋转 ...

最新文章

  1. PostgreSQL 9.3 beta2 stream replication primary standby switchover bug?
  2. 从无头单链表中删除节点 结构之法 4
  3. Spring Cloud Alibaba - 13 OpenFeign应用篇
  4. 20180525小测
  5. C++中随机函数rand()和srand()的用法
  6. Markdown公式输入(very nice!!!)
  7. SpringCloudConfig(了解)
  8. Python的内建属性和内建函数
  9. 条令考试小程序辅助器_应知应会|条令纲要学习微课堂(六)
  10. so easy 的弹出层——使用jquery
  11. 个人博客网站搭建详细视频教程和源码
  12. Axure原型设计概述
  13. matlab 另存为excel_将matlab数据保存为excel文件
  14. 关于XML 编辑工具
  15. parted 对nvme盘进行分区
  16. html头像生成器,2020头像生成器
  17. mysql常用存储引擎以及悲观锁与乐观锁
  18. 【解决方案】Error response from daemon: Conflict. The container name /mongo is already in use by contain
  19. 超级电容充放电时间计算
  20. 内网穿透基础概念---内网外网

热门文章

  1. app点餐点菜订餐订菜系统(前台h5,后台Java,SSH,mysql)
  2. 宽带用户接入认证方式浅析
  3. 中国喷涂行业规划趋势与产销需求报告2021年版
  4. Vue组件的props
  5. Windows 7之如何更改计算机名
  6. IBM Rational Rhapsody 8.0和Rhapsody Design Manager 4.0中的新增功能
  7. Romberg算法(Matlab实现)
  8. Kafka系列(五)、开启SASL安全认证以及配置ACL权限控制
  9. (转)WPF面板布局介绍Grid、StackPanel、DockPanel、WrapPanel
  10. 前端react引入阿里矢量图标