Проект обработки изображений по преобразованию изображения RGB в оттенки серого с использованием Lab Color Space
Когда вы вступаете в область обработки изображений, вы всегда пытаетесь играть с разными изображениями и их результатами с помощью различных типов алгоритмов машинного обучения. Но если вы новичок, то сначала вам придется иметь дело с изображениями RGB и оттенками серого. Давайте выясним, что это такое и как преобразовать изображения RGB в оттенки серого.
Что такое RGB-изображение?
Как вы, наверное, знаете, RGB означает красный, зеленый и синий. Изображение RGB представляет собой композицию трех разных изображений в градациях серого, соответствующих интенсивности красного, зеленого и синего цветов. Эти три изображения в градациях серого объединяются в одно изображение, которое люди воспринимают как цветные изображения. Комбинируя различные интенсивности красного, зеленого и синего в оттенках серого, вы можете получить широкий спектр цветных изображений RGB.
Все изображения представлены в RGB, потому что в цветных изображениях каждый пиксель может быть представлен как вектор трех чисел для трех основных цветов: красного, зеленого и синего. Каждое из этих чисел находится в диапазоне от 0 до 255.
Что такое изображение в градациях серого?
Это просто тот, в котором цвета являются оттенками серого. Вы можете получить различные оттенки серого в диапазоне от 0 до 255 (от черного до белого). Он варьируется в зависимости от заданной интенсивности.
Преобразование RGB в оттенки серого
Я обычно использую Google Colab для написания и запуска кода. Вы можете получить доступ к полному коду в Google Colab здесь.
Мы пройдем через эти основные шаги:
- Загрузите изображение
- Установить значения цветового канала
- Преобразование изображения из лабораторного пространства в RGB
- Постройте вывод
Прежде чем перейти к этим шагам, сначала импортируйте необходимые библиотеки в свой блокнот.
import cv2 import numpy as np from skimage.io import imread from skimage.color import rgb2lab, lab2rgb import matplotlib.pylab as plt from google.colab.patches import cv2_imshow from google.colab import files
Теперь загрузите изображение, на котором вы хотите протестировать его.
def read_file(filename): image = cv2.imread(filename) cv2_imshow(image) return image uploaded = files.upload() filename = next(iter(uploaded)) image = read_file(filename)
Запустите ячейку, вы увидите вывод в виде двух вариантов. Загрузите изображение по вашему выбору. Если вы запускаете этот проект в блокноте Jupyter, вы можете просто добавить путь к изображению. Вам не нужно делать все это.
Преобразуйте свое изображение из RGB в цветовое пространство Lab.
image1 = rgb2lab(image)
Установите значения цвета второго и третьего каналов на нули.
image1[...,1] = image1[...,2] = 0
Получите изображение в градациях серого, преобразовав изображение обратно в RGB из Lab Color Space.
image1 = lab2rgb(image1)
Постройте вывод изображения.
plt.figure(figsize=(20,10)) plt.subplot(122), plt.imshow(image1), plt.axis('off'), plt.title('Gray Scale Image', size=20) plt.show()
И это все. Вы сделали. Я преобразовал одно RGB-изображение моей детской любви в оттенки серого, используя указанную выше программу. Взгляни.
Потрясающий!!! Я говорю о ней.
Теперь давайте углубимся в это. Мы установили значение цвета второго и третьего каналов равным нулю. Удалите оттуда один канал, установите только один канал в ноль и повторно запустите этот проект и посмотрите, что изменится в выводе.
Спасибо за чтение!!, и если эта статья будет полезна, то хлопайте, пока ваши руки не истекут кровью.