2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個贊
如果您要問的是如何使圖像透明,其中蒙版是黑色和不透明的,而蒙版是白色的,那么只需將蒙版添加到輸入的alpha通道中即可。以下是如何在Python / OpenCV中執(zhí)行此操作。(根據(jù)Mark Setchell的評論進(jìn)行修訂)
輸入:
面具:
import cv2
import numpy as np
# load image
img = cv2.imread('lena.png')
# load mask as grayscale
mask = cv2.imread('rect_mask.png', cv2.COLOR_BGR2GRAY)
# put mask into alpha channel of image
#result = img.copy()
#result = cv2.cvtColor(result, cv2.COLOR_BGR2BGRA)
#result[:, :, 3] = mask
result = np.dstack((img, mask))
# save resulting masked image
cv2.imwrite('lena_masked.png', result)
結(jié)果:

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個贊
我就是這樣做的。
輸入數(shù)組的形狀為 ,輸出數(shù)組的形狀為 。(240, 240)(240, 240)
我將用數(shù)組中值為 0 的索引來屏蔽數(shù)組上的索引。imagemask
def cut_out(image, mask):
if type(image) != np.ndarray:
raise TypeError("image must be a Numpy array")
elif type(mask) != np.ndarray:
raise TypeError("mask must be a Numpy array")
elif image.shape != mask.shape:
raise ValueError("image and mask must have the same shape")
return np.where(mask==0, 0, image)
添加回答
舉報