图像处理:动态模糊


前言

动态模糊在实际拍照场景中出现较多,主要造成原因是在拍摄瞬间相机的突然抖动形成的,在数据增强方案中可以通过模拟这种退化来使模型适用于这种图片(在该类图片中产生更好的效果)。
请添加图片描述
本文分别提供了用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值