📜  开放式简历 | Python中的运动模糊

📅  最后修改于: 2022-05-13 01:54:47.808000             🧑  作者: Mango

开放式简历 | Python中的运动模糊


本文介绍了如何使用 OpenCV 为图像添加模糊。运动模糊是一种特定类型的模糊,用于为图像提供定向模糊效果。

运动模糊滤镜
将运动模糊应用于图像归结为在图像上卷积过滤器。示例 5*5 过滤器过滤器如下所示。

垂直的:

水平的:

过滤器的尺寸越大,运动模糊效果就越大。此外,1 穿过过滤器网格的方向是所需运动的方向。要在特定矢量方向(例如对角线)自定义运动模糊,只需将 1 沿矢量放置以创建过滤器。

代码
考虑下面的汽车图像。


代码:用于在图像上应用运动模糊效果的Python代码。

# loading library
import cv2
import numpy as np
  
img = cv2.imread('car.jpg')
  
# Specify the kernel size.
# The greater the size, the more the motion.
kernel_size = 30
  
# Create the vertical kernel.
kernel_v = np.zeros((kernel_size, kernel_size))
  
# Create a copy of the same for creating the horizontal kernel.
kernel_h = np.copy(kernel_v)
  
# Fill the middle row with ones.
kernel_v[:, int((kernel_size - 1)/2)] = np.ones(kernel_size)
kernel_h[int((kernel_size - 1)/2), :] = np.ones(kernel_size)
  
# Normalize.
kernel_v /= kernel_size
kernel_h /= kernel_size
  
# Apply the vertical kernel.
vertical_mb = cv2.filter2D(img, -1, kernel_v)
  
# Apply the horizontal kernel.
horizonal_mb = cv2.filter2D(img, -1, kernel_h)
  
# Save the outputs.
cv2.imwrite('car_vertical.jpg', vertical_mb)
cv2.imwrite('car_horizontal.jpg', horizonal_mb)

输出

垂直模糊:

水平模糊: