[英]ReprojectImageTo3D corresponding pixel in image (Stereo Vision)
我有一个视差图。
根据视差图,将鼠标悬停在“左图”上会显示:
图像的X
和y
,所以如果我将鼠标悬停在最左上角,它将显示x:0, y:0
下一步是显示特定像素的距离,为了让我的生活更轻松,我将尝试使用reprojectImageTo3D(disp, Q)
我从stereoRectify
得到了Q
现在,在 python 中reprojectImageTo3D
返回一个n by 3
矩阵。
所以我可以看到,它是一行xyz
坐标。 想知道,我怎么知道这些坐标对应于哪个像素?
这是我使用 numpy.savetxt 保存的 3D 点示例
顺便说一句:我在 python 中做所有事情,但是在 Java 中做 GUI,我没有时间在 python 中学习 GUI。
如果您正确计算视差图,您应该得到 (n1,n2,1) 维数组,其中 n1,n2 - 轴的图像像素数,1 - 通道数(单通道,包含对应像素之间的像素距离)从左右图像)。 您应该通过输入disp.shape
来disp.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.