相机畸变产生原因与公式表示(基本原理)

一、相机成像畸变

1、径向畸变

在相机制造过程中,很难保证镜头的厚度完全均匀 ,由于制造工艺的原因,通常这种情况为中间厚、边缘薄,因而光线在远离透镜中心的地方,会发生更大程序的扭曲,这种现象在鱼眼相机(桶形畸变)中尤为明显。

它们可以由k1、k2构成的下列数学公式描述:

其中,各参数意义如下:

通常只用k1、k2来矫正相机,k1对于畸变较小的图像中心区域有很大的作用和影响;

对于畸变较大的图像边缘区域,主要是k2在起作用,k3一般用于广角相机,鱼眼相机。

2、切向畸变

在相机制造过程中,成像平面与透镜平面不平行 ,产生透视变换,如下图所示:

切向畸变与距离图像中心的距离半径有关,公式如下:

其中,p1、p2表示切向畸变矫正系数,xy是发生畸变后的角点坐标,x' y'是畸变矫正后角点的坐标,r是曲率半径。

3、合并考虑畸变

原因:两种畸变是同时发生在成像过程中的,发生的原因也是相互独立的,而且也都是关于距离的表达式,似乎也找不到更好的方式来综合考虑这两种误差,实践证明,这种合并考虑畸变的情况效果还不错。

将径向畸变和切向畸变合并,只需将两个畸变矫正直接加起来即可,公式如下:

k1、k2、k3为径向畸变系数;p1、p2为切向畸变系数。

相机畸变现象发生的位置:

①世界坐标系 -> 相机坐标系:刚体变换,不存在畸变现象;

②相机坐标系 -> 图像坐标系:也就是成像过程,理想情况下是相似三角形,但实际由于相机智造、装配的原因,成像过程存在畸变现象;

③图像坐标系 -> 像素坐标系:坐标原点、单位不同,仅仅平移与缩放,不存在畸变现象。

4、内参外参总结

相机的内参数是六个分别为:1/dx、1/dy、r、u0、v0、f。

(1)r表示径向畸变量级,r为负值,畸变为桶型畸变,r为正值,畸变为枕型畸变,初始值为0。

(2)dx、dy表示图像传感器上水平和垂直方向上相邻像素之间的距离(像素/毫米)。

(3)u0,v0表示图像坐标系原点在像素坐标系中位置。

opencv1里说的内参数是4个其为fx、fy、u0、v0。

(1)fx、fy:x和y轴上的焦距(fx=f/dx、fy=f/dy)

(2)u0、v0:相对光轴而言,x和y方向上的偏移量

畸变参数:(k1、k2、p1、p2、k3)

相关推荐
格林威12 小时前
工业相机异常处理实战:断连重连、丢帧检测、超时恢复状态机
开发语言·人工智能·数码相机·计算机视觉·视觉检测·机器视觉·工业相机
_李小白1 天前
【OSG学习笔记】Day 31: 渲染到纹理(RTT)
笔记·数码相机·学习
双翌视觉2 天前
基于机器视觉实现开口卡簧自动化装配
运维·数码相机·自动化
ZHANG13HAO2 天前
大尺寸柔性基板(20×40cm)线阵相机检测系统落地指南
数码相机
格林威2 天前
ZeroMQ 在视觉系统中的应用
开发语言·人工智能·数码相机·机器学习·计算机视觉·c#·视觉检测
格林威2 天前
工业相机图像采集:如何避免多相机数据混乱
人工智能·数码相机·opencv·机器学习·计算机视觉·c#·视觉检测
ZHANG13HAO3 天前
大尺寸 FPC 柔性线路板线阵视觉检测系统落地指南
数码相机
格林威3 天前
GigE Vision 多相机同步优化方案: PTP + 硬件触发 + 时间戳对齐
c++·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
unityのkiven3 天前
如何通过DirectShow用C++实现PTZ相机的控制?
开发语言·c++·数码相机
纯爱掌门人3 天前
鸿蒙跨设备互通:让你的应用“借用“另一台设备的相机和图库
数码相机·华为·harmonyos