Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python opencv中将图片覆盖到其他图像上_Python_Opencv - Fatal编程技术网

如何在Python opencv中将图片覆盖到其他图像上

如何在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

我有一张像这样的图片,我想通过在图片上添加一层来去除背景,就像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)

在我使用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)

希望这对您有所帮助:

可能重复或已经尝试过,如问题中所述,代码对我不起作用。您是对的,它与我所寻找的相反,但为了使它在我的案例中起作用,我反转了掩码。工作顺利。谢谢