Advertisement
Korotkodul

B Draft

Feb 24th, 2025
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.72 KB | None | 0 0
  1. import numpy as np
  2.  
  3. def pad_image(image: np.ndarray, pad_size: int) -> np.ndarray:
  4.     if pad_size < 1:
  5.         raise ValueError
  6.     res = np.array([])
  7.     m = image.shape[0]
  8.     n = image.shape[1]
  9.     if image.ndim == 2:
  10.         res = np.zeros(shape = (m + 2 * pad_size, n + 2 * pad_size))
  11.     elif image.ndim == 3:
  12.         k = image.shape[2]
  13.         res = np.zeros(shape=(m + 2 * pad_size, n + 2 * pad_size, k))
  14.     res[pad_size: pad_size + m, pad_size: pad_size + n] = image
  15.     return res
  16.  
  17. def blur_image(
  18.     image: np.ndarray,
  19.     kernel_size: int,
  20. ) -> np.ndarray:
  21.     if kernel_size < 1 or kernel_size % 2 == 0:
  22.         raise ValueError
  23.     pad_size = kernel_size // 2
  24.     padded_image = pad_image(image, pad_size)
  25.     N = image.shape[0]
  26.     M = image.shape[1]
  27.     res = np.zeros(shape = image.shape)
  28.     print("image")
  29.     print(image)
  30.     print("padded_image")
  31.     print(padded_image)
  32.     if image.ndim == 2:
  33.         for i in range(N):
  34.             for j in range(M):
  35.                 sliding_window = padded_image[i : i + kernel_size, j : j + kernel_size]
  36.                 res[i, j] = np.mean(sliding_window)
  37.     else:
  38.         K = image.shape[2]
  39.         print("N M K")
  40.         print(N, M, K)
  41.         for i in range(N):
  42.             for j in range(M):
  43.                 for k in range(K):
  44.                     sliding_window = padded_image[i: i + kernel_size, j: j + kernel_size, k]
  45.                     res[i, j, k] = np.mean(sliding_window)
  46.     return res
  47.  
  48.  
  49.  
  50. """
  51. matrix = np.array([
  52.    np.array([1,1,1,1,1,1,1]),
  53.    np.array([1,1,1,1,1,1,1]),
  54.    np.array([1,1,1,1,1,1,1])
  55. ])
  56.  
  57. res = pad_image(matrix, 2)
  58. print("res")
  59. print(res)
  60. """
  61.  
  62. MATRIX = np.full((2, 3, 7), 5)
  63. res = blur_image(MATRIX, 5)
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement