下载此文档

双摄像头测距参考资料.doc


文档分类:通信/电子 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
双摄像头测距,,书中Z的公式如下: 在OpenCV中,f的量纲是像素点,Tx的量纲由定标棋盘格的实际尺寸和用户输入值确定,一般总是设成毫米,,d=xl-xr的量纲也是像素点。因此分子分母约去,z的量纲与Tx相同图2,双摄像头模型立体视图 图2解释了双摄像头获取空间中某点三维坐标的原理。 可以看到,实际的坐标计算利用的都是相似三角形的原理,其表达式就如同Q矩阵所示。  空间中某点的三维坐标就是(X/W,Y/W,Z/W。 因此,为了精确地求得某个点在三维空间里的距离,我们需要获得的参数有焦距f、视差d、摄像头中心距Tx。如果还需要获得X坐标和Y坐标的话,那么还需要额外知道左右像平面的坐标系与立体坐标系中原点的偏移cx和cy。其中f,Tx,cx和cy可以通过立体标定获得初始值,并通过立体校准优化,使得两个摄像头在数学上完全平行放置,并且左右摄像头的cx,cy和f相同(也就是实现图2中左右视图完全平行对准的理想形式。而立体匹配所做的工作,就是在之前的基础上,求取最后一个变量:视差d(这个d一般需要达到亚像素精度。从而最终完成求一个点三维坐标所需要的准备工作。 标定、校准和匹配,都是围绕着如何更精确地获得f,d,Tx,cx和cy而设计的。Q1:标定时棋盘格的大小如何设定,对最后结果有没有影响?A:当然有。在标定时,需要指定一个棋盘方格的长度,这个长度(一般以毫米为单位,,标定得出的结果才能用于实际距离测量。一般如果尺寸设定准确的话,通过立体标定得出的Translation的向量的第一个分量Tx的绝对值就是左右摄像头的中心距。一般可以用这个来验证立体标定的准确度。比如我设定的棋盘格大小为270(27mm,(,相当精确。 Q2:通过立体标定得出的Tx符号为什么是负的?A:这个其实我也不是很清楚。个人的解释是,立体标定得出的T向量指向是从右摄像头指向左摄像头(也就是Tx为负,而在OpenCV坐标系中,坐标的原点是在左摄像头的。因此,用作校准的时候,要把这个向量的三个分量符号都要换一下,最后求出的距离才会是正的。但是这里还有一个问题,就是LearningOpenCV中Q的表达式,第四行第三列元素是-1/Tx,而在具体实践中,求出来的实际值是1/Tx。这里我和maxwellsdemon讨论下来的结果是,估计书上Q表达式里的这个负号就是为了抵消T向量的反方向所设的,但在实际写OpenCV代码的过程中,那位朋友却没有把这个负号加进去。(一家之言,求更详细的解释 Q3:cvFindStereoCorrespondenceBM的输出结果好像不是以像素点为单位的视差?A:,BM函数得出的结果是以16位符号数的形式的存储的,出于精度需要,所有的视差在输出时都扩大了16倍(2^4。其具体代码表示如下:dptr[y*dstep]=(short(((ndisp-mind-1+mindisp*256+(d!=0?(p-n*128/d:0+15>>4;可以看到,原始视差在左移8位(256并且加上一个修正值之后又右移了4位,最终的结果就是左移4位因此,在实际求距离时,cvReproje

双摄像头测距参考资料 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人q1188830
  • 文件大小312 KB
  • 时间2019-11-06
最近更新