Kinect 开发 —— 全息图】的更多相关文章

Kinect的另一个有趣的应用是伪全息图(pseudo-hologram).3D图像可以根据人物在Kinect前面的各种位置进行倾斜和移动.如果方法够好,可以营造出3D控件中3D图像的效果,这样可以用来进行三维展示.因为WPF具有3D矢量绘图的功能.所以这一点使用WPF和Kinect比较容易实现.下图显示了一个可以根据观察者位置进行旋转和缩放的3D立方体.但是,只有一个观察者时才能运行. 使用Kinect SDK实现这一效果非常简单.Kinect已经在骨骼数据中提供了坐标点的以米为单位的X,Y和…
整理了一下去年为止到现在写的和翻译的Kinect的相关文章,方便大家查看.另外,最近京东上微软在搞活动, 微软 Kinect for Windows 京东十周年专供礼包 ,如果您想从事Kinect开发,没有设备的话,有兴趣可以上去看看. 如果您在开发中遇到问题,可以到微软MSDN K4W板块提问,那儿有专门的工程师回答您的问题,另外我新建了一个QQ群 254015296 ,如果您有兴趣也可以加一下一起讨论共同学习.以下所有和Kinect开发相关的文章,希望对您有所帮助. 1. [译]Kinect…
Kinect开发资源汇总   转自: http://www.sigvc.org/bbs/forum.php?mod=viewthread&tid=254&highlight=kinect By doctorimage整理 开发Kinect应用本质上和开发其他Windows应用一样,不同的是该SDK支持Kinect感应器的相关功能,比如彩色图像.深度图像.音频.骨骼动画数据等.   本文整理了Kinect应用开发的相关资源,如果你正在进行Kinect开发或打算进行Kinect开发,这将对你有…
Kinect开发学习笔记之(一)Kinect介绍和应用 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.Kinect简单介绍 Kinectfor Xbox 360,简称 Kinect,是由微软开发,应用于Xbox 360 主机的周边设备.它让玩家不须要手持或踩踏控制器,而是使用语音指令或手势来操作 Xbox360 的系统界面.它也能捕捉玩家全身上下的动作,用身体来进行游戏,带给玩家"免控制器的游戏与娱乐体验".其在2010年11月4日于美国上…
这是本博客翻译文档的第一篇文章.笔者已经苦逼的竭尽全力的在翻译了.但无奈英语水平也是非常有限.不正确或者不妥当不准确的地方必定会有,还恳请大家留言或者邮件我以批评指正.我会虚心接受. 谢谢大家.        原文网址:https://msdn.microsoft.com/en-us/library/dn782041.aspx 2014年10月由微软公布的Kinect for Windows 2.0 SDK中包括例如以下文所述的新特性.新工具以及新文档. 本次公布的改进: 1.Windows应用…
Kinect 提供了非托管(C++)和托管(.NET)两种开发方式的SDK,如果您用C++开发的话,需要安装Speech Runtime(V11),Kinect for Windows Runtime和驱动的,如果您使用C#和VB.NET的话,需要Microsoft.Kinect.dll和Mirosoft.Speech.dll两个dll,这两个其实是对前C++里面的两个dll的.NET封装,不论何种开发,您都需要安装driver,所有这些都包含在Kinect SDK安装包中,安装方法您可以参考之…
实现Kinect控制幻灯片播放很简单,主要思路是:使用Kinect捕捉人体动作,然后根据识别出来的动作向系统发出点击向前,向后按键的事件,从而使得幻灯片能够切换. 这里的核心功能在于手势的识别,我们在开发之前需要定义怎么样的手势算是向前或者向后切换幻灯片.手势和姿势识别在我的Kinect开发入门第九,第十,十一篇文章有详细介绍.本文仅讨论主要思路及关键代码部分. 通过姿势实现PPT控制 姿势(pose)识别是通过关节点与关节点之间的相对位置关系来进行判断,相对来说比较容易,只需要通过某一帧骨骼关…
本文将会介绍一些第三方类库如何来帮助处理Kinect传感器提供的数据.使用不同的技术进行Kinect开发,可以发掘出Kinect应用的强大功能.另一方面如果不使用这些为了特定处理目的而开发的一些类库,而是自己实现这些逻辑的话,代码可能会比较混乱和不稳定.本文只是简单的介绍这些第三方类库并给以适当的引导.Kinect开发最大的困难不是什么技术,而是知道什么样技术能够被用到Kinect开发中.一旦了解了什么技术能够使用,Kinect可能开发的应用就会出现巨大的潜力. 本文及下篇文章将会介绍几个有用的…
转自:http://www.cnblogs.com/yangecnu/archive/2012/04/02/KinectSDK_Application_Fundamentals_Part2.html 1,性能改进 如果使用Bitmap对象,对于每一个彩色图像帧,都会创建一个新的Bitmap对象.由于Kinect视频摄像头默认采集频率为每秒30幅,所以应用程序每秒会创建30个bitmap对象,产生30次的Bitmap内存创建,对象初始化,填充像素数据等操作.这些对象很快就会变成垃圾等待垃圾回收器进…
创建一个Kincet项目通常需要: 1. 创建一个VS项目,一般为了展示通常创建一个wpf项目. 2. 添加Microsoft.Kinect.dll引用,如果是早期版本的SDK,这个名称可能不同. 3. 引入Kinect命名空间. Kinect支持3中类型的托管应用程序,分别是:控制台应用程序,WPF以及Windows Form应用程序. 首先来创建一个Windows 控制台应用程序,然后在Main函数所在的代码中引入Kinect命名控件,代码如下: using Microsoft.Kinect…
        0.前言:        首先说一下我的开发环境,Visual Studio是2013的,系统是win8的64位版本号,SDK是Kinect for windows SDK 1.8版本号.尽管前一篇博文费了半天劲,翻译了2.0SDK的新特性.但我还是决定要回退一个版本号.        事实上我之前一直在用2.0的SDK在调试Kinect,但无奈实验室提供的Kinect是for Windows 1.0版本号的,并且Kinect从1.8之后就好像是一个分水岭,就比方win8和win…
来源于 MVA 的 快速入门:Kinect for Windows v2 开发 的学习随笔 具体内容为上图所示章节内容 章节内全部代码:GitHub地址点我(链接失效,待补档) <Page <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Image Name="/> <Canvas Name="/> </Grid>…
Kinect Interactions 提供了一些新的带有姿势识别的控件如 push-to-press 按钮, grip-to-pan 列表控件, 而且支持多用户,同时二个人进行的交互,这些新添加的控件能够非常方便的集成到应用程序中,极大的简化了开发和调试过程. 在Kinect Developer ToolKit中,提供了ControlBasic-WPF, Kinect Interactions和Kinect Fusion的Demo,其中后两个Demo对计算机的屏幕分辨率和显卡的要求比较高,运行…
SDK1.5中新增了人脸识别类库:Microsoft.Kinect.Toolkit.FaceTracking使得在Kinect中进行人脸识别变得简单,该类库的源代码也在Developer Toolkit中.在Developer Toolkit中也自带人脸识别的例子,您也可以打开运行或者查看源代码. 开发前准备 要使用面部追踪功能,Kinect SDK版本应该至少是1.5,最新版本为1.6,您可以参考之前的那篇文章下载安装,Kinect SDK 和 Kinect Developer Toolkit…
总体思路 首先运用WPF编写一个简单的支持多点触控的图片浏览程序,这方面您可以参看MSDN上的这篇文章,上面有代码,可能需要FQ才能下载.中文的话,您可以参考Gnie同学关于在WPF上面多点触屏(MultiTouch)应用程序的相关文章,这些是基础. 然后,将从Kinect骨骼信息中提取到的双手的位置信息,模拟为触摸屏上的点击,这个有点麻烦,也是本文的重点.这方面我参考了candescentnui这一开源项目. 具体步骤 完成多点触摸类逻辑的编写 WPF本身支持触摸屏设备和多点触控,在Syste…
运动识别 利用运动识别(motion detection)来进行近景识别是最有意思的一种方式.实现运动识别的基本原理是设置一个起始的基准RGB图像,然后将从摄像头获取的每一帧影像和这个基准图像进行比较.如果发现了差异,我们可以认为有东西进入到了摄像头的视野范围. 不难看出这种策略是有缺陷的.在现实生活中,物体是运动的.在一个房间里,某个人可能会轻微移动家具.在户外,一辆汽车可能会启动,风可能会将一些小树吹的摇摇晃晃.在这些场景中,尽然没有连续的移动动作,但是物体的状态还是发生了变化,依据之前的策…
Kinect的麦克风阵列在Kinect设备的下方.这一阵列由4个独立的水平分布在Kinect下方的麦克风组成.虽然每一个麦克风都捕获相同的音频信号,但是组成阵列可以探测到声音的来源方向.使得能够用来识别从某一个特定的方向传来的声音.麦克风阵列捕获的音频数据流经过复杂的音频增强效果算法处理来移除不相关的背景噪音.所有这些复杂操作在Kinect硬件和Kinect SDK之间进行处理,这使得能够在一个大的空间范围内,即使人离麦克风一定的距离也能够进行语音命令的识别. 在Kinect应用程序中,选择操作…
划动(Swipe) 划动手势和挥手(wave)手势类似.识别划动手势需要不断的跟踪用户手部运动,并保持当前手的位置之前的手的位置.因为手势有一个速度阈值,我们需要追踪手运动的时间以及在三维空间中的坐标.下面的代码展示了存储手势位置点的X,Y,Z坐标以及时间值.如果熟悉图形学中的矢量计算,可以将这个认为是一个四维向量.将下面的结构添加到类库中. public struct GesturePoint { public double X { get; set; } public double Y {…
基本手势追踪 手部追踪在技术上和手势识别不同,但是它和手势识别中用到的一些基本方法是一样的.在开发一个具体的手势控件之前,我们先建立一个可重用的追踪手部运动的类库以方便我们后续开发.这个手部追踪类库包含一个以动态光标显示的可视化反馈机制.手部追踪和手势控件之间的交互高度松耦合. 首先在Visual Studio中创建一个WPF控件类库项目.然后添加四个类: KinectCursorEventArgs.cs,KinectInput.cs,CusrorAdorner.cs和KinectCursorM…
像点击(clicks)是GUI平台的核心,轻点(taps)是触摸平台的核心那样,手势(gestures)是Kinect应用程序的核心 关于手势的定义的中心在于手势能够用来交流,手势的意义在于讲述而不是执行 在人机交互领域,手势通常被作为传达一些简单的指令而不是交流某些事实.描述问题或者陈述想法 使用手势操作电脑通常是命令式的,这通常不是人们使用手势的目的.例如,挥手(wave)这一动作,在现实世界中通常是打招呼的一种方式,但是这种打招呼的方式在人机交互中却不太常用.通常第一次写程序通常会显示“h…
姿势和手势通常会混淆,但是他们是两个不同的概念.当一个人摆一个姿势时,他会保持身体的位置和样子一段时间.但是手势包含有动作,例如用户通过手势在触摸屏上,放大图片等操作. 通常,游戏者很容易模仿指定姿势并且比较容易编写算法来识别指定的姿势.例如,如果开发一个用户在天上飞的游戏. 一种控制游戏的方式是,游戏者像鸟一样挥动手臂.挥动的频率越快游戏角色飞的越快,这是一个手势.还有一种方法是,展开双臂,双臂张得越快开,飞的越快.双臂离身体越近,飞的越慢. 身体以及各个关节点的位置定义了一个姿势.更具体的来…
Kinect传感器核心只是发射红外线,并探测红外光反射,从而可以计算出视场范围内每一个像素的深度值.从深度数据中最先提取出来的是物体主体和形状,以及每一个像素点的游戏者索引信息.然后用这些形状信息来匹配人体的各个部分,最后计算匹配出来的各个关节在人体中的位置.这就是我们之前介绍过的骨骼追踪. 红外影像和深度数据对于Kinect系统来说很重要,它是Kinect的核心,在Kinect系统中其重要性仅次于骨骼追踪.事实上,这些数据相当于一个输入终端.随着Kinect或者其他深度摄像机的流行和普及.开发…
Kinect 连线游戏 在纸上将一些列数字(用一个圆点表示)从小到大用线连起来.游戏逻辑很简单,只不过我们在这里要实现的是动动手将这些点连起来,而不是用笔或者鼠标. 在开始写代码之前,需要明确定义我们的游戏目标.连线游戏是一个智力游戏,游戏者需要将数字从小到大连起来.程序可以自定义游戏上面的数字和位置(合称一个关卡).每一个关卡包括一些列的数字(以点表示)及其位置.我们要创建一个DotPuzzle类来管理这些点对象的集合.可能一开始不需要这个类,仅仅需要一个集合就可以,但是为了以后方便添加其他功…
骨骼追踪技术通过处理景深数据来建立人体各个关节的坐标,骨骼追踪能够确定人体的各个部分,如那部分是手,头部,以及身体.骨骼追踪产生X,Y,Z数据来确定这些骨骼点.骨骼追踪系统采用的景深图像处理技术使用更复杂的算法如矩阵变换,机器学习及其他方式来确定骨骼点的坐标. 获取骨骼数据 彩色影像数据,景深数据分别来自ColorImageSteam和DepthImageStream,同样地,骨骼数据来自SkeletonStream.访问骨骼数据和访问彩色影像数据.景深数据一样,也有事件模式和 “拉”模式两种方…
转自(并致谢):http://www.cnblogs.com/yangecnu/archive/2012/04/05/KinectSDK_Depth_Image_Processing_Part2.html 1,简单的景深影像处理 Kinect深度值最大为4096mm,0值通常表示深度值不能确定,一般应该将0值过滤掉.微软建议在开发中使用1220mm(4’)~3810mm(12.5’)范围内的值.在进行其他深度图像处理之前,应该使用阈值方法过滤深度数据至1220mm-3810mm这一范围内. 使用…
Kinect SDK v1.5 支持托管语言和非托管语言 Xbox360的游戏是基于Xbox360开发工具包 (XDK)开发的,Xbox 360和Windows是两个完全不同的系统架构.使用Kinect for windows SDK 编译的代码并不能直接部署到Xbox环境中 Kinect 应用程序必须在一个原生操作系统环境下编译,运行 —— 无法在虚拟机上运行…
开发 —— 基本的SDK和Windows 编程技巧(彩色图像视频流,深度图像视频流的采集,骨骼跟踪,音频处理,语音识别API) 深度数据,就是Kinect的精髓和灵魂,很多问题都转换为深度图像的模式识别问题 AForge.NET 是一套C#编写的Framework,提供计算机视觉,机器学习 www.aforgenet.com 图像处理需要消耗大量的计算资源,使用C#这类托管语言并不明智,应多使用OpenCV 应用层API详解 NUI API Kinect Audio DMO :提供束波成形和音源…
Kinect for Xbox: 360 不支持“近景模式” 三只眼睛 —— 红外投影机,RGB摄像头,红外深度投影头  —— 色彩影像中的每个像素分别与深度影像中的一个像素对应 四只耳朵 —— L形布局的麦克风阵列 —— 过滤背景噪声,定位声源 —— 根据麦克风阵列接听声音的时间差来判断声源方向 Moving Touch 传动马达电动机 —— 用于仰角控制 PS 1080 Soc 芯片 —— 深度图像获取能力 Xbox 360 (有效视距  1.2 ~~ 3.5)  最近距离 —— 2.26米…
有几种配置方案 1.openNI+SensorKinect+PCL 的开发环境(pcl 标配) http://blog.csdn.net/chenxin_130/article/details/6693390 2.openNI+微软官方的Kinect for Windows SDK+kinect-mssdk-openni-pcl-bridge+pcl  (通过中间件) http://www.pointclouds.org/news/2013/05/13/kinect-for-windows-wi…
置好开发环境后,首先测试下是否真的完成,也就是能够正常进行开发.此时,当然就得祭出Hello World大法! 1.首先创建一个WPF Application工程,之后添加对Microsoft.Kinect的引用,如下图:…