Разница между ARGB и цветовым пространством RGBA в Python OpenCV
У меня много вопросов о цветовых моделях RGBA и ARGB.
В чем разница между цветовым пространством RGBA и ARGB. Это все о расположении альфа, красного, зеленого и синего каналов?
В моем случае я хочу прочитать изображение с расширением jpg. Могу ли я извлечь альфа-канал из изображения?
Использование изображения с расширением jpg. Как я буду преобразовывать изображение в цветовое пространство RGBA в python? Ниже мой исходный код:
frame = cv2.imread("image.jpg", -1) print( frame[0,0])
Оператор печати выше отображает только значения RGB. Как я включу альфа-канал?
1 ответ
В чем разница между цветовым пространством RGBA и ARGB. Это все о расположении альфа, красного, зеленого и синего каналов?
В моем случае я хочу прочитать изображение с расширением jpg. Могу ли я извлечь альфа-канал из изображения?
Нет. JPG не поддерживает прозрачность. Вам нужны другие форматы, такие как PNG, для хранения альфа-канала.
Использование изображения с расширением jpg. Как я буду преобразовывать изображение в цветовое пространство RGBA в python?
Вы загружаете свое изображение с IMREAD_UNCHANGED
(-1
), который "Если установлен, возвращает загруженное изображение как есть (с альфа-каналом, в противном случае оно обрезается)."
Если ваше изображение имеет альфа-канал (например, PNG), все готово. В противном случае, как и в вашем случае, прочитайте изображение как BGR (по умолчанию, IMREAD_COLOR
), а затем преобразовать в BGRA:
frame = cv2.imread("image.jpg")
bgra = cv.cvtColor(frame, cv.COLOR_BGR2BGRA)
Вы можете проверить количество каналов вашего изображения с:
height, width, channels = img.shape
channels
должно быть 4 для BGRA.