gpt4 book ai didi

opencv - opencv检测真实世界的坐标

转载 作者:行者123 更新时间:2023-12-02 17:53:17 29 4
gpt4 key购买 nike

我遵循了《学习OpenCV》一书中的立体声实现。我有基本的,基本的,旋转的,平移的矩阵,如何计算单击的对象的真实位置?

最佳答案

您可以使用ReprojectTo3D

reprojectImageto3D函数需要视差图,与图像大小相同的输出数组和数组Q(视差深度图)。

Q是从stereoRectify函数计算得出的-> stereoRectify需要两个摄像机之间的固有摄像机矩阵,失真系数以及相对旋转和平移 vector (R&T)。

要计算所有这些,请使用stereoCalibrate函数输出所有这些。
http://opencv.willowgarage.com/documentation/camera_calibration_and_3d_reconstruction.html-这是我提到的所有功能的链接。

因此,编码顺序为:

1> stereoCalibrate(现在使用同一台摄像机的2个 View ):获得失真系数,摄像机和R&T的固有矩阵(您已经执行过此操作)。

2>计算视差并存储图像-使用此处显示的视差计算(3d reconstruction from 2 images without info about the camera)了解作为reprojectImageto3D的第一个和第二个参数需要什么样的输入。

3>使用stereoRectify获得Q。

4>将所有值插入reprojectImage to3D中以生成坐标。输出数组_3dImage中的每个条目,即在每个像素处,我们将有3个值存储在一起:与像素相对应的x,y坐标和从Q计算的z坐标。这个z坐标本质上就是我们想要的。

一旦计算了视差图并使用Q获得_3dImage,(i, j)的每个_3dImage都有(x, y, z)值。我什至将其移植到PCL上以查看3D图像,这就是它的外观。

这就是视差图的样子

这是使用PCL的相应3D View

关于opencv - opencv检测真实世界的坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14414274/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com