浅析OpenNI2---简介
来源:互联网 发布:双序列比对算法 编辑:程序博客网 时间:2024/06/10 06:02
OpenNI简介
OpenNI中文译为开放自然语言交互,用官方的表述来讲就是a standard framework for 3D sensing,用于3D感知的开发接口;OpenNI2是第二代版本,相对于第一代更加专注于对3D设备的支持和数据的获取,移除了手势识别等中间件的方式,代码更加的精简,简而言之OpenNI2就是一个RGBD相机的用户态驱动,对上提供统一的接口,方便用户获取RGBD的图像数据,对下提供统一的标准类,方便RGBD厂商进行适配;目前OpenNI2支持的设备包括PS1080、PSLink、orbbec、Kinect等设备,由于其清晰的代码结构,很容易对第三方设备进行适配;OpenNI2的源码地址为https://github.com/OpenNI/OpenNI2
OpenNI2的代码目录如下
├── Android.mk
├── Application.mk
├── CHANGES.txt
├── Config
├── Include
├── LICENSE
├── Makefile
├── NOTICE
├── OpenNI.sln
├── Packaging
├── README
├── README.md
├── ReleaseNotes.txt
├── Samples
├── Source
├── ThirdParty
└── Wrappers
Config 目录下存放的是ini格式的配置文件,用于对OpenNI进行配置,同时在其子目录下存放有各个RGBD相机的配置文件如PS1080.ini,可以对相机的帧率、分辨率进行配置;
Include目录下存放头文件;Packaging用于OpenNI2的发布将头文件、so库、配置文件及sample进行打包供用户进行使用;
Sample目录下为demo程序;
Source目录为源代码目录主要包含两部分,一部分为OpenNI的核心代码用于生成libOpenNI2.so,一部分为厂商的底层Driver驱动代码;
ThirdParty为第三方的代码,如GL、JPEG解码、libusb、还有对于操作系统相关的抽象层代码,最重要的就是Build System;
Wrappers主要是OpenNI2的java的封装;
下面介绍下OpenNI2的编译方法和Sample的演示,编译方法在README文件中有详细的介绍,下面是linux部分的摘要
依赖包安装:
sudo apt-get install g++ python libusb-1.0-0-dev libudev-dev default-jdk freeglut3-dev doxygen graphviz
编译:
make ALLOW_WARNINGS=1
在Bin目录下就会生成编译出的so库和sample
.
├── ClosestPointViewer
├── EventBasedRead
├── libDepthUtils.a
├── libMWClosestPoint.so
├── libOpenNI2.jni.so
├── libOpenNI2.so
├── MultiDepthViewer
├── MultipleStreamRead
├── MWClosestPointApp
├── NiViewer
├── OpenNI2
│ └── Drivers
│ ├── libDummyDevice.so
│ ├── libOniFile.so
│ ├── libPS1080.so
│ └── libPSLink.so
├── org.openni.jar
├── org.openni.Samples.SimpleViewer
├── org.openni.Samples.SimpleViewer.jar
├── PS1080Console
├── PSLinkConsole
├── SimpleRead
└── SimpleViewer
运行SimpleViewer
在使用PS1080等这些设备的时候有可能出现找不到设备的情况,原因是用户没有访问USB设备的权限,可以通过udev rules进行修改或者直接用sudo运行;
这篇主要简单介绍了OpenNI的,目录结构和编译运行,下一篇会介绍下OpenNI的build system;
- 浅析OpenNI2---简介
- 浅析OpenNI2---整体框架
- openni2结构简介
- 浅析OpenNI2---Build System 与KDE
- 浅析OpenNI2---Driver开发(1)
- 浅析OpenNI2---Driver开发(2)
- OpenNI2简介、安装与VS开发环境配置
- Kinect开发:OpenNI2简介、安装与VS开发环境配置
- Kinect开发教程六:OpenNI2简介、安装与VS开发环境配置
- Kinect开发教程六:OpenNI2简介、安装与VS开发环境配置
- Ranch浅析(1)-----简介
- HTTP协议浅析(上):简介
- HTTP协议浅析(上):简介
- Sqlite浅析1--sqliete简介
- HTTP协议浅析(上):简介
- vs2013配置openni2
- OpenNI2的安装教程
- OpenNI2 开发者指南
- 006-人际关系理论|你真的知道推搡员工的后果吗
- 找到的程序集版本与清单定义不符
- 读书笔记-人月神话1
- 代码
- 不借助临时变量实现变量交换
- 浅析OpenNI2---简介
- 软件测试面试必备的一些基础理论概念
- Linux下yum安装java
- spring(七)ssh2框架搭建
- 实时重复文章识别——SimHash
- C++纯虚函数和Java中的抽象函数区别
- Maven学习03--使用Eclipse maven创建普通java项目
- 数据结构 最短路径问题 Floyd算法
- Java中的伪共享以及应对方案