text: import cv2
  import numpy
  
  # Например, мы можем создать квадратное черное изображение 3x3  с нуля, просто создав 2D-массив NumPy
  
  img = numpy.zeros((3, 3), dtype=numpy.uint8)
  
  # Изображение это многомерный массив. Имеет строку пикселей и троку столбцов, и каждый пиксель имеет значен
  # # [[0 0 0]
  # #  [0 0 0]
  # #  [0 0 0]]
  
  '''Здесь каждый пиксель представлен одним 8-битным целым числом, что означает, что значения для каждого пикселя 
  находятся в диапазоне 0–255, где 0 - черный, 255 - белый, а промежуточные значения - оттенки серого. Это изображение в 
  оттенках серого.
  
  Давайте теперь конвертируем это изображение в формат сине-зелено-красный  ( BGR ), используя  функцию :cv2.cvtColor'''
  
  img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
  
  '''array([[[0, 0, 0],
          [0, 0, 0],
          [0, 0, 0]],
  
         [[0, 0, 0],
          [0, 0, 0],
          [0, 0, 0]],
  
         [[0, 0, 0],
          [0, 0, 0],
          [0, 0, 0]]], dtype=uint8)'''
  
  '''каждый пиксель теперь представлен массивом из трех элементов, где каждое целое число представляет один из 
  трех цветовых каналов: B, G и R соответственно. Другие распространенные цветовые модели, такие как HSV, будут 
  представлены таким же образом, хотя и с другими диапазонами значений. Например, значение оттенка цветовой модели 
  HSV имеет диапазон 0–180.'''
  
  
  '''код ниже будет напечатан (5, 3); другими словами, у нас есть изображение в оттенках серого со 5строками и 
  3столбцами. Если затем преобразовать изображение в BGR, форма будет такой (5, 3, 3), что указывает на наличие 
  трех каналов на пиксель.'''
  
  img1 = numpy.zeros((5, 3), dtype=numpy.uint8)
  
  '''Проверить структуру изображения можно, проверив shape свойство, которое возвращает строки,
  столбцы и количество каналов (если их несколько).'''
  
  print(img.shape)
  
  '''Изображения можно загружать из одного формата файла и сохранять в другом. Например, давайте конвертируем 
  изображение из PNG в JPEG:'''
  
  image = cv2.imread('MyPic.png')
  cv2.imwrite('MyPic1.jpg', image)
  
  
  
  grayImage = cv2.imread('MyPic.png', cv2.IMREAD_GRAYSCALE)
  cv2.imwrite('MyPicGray.png', grayImage)
  
  # По умолчанию imread возвращает изображение в цветовом формате BGR, даже если файл использует формат оттенков серого.
  # BGR представляет ту же цветовую модель, что и красный-зеленый-синий ( RGB ), но порядок байтов обратный.
  # 
  # По желанию, мы можем указать режим imread. Поддерживаемые параметры включают следующее:
  #
  # cv2.IMREAD_COLOR: Это вариант по умолчанию, обеспечивающий 3-канальное изображение BGR с 8-битным значением (0-255)
  # для каждого канала.
  
  '''cv2.IMREAD_GRAYSCALE: Обеспечивает 8-битное изображение в оттенках серого.
  cv2.IMREAD_ANYCOLOR: Это обеспечивает либо 8-битное изображение BGR для каждого канала, либо 8-битное изображение 
  в градациях серого, в зависимости от метаданных в файле.
  cv2.IMREAD_UNCHANGED: Это считывает все данные изображения, включая альфа-канал или канал прозрачности (если он есть) 
  как четвертый канал.
  cv2.IMREAD_ANYDEPTH: Загружает изображение в оттенках серого с исходной глубиной цвета. Например, он предоставляет 
  изображение в оттенках серого с 16-битным каналом, если файл представляет изображение в этом формате.
  cv2.IMREAD_ANYDEPTH | cv2.IMREAD_COLOR: Эта комбинация загружает изображение в цвете BGR с его исходной битовой 
  глубиной.
  cv2.IMREAD_REDUCED_GRAYSCALE_2: Загружает изображение в оттенках серого с половинным исходным разрешением. Например, 
  если файл содержит изображение 640 x 480, он загружается как изображение 320 x 240.
  cv2.IMREAD_REDUCED_COLOR_2:  Это загружает изображение в цвете BGR 8 бит на канал при половинном исходном разрешении.
  cv2.IMREAD_REDUCED_GRAYSCALE_4: Загружает изображение в оттенках серого с четвертью исходного разрешения.
  cv2.IMREAD_REDUCED_COLOR_4:  Это загружает изображение с 8-битным цветом на канал с четвертью исходного разрешения.
  cv2.IMREAD_REDUCED_GRAYSCALE_8: Загружает изображение в оттенках серого с разрешением в одну восьмую от исходного.
  cv2.IMREAD_REDUCED_COLOR_8:  Это загружает изображение с 8-битным цветом на канал с одной восьмой его исходного 
  разрешения.
  В качестве примера давайте загрузим файл PNG как изображение в градациях серого (при этом теряем любую цветовую 
  информацию), а затем сохраним его как изображение PNG в градациях серого:'''
  
  
  # Путь к изображению, если он не является абсолютным, относится к рабочему каталогу
  # (пути, из которого запускается сценарий Python), поэтому в предыдущем примере MyPic.png он должен находиться в
  # рабочем каталоге, иначе изображение не будет найдено. Если вы предпочитаете избегать предположений о рабочем каталоге,
  # вы можете  использовать абсолютные пути, например, в  C:\Users\Joe\Pictures\MyPic.png Windows,
  # /Users/Joe/Pictures/MyPic.pngMac  или  /home/joe/pictures/MyPic.png Linux.
  #
  # imwrite() Функция требует изображения , чтобы быть в BGR или в оттенках серого формата с определенным числом бит
  # на канал , что выходной формат может поддерживать. Например, для формата файла BMP требуется 8 бит на канал,
  # в то время как PNG позволяет использовать 8 или 16 бит на канал.
  