我的python脚本有一个小问题
我有一个这样的图像:
我创建了一个图像的灰度蒙版,突出显示黑色的人和白色的其他东西:
我的目标是将原始图像转换成png,并使用蒙版裁剪出人物,留下一个透明的“洞”来代替每个人物。
import cv2
import numpy as np
original_image = cv2.imread('ok/114_0175.jpg')
mask = cv2.imread('masks/114_0175.jpg', cv2.IMREAD_GRAYSCALE)
transparent_image = cv2.bitwise_and(original_image, original_image, mask=mask)
cv2.imwrite('paesaggio_con_persone_trasparenti.png', transparent_image)
问题是,这个代码的人只是被黑色的面具所取代,而不是透明的,我怎么能解决这个问题呢?
这是代码的结果:
1条答案
按热度按时间fnvucqvd1#
构建一个4通道阵列,并将其改为
imwrite()
。将alpha值放在第四个通道中。一定要把那些人身上的彩色通道擦掉。仅将alpha设置为0不会删除颜色数据,只是隐藏它。
您还可以使用OpenCV构建4通道阵列:
cv.cvtColor(..., cv.COLOR_BGR2BGRA)