gpt4 book ai didi

c++ - 如何使用 Triclops 和 FlyCapture SDK 从 PointGrey BumbleBee2 立体相机创建深度图?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:24:08 26 4
gpt4 key购买 nike

我有 BumbleBee 2 立体相机和两个提到的 SDK。

我已经设法在我的程序中从中捕获视频,校正立体图像并获得视差图。接下来我想要的是一张类似于 Kinect 提供的深度图。

Triclops 的文档比较短,只提到了功能,没有典型的工作流程描述。工作流程在示例中进行了描述。

到目前为止,我发现了 2 个相关函数:triclopsRCDxxToXYZ() 函数系列和 triclopsExtractImage3d() 函数。

第一个系列的函数计算单个像素的 x、y 和 z 坐标。 Z 坐标完全对应于以米为单位的深度。但是,要使用此函数,我应该创建两个嵌套循环,如 stereo3dpoints 示例中所示。这带来了太多的开销,因为每次调用都会返回两个以上的坐标。

第二个函数,triclopsExtractImage3d(),总是返回错误TriclopsErrorInvalidParameter。文档只说“上下文和 TriclopsImage3d 之间存在几何不匹配”,这对我来说并不清楚。

Triclops 3.3.1 SDK 的示例没有说明如何使用它。谷歌带来example from Triclops SDK 3.2 ,这在 3.3.1 中不存在。

我已经尝试将上面链接中的第 253-273 行添加到当前的 stereo3dpoints - 遇到了这个错误。

有没有人有这方面的经验?

使用 triclopsExtractImage3d() 是否有效还是已过时?

我还尝试绘制从 triclopsRCDxxToXYZ() 获得的 disparityz 的值。

该图显示几乎完全成反比:enter image description here .

z = k/disparity。但是 k 在整个图像中并不是恒定的,它在大约 2.5e-5 到 1.4e-3 之间变化,这是两个数量级。因此,这个值计算一次,永远使用是不正确的。

最佳答案

也许有点晚了,你自己想通了,但是:

要使用 triclopsExtractImage3d,您必须先创建一个 3dImage。

TriclopsImage3d *depthImage;
triclopsCreateImage3d(triclopsContext, &depthImage);
triclopsExtractImage3d(triclopsContext, depthImage);
triclopsDestroyImage3d(&depthImage);

关于c++ - 如何使用 Triclops 和 FlyCapture SDK 从 PointGrey BumbleBee2 立体相机创建深度图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21775081/

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