'''simple docstring'''




__snake_case   :      int						    =  {hex(i)[2:]: i for i in range(16)}  # Use [:2] to strip off the leading '0x'





def      _UpperCAmelCase    (							_UpperCamelCase    :	int   )	->      str:
    A_     =   hex_string.strip().lower()
    if not hex_string:
        raise ValueError('''Empty string was passed to the function'''   )
    A_     =   hex_string[0] == '-'
    if is_negative:
        A_     =   hex_string[1:]
    if not all(char in hex_table for char in hex_string   ):
        raise ValueError('''Non-hexadecimal value was passed to the function'''   )
    A_     =   0
    for char in hex_string:
        A_     =   16 * decimal_number + hex_table[char]
    return -decimal_number if is_negative else decimal_number


if __name__ == "__main__":
  from doctest import testmod

  testmod()














"""simple docstring"""
from cva import destroyAllWindows, imread, imshow, waitKey






def        lowerCamelCase_  (						_lowerCamelCase			,   _lowerCamelCase				):
 lowerCamelCase__				,     lowerCamelCase__     :			Optional[Any]     				=						img.shape[0], img.shape[1]

 def to_grayscale(_lowerCamelCase			,   _lowerCamelCase			,   _lowerCamelCase				):
  return 0.2_126 * red + 0.587 * green + 0.114 * blue

 def normalize(_lowerCamelCase				):
  return min(_lowerCamelCase			,   255				)

 for i in range(_lowerCamelCase				):
  for j in range(_lowerCamelCase				):
   lowerCamelCase__     :			List[Any]     				=						int(to_grayscale(*img[i][j]				)				)
   lowerCamelCase__     :			Optional[int]     				=						[
       normalize(_lowerCamelCase				),
       normalize(greyscale + factor				),
       normalize(greyscale + 2 * factor				),
   ]

 return img


if __name__ == "__main__":
      # read original image
      A_			: List[str]				=			{
          percentage: imread("image_data/lena.jpg", 1) for percentage in (10, 20, 30, 40)
      }

      for percentage, img in images.items():
            make_sepia(img, percentage)

      for percentage, img in images.items():
            imshow(f"Original image with sepia (factor: {percentage})", img)

      waitKey(0)
      destroyAllWindows()

