【发布时间】:2016-06-20 13:05:05
【问题描述】:
我无法在我的 Windows PC 中初始化 Kinect v1。
这是我的代码(构建成功):
#include <Windows.h>
#include <Ole2.h>
#include <gl/GL.h>
#include <gl/GLU.h>
#include <gl/glut.h>
#include <NuiApi.h>
#include <NuiImageCamera.h>
#include <NuiSensor.h>
#define width 640
#define height 480
// Kinect variables
HANDLE rgbStream; // The identifier of the Kinect's RGB Camera
INuiSensor* sensor; // The kinect sensor
int main(int argc, char* argv[]) {
// Get a working kinect sensor
int numSensors=1;
HRESULT reponse;
reponse = NuiGetSensorCount(&numSensors);
if (reponse < 0) return false;
if (numSensors < 1) return false;
if (NuiCreateSensorByIndex(0, &sensor) < 0) return false;
// Initialize sensor
sensor->NuiInitialize(NUI_INITIALIZE_FLAG_USES_DEPTH | NUI_INITIALIZE_FLAG_USES_COLOR);
sensor->NuiImageStreamOpen(
NUI_IMAGE_TYPE_COLOR, // Depth camera or rgb camera?
NUI_IMAGE_RESOLUTION_640x480, // Image resolution
0, // Image stream flags, e.g. near mode
2, // Number of frames to buffer
NULL, // Event handle
&rgbStream);
return sensor;
}
问题是函数“NuiGetSensorCount”总是返回传感器数量为0。
Kinect 1 通过 USB 端口插入 PC(我尝试过不同的端口);奇怪的是,如果我运行像 Skanect (1.8 Win64) 这样的软件,Skanect 会识别设备(它被检测为 OpenNI 2 Sensor)并且我可以使用它。
我在 Windows 7 64 位中使用 Visual Studio 2013 Update 5。 我已经为 Windows SDK v1.8 安装了 OpenNI 64 位 2 驱动程序和 Kinect。
在我的项目属性中,我调用位于以下位置的 Kinect10.lib 库:
- C:\Program Files\Microsoft SDKs\Kinect\v1.8\lib\x86
- C:\Program Files\Microsoft SDKs\Kinect\v1.8\lib\amd64
(我在 x86 和 x64 配置中都试过)
同样,对于我尝试使用位于以下位置的 Kinect10.dll 二进制文件的每个配置:
- C:\Windows\System32
- C:\Windows\SysWOW64
非常欢迎任何 cmets/建议。 另外,如果我遗漏了一些您认为相关的信息,请告诉我。
提前致谢。
【问题讨论】:
标签: c++ windows sdk initialization kinect