Python OpenCV中ARGB、RGBA色彩空间的区别

Aly*_*ono 0 python opencv alpha colors color-space

我有很多关于 RGBA 和 ARGB 颜色模型的问题。

  1. RGBA 和 ARGB 色彩空间有什么区别。是关于Alpha、红色、绿色和蓝色通道的排列吗?

  2. 就我而言,我想读取带有 jpg 扩展名的图像。我可以从图像中提取 alpha 通道吗?

  3. 使用带有 jpg 扩展名的图像。我将如何在 python 中将图像转换为 RGBA 颜色空间?下面是我的初始代码:

    frame = cv2.imread("image.jpg", -1)
    print( frame[0,0])
    
    Run Code Online (Sandbox Code Playgroud)

上面的打印语句只显示 RGB 值。我将如何包含 alpha 通道?

Mik*_*iki 5

RGBA 和 ARGB 色彩空间有什么区别。是关于Alpha、红色、绿色和蓝色通道的排列吗?

是的,这都是关于安排的

就我而言,我想读取带有 jpg 扩展名的图像。我可以从图像中提取 alpha 通道吗?

。JPG 不支持透明度。您需要其他格式(如 PNG)来存储 alpha 通道。

使用带有 jpg 扩展名的图像。我将如何在 python 中将图像转换为 RGBA 颜色空间?

您正在使用IMREAD_UNCHANGED( -1)加载图像,“如果设置,则按原样返回加载的图像(使用 alpha 通道,否则将被裁剪)。”

如果您的图像具有 alpha 通道(例如 PNG),您就完成了。否则,就像您的情况一样,将图像读取为 BGR(默认值,IMREAD_COLOR),然后转换为 BGRA:

frame = cv2.imread("image.jpg")
bgra = cv.cvtColor(frame, cv.COLOR_BGR2BGRA)
Run Code Online (Sandbox Code Playgroud)

您可以使用以下方法检查图像的通道数

 height, width, channels = img.shape 
Run Code Online (Sandbox Code Playgroud)

channels BGRA 必须为 4。