gpt4 book ai didi

c++ - 如何在 openni 和 opencv 中使用 Kinect

转载 作者:太空狗 更新时间:2023-10-29 21:00:14 25 4
gpt4 key购买 nike

一开始,我只需要捕获 RGBstream 并将其转换为一系列 opencv 图像。应该不难,但是我在网上找到了不止一个代码,但是它们不能在我的电脑上运行。不知道哪里错了。

你能给我推荐一个非常简单的代码教程,让我了解如何使用 Kinect 库吗?一开始我尝试了 Kinect sdk,过了一会儿选择了 OPENNI

帮帮我,谢谢!

ps: 我正在使用 c++VISUAL STUDIO 2010

最佳答案

AFAIK 开箱即用 OpenCV 支持 OpenNI 1.5.x。如果您还没有安装 OpenNI,请先按照以下特定顺序(这很重要)安装:

  1. 安装 OpenNI 1.5.7
  2. 安装 NITE(兼容 1.5.7)
  3. 如果您使用的是 Kinect(而不是 Asus)传感器,还要安装 Avin's SensorKinect driver

此时您应该已经安装了 OpenNI,所以请继续运行其中一个示例。

默认情况下,预构建的 opencv 库未使用 OpenCV 支持进行编译,因此您需要从源代码构建 opencv 以启用 OpenNI 支持。

安装 CMakeGUI如果你还没有这样做的话。这将允许您轻松配置 opencv 构建过程。运行它,浏览到 opencv 源文件夹,选择一个目标目录来放置你的构建文件并点击配置。

您应该有一个很大的选项列表。如果你滚动,你应该看到检测到 OpenNI 安装文件夹(如果没有,你应该修复路径),你也应该和 WITH_OPENNI 标记你可以启用。

当你完成后按生成,它应该生成你需要的 visual studio 项目文件来轻松编译 opencv 库。

有关在 Windows 上从源代码构建 opencv 的更多详细信息,请查看 official documentation

当你完成编译后,你应该已经构建了支持 openni 的 opencv,你应该能够运行一些简单的东西:

#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"

#include <iostream>

using namespace cv;
using namespace std;

int main(){
cout << "opening device(s)" << endl;

VideoCapture sensor1;
sensor1.open(CV_CAP_OPENNI);

if( !sensor1.isOpened() ){
cout << "Can not open capture object 1." << endl;
return -1;
}

for(;;){
Mat depth1;

if( !sensor1.grab() ){
cout << "Sensor1 can not grab images." << endl;
return -1;
}else if( sensor1.retrieve( depth1, CV_CAP_OPENNI_DEPTH_MAP ) ) imshow("depth1",depth1);

if( waitKey( 30 ) == 27 ) break;//ESC to exit

}
}

另见 this similar answer .如果您需要使用 OpenNI 2.x,请参阅以下资源:

关于c++ - 如何在 openni 和 opencv 中使用 Kinect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22531480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com