Orbbec和OpenNi2:默认使用DeviceOpen:未找到设备

时间:2018-02-21 22:07:15

标签: visual-c++ visual-studio-2015 openni

我有一个通过USB连接的Orbbec Astra深度传感器,设备管理器显示驱动程序已正确安装。

我从orbbec.com下载了“Astra& OpenNI2”软件包,但是我只是从structure.io下载了SensorDriver_V4.3.0.4.exe和OpenNI2软件包。

我有以下代码,编译得很好。但是在运行时会返回Device open failed: DeviceOpen using default: no devices found

运行NiViewer.exe时会发生同样的事情我在这里做错了什么?是否需要一些额外的驱动程序?

#include "stdafx.h"
#include <OpenNI.h>

int main()
{
    openni::Status rc = openni::STATUS_OK;
    openni::Device device;
    openni::VideoStream depth, color;

    const char* deviceURI = openni::ANY_DEVICE;

    rc = openni::OpenNI::initialize(); 

    printf("After initialization:\n%s\n", openni::OpenNI::getExtendedError());

    rc = device.open(deviceURI); 

    if (rc != openni::STATUS_OK)
    {
        printf("Device open failed: %s\n", openni::OpenNI::getExtendedError());
        openni::OpenNI::shutdown();
        return 1;
    }

    return 0;
}

2 个答案:

答案 0 :(得分:1)

您只需要在已安装的OPENNI2 2.2 SDK文件夹结构中复制3个文件(在ORBBEC的zip自定义OpenNI 2.3中提供)(类似于zzzz \ OpenNI2 \ Drivers:

  • xxxx \ OpenNI2 \ Drivers \ orbbec.ini xxxx \ OpenNI2 \ Drivers \ orbbec.lib xxxx \ OpenNI2 \ Drivers \ orbbec.dll

基本上这样做,您通过添加&#34;驱动程序&#34;来扩展OPENNI2托管摄像头的数量。当前的默认安装文件夹已包含以下内容:

  • Kinect.dll, Onifile.dll, PS1080.ini PS1080.lib PS1080.dll PSLink.ini PSLink.lib PSLink.dll

(所以在那里添加3个orbbec文件)

重要提示:如果从命令行启动niviewer.exe,它将首先搜索相对子文件夹\ OpenNI2 \ drivers子文件夹(在这种情况下更新此文件),否则将在默认安装中查找此子文件夹环境参数(OPENNI2_REDIST或OPENNI2_REDIST64)取决于您的安装。 所以要小心! 希望它有所帮助。

答案 1 :(得分:0)

我&#34;解决了#34;通过卸载我从structure.io下载的OpenNI2包并使用Orbbec驱动程序附带的OpenNI2文件来解决此问题。

仍然不知道为什么我不能使用普通的OpenNI2套餐......

相关问题