• 【Unity/Kinect】显示Kinect摄像头内容,屏幕显示环境背景及人体投影


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

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

    http://www.manew.com/thread-50097-1-1.html

    需求:屏幕中显示房间环境作为背景,显示人物的投影图像(彩色或者单色)。
    做法:从Kinect设备读取数据,然后给UGUI控件显示。

    写一个脚本挂到Canvas身上:

    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI;
    
    /// <summary>
    /// 从Kinect获取数据。
    /// </summary>
    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案例。
  • 相关阅读:
    django-orm基础字段及选项1
    django-模型层
    django-应用及分布式路由
    django-static配置静态文件
    django-url反向解析
    django-url路径书写规范
    django-模板继承 block、endblock、 extend
    详解HTML中的表单元素
    详解HTML中的表格标签
    jQuery和AJAX基础
  • 原文地址:https://www.cnblogs.com/guxin/p/unity-kinect-example.html
Copyright © 2020-2023  润新知