如何使用opencv读取RGBA

Tis*_*ch 0 python opencv rgba

我目前正在从一组图像中读取 BGR 值,

我使用了各种 imread 标志,但我似乎无法将其拉为 BGRA。

我当前的代码是

import cv2
import os

#returns an list of images, list of x, list of y, list of BGR
def load_images_from_folder(folder):
    images = []
    for filename in os.listdir(folder):
        img = cv2.imread(os.path.join(folder,filename),flags=cv2.IMREAD_UNCHANGED)
        if img is not None:
            images.append(img)
    return images
Run Code Online (Sandbox Code Playgroud)

这返回了array([245, 247, 255], dtype=uint8)我期待的地方array([245, 247, 255, 0.2], dtype=uint8)

fro*_*tto 5

该标志cv2.IMREAD_UNCHANGED不会添加Alpha 通道,它仅保留现有通道。

由于您的图像都是 JPG 格式,因此您需要通过以下方式添加第四个通道cvtColor

img = cv2.cvtColor(img, cv2.COLOR_BGR2BGRA)
Run Code Online (Sandbox Code Playgroud)