


import numpy as np
from PIL import Image
def 				UpperCamelCase__					(  SCREAMING_SNAKE_CASE__      ,	SCREAMING_SNAKE_CASE__      ,	SCREAMING_SNAKE_CASE__						):
 __lowerCamelCase		:							str		 =						np.array(SCREAMING_SNAKE_CASE__						)
 if arr.shape[0] != arr.shape[1]:
  raise ValueError('The input array is not a square matrix'						)
 __lowerCamelCase		:							Optional[Any]		 =						0
 __lowerCamelCase		:							Optional[int]		 =						0
 __lowerCamelCase		:							Union[str, Any]		 =						0
 __lowerCamelCase		:							List[Any]		 =						0

 # compute the shape of the output matrix
 __lowerCamelCase		:							Dict		 =						(arr.shape[0] - size) // stride + 1
 # initialize the output matrix with zeros of shape maxpool_shape
 __lowerCamelCase		:							int		 =						np.zeros((maxpool_shape, maxpool_shape)						)

 while i < arr.shape[0]:
  if i + size > arr.shape[0]:
   # if the end of the matrix is reached, break
   break
  while j < arr.shape[1]:
   # if the end of the matrix is reached, break
   if j + size > arr.shape[1]:
    break
   # compute the maximum of the pooling matrix
   __lowerCamelCase		:							List[str]		 =						np.max(arr[i : i + size, j : j + size]						)
   # shift the pooling matrix by stride of column pixels
   j += stride
   mat_j += 1

  # shift the pooling matrix by stride of row pixels
  i += stride
  mat_i += 1

  # reset the column index to 0
  __lowerCamelCase		:							Optional[int]		 =						0
  __lowerCamelCase		:							Union[str, Any]		 =						0

 return updated_arr
def 				UpperCamelCase__					(  SCREAMING_SNAKE_CASE__      ,	SCREAMING_SNAKE_CASE__      ,	SCREAMING_SNAKE_CASE__						):
 __lowerCamelCase		:							List[Any]		 =						np.array(SCREAMING_SNAKE_CASE__						)
 if arr.shape[0] != arr.shape[1]:
  raise ValueError('The input array is not a square matrix'						)
 __lowerCamelCase		:							Tuple		 =						0
 __lowerCamelCase		:							Any		 =						0
 __lowerCamelCase		:							str		 =						0
 __lowerCamelCase		:							int		 =						0

 # compute the shape of the output matrix
 __lowerCamelCase		:							List[str]		 =						(arr.shape[0] - size) // stride + 1
 # initialize the output matrix with zeros of shape avgpool_shape
 __lowerCamelCase		:							int		 =						np.zeros((avgpool_shape, avgpool_shape)						)

 while i < arr.shape[0]:
  # if the end of the matrix is reached, break
  if i + size > arr.shape[0]:
   break
  while j < arr.shape[1]:
   # if the end of the matrix is reached, break
   if j + size > arr.shape[1]:
    break
   # compute the average of the pooling matrix
   __lowerCamelCase		:							Dict		 =						int(np.average(arr[i : i + size, j : j + size]						)						)
   # shift the pooling matrix by stride of column pixels
   j += stride
   mat_j += 1

  # shift the pooling matrix by stride of row pixels
  i += stride
  mat_i += 1
  # reset the column index to 0
  __lowerCamelCase		:							Any		 =						0
  __lowerCamelCase		:							List[Any]		 =						0

 return updated_arr


# Main Function
if __name__ == "__main__":
       from doctest import testmod

       testmod(name='avgpooling', verbose=True)

       # Loading the image
       lowercase_	   =     Image.open('path_to_image')

       # Converting the image to numpy array and maxpooling, displaying the result
       # Ensure that the image is a square matrix

       Image.fromarray(maxpooling(np.array(image), size=3, stride=2)).show()

       # Converting the image to numpy array and averagepooling, displaying the result
       # Ensure that the image is a square matrix

       Image.fromarray(avgpooling(np.array(image), size=3, stride=2)).show()





import warnings

from ...utils import logging
from .image_processing_chinese_clip import ChineseCLIPImageProcessor


lowercase_	   =     logging.get_logger(__name__)


class 	A_ (	__UpperCamelCase   ):




      '''simple docstring'''


      def __init__(    self:	List[str]						,				*a:	List[Any]						,				**a:	Optional[Any]    ):
       warnings.warn(
           'The class ChineseCLIPFeatureExtractor is deprecated and will be removed in version 5 of Transformers.'
           ' Please use ChineseCLIPImageProcessor instead.'						,				a						,				)
       super().__init__(*a						,				**a    )

