【问题标题】:Orbbec and OpenNi2: DeviceOpen using default: no devices foundOrbbec 和 OpenNi2:DeviceOpen 使用默认值:未找到设备
【发布时间】:2019-11-25 09:23:25
【问题描述】:

我通过 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;
}

【问题讨论】:

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


    【解决方案1】:

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

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

    基本上这样做,您通过添加“驱动程序”来扩展 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)取决于您的安装。 所以保重! 希望对您有所帮助。

    【讨论】:

    • 没有帮助...同样的问题
    【解决方案2】:

    我通过卸载从 structure.io 下载的 OpenNI2 包并使用 Orbbec 驱动程序附带的 OpenNI2 文件来“解决”了这个问题。

    仍然不知道为什么我不能使用普通的香草 OpenNI2 包...

    【讨论】:

      猜你喜欢
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-10
      • 2016-09-01
      • 2018-09-22
      • 2019-11-24
      • 1970-01-01
      相关资源
      最近更新 更多