【问题标题】:Difference between ARGB, RGBA Color Space in Python OpenCVPython OpenCV中ARGB、RGBA色彩空间的区别
【发布时间】:2018-09-06 22:57:45
【问题描述】:

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

  1. RGBA 和 ARGB 颜色空间有什么区别。都是关于 Alpha、Red、Green 和 Blue 通道的排列吗?

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

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

    frame = cv2.imread("image.jpg", -1)
    print( frame[0,0])
    

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

【问题讨论】:

  • 一般来说扩展名没有意义。但是图像的标题有这个和其他信息(如图像的尺寸)。图书馆会为您提供此类数据。

标签: python opencv colors alpha color-space


【解决方案1】:

RGBA 和 ARGB 颜色空间有什么区别。都是关于 Alpha、Red、Green 和 Blue 通道的排列吗?

是的,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 

channels 对于 BGRA 必须为 4。

【讨论】:

    猜你喜欢
    • 2013-01-02
    • 2018-08-19
    • 2015-06-19
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    • 1970-01-01
    相关资源
    最近更新 更多