图像显示逐渐透明化效果 opencvforunity

最近做的项目中,在分割出来手之后,想让手呈现出一个逐渐透明的效果。具体请看下图
在这里插入图片描述
开始时想要四通道,通过改变alpha值,但是在视频中看不到任何变化,只有存下某一帧,然后保存成png格式,在项目外打开时才能看到效果。

经过其他尝试,终于找到一种方法。同样用到opencv库,C#语言代码如下:

cirmask = to3channels(cirmask);//mask掩膜,根据需要的透明不同取值为0~255,将一通道转为三通道,函数是自己写的,这个可以百度查到怎么写 
result1.convertTo(result1, CvType.CV_32FC3);//前景的格式转换
result2.convertTo(result2, CvType.CV_32FC3);//背景的格式转化
cirmask.convertTo(cirmask, CvType.CV_32FC3, 1.0 / 255);//mask格式转化并作归一化
result3 = Mat.zeros(result1.size(), result1.type());//输出的结果图
result1 = result1.mul(cirmask);//前景和mask对应点的位置相乘,可百度mul用法
result2 = result2.mul(Scalar.all(1.0) - cirmask);//背景和1-mask对应点的位置相乘
Core.add(result1, result2, result3);//叠加
result3.convertTo(result3, CvType.CV_8UC3);//输出只接受8U格式,所以再进行转换
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值