Проект обработки изображений по преобразованию изображения RGB в оттенки серого с использованием Lab Color Space

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

Что такое RGB-изображение?

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

Все изображения представлены в RGB, потому что в цветных изображениях каждый пиксель может быть представлен как вектор трех чисел для трех основных цветов: красного, зеленого и синего. Каждое из этих чисел находится в диапазоне от 0 до 255.

Что такое изображение в градациях серого?

Это просто тот, в котором цвета являются оттенками серого. Вы можете получить различные оттенки серого в диапазоне от 0 до 255 (от черного до белого). Он варьируется в зависимости от заданной интенсивности.

Преобразование RGB в оттенки серого

Я обычно использую Google Colab для написания и запуска кода. Вы можете получить доступ к полному коду в Google Colab здесь.

Мы пройдем через эти основные шаги:

  1. Загрузите изображение
  2. Установить значения цветового канала
  3. Преобразование изображения из лабораторного пространства в RGB
  4. Постройте вывод

Прежде чем перейти к этим шагам, сначала импортируйте необходимые библиотеки в свой блокнот.

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-изображение моей детской любви в оттенки серого, используя указанную выше программу. Взгляни.

Потрясающий!!! Я говорю о ней.

Теперь давайте углубимся в это. Мы установили значение цвета второго и третьего каналов равным нулю. Удалите оттуда один канал, установите только один канал в ноль и повторно запустите этот проект и посмотрите, что изменится в выводе.

Спасибо за чтение!!, и если эта статья будет полезна, то хлопайте, пока ваши руки не истекут кровью.