【问题标题】:How to stack a transparent image on another image in opencv python如何在opencv python中将透明图像堆叠在另一个图像上
【发布时间】:2021-06-25 04:11:22
【问题描述】:

想要两个图像,其中我有一个掩码堆叠在另一个图像之上。但这样做时,我不希望将两张图像混合在一起,而是将最终图像像图层一样堆叠在一起

这是我的原始图片

蒙版图像

代码

import cv2
import numpy as np

image = cv2.imread('test72.jpg')

image2 = cv2.imread('test63.jpg')

blank = np.full((image.shape[0], image.shape[1], 3), (255,255,255), np.uint8)

circle = cv2.circle(blank, (300,300), 10, (0, 0, 0), thickness= 100)

blur = cv2.blur(circle, (50, 50), 0)

subtract = cv2.subtract(image, blur)

blended = cv2.addWeighted(image2, 1, subtract, 1, 0)


cv2.imwrite('mask.jpg', subtract)
cv2.imwrite('blend.jpg', blended)
cv2.waitKey(0)
cv2.destroyAllWindows()

这是添加函数 cv2.addweighted 时的结果,这会导致香蕉混合在鞋子中,我可以在 OpenCv 中使用另一个函数来制作这个堆栈而不是混合吗?

【问题讨论】:

  • 您能否在 Photoshop 或 GIMP 中模拟所需的结果,以便我们知道目标是什么?一个人的"stack"是另一个人的"merge"是另一个人的"blend"是另一个人的"smush"....
  • @MarkSetchell 也许他想要的是在未经审查的情况下展示鞋内的香蕉(没有双关语:D)

标签: python opencv


【解决方案1】:

这样的事情可能适用于您的情况:

im1_alpha = blur/255
im2_alpha = (255-blur)/255

out_img = ((image2 * im1_alpha) + (image * im2_alpha)).astype(np.uint8)
plt.imshow(out_img)

【讨论】:

  • 如果您仔细查看此解决方案并将其与您发布的解决方案进行比较,它们完全相同,只是您使用的是乘法和加法等opencv函数。我的代码在一行中完成所有这些操作。
【解决方案2】:

这是另一个答案! 我在这里按照本教程进行操作! Alpha blending tutorial right here

import cv2
import numpy as np

image = cv2.imread('test72.jpg')

image2 = cv2.imread('test63.jpg')

blank = np.full((image.shape[0], image.shape[1], 3), (255,255,255), np.uint8)

circle = cv2.circle(blank, (300,350), 10, (0, 0, 0), thickness= 100)

blur = cv2.blur(circle, (50, 50), 0)

image = image.astype(float)

image2 = image2.astype(float)

alpha = blur.astype(float)/255

multiply = cv2.multiply(alpha, image2)

multiply2 = cv2.multiply(1.0 - alpha, image)

add = cv2.add(multiply, multiply2).astype(np.uint8)

cv2.imshow('alpha', add)
cv2.waitKey(0)
cv2.destroyAllWindows()

【讨论】:

    猜你喜欢
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    相关资源
    最近更新 更多