首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenKinect - FreenectDevice抽象?

OpenKinect - FreenectDevice抽象?
EN

Stack Overflow用户
提问于 2012-04-27 03:07:59
回答 1查看 315关注 0票数 0

我正在尝试设置一个简单的程序来使用OpenKinect连接Kinect,并以某种方式测试与我的笔记本电脑的通信。我可以很好地运行演示,但我想通过代码来测试它,以确保我知道发生了什么。到目前为止,我仍然无法连接它。现在的代码是-

代码语言:javascript
复制
#include "/usr/local/include/libfreenect.hpp"
#include <iostream>
using namespace std;
Freenect::FreenectDevice::FreenectDevice* device; 

int main(int argc, char** argv) {
    Freenect::Freenect k;
    device = &k.createDevice<Freenect::FreenectDevice>(0);  //line 8
    cout<<"\ndeviceCount:"<<k.deviceCount();
    return 0;
}

当我编译时,它告诉我

代码语言:javascript
复制
    In member function ‘ConcreteDevice& Freenect::Freenect::createDevice(int) [with ConcreteDevice = Freenect::FreenectDevice]’:
test_kinect.cpp:8:   instantiated from here

libfreenect.hpp:196: error: cannot allocate an object of abstract type ‘Freenect::FreenectDevice’

那么FreenectDevice类是abstract...well,那么我该如何创建设备呢?每当我想要使用OpenKinect时,我是否需要编写自己的类来继承这个类?我对如何实际使用这个库提供的代码感到非常困惑。我一直在搜索一些基本的教程,但什么也没有找到。如果有人知道一个好的教程,那将是我现在最好的事情。感谢您的帮助,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-27 04:23:36

是的,您需要继承FreenectDevice并实现两个回调函数(VideoCallbackDepthCallback),这两个回调函数将接收Kinect注册的视频和深度信息。

示例的问题是,在库的生命周期中,API发生了变化,因此它们可能并不都能与当前版本一起工作。最适合运行示例代码的是libfreenect Wiki的C++ wrapper section,它有两个(最好是)当前的示例,以及包含在OpenKinect本身的源代码发行版中的cppview.cpp

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10339791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档