用于机器学习也好,深度学习也好,都需要读取图片的操作。
了解图像的mode
图像的模式定义了图像的类型和像素的位宽。当前支持如下模式:
1:1位像素,表示黑和白,但是存储的时候每个像素存储为8bit。非黑即白
L:8位像素,表示黑和白。在PIL中从模式转换为L按照线面公式转换 L = R * 299/1000 + G * 587/1000+ B * 114/1000
P:8位像素,使用调色板映射到其他模式。
RGB:3x8位像素,为真彩色。
RGBA:4x8位像素,有透明通道的真彩色。
CMYK:4x8位像素,颜色分离。
YCbCr:3x8位像素,彩色视频格式。
I:32位整型像素。灰色图像。(0,255)之间的数字表示不同的灰度。从模式转为i模式的公式 I = R * 299/1000 + G * 587/1000 + B * 114/1000。结果与L结果完全一样,只是L像素是8bit,i像素是32bit
F:32位浮点型像素。与L转换公式是一样的,都是RGB转为灰色值的公式,但模式F会保留小数部分
图像后缀名的转换:
要注意的是:对于彩色图像,不管其格式是png,还是bmp,或者jpg,在PIL中,使用Image模块的open()函数打开后,返回的图像对象的模式都是RGB,对于灰度图像,不管其图像格式是PNG,还是BMP,JPG,打开后