pythonopencv如何盖图像_Python OpenCV-用透明度覆盖图像

我要做的是把一个透明的图像放在另一个上面。像这样的:

我还没有找到任何解决方案,所以我决定逐像素计算得到的颜色。那个对我有用,但很慢。

我对OpenCV和Python都是新手。

这是我的密码,我想到了:import numpy as np

import cv2

img1 = cv2.imread("img1.png", -1)

img2 = cv2.imread("img2.png", -1) # this one has transparency

h, w, depth = img2.shape

result = np.zeros((h, w, 3), np.uint8)

for i in range(h):

for j in range(w):

color1 = img1[i, j]

color2 = img2[i, j]

alpha = color2[3] / 255.0

new_color = [ (1 - alpha) * color1[0] + alpha * color2[0],

(1 - alpha) * color1[1] + alpha * color2[1],

(1 - alpha) * color1[2] + alpha * color2[2] ]

result[i, j] = new_color

cv2.imshow("result", result)

cv2.waitKey(0)

cv2.destroyAllWindows()

还有别的办法吗?快一点,快一点?

谢谢。

你可能感兴趣的:(pythonopencv如何盖图像_Python OpenCV-用透明度覆盖图像)