def watermark_handle(watermark_path):
'''
水印图像读取与制作,三通道图转为4通道,制作透明图
:param watermark_path: 水印图像路径
:return: 图像数据,图像高度,图像宽度
'''
im = cv2.imread(watermark_path)
h, w = im.shape[:2]
# 转换为灰度图
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
# 像素翻转
thresh = cv2.threshold(gray, 225, 255, cv2.THRESH_BINARY_INV)[1]
img = np.stack((thresh,) * 3, axis=-1)
image = np.dstack([img, np.ones((h, w), dtype="uint8") * 255])
return image, h, w
def watermark_merge(frame, watermark, xmin, ymin):
frame_h, frame_w = frame.shape[:2]
wm_h, wm_w = watermark.shape[:2]
# 转为四通道图像数据
im = np.dstack([frame, np.ones((frame_h, frame_w), dtype="uint8") * 255])
overlay = np.zeros((frame_h, frame_w, 4), dtype="uint8")
overlay[ymin:ymin + wm_h, xmin:xmin+wm_w] = watermark
alpha = 0.25
cv2.addWeighted(overlay, alpha, im, 1.0, 0, im)
return im
水印图像读取与制作,三通道图转为4通道,制作透明图
最新推荐文章于 2023-03-10 18:22:41 发布