OpenNI体感应用开发实战 (Kinect相机)
一直以为Kinect是双目摄像机,或者是三目,看到那三个摄像头怎么可能不产生这样的疑惑,实际上它确实是单目摄像机,它三个摄像头分别为:红外发射器,RGB彩色相机,红外接收器。而其中,红外发射器和红外接收器组合在一起用于获取红外影像,该红外影像即保存着深度信息,即距离远近的深度信息。然后Kinect的芯片接收到红外深度影像和RGB彩色影像之后,进行像素匹配让色彩影像中的每个像素分别与深度影像中的一个像素对应,即PrimeSense注册过程。这能让应用程序准确了解收到的色彩影像中每个像素的深度。所有传感器信息(深度影像、色彩影像和音频)通过一个USB 2.0接口传送给主机,且时序一丝不差。
通过Kinect SDK可以获得同步的深度图像和彩色图像数据流。
并且Kinect还搭配了追焦技术,底座马达会随着对焦物体移动跟着转动。
Kinect安装教程
(1)Kinect1.0连接电脑
如果是独立盒装完整版Kinect那么有独立的电源,只需要插上电源,然后连接Kinect,然后通过USB连接电脑就可以了。但如果买的是Xbox360游戏机时带的Kinect,没有附带电源,那么需要购买独立的电源供应器。如下图所示:

而我的是机器人小车带的Kinect,有一个电源线但是是连接小车发动机的,需要用到小车的电池供电,很不方便,所以我又买了一个独立的电源适配器。
(2)驱动下载安装
安装 PrimeSense OpenNI,也可以用Kinect for Windows(目前已经到v1.8)。后者是官方的驱动安装包,也称为Kinect SDK。前者是开源的,开发免费。这里暂时使用的是PrimeSense OpenNI驱动。
安装成功后,可以到设备管理器查看是否有Kinect标志。
而且连接成功后,Kinect还会发光,但是只有当Kinect相关的应用程序调用它时它才会工作。
可以到驱动安装目录例如D:\OpenNI\Samples\Bin\Release下调用NiViewer.exe这款示例程序测试是否Kinect连接成功或驱动是否安装成功。
2. Kinect SDK开发
>>《OpenNI体感应用开发实战》
安装OpenNI可以在目录中看到编译好的dll文件、链接库文件Lib以及头文件include。

开发教程VS
开发准备:
硬件:Kinect
软件:OpenNI、VS

获取的深度图像和彩色图像

>>《Kinect应用开发实战:用最自然的方式与机器对话》
OpenNI体感应用开发实战 (Kinect相机)的更多相关文章
- OpenNI结合Unity3D Kinect进行体感游戏开发(转)
OpenNI结合Unity3D Kinect进行体感游戏开发(转) 楼主# 更多 发布于:2012-07-17 16:42 1. 下载安装Unity3D(目前版本为3.4)2. 下载OpenN ...
- 《Kinect应用开发实战》读书笔记---干货集合
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接: http://blog.csdn.net/cartzhang/article/details/45029841 作者:ca ...
- 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单
我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...
- 第二篇 :微信公众平台开发实战Java版之开启开发者模式,接入微信公众平台开发
第一部分:微信公众号对接的基本介绍 一.填写服务器配置信息的介绍 登录微信公众平台官网后,进入到公众平台后台管理页面. 选择 公众号基本设置->基本配置 ,点击“修改配置”按钮,填写服务器地址( ...
- Python开发实战教程(8)-向网页提交获取数据
来这里找志同道合的小伙伴!↑↑↑ Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知 ...
- [原创].NET 分布式架构开发实战五 Framework改进篇
原文:[原创].NET 分布式架构开发实战五 Framework改进篇 .NET 分布式架构开发实战五 Framework改进篇 前言:本来打算这篇文章来写DAL的重构的,现在计划有点改变.之前的文章 ...
- 推荐一本书:清华出版的《Modbus软件开发实战指南》
前言: 最近在研究Modbus开发,如果只是简单的了解了一些modbus基础知识,但是不够系统和全面. 其实,modbus虽然比较简单,但是如果不注意有很多坑,特别是寄存器的位数,大小端处理,浮点数, ...
- SDL 开发实战(二):SDL 2.0 核心 API 解析
在上一篇文章 SDL 开发实战(一):SDL介绍及开发环境配置 中,我们配置好了SDL的开发环境,并成功运行了SDL的Hello World 代码.但是可能大部分人还是读不太明白具体Hello Wol ...
- 小D课堂【SpringBoot】接口Http协议开发实战
---恢复内容开始--- ====================2.SpringBoot接口Http协议开发实战 ============================= 1.SpringBoot ...
随机推荐
- UIButton 点击事件传参数
#import <objc/runtime.h> UIButton *btn = // create the button objc_setAssociatedObject(btn, &q ...
- 文件和Variant的转换
function FileToVariant(FileName: String): OleVariant; var AStream: TFileStream; MyBuffer: Pointe ...
- afinal框架下 ViewInject的使用
1.可以在BaseActivity界面onCreate 方法setContentView后加上该语句. initInjectedView(this); 2.@ViewInject(id=R.id.v_ ...
- oracle中的分支与循环语句
分支语句 if的三种写法一, if 2 < 1 then dbms_output.put_line('条件成立'); end if; 二, if 2 < 1 then dbms_outpu ...
- getchar()、putchar()、gets()、puts()、cin.get()、cin.getline()、getline()
1.getchar: 原型为int getchar(void). 它从stdin里读取一个字符.返回值为用户输入的ASCⅡ码,出错返回-1. eg:c=getchar(). 2.putchar: 原型 ...
- Escape(状态压缩+最大流,好题)
Escape http://acm.hdu.edu.cn/showproblem.php?pid=3605 Time Limit: 4000/2000 MS (Java/Others) Memo ...
- ECMAScript6新特性之继承
class Animal{ constructor(name){ this.name = name; } get name(){ return this._name; } set name(val){ ...
- 【校招面试 之 C/C++】第6题 C++深拷贝与浅拷贝
1.两个的区别(1)在未定义显示拷贝构造函数的情况下,系统会调用默认的拷贝函数——即浅拷贝,它能够完成成员的一一复制.当数据成员中没有指针时,浅拷贝是可行的: 但当数据成员中有指针时,如果采用简单的浅 ...
- Web服务器和应用服务器简介
通俗的讲,Web服务器传送页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods).确切一点,你可以说:Web服务器专门处理HTTP请求(reques ...
- mybatis结合redis实战二级缓存
之前的文章中我们意见分析了一级缓存.二级缓存的相关源码和基本原理,今天我们来分享下了mybatis二级缓存和redis的结合,当然mybatis二级缓存也可以和ehcache.memcache.OSC ...