PCL中所有的处理都是基于点云展开的,利用不同的设备获取点云、存储点云等都是点云处理前后必须做的流程,PCL中有自己设计的内部PCD文件格式,为此,设计读写该该格式以及与其他3D文件格式之间进行转化的接口类都是很有必要的;目前PCL内部支持对常用的3D格式文件的打开与存储操作,以及与PCD内部格式之间的相互转化。

1、OpenNI开源框架

OpenNI(开放式自然交互)专注于提高和改善自然交互设备与应用软件的互操作能力。

OpenNI是一个多语言、跨平台的框架,它定义了一套用于编写通用自然交互应用得API。OpenNI的主要目的就是形成标准的API,便于下面两个接口之间进行通信:

1)视觉和音频传感器(来自感知周围环境信息)。

2)视觉和音频感知中间件(用来对应用场景中所记录的音频和视觉数据进行分析和理解,例如能够接受一份可见的图像数据并返回从中检测到的手掌位置信息)。

OpenNI提供了一组基于传感器设备实现的API另外一组由中间件组件实现的API,打破了传感器和中间件之间的依赖关系。这样,使用OpenNI API开发应用程序时就不需要在各种中间件模块的上层操作上浪费时间,可以做到一次编写、随处部署。

OpenNI的这种分层设计机制允许中间件开发者可以直接基于最原始的数据格式编写算法,而不管这些数据是由何种传感器设备产生,同时也让传感器生产商制造的设备能用于任何OpenNI兼容的应用程序。

OpenNI的这套标准化API使得自然交互应用开发人员可以利用由传感器输入并计算过的数据类型,很方便地跟踪处理显示生活中的场景,这样可以保证编写应用程序的时候,不用考虑传感器或中间件供应商相关的细节。

下图展示了OpenNI框架的应用概念,分为三层:

1)应用层:基于OpenNI实现的自然交互应用软件。

2)中间件接口层:代表OpenNI本身,提供了传感器和中间件组件之间的接口。

3)硬件设备层:列出了捕捉视觉和音频数据的多种硬件设备。

2、OpenNI兼容设备

OpenNI目前已成为PCL集成进来的第一个设备相关的第三方库,用来抓取OpenNI兼容设备中的点云数据。只要底层的硬件传感器设备与OpenNI兼容,都可以作为点云数据输入源,目前较流行的兼容设备,如下

上述三种设备进行点云数据采集,都可以经OpenNI处理后转化为标准数据供上层应用使用。

第四章输入/输出(I/O)4.1I/O涉及的设备及相关概念简介的更多相关文章

  1. 第四章输入/输出(I/O)4.2PCL中I/O模块及类介绍

    PCL中I/O库提供了点云文件输入输出相关的操作类,并封装了OpenNI兼容的设备源数据获取接口,可直接从众多感知设备获取点云图像等数据.I/O模块利用21个类和28个函数实现了对点云的获取.读入.存 ...

  2. Windows程序设计(第五版)学习:第四章 文本输出

    第四章 文本输出 1,客户区:整个应用程序窗口中没有被标题栏.边框.菜单栏.工具栏.状态栏和滚动条占用的区域.简而言之,客户区就是窗口中程序可以在上面绘制并向用户传达可视化信息的区域.   2,大多数 ...

  3. 【知识强化】第五章 输入/输出(I/O)管理 5.2 I/O核心子系统I

    学习I/O核心子系统相关的一系列功能. 设备独立性软件.设备驱动程序.中断处理程序这三层其实是属于操作系统的内核部分的,所以它们也称作“I/O核心子系统”,又可以简称为“I/O系统”.在考研当中我们需 ...

  4. 第15章-输入/输出 --- 理解Java的IO流

    (一)理解Java的IO流 JAVA的IO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作,在Java中把不同的输入/输出(键盘.文件.网络连接等)抽象表述为"流"( ...

  5. python3 第四章 - 输入与输出

    1.输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字. print('hello, world') 输入以上代码,执行后输出: hello, world 事实上,任何基本类型都可 ...

  6. 【知识强化】第五章 输入/输出(I/O)管理 5.1 I/O管理概述

    这门课的最后一个章节——设备管理. 操作系统它作为系统资源的管理者,既需要对上层的软件进行管理,也需要对下层的硬件进行管理.操作系统它需要对处理机还有存储器这些硬件进行管理,但是这些硬件其实是在计算机 ...

  7. 第15章-输入/输出 --- File类

    (一) Java的IO通过java.io包下的类和接口来支持,在java.io包下主要包括输入.输出两种IO流. 每种输入.输出流又分为字节流和字符流两大类: (1)字节流以字节为单位来处理输入.输出 ...

  8. 【知识强化】第七章 输入/输出系统 7.1 I/O系统基本概念

    那么下面,我们将要进入计算机组成原理的最后一章,也就是我们的第七章,输入输出系统的学习.那么这一部分内容呢,我们之前呢一直在提,但是并没有详细地讲解,那么进入到我们第七章输入输出系统这一部分,我们就要 ...

  9. 【知识强化】第七章 输入/输出系统 7.3 I/O接口

    下面我们进入第七章的第三节,I/O接口. I/O接口呢就是解决了外设和主机之间的一个连接的问题.那么我们这一节就要来看一下I/O接口它有哪些功能,以及它是怎么组成的,还有就是我们主机如何来定位到那样一 ...

随机推荐

  1. kali_linux学习笔记

    kali linux ssh登陆: 一.配置SSH参数 修改sshd_config文件,命令为: vi /etc/ssh/sshd_config 将#PasswordAuthentication no ...

  2. Maven里头的pom.xml配置详解

    正常的pom配置文件如下所示: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...

  3. 异常:java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlType

    这个是jdK版本的问题的. 本地编译的jar包是1.8的,但是跑jar包的环境jdk版本是1.9的. 升级1.9之后由于jdk当方面的取消了几个jar,所以导致编译起不来. 明天研究一下如何添加jar ...

  4. UEditor富文本编辑器的图片上传 http://fex.baidu.com/ueditor/#server-deploy

    http://fex.baidu.com/ueditor/#server-deploy http://fex.baidu.com/ueditor/#server-path 首先 editor配置文件中 ...

  5. 关于java.lang.ClassNotFoundException

    关于java.lang.ClassNotFoundException,在自己的程序中,也出现过好几次了,每次找到原因之后,又会发觉原来是以前处理过的. java.lang.ClassNotFoundE ...

  6. 机器学习:scikit-learn 文档、深入学习机器学习的思路

    一.scikit-learn 的文档查阅 网页访问 scikit-learn 的文档: scikit-learn.org —— Document —— User Guide: scikit-learn ...

  7. Dubbo各种协议详解

    (1)协议支持 Dubbo支持多种协议,如下所示: Dubbo协议 Hessian协议 HTTP协议 RMI协议 WebService协议 Thrift协议 Memcached协议 Redis协议 在 ...

  8. TP-Link WR703N OpenWRT固件修改WAN LAN排序

    有一种方法就是macvlan了.添加到rc.local文件中,具体不再阐述. 此方法只适合编译固件的情况下调整WAN/LAN顺序. wr703n等(包含其他未列出的单网口路由,AP),修改WAN LA ...

  9. MacOS配置Erlang开发环境

    Mac下安装Erlang brew 的安装: $ curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C ...

  10. JavaScript基本概念B - 关于方法

    方法也是对象 这个事需要反复强调.方法是 类型 Function 的对象,和其他对象一样,它也有方法. function gen() { return function ans(factor) { r ...