博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Unity/Kinect】显示Kinect摄像头内容,屏幕显示环境背景及人体投影
阅读量:6154 次
发布时间:2019-06-21

本文共 1303 字,大约阅读时间需要 4 分钟。

最近学习用Unity做些体感小游戏,使用Kinect的Unity插件,结合一些官方Demo学习(网上资源用Unity做的较少,蛋疼)。插件及其Demo就在Unity商店里搜Kinect即可找到,其中下图这个包里面包含了大量实用场景和局部功能的Demo,绝对是入门神器!

这里写图片描述

非常感谢下面这位大大的无私奉献!

需求:屏幕中显示房间环境作为背景,显示人物的投影图像(彩色或者单色)。

做法:从Kinect设备读取数据,然后给UGUI控件显示。

写一个脚本挂到Canvas身上:

using UnityEngine;using System.Collections;using UnityEngine.UI;/// /// 从Kinect获取数据。/// public class GetDataFromKinect : MonoBehaviour {    public RawImage image; // 空白图片,用于显示    // Use this for initialization    void Start () {    }    // Update is called once per frame    void Update () {        // 判断设备是否初始化完成。最开始的几帧没有完成,所以需要在Update中去每帧检测。        bool isInit = KinectManager.IsKinectInitialized ();        if (isInit) {            if (image.texture == null) {                // 从设备获取彩色数据,需要勾选Compute Color Map。                Texture2D colorMap = KinectManager.Instance.GetUsersClrTex ();                // 从设备获取深度数据,需要勾选Compute User Map。                // Texture2D userMap = KinectManager.Instance.GetUsersLblTex ();                // 把彩色数据设置给控件显示                image.texture = colorMap ;            }        }    }}

注意点:

  • 通过该方式获取到的图片是上下颠倒的,还需要将该图片控件的RectTransform组件里的Scale设为-1。
  • 要把图片控件的Position设为x=0.5,y=0.5,否则图像内容在左下角外边。
  • 勾选了Compute Color Map则人体投影为彩色图,没有勾选则为单色图。
  • 想要调整人影的透明度,需要给该图片控件添加Canvas Group组件,调整Alpha值。
  • 更多细节参考Kinect v2 Example资源包中的KinectDemo/OverlayDemo案例。
你可能感兴趣的文章
MyBatis启动:MapperStatement创建
查看>>
调查问卷相关
查看>>
eclipse启动无响应,老是加载不了revert resources,或停留在Loading workbench状态
查看>>
1. Git-2.12.0-64-bit .exe下载
查看>>
怎样关闭“粘滞键”?
查看>>
[转]React 教程
查看>>
拓扑排序介绍
查看>>
eclipse打开工作空间(workspace)没有任务反应
查看>>
使用Sybmol模块来构建神经网络
查看>>
字符串去分割符号
查看>>
WPF中,多key值绑定问题,一个key绑定一个界面上的对象
查看>>
UML类图简明教程
查看>>
java反编译工具(Java Decompiler)
查看>>
Android开发之自定义对话框
查看>>
微信Access Token 缓存方法
查看>>
Eclipsed的SVN插件不能识别之前工作空间的项目
查看>>
Linux 查看iptables状态-重启
查看>>
amazeui学习笔记一(开始使用2)--布局示例layouts
查看>>
c#中lock的使用(用于预约超出限额的流程)
查看>>
ODI基于源表时间戳字段获取增量数据
查看>>