需求:使用 python 的 opencv 实现 adobe"方向模糊"同款效果,同时需要保留 png 的 alpha 通道

已查阅到的的 motion blur 实现会使得带 alpha 通道的图片异常,生成的产物是一片白的
# -*- coding: utf-8 -*- import numpy as np import cv2 from PIL import Image def motion_blur(image, degree=3, angle=90): image=image.convert("RGB") array=np.asarray(image) image=cv2.cvtColor(array,cv2.COLOR_RGB2BGR) image = np.array(image) M = cv2.getRotationMatrix2D((degree / 2, degree / 2), angle, 1) motion_blur_kernel = np.diag(np.ones(degree)) motion_blur_kernel = cv2.warpAffine(motion_blur_kernel, M, (degree, degree)) motion_blur_kernel = motion_blur_kernel / degree blurred = cv2.filter2D(image, -1, motion_blur_kernel) cv2.normalize(blurred, blurred, 0, 255, cv2.NORM_MINMAX) blurred = np.array(blurred, dtype=np.uint8) blurred=Image.fromarray(cv2.cvtColor(blurred, cv2.COLOR_BGR2RGB),mode="RGB") return blurred 本人不熟悉图像处理的算法,想请教一下如何改进完善这个算法使其支持带有 alpha 通道的 png 图片?
