png图像颜色模式:灰度、索引、rgb

本文探讨了Windows11系统中,PNG图像以0-1为元素值时颜色模式对显示效果的影响,揭示了灰度模式和索引颜色模式的区别,并提供了使用PIL库检查颜色模式的方法,以及cv2.imread函数在处理8位索引颜色模式图像时的注意事项。
摘要由CSDN通过智能技术生成

win11系统中,同样的以0-1为元素值的8位png图像,一个显示为几乎全黑,一个显示为黑色和红色。并且在图像详情中找不到任何差别,原因在于png图像有多种颜色模式。

在下面这个链接中的第 二、PNG图片的原理与优化 有提到:https://www.cnblogs.com/susanws/p/5531163.html

如何查看png图像的颜色模式,可使用PIL库,python代码:

from PIL import Image

# 读取 PNG 图像
image = Image.open("path/to/image.png")

# 获取颜色模式
color_mode = image.mode

# 打印颜色模式
print("PNG 图像的颜色模式:", color_mode)

链接中述,png图像有5种灰度,真彩色rgb,索引色,带alpha通道的灰度,带alpha通道的真彩色rgb。

而 color_mode 在 PIL 库中可能的取值有以下几种(不仅针对png):

  • "1": 二值图像,每个像素只有黑色和白色两种可能。
  • "L": 灰度图像,每个像素用8位表示灰度级别,范围从0(黑色)到255(白色)。
  • "P": 索引颜色模式(Palette-based Color Mode),在索引颜色模式中,图像的每个像素值对应于调色板(颜色映射表)中的一个索引,而不是直接表示颜色信息。
  • "RGB": 红绿蓝彩色图像,每个像素用24位表示红色、绿色和蓝色三个通道的强度。
  • "RGBA": 红绿蓝带透明通道的彩色图像,每个像素用32位表示红色、绿色、蓝色和透明度四个通道的强度。
  • "CMYK": 青、品红、黄、黑四色彩色图像,每个像素用32位表示青色、品红色、黄色和黑色四个油墨的强度。
  • "YCbCr": YCbCr 彩色图像,常用于视频压缩和数字图像处理。
  • "HSV": 色相、饱和度、亮度模式的彩色图像。

另:

在调色板颜色模式中,图像的颜色信息存储在一个调色板中,调色板是一个包含颜色映射关系的表格。每个像素的值表示它在调色板中对应的颜色索引。通过将索引与调色板中的颜色进行映射,可以恢复出完整的彩色图像。

在索引颜色模式中,P 表示每个像素值使用8位(或其他位深度)的索引值来表示。通过查看调色板数据,可以了解每个索引值对应的具体颜色。

需要注意的是,索引颜色模式经常用于减小图像文件的大小,特别是在需要存储具有有限颜色范围的图像时,例如简单的图标、标识或动画。

 

经过测试,显示为全黑的png图像颜色模式为灰度颜色模式,显示为彩色的png图像颜色模式为索引颜色模式。

经验是:cv2.imwrite 函数会将8位矩阵图像存储为 灰度颜色模式,utils.lblsave 函数会将8位矩阵图像存储为 索引颜色模式。使用 utils.lblsave 存储的 索引颜色模式 0-1元素图像,使用 cv2.imwrite 灰度图模式读入时,元素1变为灰度38;不设置读入模式时,读为rgb模式,3通道,元素1变为(128,0,0)红色,与索引图颜色一致。使用 cv2.IMREAD_UNCHANGED 模式读入为8位uint,但元素1变为128。如果您的PNG图像使用的是调色板(palette)模式,那么读取后的图像将具有索引颜色,在处理和显示时需要注意索引和调色板的转换。

摸索出直接读取8位索引颜色模式png图像索引值矩阵的方法:

import numpy as np
from PIL import Image

#打开索引颜色模式图像
index_image = Image.open("index.png")

#将索引模式图像转换为numpy矩阵
index_matrix = np.array(index_image)

#index_matrix的元素均为索引值

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值