OPENCV立体标定

OPENCV立体标定


2024年4月6日发(作者:)

OpenCV

学习笔记(

16

)双目测距与三维重建的

OpenCV

实现问题集锦(一)图像获取与单目定标

分类: 机器视觉 2010-10-24 08:03 5610人阅读 评论(17) 收藏 举报

双目测距的基本原理

如上图所示,双目测距主要是利用了目标点在左右两幅视图上成像的横向坐标直接

存在的差异(即视差 )与目标点到成像平面的距离Z存在着反比例的关系:

Z=fT/d。“@scyscyao :在OpenCV中,f的量纲是像素点,T的量纲由定标板棋盘

格的实际尺寸和用户输入值确定,一般是以毫米为单位(当然为了精度提高也可以

设置为0.1毫米量级),d=xl-xr的量纲也是像素点。因此分子分母约去,Z的量纲

与T相同。 ”

假设目标点在左视图中的坐标为(x,y),在左右视图上形成的视差为d,目标点在

以左摄像头光心为原点的世界坐标系中的坐标为(X,Y,Z),则存在上图所示的变换

矩阵Q,使得 Q*[x y d 1]’ = [X Y Z W]’。

“@scyscyao :为了精确地求得某个点在三维空间里的距离Z,我们需要获得的参数

有焦距f、视差d、摄像头中心距Tx。如果还需要获得X坐标和Y坐标的话,那么还需

要额外知道左右像平面的坐标系与立体坐标系中原点的偏移cx和cy。其中f, Tx, cx

和cy可以通过立体标定获得初始值,并通过立体校准优化,使得两个摄像头在数学

上完全平行放置,并且左右摄像头的cx, cy和f相同(也就是实现图2中左右视图完全

平行对准的理想形式)。而立体匹配所做的工作,就是在之前的基础上,求取最后一

个变量:视差d(这个d一般需要达到亚像素精度)。从而最终完成求一个点三维坐标

所需要的准备工作。在清楚了上述原理之后,我们也就知道了,所有的这几步:标

定、校准和匹配,都是围绕着如何更精确地获得 f, d, Tx, cx 和cy 而设计的 。 ”

一、图像的获取

1. 如何打开两个或多个摄像头?

可以通过OpenCV的capture类函数或者结合DirectShow来实现双摄像头的捕获,具

体可见我的读书笔记《OpenCV学习笔记(6)基于 VC+OpenCV+DirectShow 的

多个摄像头同步工作 》。文中曾提及不能用cvCreateCameraCapture 同时读取两


发布者:admin,转转请注明出处:http://www.yc00.com/news/1712390923a2051261.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信