Есть ли способ проверить, что входное изображение имеет именно RGB, а не BGR или что-то другое. Для проверки изображений RGB и изображений в оттенках серого я использую длину их формы для сравнения:
Этот метод хорошо работает для различения изображений с цветовыми каналами от изображений в оттенках серого, но он не различает цветовые пространства RGB и BGR. Поскольку изображения RGB и BGR будут иметь три измерения в массиве numpy, мне нужен надежный способ гарантировать, что данные изображения, которые я обрабатываю, находятся именно в формате RGB.
Я пытался использовать размерность изображения для отличать любой трехканальный формат от цветового пространства оттенков серого.
Я знаю, что OpenCV читает цветные изображения в формате BGR.
Комментарии, добавленные из обзора:
import numpy as np
image = np.zeros((224, 224, 3), dtype=np.uint8)
image_gray = np.zeros((224, 224), dtype=np.uint8)
# Grayscale images does not have `channel` dimension
assert len(image.shape) == 3, print("image shape should have 3 items)