Типы изображений и цветовые каналы в OpenCV Python

Используя модуль Python-OpenCV, вы можете преобразовать изображение из цветного в черно-белое, из черно-белого в серое или из RGB в оттенок, насыщенность и значение. Понимание типов изображений и цветовых каналов имеет важное значение при работе с модулем cv2 в Python.

Мы можем думать, что изображения в Python — это пустые массивы, и с помощью модуля cv2 мы можем изменять массивы и преобразовывать изображения в различные формы. Давайте углубимся в эту тему.

Понимание типов изображений и цветовых каналов

Чтобы понять типы изображений и цветовые каналы, нам нужно разделить исходное изображение на три канала B, G, R. Затем мы отображаем цветовые каналы один за другим для анализа изображений.

Сначала мы создадим пустой массив одного и того же исходного изображения, а затем заполним цветовые каналы b, g, r для каждой матрицы, чтобы создать разные версии изображения с их цветовыми каналами. Чтобы продолжить, вам необходимо установить на свой компьютер библиотеку numpy и opencv-python.

Давайте импортируем библиотеки numpy и cv2.

Теперь прочитайте новое изображение, используя метод cv2.imread(). Я буду использовать бесплатные изображения, доступные в Интернете.

Теперь мы явно устанавливаем для окна значение cv2.moveWindow() с тем же именем изображения «Image» и 0, 0. Это означает, что когда cv2 генерирует изображение, оно переместится в левый угол.

Если вы запустите указанный выше файл с помощью команды python3 app.py, вы получите следующий вывод.

пример

Из вывода видно, что форма изображения(271, 529, 3). Значение высоты — 271, ширины — 529, а канала — 3.

Разделите фигуру изображения

Чтобы разделить фигуру на высоту, ширину и канал, напишите следующий код.

Нам нужен этот шаг, потому что теперь мы создадим пустой массив numpy и будем использовать эти измерения для построения массивов.

Разделение изображения на B, G и R

Метод Python cv2.split() разбивает изображение на компоненты B, G и R. Мы создадим три разных изображения на основе этих каналов, построив массивы.

В этом коде мы разбили изображение на компоненты b, g, r.

Затем создал пустой массив той же высоты и ширины 3x, и этот массив содержит только значения типа данных uint. Этот массив принимает только значения пикселей от 0 до 255 из-за uint8.

В приведенном выше коде мы заполняем значения b, g, r в пустом массиве, чтобы создать три разные версии изображения с соответствующими каналами.

На последнем шаге нам нужно отобразить каналы изображения. Итак, наш окончательный код выглядит следующим образом.

Вывод:

Python cv2 — понимание типов изображений и цветовых каналов

Вы можете видеть, что сначала это исходное изображение, а затем под ним три разных канала этого изображения. Итак, если вы хотите разделить изображение на другие каналы, используйте метод cv2.split() и назначьте разные компоненты новому массиву и объедините его для построения каналов.

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python