原文:https://blog.csdn.net/magicfrog2009/article/details/73658581

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

在使用PS1080等这些设备的时候有可能出现找不到设备的情况,原因是用户没有访问USB设备的权限,可以通过udev rules进行修改或者直接用sudo运行;
这篇主要简单介绍了OpenNI的,目录结构和编译运行,下一篇会介绍下OpenNI的build system;

作者在ubuntu上搭建OpenNI的环境以及运行相关代码,有一系列的文章见:https://blog.csdn.net/magicfrog2009/category_6989069.html

OpenNI框架介绍相关推荐

  1. python爬虫scrapy框架教程_Python爬虫教程-30-Scrapy 爬虫框架介绍

    从本篇开始学习 Scrapy 爬虫框架 Python爬虫教程-30-Scrapy 爬虫框架介绍 框架:框架就是对于相同的相似的部分,代码做到不出错,而我们就可以将注意力放到我们自己的部分了 常见爬虫框 ...

  2. 2019年上半年收集到的人工智能开源框架介绍文章

    2019年上半年收集到的人工智能开源框架介绍文章 TensorFlow基本使用 TensorFlow.js:让你在浏览器中也能玩转机器学习 人工智能学习框架TensorFlow渐近分析 TensorF ...

  3. ESFramework网络通信框架介绍之(2)――网络通信消息NetMessage

    ESFramework网络通信框架与元数据 较之C++而言,.NET是一个更加"动态"的平台,其动态能力建立在反射机制之上,而反射的基础是"元数据". 上文已经 ...

  4. dommel mysql_.Net Core AA.FrameWork应用框架介绍

    开发多年,一直在从社区获取开源的便利,也深感社区力量的重要性,今天开源一个应用基础框架AA.FrameWork,也算是回馈社区,做出一点点贡献,希望能够帮助类似当年入行的我. AA.FrameWork ...

  5. Foundation框架介绍

    Foundation框架介绍 前言 在开发初期,个人发现开发主要涉及到这几个方面:语言语法使用.UIKit.Foundation, 语言是开发基础,UIkit主要负责用户界面设计,其他最常用的就是Fo ...

  6. 【Django】创建项目及框架介绍,学习笔记(一)

    [学习教程] 1.Django基础教程:https://code.ziqiangxuetang.com/django/django-tutorial.html 2.Django博客:http://ww ...

  7. 流行的9个Java框架介绍: 优点、缺点等等

    流行的9个Java框架介绍: 优点.缺点等等 在 2018年,Java仍然是世界上最流行的编程语言.它拥有一个巨大的生态系统,在全世界有超过900万Java开发人员.虽然Java不是最直接的语言,但是 ...

  8. iOS流媒体直播整个框架介绍(HLS、RTSP)

    iOS流媒体直播整个框架介绍(HLS.RTSP) 目录技术文章2016年7月17日 一.HTTP(WebService) 基于HTTP的渐进下载Progressive Download流媒体播放仅是在 ...

  9. fitnesse - 框架介绍

    fitnesse - 框架介绍 2017-09-29 目录: 1 fitnesse是什么? 2 框架介绍 3 与junit.testng比较,fitnesse教其他框架有什么优势 1 fitnesse ...

最新文章

  1. python flask 表单数据输出_将数据从HTML表单发送到Flask中的Python脚本
  2. HTTP API 自动化测试从手工测试到平台的演变
  3. Kubernetes 弹性伸缩全场景解析 (四)- 让核心组件充满弹性
  4. 同时学cpa和Java_2019年,CPA可以和哪些证书同时备考?
  5. react+express+mongodb搭建个人博客
  6. 会linux基本命令是脚本语言吗,如何理解Linux Shell和基本Shell脚本语言?
  7. LightOJ1298 One Theorem, One Year(DP + 欧拉函数性质)
  8. 有了螃蟹让心情好一点
  9. 其他service 单例 工具类_获取不到,虚拟来凑?这个工具不得不学!
  10. Spring Cloud EurekaService 服务部署服务注册与发现(一)
  11. mysql双一参数_MySQL 的双1设置-数据安全的关键参数(案例分享)
  12. php设置路径别名,设置别名php = / bin / php56,但今天它已恢复为原始路径:/ bin / php...
  13. 人才培养的金字塔模型
  14. 上海大学计算机学院领军人物,上海大学计算机工程与科学学院研究生导师简介-谢 江高级工程师...
  15. 什么是Vagrant 以及作用
  16. Office 365 共享链接直接进入编辑
  17. SQL SEVER登录失败,无法连接服务器或已成功与服务器建立连接,但是在登录过程中发生错误。(Win10版本,SQL 2019)
  18. 【Visual C++】游戏开发笔记之九 游戏地图制作(一)平面地图贴图
  19. nltk安装,语料库nltk下载
  20. 墨者靶场 入门:WebShell文件上传漏洞分析溯源(第1题)

热门文章

  1. 解决Tomcat v8.0 Server at localhost failed to start.
  2. 【转】android是32-bit系统还是64-bit系统
  3. VVOL、VASA — 为什么如此重要
  4. 实验十 配置EIGRP协议
  5. Oracle大数据量分页通用存储过程
  6. 随机森林——气温预测(2/2)
  7. python——画一个笑脸
  8. LiveGBS-GB28181流媒体服务如何实现跨域鉴权
  9. SpringCloud系列——Zuul 动态路由
  10. [knownledge][latex] LaTex入门