Image Processing

Image Blur/Smoothing/Gaussian Blur/Median Blur/Bilateral Filter/Motion Blur

민토즈 2020. 10. 13. 16:11
300x250

Image Blur

def blur(image, ksize = 3):
   blur_image = cv2.blur(image, (ksize, ksize))
   return blur_image

Bilateral Filtering

def bilateral_blur(image, d, sigmaColor, sigmaSpace):
   return cv2.bilateralFilter(image, d, sigmaColor, sigmaSpace)

Gaussian Blur

def gaussian_blur(image, ksize, sigma=0):
   gausblur_image = cv2.GaussianBlur(image, (ksize, ksize), sigma)
   return gausblur_image

Median Blur

# image.dtype == np.float32 and ksize not in {3, 5}:
# raise Value error
def median_blur(image, ksize):
   medianblur_image = cv2.medianBlur(image, ksize)
   return medianblur_image

Motion Blur

# mode = 0 horizontal kernel
# mode = 1 vertical kernel
def motion_blur(image, ksize, mode = 0):
   kernel_h = np.zeros((ksize, ksize))
   kernel_v = np.zeros((ksize, ksize))

   kernel_h[int((ksize - 1) / 2), :] = np.ones(ksize)
   kernel_v[:, int((ksize - 1) / 2)] = np.ones(ksize)

   kernel_h /= ksize
   kernel_v /= ksize

   if mode == 0:
      return cv2.filter2D(image, -1, kernel_h)
   else:
      return cv2.filter2D(image, -1, kernel_v)

원본/Horizontal Motion Blur/Vertical Motion Blur

 

300x250