Как получить одноцветный канал изображения без использования функции разделения в OpenCV Python?

Я хотел бы выделить руку для распознавания жестов в реальном времени. Я заметил, что изображение руки выделяется по-разному для разных цветовых каналов с помощью функции cv2.imsplit. Но эта функция разделения очень затратна по времени. Я не могу выполнять те же функции с помощью индексации Numpy (как указано в официальная страница)


person Abhishek Karambelkar    schedule 13.01.2018    source источник
comment
Предоставьте минимальный, полный и проверяемый пример.   -  person buhtz    schedule 13.01.2018


Ответы (2)


Вы можете использовать фрагмент numpy:

import cv2
import numpy as np

## read image as np.ndarray in BGR order
img = cv2.imread("test.png")


## use OpenCV function to split channels
b, g, r = cv2.split(img)

## use numpy slice to extract special channel
b = img[...,0]
g = img[...,1]
r = img[...,2]
person Kinght 金    schedule 13.01.2018

person    schedule
comment
Должно быть b,g,r=cv2.split(изображение) - person hfz; 28.01.2019