如何在Python opencv中将图片覆盖到其他图像上
我有一张像这样的图片,我想通过在图片上添加一层来去除背景,就像photoshop的布局一样 原画 遮罩/层 最终期望输出 我正在尝试使用opencv的AddWeighted函数来完成此操作,但无法获得所需的输出如何在Python opencv中将图片覆盖到其他图像上,python,opencv,Python,Opencv,我有一张像这样的图片,我想通过在图片上添加一层来去除背景,就像photoshop的布局一样 原画 遮罩/层 最终期望输出 我正在尝试使用opencv的AddWeighted函数来完成此操作,但无法获得所需的输出 im_overlay = cv2.imread('%s/%s.png'%(_src,camera_name.split(".")[0])) img = cv2.addWeighted(im, 1, im_overlay, 0.0, 0) showImage(img) 在我使用Op
im_overlay = cv2.imread('%s/%s.png'%(_src,camera_name.split(".")[0]))
img = cv2.addWeighted(im, 1, im_overlay, 0.0, 0)
showImage(img)
在我使用OpenCv 3.4.2的系统上,OpenCv读取的掩码格式很奇怪。我可以在cv2.IMREAD_不变的情况下阅读,但它显示您的面具有4个通道,我只希望有一个通道。下面的代码产生相反的结果或您期望的结果:
img = cv2.imread(r"C:\Users\...\Desktop\\W1kle.jpg")
mask = cv2.imread(r"C:\Users\...\Desktop\LZdyB.png",cv2.IMREAD_UNCHANGED)
mask = mask[:,:,3]
res = cv2.bitwise_and(img,img,mask=mask)
cv2.imshow("image",res)
cv2.waitKey(0)
希望这对您有所帮助:可能重复或已经尝试过,如问题中所述,代码对我不起作用。您是对的,它与我所寻找的相反,但为了使它在我的案例中起作用,我反转了掩码。工作顺利。谢谢