摄像机标定学习笔记(10)关于畸变矫正
来源:互联网 发布:淘宝包裹卡片 编辑:程序博客网 时间:2024/05/14 21:37
原创文章,欢迎转载。转载请注明:转载自 祥的博客
原文链接: http://blog.csdn.net/humanking7/article/details/45037239
1.摄像机成像原理简述
成像的过程实质上是几个坐标系的转换。首先空间中的一点由 世界坐标系 转换到 摄像机坐标系 ,然后再将其投影到成像平面 ( 图像物理坐标系 ) ,最后再将成像平面上的数据转换到图像平面 ( 图像像素坐标系 ) 。
详细的可以参考我之前的博客[图像]摄像机标定(1) 标定中的四个坐标系
图像像素坐标系 (uOv坐标系)
下的无畸变坐标 (U, V)
,经过 经向畸变 和 切向畸变 后落在了uOv坐标系
的 (Ud, Vd)
上。即就是说,真实图像 imgR 与 畸变图像 imgD 之间的关系为: imgR(U, V) = imgD(Ud, Vd)
。
2.成像畸变
2.1. 畸变数学模型
摄像头成像畸变的数学模型 (符合的对应关系有问题,可能会造成一些干扰,公式主要看后面推导的过程)
2.2. 公式推导
公式推导:
3.畸变校正
3.1. 理论推导
我们已知的是畸变后的图像,要得到没有畸变的图像就要通过畸变模型推导其映射关系。 真实图像 imgR 与 畸变图像 imgD 之间的关系为: imgR(U, V) = imgD(Ud, Vd)
。通过这个关系,找出所有的 imgR(U, V)
。(U, V) 映射到 (Ud, Vd)
中的 (Ud, Vd)
往往不是整数 (U和V是整数,因为它是我们要组成图像的像素坐标位置,以这正常图像的坐标位置去求在畸变图像中的坐标位置,取出对应的像素值,这也是正常图像的像素值)。 但是畸变的像素往往不是整数,所以需要通过插值来进行求解,详细见我之前的博客 [图像]图像缩放算法-双线性内插法 。
3.2. 代码实现
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
运行效果(摄像机内参是取网上的,图也是自己画的,图像本身没有参考价值):
- 摄像机标定学习笔记(10)关于畸变矫正
- 摄像机标定矫正畸变
- 摄像机标定--矫正畸变
- 基于Emgu的摄像机标定和畸变矫正
- 摄像机标定学习笔记(14)矫正与校正的区别
- 摄像机标定学习笔记(11)opencv姿态解算7 四大坐标系,摄像机线性模型, 畸变模型
- 相机的标定+畸变矫正
- 摄像机标定学习笔记(13)摄像机标定参数描述
- 摄像机标定学习笔记(9) 关于单应性
- 摄像机标定学习笔记(12)关于相机标定的问题答复网友(转载)
- 摄像机标定学习笔记(5) 关于张正友平面标定方法
- 摄像机标定学习笔记(6) 关于张正友平面标定方法
- 【OpenCV】摄像机标定+畸变校正
- 【OpenCV】摄像机标定+畸变校正
- 畸变矫正(反畸变)
- 摄像机标定学习笔记(1)
- 摄像机标定学习笔记(2)
- 摄像机标定学习笔记(3)
- hihocoder #1000 : A + B Java实现
- 纯JavaScript编写的开源图表库Highcharts v6.0.1发布 | 附下载
- GitChat·大数据 | 史上最详细的Hadoop环境搭建
- 线程bug引发的中奖作弊程序设计
- textField限制中文字符长度
- 摄像机标定学习笔记(10)关于畸变矫正
- 各大公司Java后端开发面试题总结
- ThreadLocal使用
- CCF CSP 2015.9.1-1 数列分段
- 在 CentOS7 上安装 zookeeper-3.4.9 服务
- PTA 7-18(查找) 新浪微博热门话题(30 分) 30分代码 (已更新)
- The service already exists(mysql启动)
- Python机器学习之验证码识别
- java ArrayList