我有一张这样的图片,我想通过在图像上方添加一层来删除背景,就像photoshop布局的工作原理一样。
我正在尝试通过opencv的addweighed函数执行此操作,但是我无法获得所需的输出
im_overlay = cv2.imread('%s/%s.png'%(_src,camera_name.split(".")[0]))
img = cv2.addWeighted(im, 1, im_overlay, 0.0, 0)
showImage(img)
答案 0 :(得分:1)
对于OpenCv来说,掩码格式很奇怪,无法在我的系统上读取(使用opencv 3.4.2)。我可以使用cv2.IMREAD_UNCHANGED读取它,但它向我显示您的遮罩有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)
希望这对您有帮助:)