OpenCV: извлечение цветовых каналов из изображения RGB - PullRequest
2 голосов
/ 11 июля 2019

Я пытаюсь сегментировать цветное изображение, используя кластеризацию Mean-Shift, используя sklearn.Я прочитал изображение в массив NumPy, однако я хочу извлечь каждый цветовой канал (R, G, B), чтобы я мог использовать каждый в качестве переменной для классификации.

Я нашел следующий код онлайн, который извлекает цветовые каналы RGB изображения, представленного в виде массива.

  red = image[:,:,2]
  green = image[:,:,1]
  blue = image[:,:,0]

Однако я не понимаю, как работает этот код.Что означают 2, 1 и 0?Любые идеи приветствуются.

1 Ответ

2 голосов
/ 11 июля 2019

Нормальная картинка у вас будет 3 слоя, красный зеленый и синий.

Когда вы читаете картинку инструментом (например, open-cv), он вернет вам массив с формой (width_image x length_image x channel).

Расположение каналов зависит от того, что вы использовали: если вы читаете с помощью open-cv, сначала будет синий, затем зеленый, а затем красный, в противном случае, если вы используете matplotlib.pyplot.imread, это будет красный-зеленый-синий.

Этот код написан так, потому что они читают картинку с помощью open-cv

...