Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将运动模糊添加到numpy阵列_Python_Image_Python Imaging Library_Blur - Fatal编程技术网

Python 如何将运动模糊添加到numpy阵列

Python 如何将运动模糊添加到numpy阵列,python,image,python-imaging-library,blur,Python,Image,Python Imaging Library,Blur,我有一个图像中的numpy数组 那么,有没有一个好方法可以做到这一点: 从PIL导入图像 a=图像。打开('img') a=a.过滤器(运动模糊) 您可以找到的解释我将使用: 如果要应用垂直,可以使用以下内核: kernel_motion_blur = np.zeros((size, size)) kernel_motion_blur[int(:, (size-1)/2)] = np.ones(size) kernel_motion_blur = kernel_motion_blur / si

我有一个图像中的numpy数组

那么,有没有一个好方法可以做到这一点:

从PIL导入图像
a=图像。打开('img')
a=a.过滤器(运动模糊)

您可以找到的解释

我将使用:


如果要应用垂直,可以使用以下内核:

kernel_motion_blur = np.zeros((size, size))
kernel_motion_blur[int(:, (size-1)/2)] = np.ones(size)
kernel_motion_blur = kernel_motion_blur / size

画一条旋转的线作为内核,然后对具有该内核的图像应用卷积滤波器

下面的代码使用opencv框架

import cv2
import numpy as np

#size - in pixels, size of motion blur
#angel - in degrees, direction of motion blur
def apply_motion_blur(image, size, angle):
    k = np.zeros((size, size), dtype=np.float32)
    k[ (size-1)// 2 , :] = np.ones(size, dtype=np.float32)
    k = cv2.warpAffine(k, cv2.getRotationMatrix2D( (size / 2 -0.5 , size / 2 -0.5 ) , angle, 1.0), (size, size) )  
    k = k * ( 1.0 / np.sum(k) )        
    return cv2.filter2D(image, -1, k) 
kernel_motion_blur = np.zeros((size, size))
kernel_motion_blur[int(:, (size-1)/2)] = np.ones(size)
kernel_motion_blur = kernel_motion_blur / size
import cv2
import numpy as np

#size - in pixels, size of motion blur
#angel - in degrees, direction of motion blur
def apply_motion_blur(image, size, angle):
    k = np.zeros((size, size), dtype=np.float32)
    k[ (size-1)// 2 , :] = np.ones(size, dtype=np.float32)
    k = cv2.warpAffine(k, cv2.getRotationMatrix2D( (size / 2 -0.5 , size / 2 -0.5 ) , angle, 1.0), (size, size) )  
    k = k * ( 1.0 / np.sum(k) )        
    return cv2.filter2D(image, -1, k)