Чтобы извлечь красный канал изображения, мы сначала прочитаем цветное изображение с помощью cv2, а затем извлечем 2D-массив.
В этом руководстве Python мы узнаем, как извлечь красный канал из цветного изображения, применив нарезку массива к представлению массива numpy изображения.
Пошаговый процесс извлечения
Ниже приводится последовательность шагов по извлечению красного канала из изображения:
- Прочтите изображение с помощью cv2.imread().
- imread() возвращает массив BGR (Blue-Green-Red), это трехмерный массив, т.е. массивы 2D пикселей для трех цветовых каналов.
- Извлеките только красный канал, разрезав массив.
Пример 1
В следующем примере мы реализуем все шаги, упомянутые выше, чтобы извлечь красный канал из следующего изображения.

import cv2
#read image
src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED)
print(src.shape)
#extract red channel
red_channel = src[:,:,2]
#write red channel to greyscale image
cv2.imwrite('D:/cv2-red-channel.png',red_channel)
Мы добавили к изображению красный канал. Поскольку это всего лишь 2D-массив со значениями от 0 до 255, выходные данные выглядят как изображение в оттенках серого, но это значения красного канала.

Если вы посмотрите на треугольники, более зеленый и синий будут темнее другого.
Чтобы визуализировать изображение в красном цвете, сведем к нулям синюю и зеленую составляющие.
import cv2
import numpy as np
#read image
src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED)
print(src.shape)
# extract red channel
red_channel = src[:,:,2]
# create empty image with same shape as that of src image
red_img = np.zeros(src.shape)
#assign the red channel of src to empty image
red_img[:,:,2] = red_channel
#save image
cv2.imwrite('D:/cv2-red-channel.png',red_img)

В этом уроке на примерах Python мы узнали, как выделить красный канал цветного изображения.
Как получить зеленый канал?
Чтобы извлечь зеленый канал изображения, сначала прочитайте цветное изображение с помощью библиотеки OpenCV в Python, а затем извлеките 2D-массив зеленого канала из массива изображений, используя нарезку изображения.
В этом уроке мы научимся извлекать зеленый канал с помощью примеров программ.
Пошаговый процесс извлечения
Ниже приведен пошаговый процесс извлечения зеленого канала из изображения:
- Прочтите изображение с помощью cv2.imread().
- imread() возвращает массив BGR (Blue-Green-Red), это трехмерный массив, т.е. массивы 2D пикселей для трех цветовых каналов.
- Извлеките только зеленый канал, разрезав массив.
Пример 1
В следующем примере мы реализуем все шаги, упомянутые выше, чтобы извлечь Зеленый канал из следующего изображения.

import cv2
#read image
src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED)
print(src.shape)
#extract green channel
green_channel = src[:,:,1]
#write green channel to greyscale image
cv2.imwrite('D:/cv2-green-channel.png',green_channel)
Мы добавили зеленый канал к изображению. Поскольку это всего лишь 2D-массив со значениями от 0 до 255, выходные данные выглядят как изображение в оттенках серого, но это значения зеленого канала.

Если вы посмотрите на треугольники, красный и синий темнее другого.
Чтобы визуализировать изображение в зеленом цвете, сделаем красную и синюю составляющими нулями.
import cv2
import numpy as np
#read image
src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED)
print(src.shape)
# extract green channel
green_channel = src[:,:,1]
# create empty image with same shape as that of src image
green_img = np.zeros(src.shape)
#assign the green channel of src to empty image
green_img[:,:,1] = green_channel
#save image
cv2.imwrite('D:/cv2-green-channel.png',green_img)

Мы узнали, как извлечь зеленый канал из изображения.
Как получить синий канал?
Чтобы извлечь синий канал изображения в Python, сначала прочтите цветное изображение с помощью библиотеки OpenCV, а затем извлеките 2D-массив синего канала из массива изображений, используя нарезку изображения.
Пошаговый процесс извлечения
Ниже приведена последовательность шагов для получения синего канала цветного изображения:
- Прочтите изображение с помощью cv2.imread().
- imread() возвращает массив BGR (Blue-Green-Red), это трехмерный массив, т.е. массивы 2D пикселей для трех цветовых каналов.
- Извлеките только синий канал, обратившись к массиву.
Пример 1
В следующем примере мы реализуем последовательность шагов, упомянутых выше, чтобы извлечь синий канал из следующего изображения.

import cv2
#read image
src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED)
print(src.shape)
#extract blue channel
blue_channel = src[:,:,0]
#write blue channel to greyscale image
cv2.imwrite('D:/cv2-blue-channel.png',blue_channel)
Мы добавили синий канал к изображению. Поскольку это всего лишь 2D-массив со значениями от 0 до 255, выходные данные выглядят как изображение в оттенках серого, но это значения синего канала.

Если вы посмотрите на треугольники, красный и зеленый темнее другого.
Чтобы визуализировать изображение в синем цвете, сведем к нулю красную и зеленую составляющие.
import cv2
import numpy as np
#read image
src = cv2.imread('D:/cv2-resize-image-original.png', cv2.IMREAD_UNCHANGED)
print(src.shape)
# extract blue channel
blue_channel = src[:,:,0]
# create empty image with same shape as that of src image
blue_img = np.zeros(src.shape)
#assign the red channel of src to empty image
blue_img[:,:,0] = blue_channel
#save image
cv2.imwrite('D:/cv2-blue-channel.png',blue_img)

В этом уроке на примерах Python мы узнали, как извлечь синий канал из изображения.
а как сделать так чтобы было выведено сразу 3 цветовых канала? красный зеленый синий одновременно разными изображениями? например красные зеленые и синие горы?
import cv2
import numpy as np
import matplotlib.pyplot as plt
src = cv2.imread(‘D:/cv2-resize-image-original.png’, cv2.IMREAD_UNCHANGED)
print(src.shape)
red_channel = rect[:,:,2]
green_channel = rect[:,:,1]
blue_channel = rect[:,:,0]
red_img = np.zeros(src.shape)
red_imgt[:,:,2] = red_channel
green_img = np.zeros(src.shape)
green_img[:,:,1] = green_channel
blue_img = np.zeros(src.shape)
blue_img[:,:,0] = blue_channel
cv2.imshow(‘red channel’, red_img)
cv2.imshow(‘green channel’, green_img)
cv2.imshow(‘blue channel’, blue_img)