Разница между ARGB и цветовым пространством RGBA в Python OpenCV

У меня много вопросов о цветовых моделях RGBA и ARGB.

  1. В чем разница между цветовым пространством RGBA и ARGB. Это все о расположении альфа, красного, зеленого и синего каналов?

  2. В моем случае я хочу прочитать изображение с расширением jpg. Могу ли я извлечь альфа-канал из изображения?

  3. Использование изображения с расширением 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.

Другие вопросы по тегам