📅  最后修改于: 2023-12-03 15:42:33.698000             🧑  作者: Mango
在图像处理中,运动模糊是一种常见的现象,通常发生在照相机拍摄运动物体时。它可以使用 Python 中的 motion_blur() 函数来模拟运动模糊效果,该函数可以创建一个运动模糊的核,将其应用于图像以获得想要的效果。
下面是一个简单的 motion_blur() 函数的示例,该函数接受以下参数:
import cv2
import numpy as np
def motion_blur(image, kernel_size, angle, strength):
# 创建运动模糊核
kernel = np.zeros((kernel_size, kernel_size))
angle = angle * np.pi / 180.0
x = np.cos(angle)
y = np.sin(angle)
for i in range(kernel_size):
kernel[i, i] = 1.0
if strength > 1:
kernel = cv2.GaussianBlur(kernel, (strength, strength), 0)
kernel = cv2.resize(kernel, (kernel_size, kernel_size))
kernel = cv2.normalize(kernel, kernel, 0, 1, cv2.NORM_MINMAX)
# 应用运动模糊核
output = cv2.filter2D(image, -1, kernel)
return output
下面是一个速度为 10 以角度 45 度运动的放大的树的示例:
# 读取图像
image = cv2.imread('tree.jpg')
# 应用运动模糊
output = motion_blur(image, 15, 45, 10)
# 显示结果
cv2.imshow('Motion Blur', output)
cv2.waitKey(0)
# 保存结果
cv2.imwrite('tree_motion_blur.jpg', output)
以下是运动模糊效果的图像:
Python 的 motion_blur() 函数可以非常方便地应用运动模糊效果。使用它可以轻松地模拟拍摄运动物体时的效果。该函数接受几个参数,可以根据需要进行调整。