Web Analytics
yangyang

码农兼一个普普通通小青年

All Posts in 2012.5


Reactive Extensions入门(3):Rx操作符

在第一篇文章里讲过,Reactive Extensions(Rx)是对LINQ的一种扩展,其关键的特性在于他不是基于IEnumerable接口的,Rx是基于IObservable接口,这个接口用来迭代Observable集合。自然Observable集合是基于观察者模式设计的。Observable模式的关键在于被观察的对象有一些行为或者属性,观察者可以注册某些感兴趣的属性或者行为。当被观察者发生状态改变时,会通知观察者(通常是发起一个事件)。 观察者模式是发布和订阅模式(Publish and Subscribe Pattern)的一个子集,发布者可以产生一些告知其订阅者他的一些状态信息。在Rx中Observable集合有订阅者,简单来说,就是观察Observable集合的行为,称之为对象订阅了这一集合。 在Rx中,Observable集合在有新的元素添加到集合 …

Reactive Extensions Rx Observable

Kinect for Windows SDK 1.5 的改进及新特性

昨天晚些时候,微软发布了Kinect for Windows SDK 1.5版本,新版本SDK对1.0版本的进行了较大的改动和更新。本文根据Microsoft Kinect for Windows SDK and Toolkit – v1.5 Release Notes 和 Kinect for Windows: SDK and Runtime version 1.5 Released 这两篇文章,并结合自己的安装和体验整理而成。 1. SDK 1.5 的下载和安装 新版本SDK和1.0版本的SDK完全兼容,如果您之前安装过1.0的,可以直接安装1.5的SDK,如果您之前的开发版本是Beta版的,则需要卸载之后再安装SDK 1.5版本。在Kinect for Windows SDK 1.0版本中,SDK和示例文件是打包一起安装的。而在SDK1.5 …

Kinect SDK Kinect face traking Kinect for Windows SDK

Reactive Extensions入门(2):LINQ操作符

LINQ和Reactive Extension(Rx)之间有很深的联系。本文将简要介绍LINQ中的一些比较重要的操作符和方法,因为这些方法在LINQ和Rx中的作用类似。 首先以一个例子展示LINQ的语法,然后讨论一些比较重要的LINQ操作,最后以两个例子展示了这些方法的综合运用。 1. LINQ语法 LINQ有许多分支,每一个分支对应操作不同的数据类型。LINQ to Object用来操作内存中的对象,而LINQ to SQL用来和数据库中的数据进行交互。虽然LINQ to Object更好的能揭示LINQ本质,但是他们本质上都是相同的。 考虑下面的代码。 var primes = new List<int>() { 1, 2, 3, 5, 7, 11, 13, 17, 19 }; var query = from num in …

Reactive Extensions LINQ SelectMany

[译]Kinect for Windows SDK开发入门(十五):进阶指引 下

上一篇文章介绍了Kinect for Windows SDK进阶开发需要了解的一些内容,包括影像处理Coding4Fun Kinect工具类库以及如何建立自己的扩展方法类库来方便开发,接下来介绍了利用Kinect进行近距离探测的一些方法,限于篇幅原因,仅仅介绍了近距离探测的三种方式。 本文接上文将继续介绍近距离探测中如何探测运动,如何获取并保存产生的影像数据;然后将会介绍如何进行脸部识别,以及介绍全息图(Holograme)的一些知识,最后介绍了一些值得关注的类库和项目。 2.4 运动识别 目前,利用运动识别(motion detection)来进行近景识别是最有意思的一种方式。实现运动识别的基本原理是设置一个起始的基准RGB图像,然后将从摄像头获取的每一帧影像和这个基准图像进行比较。如果发现了差异,我们可以认为有东西进入到了摄像头的视野范围。 …

Kinect SDK Kinect Emgu CV Face Identify Detecting Motion Kinect Hologram

[译]Kinect for Windows SDK开发入门(十四):进阶指引 上

前面十三篇文章介绍了Kinect SDK开发中的各个方面的最基础的知识。正如本系列博闻标题那样,这些知识只是Kinect for windows SDK开发的入门知识。本文将会介绍Kinect进阶开发需要了解一些知识(beyond the basic)。 读者可能会注意到,在学习了前面十三篇文章中关于Kinect开发的方方面面,如影像数据流、景深摄像机、骨骼追踪、麦克风阵列、语音识别等这些知识后,离开发出一些我们在网上看到的那些具有良好用户体验的Kinect应用程序还是显得捉襟见肘。Kinect SDK在某种意义上只是提供了一些其它Kinect类库的相同或者更好的功能。为了进一步提高Kinect for Windows应用程序的应用体验,我们需要了解一些其他的和Kinect有关的开发技术和类库。Kinect的真正应用潜力是和其他技术进行整合。 本文将会介绍 …

Kinect SDK Kinect Coding4Fun Kinect

[译]Kinect for Windows SDK开发入门(十三):语音识别 下

上一篇文章介绍了Kinect中语音识别的基本概念,以及一些语音处理方面的术语。在此基础上使用Kinect麦克风阵列来进行音频录制的例子说明了Kinect中音频处理的核心对象及其配置。本文将继续介绍Kinect中的语音识别,并以两个小例子来展示语音识别中的方向识别和语音命令识别。 1. 使用定向麦克风进行波速追踪(Beam Tracking for a Directional Microphone) 可以使用这4个麦克风来模拟定向麦克风产生的效果,这个过程称之为波束追踪(beam tracking),为此我们新建一个WPF项目,过程如下: 1. 创建一个名为KinectFindAudioDirection的WPF项目。 2. 添加对Microsoft.Kinect.dll和Microsoft.Speech.dll的引用。 3. 将主窗体的名称改为& …

Kinect SDK Kinect Speech Recognition

[译]Kinect for Windows SDK开发入门(十二):语音识别 上

Kinect的麦克风阵列在Kinect设备的下方。这一阵列由4个独立的水平分布在Kinect下方的麦克风组成。虽然每一个麦克风都捕获相同的音频信号,但是组成阵列可以探测到声音的来源方向。使得能够用来识别从某一个特定的方向传来的声音。麦克风阵列捕获的音频数据流经过复杂的音频增强效果算法处理来移除不相关的背景噪音。所有这些复杂操作在Kinect硬件和Kinect SDK之间进行处理,这使得能够在一个大的空间范围内,即使人离麦克风一定的距离也能够进行语音命令的识别。 在Kinect第一次作为Xbox360的外设发布时,骨骼追踪和语音识别是Kinect SDK最受开发者欢迎的特性,但是相比骨骼追踪,语音识别中麦克风阵列的强大功能有一点被忽视了。一部分原因归于Kinect中的令人兴奋的骨骼追踪系统,另一部分原因在于Xbox游戏操控面板以及Kinect体感游戏没有充分发挥 …

Kinect SDK Kinect Speech Recognition