Kinect or Windows SDK开发入门(十五):进阶指引 下.docVIP

Kinect or Windows SDK开发入门(十五):进阶指引 下.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Kinect or Windows SDK开发入门(十五):进阶指引 下

[译]Kinect for Windows SDK开发入门(十五):进阶指引 下 ??上一篇文章介绍了Kinect for Windows SDK进阶开发需要了解的一些内容,包括影像处理Coding4Fun Kinect工具类库以及如何建立自己的扩展方法类库来方便开发,接下来介绍了利用Kinect进行近距离探测的一些方法,限于篇幅原因,仅仅介绍了近距离探测的三种方式。 ? 本文接上文将继续介绍近距离探测中如何探测运动,如何获取并保存产生的影像数据;然后将会介绍如何进行脸部识别,以及介绍全息图(Holograme)的一些知识,最后介绍了一些值得关注的类库和项目。2.4 运动识别 ???? 目前,利用运动识别(motion detection)来进行近景识别是最有意思的一种方式。实现运动识别的基本原理是设置一个起始的基准RGB图像,然后将从摄像头获取的每一帧影像和这个基准图像进行比较。如果发现了差异,我们可以认为有东西进入到了摄像头的视野范围。 ??? 不难看出这种策略是有缺陷的。在现实生活中,物体是运动的。在一个房间里,某个人可能会轻微移动家具。在户外,一辆汽车可能会启动,风可能会将一些小树吹的摇摇晃晃。在这些场景中,尽然没有连续的移动动作,但是物体的状态还是发生了变化,依据之前的策略,系统会判断错误。因此,在这些情况下,我们需要间歇性的更改基准图像才能解决这一问题。 ??? 与我们之前遇到的问题相比,完成这些任务看起来需要更强大的图像分析处理工具。幸好,之前介绍的开源OpenCV库提供了某种复杂的实时图像处理操作的能力。OpenCV是Intel公司在1999年发起的一个项目,它将一些高级的视觉研究成果加入到OpenCV库中并开源贡献给了全世界。2008年,一个名为Willow Garage的科技孵化公司负责对该项目的更新和维护。几乎同时EmguCV项目开始发起,他提供了对OpenCV的.Net包装,使得我们在.Net环境下能够使用OpenCV库中的函数。下面我们将使用EmguCV来完成运动检测以及后面的几个演示项目。 ??? EmguCV项目的官方网站为/wiki/index.php/Main_Page?实际的源代码和安装包放在SourceForge(/projects/emgucv/files/?)上。本文使用的Emgu版本为2.3.0。Emgu的安装过程很简单直观,只需要点击下载好的可执行文件即可。不过有一点需要注意的是EmguCV似乎在x86架构的计算机上运行的最好。如果在64位的机器上开发,最好为Emgu库的目标平台指定为x86,如下图所示(你也可以在官网上下载源码然后自己在x64平台上编译)。 要使用Emgu库,需要添加对下面三个dll的引用:Emgu.CV、Emgu.CV.UI以及Emgu.Util。这些dll可以在Emgu的安装目录下面找到,在我的机器上该路径是:C:\Emgu\emgucv-windows-x86 416\bin\。 ??? 因为Emgu是对C++类库的一个.Net包装,所以需要在dll所在的目录放一些额外的非托管的dll,使得Emgu能够找到这些dll进行处理。Emgu在应用程序的执行目录查找这些dll。如果在debug模式下面,则在bin/Debug目录下面查找。在release模式下,则在bin/Release目录下面。共有11个非托管的C++ dll需要放置在相应目录下面,他们是opencv_calib3d231.dll, opencv_conrib231.dll, opencv_core231.dll,opencv_features2d231.dll, opencv_ffmpeg.dll, opencv_highgui231.dll, opencv_imgproc231.dll,opencv_legacy231.dll, opencv_ml231.dll, opencv_objectdetect231.dll, and opencv_video231.dll。这些dll可以在Emgu的安装目录下面找到。为了方便,可以拷贝所有以opencv_开头的dll。 ??? 就像之前文章中所讨论的,通过其他的工具来进行Kinect开发可能会使得代码变得有些混乱。但是有时候,通过添加OpenCV和Emgu的图像处理功能,能够开发出一些比较有意思的应用程序。例如,我们能够实现一个真正的运动识别解决方案。 ??? 在我们的扩展方法库中,我们需要一些额外的扩展帮助方法。上一篇文章讨论过,每一种类库都有其自己能够理解的核心图像类型。在Emgu中,这个核心的图像类型是泛型的ImageTColor,TDepth类型,它实现了Emgu.CV.IImage接口。下面的代码展现了一些我们熟悉的影像数据格式和Emgu特

文档评论(0)

quechui388620 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档