文章目录
前言
动态模糊在实际拍照场景中出现较多,主要造成原因是在拍摄瞬间相机的突然抖动形成的,在数据增强方案中可以通过模拟这种退化来使模型适用于这种图片(在该类图片中产生更好的效果)。

本文分别提供了用opencv,torch,numpy实现的code。
一、OpenCV实现
def motion_blur(image, degree=15, angle=180):
# degree越大,动态模糊越强
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)
blurr



被折叠的 条评论
为什么被折叠?



