code: 
  
  
  
  
  
  from cva import COLOR_BGR2GRAY, cvtColor, imread, imshow, waitKey
  from numpy import array, dot, pad, ravel, uinta, zeros
  
  def     a						(      _lowercase   :     List[str] ,						_lowercase   :     Optional[Any]       )     ->List[str]:
  		UpperCamelCase__         =	image.shape
  		UpperCamelCase__         =	cols - block_size[1] + 1
  		UpperCamelCase__         =	rows - block_size[0] + 1
  		UpperCamelCase__         =	zeros((dst_height * dst_width, block_size[1] * block_size[0])       )
  		UpperCamelCase__         =	0
  		for i in range(0 ,						UpperCamelCase__       ):
  				for j in range(0 ,						UpperCamelCase__       ):
  						UpperCamelCase__         =	ravel(image[i : i + block_size[0], j : j + block_size[1]]       )
  						UpperCamelCase__         =	window
  						row += 1
  
  		return image_array
  
  def     a						(      _lowercase   :     str ,						_lowercase   :     List[Any]       )     ->List[Any]:
  		UpperCamelCase__         =	image.shape[0], image.shape[1]
  		UpperCamelCase__         =	filter_kernel.shape[0]
  		UpperCamelCase__         =	k_size // 2
  		# Pads image with the edge values of array.
  		UpperCamelCase__         =	pad(UpperCamelCase__ ,						UpperCamelCase__ ,						mode="""edge"""       )
  
  		# im2col, turn the k_size*k_size pixels into a row and np.vstack all rows
  		UpperCamelCase__         =	imacol(UpperCamelCase__ ,						(k_size, k_size)       )
  
  		#  turn the kernel into shape(k*k, 1)
  		UpperCamelCase__         =	ravel(UpperCamelCase__       )
  		# reshape and get the dst image
  		UpperCamelCase__         =	dot(UpperCamelCase__ ,						UpperCamelCase__       ).reshape(UpperCamelCase__ ,						UpperCamelCase__       )
  		return dst
  
  
  if __name__ == "__main__":
  				# read original image
  				__lowerCAmelCase     =			imread(r"../image_data/lena.jpg")
  				# turn image in gray scale value
  				__lowerCAmelCase     =			cvtColor(img, COLOR_BGR2GRAY)
  				# Laplace operator
  				__lowerCAmelCase     =			array([[0, 1, 0], [1, -4, 1], [0, 1, 0]])
  				__lowerCAmelCase     =			img_convolve(gray, Laplace_kernel).astype(uinta)
  				imshow("Laplacian", out)
  				waitKey(0)
  
  
  
  
  
  
style_context: 
  
  
  
  
  
  def     a						(      _lowercase   :     int ,						_lowercase   :     int       )     ->int:
  		UpperCamelCase__         =	1.0
  		for i in range(1 ,						r + 1       ):
  				ret *= (n + 1 - i) / i
  		return round(_lowercase       )
  
  def     a						(      _lowercase   :     int       )     ->int:
  		return choose(8 + n ,						_lowercase       ) + choose(9 + n ,						_lowercase       ) - 1_0
  
  def     a						(      _lowercase   :     int       )     ->int:
  		return sum(non_bouncy_exact(_lowercase       ) for i in range(1 ,						n + 1       )       )
  
  def     a						(      _lowercase   :     int = 1_0_0       )     ->int:
  		return non_bouncy_upto(_lowercase       )
  
  
  if __name__ == "__main__":
  				print(f"""{solution() = }""")
  
  
  
  
  
  