基干Kinect虚拟鼠标系统探究.docVIP

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

基于Kinect的虚拟鼠标系统研究   【摘要】 随着科技的进步,传统GUI人机交互技术已经无法满足日所有用户的需求,随之而来的NUI人机交互将引领一场新的人机交互革命。本文主要介绍了新一代Kinect的特点和优势,以及在此基础上如何实现虚拟鼠标应用并完成与计算机的交互 【关键词】 人机交互 kinect 模拟鼠标 一、引言 计算机交互界面的发展从起初不得不迁就效率而是使用的命令行式的机器语言,到微软公司创建的图形化用户界面GUI(Graphical User Interface),科技的进步把我们从枯燥繁琐的机器语言中解放了出来,鼠标和键盘成了后来几十年间人们再也熟悉不过的交互设备,不难看出在人类与计算机沟通方式的变革中,技术正逐步帮助人类取得“优势”地位。随着2010年微软发布的Kinect,标志着电脑适应人类、用户主导交互的NUI(Natural user interface)交互时代的开始 二、Kinect v2.0简介 2014年,微软发布了KinectV2,第二代Kinect从硬件上对做了很大改进。感应器具备了更高的分辨率和色彩识别度,使识别更加精准,为开发者制作更精良的画面提供了良好支持。KinectV2拥有“三只眼睛”和“四只耳朵”。“三只眼睛”分别是彩色摄像头(RGB Camera);位于彩色摄像头右侧的深度传感器(Depth Sensor)以及位于面板中央的红外发射器(IR Emitters); “四只耳朵”则是四元线性麦克风阵列,声音从4个麦克风采集,内置数字信号处理器DSP等组件,同时过滤背景噪声,可定位声源方向 三、基于Kinect的虚拟鼠标控制系统的设计 3.1系统运行设计 本应用程序使用 Kinect for Windows SDK 2.0配合C#语言进行开发,这个新的开发包提供了多种接口,简化了开发过程。整个程序的运行过程主要分为以下几个部分: (1)初始化并接收数据 初始化Kinect到接收数据帧其实是Kinect完成数据引用的过程大致是source - reader-frame - data,其中一种数据源(source)可以有多种阅读器(reader) ,而这里我们用到的就是BodyFrameSource这个源。关键代码如下: (2)注册帧到达事件 Kinect以每秒接收30帧的速度进行来进行人体和规定动作的识别,因此对于是否识别到人体以及后续的动作捕捉来说注册帧到达事件是前提,具体实现如下: 新的SDK提供了新的三种手势状态接口分别是Open , Closed , Lasso三种手势状态,利用这三种状态,可以设置对应的鼠标事件:HandState.Open- MouseLeftUp(鼠标移动),HandState.Closed- MouseLefDown(左键按下),HandState. Lasso- MouseRightDown(右键按下) 其中对应的鼠标响应事件我们需要用到位于user32.dll这个库文件里面的mouse_event函数,所以只需在程序之前先声明引用即可 3.2 Kinect与计算机之间坐标系的转换 在程序实际运行的过程中,直接利用kinect得到的用户手部坐标往往无法很好的模拟鼠标的移动, 而模拟鼠标移动的原理是使用Kinect 捕捉用户左手或者右手的空间坐标,之后再将获得坐标的XY 平面坐标部分映射为屏幕坐标。但是由于鼠标移动的绝对坐标系和屏幕坐标系又不完全移植,鼠标绝对坐标系的X 轴、Y 轴的点坐标为Int 型,值范围是(0~65535),因此中间还需要做一次转换,如图1所示 关于坐标转换的核心代码如下: 四、结束语 本文利用Kinect的特性追踪人体的特定部位,运用空间坐标到平面坐标之前的转换完成了模拟计算机鼠标移动的功能,又利用了新一代SDK提供的手势状态接口模拟了鼠标的点击,完成了虚拟“空气鼠标”的程序开发。基于Kinect的虚拟鼠标的交互可以运用到教育、娱乐等多个领域中去,它的应用前景将会越来越广。就像微软公司著名的发明家Alex kipman所说的那样,Kinect的诞生或将成为下一代人机交互的革命的原点 参 考 文 献 [1] 邵浩,侯文利. Kinect用于其他应用时坐标系转换问题研究 [J].现代计算机(专业版).2014(2):40-42. [2] 张诗潮,钱冬明. 体感技术现状和发展研究[J].华东师范大学学报(自然科学 版).2014.2:40-42. [3] 余涛.kinect开发实战:用最自然的方式与及其对话[M].北京:机械工业出版社,2012:21-23. [4] 王森.kinect体感程序设计入门:

文档评论(0)

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

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

1亿VIP精品文档

相关文档