本文介绍了如何在网络摄像头提要上叠加PNG?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个形状为(480,640,4)的PNG图像和一个形状为(480,640,3)的网络摄像头框架。我希望将PNG完全覆盖在网络摄像头提要上,但我收到以下错误:

added_image = cv2.addWeighted(frame,0.4,png,0.1,0)

错误:

是由于频道差异造成的问题。有人能帮我解决这个问题吗?提前感谢!

推荐答案

如果您使用addWeighted(),您将在背景图像上的所有位置获得相同的覆盖图像的恒定分数。这似乎不太可能是您想要的,因为您的输入图像有4个通道,其中一个可能是Alpha通道。因此,通常情况下,根据Alpha通道,背景图像会以不同的方式显示。

以此为背景(摄像头),形状为(500,300,3):

这是带有透明度和形状的叠加图像(500,300,4):

import cv2
import numpy as np

# Read background and overlay images
bg = cv2.imread('buckinghampalace.jpg')
ol = cv2.imread('overlay.png', cv2.IMREAD_UNCHANGED) 

# Make a result image that is either the background image or the overlay image depending on the alpha channel being < 128
res = np.where((ol[...,3]<128)[...,None], bg, ol[...,0:3])

cv2.imwrite('result.jpg', res)

这篇关于如何在网络摄像头提要上叠加PNG?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-27 04:34