相机去畸变,以及双目平行校正----极线校正(一)————之单目畸变校正详细过程
来源:互联网 发布:软件开发工程师学习 编辑:程序博客网 时间:2024/05/29 04:45
转载:http://blog.csdn.net/wangxiaokun671903/article/details/37973365
通过相机标定的程序获取了两个相机各自的内参矩阵和畸变系数,以及两个相机达到平行时各自的旋转矩阵。Opencv和Matlab都给了我们现成的函数,可以利用这些数据进行去畸变或者双目平行校正,因为有需求要将去畸变和平行校正移植到硬件上,那么自己如何利用这些参数和矩阵写去畸变的程序和双目平行校正的程序呢?我本人发现的网上这方面资料较少。在此总结一下。
去畸变的过程就是针对单目相机进行的变换,平行校正就是针对双目相机的操作。
本文针对单目去畸变的方法展开叙述:
和“从世界坐标系到相机坐标系再到图像物理坐标系最后到图像像素坐标系”过程相逆,我们做去畸变时,是已经通过相机标定获取了相机的内参矩阵和畸变系数的,另外,我们已知的就是相机拍摄出来一副图像。
内参矩阵:
畸变系数:
则各参数如下:
去畸变的操作步骤如下:
(1),将图像的像素坐标系通过内参矩阵转换到相机坐标系:
(2),在相机坐标系下进行去畸变操作。
(3),去畸变操作结束后,将相机坐标系重新转换到图像像素坐标系。
(4),并用源图像的像素值对新图像的像素点进行插值。
插值算法如下:
1、[x+1]-x;2、[y+1]-y;3、I1([x],[y]);4、y-[y];5、I1([x],[y+1]);6、x-[x];7、I1([x+1],[y]);8、I1([x+1],[y+1]);
I2(u,v)=1*2*3+1*4*5+6*2*7+6*4*8
编程实例:
去畸变之前的图像:
去畸变之后的图片:
0 0
- 相机去畸变,以及双目平行校正----极线校正(一)————之单目畸变校正详细过程
- 相机去畸变,以及双目平行校正----极线校正(一)————之单目畸变校正详细过程
- 相机去畸变,以及双目平行校正----极线校正(一)————之单目畸变校正详细过程
- 相机去畸变,以及双目平行校正----极线校正(一)————之单目畸变校正详细过程
- 相机去畸变,以及双目平行校正----极线校正(二)————之双目平行校正详细过程
- 相机去畸变,以及双目平行校正----极线校正(二)————之双目平行校正详细过程
- 双目相机的畸变校正以及平行校正(极线校正)的入门问题总结
- 双目相机的畸变校正以及平行校正(极线校正)的入门问题总结
- 双目相机的畸变校正以及平行校正(极线校正)的入门问题总结
- 双目相机的畸变校正以及平行校正(极线校正)的入门问题总结
- 双目相机的畸变校正以及平行校正(极线校正)的入门问题总结
- 相机畸变校正
- 【opencv】鱼眼图像畸变校正——透视变换
- 鱼眼图像畸变校正——透视变换
- 【opencv3.0】鱼眼图像畸变校正——标定校正
- 【opencv3.0】鱼眼图像畸变校正——标定校正
- 【opencv】普通相机标定畸变校正
- 手机广角相机标定和畸变校正
- Linux常用命令
- ubuntu14.04安装ssh,允许root登录
- spark入门(1)
- 去空格(爬虫)
- 编写简单守护进程
- 相机去畸变,以及双目平行校正----极线校正(一)————之单目畸变校正详细过程
- 偏向锁,轻量级锁,重量级锁
- yii下载
- Mac note -two
- bzoj 2064: 分裂(状压dp)
- C#之方法
- 各大网站幻灯片Flash广告的ASP.Net/C#版
- 版本更新 配置 value—String文件内容
- Eclipse插件推荐安装列表