Kinect可以进行身体节点定位,姿势定位,人脸识别等功能,在此先做简单介绍,后续主要介绍插件的应用,毕竟自己开发识别过程太消耗时间。

(注1:Kinect官方虽然提供了Unity的APi,但是方便起见采用一些插件,更利于开发相关功能。采用插件有Kinect+for+unity+sdk+v2.9.unitypackage    和Kinect+v2+Examples+with+MS-SDK+.unitypackage,其实这两个是一样的)

1)新建一个空游戏物体,添加KinectManager组件

2)新建脚本,通过kinectManger = KinectManager.Instance;获取到KinectManager运行实例。

3)通过kinectManger 即可获取Kinect识别的人物位置,关节等,如下简单代码所示:

(注1:一下都是简单代码,应用时主要采用插件中已经给定的脚本,功能很完善,一下简单代码只是为了理解,可掠过)

(注2:Kinect识别任务施工过userID(long类型)来识别,此Id通过一个传入的int 类型的参数(表示第几个body)获得)

    /// <summary>
/// 获取kinect摄像头画面,KinectManager中Computer color Map需勾选
/// 如果勾选Display color map则会自动显示,并可通过Display maps by percent 修改画面大小
/// </summary>
private void GetKinectTexture()
{
Texture kinectTexture = kinectManger.GetUsersClrTex();
disRawImage.texture = kinectTexture;
}
    /// <summary>
/// kinectManger初始化后是否检测到人体
/// </summary>
/// <returns></returns>
private bool GetDetected()
{
//return kinectManger != null && kinectManger.IsInitialized() && kinectManger.GetUsersCount() > 0;
return kinectManger.IsUserDetected();
}
   /// <summary>
/// 人体检测,获取人体的body位置
/// 获取到的bodyPostion是根据Kinect的实际高度等参数获得的真是距离,单位为M。
/// 如果获取到的数据要反馈到UI上则需要按分辨率进行折算
/// 如果bodyGo尺寸较大,但是获取到的bodyPostion的移动数据较小,则移动效果不明显
/// </summary>
/// <param name="index">获取第几个人体数据</param>
private void GetUserBody(int index)
{
//if(kinectManger!=null && kinectManger.IsInitialized())
//{
// long userId = kinectManger.GetUserIdByIndex(index);
// Vector3 bodyPostion = kinectManger.GetUserPosition(userId);
// bodyGo.transform.position = bodyPostion;
//} if (GetDetected())
{
long userId = kinectManger.GetUserIdByIndex(index);
Vector3 bodyPostion = kinectManger.GetUserPosition(userId);
bodyGo.transform.position = bodyPostion;
print("body position:" + bodyPostion);
}
}

(一) kinect概述的更多相关文章

  1. Kinect 开发 —— Kinect for windows SDK

    开发 —— 基本的SDK和Windows 编程技巧(彩色图像视频流,深度图像视频流的采集,骨骼跟踪,音频处理,语音识别API) 深度数据,就是Kinect的精髓和灵魂,很多问题都转换为深度图像的模式识 ...

  2. Kinect舒适区范围--UE4 的Blueprint测试范例

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接: http://blog.csdn.net/cartzhang/article/details/44748475 作者:ca ...

  3. 使用HTML5开发Kinect体感游戏

    一.简介 我们要做的是怎样一款游戏? 在前不久成都TGC2016展会上,我们开发了一款<火影忍者手游>的体感游戏,主要模拟手游章节<九尾袭来 >,用户化身四代,与九尾进行对决, ...

  4. 【AR实验室】ARToolKit之概述篇

    0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...

  5. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  6. Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)

    本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...

  7. .Net 大型分布式基础服务架构横向演变概述

    一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...

  8. [C#] 进阶 - LINQ 标准查询操作概述

    LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...

  9. 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现

    篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...

随机推荐

  1. Emacs 入门(https://www.zybuluo.com/eqyun/note/40788)

    下载地址 基本操作(C=Ctrl, M=Alt) C-f 向右移动一个字符 C-b 向左移动一个字符 C-n 移动到下一行 C-p 移动到上一行 M-f 向右移动一个词[对中文是移动到下一个标点符号] ...

  2. Spring Security 梳理 - session

    Spring Security默认的行为是每个登录成功的用户会新建一个Session.这也就是下面的配置的效果: <http create-session="ifRequired&qu ...

  3. 使用tomcat7发布war项目启动org_apache_tomcat_websocket报错

    在使用tomcat7发布项目时(项目是用springboot 2.1.4.RELEASE版本开发的) 换成tomcat8就可以正常发布了,网上说tomcat7不支持servlet3.1,升级到spri ...

  4. Flask基础(09)-->请求勾子函数

    什么是请求勾子? 为了让每个视图函数避免编写重复的功能代码,flask提供了通用设施的功能,就是所谓的勾子 那么请求勾子就是,在浏览器请求服务器资源的前后挂载相关的处理函数 请求勾子有什么作用? 作用 ...

  5. 漫谈 GOF 设计模式在 Spring 框架中的实现

    原文地址:梁桂钊的博客 博客地址:http://blog.720ui.com 欢迎关注公众号:「服务端思维」.一群同频者,一起成长,一起精进,打破认知的局限性. 漫谈 GOF 设计模式在 Spring ...

  6. 触电JavaScript-如何将json 二维数组转换为 JSON object

    最近因为项目中使用的是 ActiveReports .Net 产品,因为他们最近新出了  ActiveReports JS 版本,所以内心有点痒痒,想试试这个纯前端版本报表控件到底如何,毕竟我们项目有 ...

  7. HTML input 文本框输入中文逗号自动转换为英文逗号

    input 标签中增加 onkeyup.onafterpaste 属性: <input type="text"placeholder="中文逗号自动转换为英文逗号& ...

  8. LitePal的修改和删除操作

    转载出处:http://blog.csdn.net/guolin_blog/article/details/40083685 传统的修改和删除数据方式   上篇文章中我们已经得知,SQLiteData ...

  9. 给老师安排课表JAVA项目及登录窗口的实现

    实现一个安排课表的Java实验. 有以下几点要求: ①用所给的教师姓名进行课表安排 ②用所给的地点进行课表安排 ③不得有重复的课程名称出现 ④将信息写入到文件里 ⑤用窗口来进行实现 package c ...

  10. Rust入坑指南:常规套路

    搭建好了开发环境之后,就算是正式跳进Rust的坑了,今天我就要开始继续向下挖了. 由于我们初来乍到 ,对Rust还不熟悉,所以我决定先走一遍常规套路. 变不变的变量 学习一门语言第一个要了解的当然就是 ...