将Kinect数据转换为OpenCV矩阵

converting kinect data to opencv matrix

本文关键字:OpenCV 矩阵 转换 Kinect 数据      更新时间:2023-10-16

opencv和kinect的新手:)

我很抱歉,如果这里还有其他类似的问题 - 我确实搜索并且仍然迷路了。

我正在尝试将Microsoft Kinect SDK与OpenCV一起使用。我查看了SDK中的KinectBridgeWithOpencvBasis示例,但发现它太复杂了。

这是一个问题:我正在使用此站点的DepthSensor类,我正在尝试将深度数据获取到OpenCV矩阵中。代码如下:

DepthSensor *ds = new DepthSensor();
ds->init();
Mat frame;
ds->getDepthMat().copyTo(frame);
imshow("display", ds->getColorMat());

我确实添加了ds-> processDepth();在各个方面检查它是否有效。确切的错误消息是:

opencv错误:断言失败(size.width> 0& size.height> 0)cv :: imshow,file c: builds 2_4_packslave-win64-vc12-shared opencv opencv 模块 highgui src window.c.cPP,第261行

opencvtest.exe中的0x000007fefc7b940d在0x000007fefc7b940d上:Microsoft C 例外:CV :: exception在存储位置0x0000000000001af500。

关于我如何解决这个问题的任何想法?谢谢。

mt

我对OpenCV和Kinect也很陌生,但是我遇到了这篇文章。它似乎描述了一个类似的问题。如果您查看有关任何帖子的最后评论,OP描述了他们发现的解决方案:

感谢您的回答。我弄清楚了这个问题。这是冲突 在32和64位DLL与编译器之间。当我安装 2010年使用SuperPack 2.3编译器,我认为编译器试图使用混音匹配 基于其在环境中的设置vars的方式,x86和x64 dll 和VS2010。我通过在其他不同的地方安装VS2010来弄清楚 只有x86支持编译器的计算机和我一点也没有问题。 一切都很好!完全相同的设置,只有一个是x86, 另一个是x86和x64。这没有道理,因为编译器应该 选择一个对吗?而不是x86和64 dll的混合物?

另一个(也许是相关的?)可能是您安装OpENCV时出了问题。我尝试构建图书馆的第一个次,我在尝试运行代码时会犯错误,并遇到了奇怪的错误。我最终使用预先构建的库进行了定居。如果您使用所有OpenCV代码遇到错误,请尝试重新安装。

最后,似乎您只发布了代码的片段。我看到很多人要求问题包括完整的代码,以便可以更容易地调试,以防您错过其他地方的错误。

祝你好运!