code: 
  
  
  
  
  
  from cva import COLOR_BGR2GRAY, cvtColor, imread, imshow, waitKey
  from numpy import array, dot, pad, ravel, uinta, zeros
  
  
  
  
  
  
  
  def       lowerCAmelCase__(	lowercase       :    Dict   ,     lowercase       :    Optional[Any]				) ->    Any:
    __snake_case   :				str        =       image.shape
    __snake_case   :				Tuple        =       cols - block_size[1] + 1
    __snake_case   :				Union[str, Any]        =       rows - block_size[0] + 1
    __snake_case   :				Tuple        =       zeros((dst_height * dst_width, block_size[1] * block_size[0])				)
    __snake_case   :				List[str]        =       0
    for i in range(0   ,     lowercase				):
      for j in range(0   ,     lowercase				):
        __snake_case   :				Optional[Any]        =       ravel(image[i : i + block_size[0], j : j + block_size[1]]				)
        __snake_case   :				Tuple        =       window
        row += 1
  
    return image_array
  
  
  
  
  
  
  
  def       lowerCAmelCase__(	lowercase       :    str   ,     lowercase       :    int				) ->    Any:
    __snake_case   :				str        =       image.shape[0], image.shape[1]
    __snake_case   :				Union[str, Any]        =       filter_kernel.shape[0]
    __snake_case   :				Optional[Any]        =       k_size // 2
    # Pads image with the edge values of array.
    __snake_case   :				Dict        =       pad(lowercase   ,     lowercase   ,     mode="edge"				)
  
    # im2col, turn the k_size*k_size pixels into a row and np.vstack all rows
    __snake_case   :				str        =       imacol(lowercase   ,     (k_size, k_size)				)
  
    #  turn the kernel into shape(k*k, 1)
    __snake_case   :				List[Any]        =       ravel(lowercase				)
    # reshape and get the dst image
    __snake_case   :				Optional[int]        =       dot(lowercase   ,     lowercase				).reshape(lowercase   ,     lowercase				)
    return dst
  
  
  if __name__ == "__main__":
       # read original image
       _UpperCamelCase       = imread(R'''../image_data/lena.jpg''')
       # turn image in gray scale value
       _UpperCamelCase       = cvtColor(img, COLOR_BGR2GRAY)
       # Laplace operator
       _UpperCamelCase       = array([[0, 1, 0], [1, -4, 1], [0, 1, 0]])
       _UpperCamelCase       = img_convolve(gray, Laplace_kernel).astype(uinta)
       imshow('''Laplacian''', out)
       waitKey(0)
  
  
style_context: 
  
  
  
  
  
  def       lowerCAmelCase__(	lowercase       :    str				) ->    int:
    __snake_case   :				List[str]        =       str(lowercase				).strip()
    if not oct_string:
      raise ValueError("Empty string was passed to the function"				)
    __snake_case   :				int        =       oct_string[0] == "-"
    if is_negative:
      __snake_case   :				Union[str, Any]        =       oct_string[1:]
    if not oct_string.isdigit() or not all(0 <= int(lowercase				) <= 7 for char in oct_string				):
      raise ValueError("Non-octal value was passed to the function"				)
    __snake_case   :				List[Any]        =       0
    for char in oct_string:
      __snake_case   :				Optional[Any]        =       8 * decimal_number + int(lowercase				)
    if is_negative:
      __snake_case   :				Any        =       -decimal_number
    return decimal_number
  
  
  if __name__ == "__main__":
       from doctest import testmod
  
       testmod()
  
  