Unity + Kinect抠像移除背景(三)

1. 挂一个 KinectManager,勾选如下:

2. RawImage  加个脚本即可

脚本如下:

using UnityEngine;
using UnityEngine.UI;

public class GetBodyTexture : MonoBehaviour
{
    KinectManager manager;
    public RawImage bodyRaw;
    private Texture2D foregroundTex;
    RectTransform rect;

    void Start()
    {
        manager = KinectManager.Instance;
        if (bodyRaw == null)
        {
            bodyRaw = GetComponent<RawImage>();
        }

        rect = GetComponent<RectTransform>();
        // kinect 深度摄像头分辨率 512,424
        rect.sizeDelta = new Vector2(512, 424);
        // 自适应 Game 窗口
        float scaleValue = Camera.main.pixelRect.width / 512;
        rect.localScale = new Vector3(scaleValue, -scaleValue, 1);

    }

    void Update()
    {
        if (manager && manager.IsInitialized())
        {
            foregroundTex = manager.GetUsersLblTex();
            bodyRaw.texture = foregroundTex;
        }
    }
}

结果如下: 

 

--------------------- 分界线  后面处理图像降噪 -------------------------

 

 

 

---- 分界线 这后面不用看 都是垃圾

1.需要有两个摄像头,在新场景中新建一个camera取名为BackgroundCamera,

2.主摄像头和BackgroundCamera都添加一个组件GUIlayer,将主摄像头的Depth属性设置为0,BackgroundCamera摄像头的Depth属性设置为-1

    

3.新建一个空物体,取名为BackgroundImage,添加一个组件GUITexture,将所需要的背景图拖进去

4.新建一个空物体取名为KinectController,添加KinectManagerhe 和 BackgroundRemovalManager这两个脚本组件,这里有特别需要注意的是KinectManager需要注意的是将Compute User Map 属性设置为BodyTexture 并且将Compute Color Map属性勾选,而BackgroundRemovalManager脚本则需要将主摄像头赋值给属性Foreground Camera,这两个脚本的设置如下图所示;

5.哦几把K,完事让我们运行一下去看看效果

 

  • 4
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值