(一) kinect概述
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概述的更多相关文章
- Kinect 开发 —— Kinect for windows SDK
开发 —— 基本的SDK和Windows 编程技巧(彩色图像视频流,深度图像视频流的采集,骨骼跟踪,音频处理,语音识别API) 深度数据,就是Kinect的精髓和灵魂,很多问题都转换为深度图像的模式识 ...
- Kinect舒适区范围--UE4 的Blueprint测试范例
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接: http://blog.csdn.net/cartzhang/article/details/44748475 作者:ca ...
- 使用HTML5开发Kinect体感游戏
一.简介 我们要做的是怎样一款游戏? 在前不久成都TGC2016展会上,我们开发了一款<火影忍者手游>的体感游戏,主要模拟手游章节<九尾袭来 >,用户化身四代,与九尾进行对决, ...
- 【AR实验室】ARToolKit之概述篇
0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- .Net 大型分布式基础服务架构横向演变概述
一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...
- [C#] 进阶 - LINQ 标准查询操作概述
LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
随机推荐
- jupyter编辑快捷键
Jupyter笔记本有两种不同的键盘输入模式. 编辑模式允许您将代码或文本输入到一个单元格中,并通过一个绿色的单元格来表示 命令模式将键盘与笔记本级命令绑定在一起,并通过一个灰色的单元格边界显示,该边 ...
- ajax跨域问题以及解决方案
转:https://blog.csdn.net/csdn_ds/article/category/6937392/3 在工作中,大家应该都遇到过ajax跨域问题,浏览器的错误如下: XMLHttpRe ...
- 对于java的Sting.intern()的一些注意
今天翻看书时遇到了这样一个问题,对于String.intern()方法又有了一些认识和看法.首先我们看它的api 大意就是intern()方法会在常量池中记录首次出现的实例引用,但是在jdk1.6中却 ...
- android实现emoji输入
学android也有一段时间, 一直都是自己摸索, 各种上网查资料, 也明白了不能一味去索取有时间也要分享一些自己的心得 . 最近几天都在写关于android emoji输入的小例子,网上有不少源码还 ...
- Linux 文件或文件夹重命名命令mv
使用命令mv既可以重命名,又可以移动文件或文件夹.例如: 1.将目录A重命名为B mv A B 2.将/a目录移动到/b下,并重命名为c mv /a /b/c 3.将一个名为abc的文件重命名为123 ...
- Java 上传解压zip文件,并且解析文件里面的excel和图片
需求:上传一个zip文件,zip文件里面包含一个excel和很多图片,需要把excel里面的信息解析出来保存到表中,同时图片也转化成base64保存到数据库表中. PS:为了方便不同水平的开发人员阅读 ...
- Shell之文本排序命令
目录 Shell之文本排序命令 参考 wc命令 sort命令 uniq命令 Shell之文本排序命令
- Scala 学习笔记之集合(2)
class StudentTT extends StudentT{ def sayBye(name: String, age: Int)(address: String){ println(" ...
- Kafka 学习笔记之 Producer/Consumer (Scala)
既然Kafka使用Scala写的,最近也在慢慢学习Scala的语法,虽然还比较生疏,但是还是想尝试下用Scala实现Producer和Consumer,并且用HashPartitioner实现消息根据 ...
- 快学Scala 第二十一课 (初始化trait的抽象字段)
初始化trait的抽象字段: trait Logged { println("Logged constructor") def log(msg: String){ println( ...