繁体   English   中英

ReprojectImageTo3D 图像中的对应像素(立体视觉)

[英]ReprojectImageTo3D corresponding pixel in image (Stereo Vision)

我有一个视差图。

根据视差图,将鼠标悬停在“左图”上会显示:

图像的Xy ,所以如果我将鼠标悬停在最左上角,它将显示x:0, y:0

下一步是显示特定像素的距离,为了让我的生活更轻松,我将尝试使用reprojectImageTo3D(disp, Q)

我从stereoRectify得到了Q

现在,在 python 中reprojectImageTo3D返回一个n by 3矩阵。

所以我可以看到,它是一行xyz坐标。 想知道,我怎么知道这些坐标对应于哪个像素?

这是我使用 numpy.savetxt 保存的 3D 点示例

http://pastebin.com/wwDCYwjA

顺便说一句:我在 python 中做所有事情,但是在 Java 中做 GUI,我没有时间在 python 中学习 GUI。

如果您正确计算视差图,您应该得到 (n1,n2,1) 维数组,其中 n1,n2 - 轴的图像像素数,1 - 通道数(单通道,包含对应像素之间的像素距离)从左右图像)。 您应该通过输入disp.shapedisp.shape 之后,您应该将视差图的 ndarray 传递给reprojectImageTo3D函数并获得 ndarray,它具有 (n1,n2,3) 形状(第三维包含 3D 点的 X、Y、Z 坐标)。 您可以通过键入以下内容进行检查:

threeDImage = reprojectImageTo3D(disp, Q)
print threeDImage.shape

最后,由于您根据左图像制作了视差图,因此在左图像(或视差图)上具有坐标 x,y 的每个像素对应于 ThreeDImage[x][y] 3D 点。 请记住, row:0, column:0 是矩阵的左上角元素,基于 opencv 处理图像:

0/0---column--->
 |
 |
row
 |
 |
 v

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM