新的OPENCV和KINECT:)
如果此处还有其他类似的问题,我很抱歉 - 我进行了搜索,但仍然输了。
我正在尝试使用带有opencv的Microsoft Kinect SDK。我查看了SDK中的KinectBridgeWithOpenCVBasis示例,但发现它太复杂了。
这是一个问题:我正在使用此site中的DepthSensor类我试图将深度数据转换为opencv矩阵。代码如下:
DepthSensor *ds = new DepthSensor();
ds->init();
Mat frame;
ds->getDepthMat().copyTo(frame);
imshow("display", ds->getColorMat());
我确实添加了ds-> processDepth();在各个点检查它是否有效。确切的错误消息是:
OpenCV错误:cv :: imshow,fi中的断言失败(size.width> 0& size.height> 0) le C:\ builds \ 2_4_PackSlave-win64-vc12-shared \ opencv \ modules \ highgui \ src \ window.c pp,第261行
和
opencvtest.exe中0x000007FEFC7B940D处的未处理异常:Microsoft C ++异常:cv ::内存位置0x00000000001AF500处的异常。
关于我如何解决此问题的任何想法?感谢。
MT
答案 0 :(得分:0)
我对OpenCV和Kinect仍然相当新,但我遇到了this post。它似乎描述了一个类似的问题。如果您查看任何帖子的最后评论,OP已经描述了他们找到的解决方案:
感谢您的回答。我想出了这个问题。这是一场冲突 在32位和64位dll之间与编译器相比。当我安装VS 2010年与superpack 2.3编译器我认为尝试使用混合匹配 x86和x64 dll基于它在环境变量中的设置方式 和Vs2010。我通过在另一个上安装VS2010来解决这个问题 只有x86支持编译器的计算机,我没有遇到任何麻烦。 一切都很好!完全相同的设置,只有一个是X86和 另一个是X86和X64。它没有意义,因为编译器应该 选一个吧?而不是x86和64 dll的混合?
另一种(可能是相关的?)可能性是您在安装OpenCV时出现问题。最初几次我尝试构建库我犯了错误,并在尝试运行代码时遇到了奇怪的错误。我最终决定使用预先构建的库。如果您遇到所有OpenCV代码错误,请尝试重新安装。
最后,您似乎只发布了代码片段。我见过很多人要求问题包括完整的代码,以便更容易调试,以防你在其他地方错过了错误。
祝你好运!