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

时间:2018-03-28 09:54:42

标签: python opencv colors alpha 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])
    
  4. 上面的print语句仅显示RGB值。我将如何包含alpha通道?

1 个答案:

答案 0 :(得分:3)

  

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

是的,it's all about the arrangement

  

在我的情况下,我想阅读jpg扩展名的图像。我可以从图像中提取alpha通道吗?

没有。 JPG doesn't support transparency。您需要其他格式(如PNG)来存储Alpha通道。

  

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

您正在使用IMREAD_UNCHANGED-1)加载图片,"If set, return the loaded image as is (with alpha channel, otherwise it gets cropped)."

如果您的图片有Alpha通道(例如PNG),那么您就完成了。否则,就像你的情况一样,将图像读作BGR(默认为IMREAD_COLOR),然后转换为BGRA:

frame = cv2.imread("image.jpg")
bgra = cv.cvtColor(frame, cv.COLOR_BGR2BGRA)

您可以使用以下方式检查图像的the number of channels

 height, width, channels = img.shape 
BGRA的

channels必须为4。