图像数据的预处理,从'P','RGBA','RGB'多种mode的图像说起

您所在的位置:网站首页 图片cmyk模式是什么意思 图像数据的预处理,从'P','RGBA','RGB'多种mode的图像说起

图像数据的预处理,从'P','RGBA','RGB'多种mode的图像说起

2024-07-17 08:40| 来源: 网络整理| 查看: 265

‘P’,’RGBA’,’RGB’这是PIL Image读图可能出现的三种mode,每种mode的图片数据都有不同的组织形式,当训练/测试数据都是一堆图片时,尤其是那种没人帮你清洗的数据时,自己就要留神了,否则模型还没跑起来就给提前自己挖了个坑。

首先,先容许我吐槽一下OpenCV的两个抽风,我用的python接口的(估计没怎么维护吧,所以有bug),用cv2.imread读图:

对’RGBA’图的抽风

‘RGBA’的图像,按照文档所述:

我把flag置为-1,然而读出来的还是3通道的(alpha通道不见了),置成0,1倒是确实是RGB和Grayscale。

对’P’图的抽风

对于mode为’P’的图,制作本来就有点生僻。用cv2.imread去读的话,读不出来,怎么读都是NoneType。

然而,这两个OpenCV的抽风问题在PIL这里就不存在了,感觉还是PIL大法好,不管图像是什么mode,都能原汁原味地读出来。

而且,幸运的是,可以很简单的把’RGBA’和’P’ mode的图像转换成’RGB’图:

# 假如lena是'RGBA'图 lena_RGBA =Image.open("D:\\Code\\Python\\test\\img\\lena.jpg") lena_RGBA_rgb= lena_RGBA.convert("RGB") # 假如lena是'P'图 lena_P =Image.open("D:\\Code\\Python\\test\\img\\lena.jpg") lena_P_rgb= lena_P.convert("RGB")

这样一来,就都成了RGB图,图像模式的坑就填掉了,可以愉快地做后续处理了~



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3