多语言展示
当前在线:1528今日阅读:179今日分享:36

OpenNI的基础应用-3

OpenNI作用:可以将人体空间深度信息从背景中剥离出来,并且演化为更为丰富的人体空间位置信息,让抽象的视觉信息装换为具体的数字信息,从而使得计算机以及开发者可以去识别和使用这些信息。这里简单介绍一些OpenNI在开发中的使用方法;OpenNI的基础应用、图生成器、深度生成器、用户生成器、场景分析器,以及OpenNI的一些功能。
工具/原料
1

OpenNI开源库

2

Visual studio 2010

方法/步骤
1

获取和设置图生成格式:当一个图生成器被创建时,其输出模式是系统默认的输出模式,开发者有时候需要获取或修改图生成器当前的模式。在OpenNI提供两个函数,分别为GetMapOutputMode()和SetMapOutputMode()。

2

获取图像素字节数;图是由一个一个像素构成。对于不同的图,其每一个像素构成所使用的字节数则有所不同。在OpenNI中,提供了获取像素图的字节数函数xnGetBytePerPixel().

3

深度生成器:深度生成器也是图生成器的一种,其产生的一张张像素图中每一个像素所存储的数据是这个像素点距离摄像头的距离,也就是深度。在OpenNI中提供了GetMetaData()函数,调用该函数,就可以获得深度生成器的元数据对象。

4

获取深度图:深度图是一张记录了深度数据的图,可以看作是由深度像素图组成的一维矩阵,其大小为nXRes*nYRes。提供了GetDepthMap()。

5

获取设备最大深度:每一个3D sensor所支持的工作范围是不同的,超过这个限度的物件就不能正确的被抓取到。所以知道设备的最大深度是至关重要的。使用GetDeviceMaxDepth()函数来抓取最大深度。

6

获取设备视野范围:对于深度生成器来说,除了通过深度属性来得知设备的工作范围外,设备的视野范围也同样是得知设备工作范围的属性,也就是设备工作事业的水平弧度和垂直弧度。使用GetFiledOfView()函数。

7

获取用户位置功能:通过分析深度数据可以分析一些特定的数据,OpenNI中提供用户位置功能函数。

注意事项
1

当一个图生成器被创建时,其输出模式是系统默认的输出模式

2

图是由一个一个像素构成

3

深度生成器也是图生成器的一种,其产生的一张张像素图中每一个像素所存储的数据是这个像素点距离摄像头的距离,也就是深度。

推荐信息