项目场景:PIL库Image模块处理数组合并成3通道RGB图像

项目中,使用Pytorch的torch.utils.data.DataLoader加载自己准备好的数据集。同时想要直观查看或验证生成的数据是否正确。通过直观展示数据–训练数据和标签–来验证数据集。

自定义的数据集是使用PIL库的Image.open读取的图像数据。还是用它来展示验证数据。测试代码如下:

if __name__ == "__main__":import timefrom PIL import ImageplayPhoneData = PlayPhoneData("E:/Datasets/玩手机")# 利用dataloader加载数据集train_loader = torch.utils.data.DataLoader(playPhoneData, batch_size=1, shuffle=True, drop_last=True)# 展示和验证数据for i, (inputs, labels) in enumerate(train_loader, 0):print(i, inputs[0].shape, labels)# array = inputs[0]im1 = Image.fromarray(256 * inputs[0][0].numpy())im2 = Image.fromarray(256 * inputs[0][1].numpy())im3 = Image.fromarray(256 * inputs[0][2].numpy())im = Image.merge("RGB", [im1, im2, im3])im.show("i")break

问题描述:ValueError: mode mismatch

代码中:im1 = Image.fromarray(256 * inputs[0][0].numpy())inputs是数据集1个batch的图像。inputs[0]表示batch中取第一副图像。inputs[0][0]表示该图像的一个通道。.numpy()是将tensor转换成数组。256 *是因为生成图像数据集石对图像做了归一化处理,需要还原。
im1,im2,im3分别表示3个通道,通过merge函数将他们还原成3通道彩色图像。运行时,报错分析:

  1. 首先,每一个通道单独展示正常。
  2. 合并数据时会报错,ValueError: mode mismatch,或者数组数据没有model属性。

原因分析:

转化的im1,im2,im33个通道数组没有定义图像模式,需要明确定义model.需要im1,im2,im3调用convert设置图像模式。


解决方案:

使用im1.convert('L')定义图像模式。

im1 = Image.fromarray(256 * inputs[0][0].numpy()).convert('L')
im2 = Image.fromarray(256 * inputs[0][1].numpy()).convert('L')
im3 = Image.fromarray(256 * inputs[0][2].numpy()).convert('L')

ValueError: mode mismatch相关推荐

  1. ValueError: Shape mismatch: The shape of labels (received (768,)) should equal the shape of logits e

    问题 运行tensorflow 的resnet网络,预测结果,出现报错 ValueError: Shape mismatch: The shape of labels (received (768,) ...

  2. 成功解决 ValueError: feature_names mismatch training data did not have the following fields

    成功解决 ValueError: feature_names mismatch training data did not have the following fields 目录 解决问题 解决思路 ...

  3. 已解决ValueError: Length mismatch: Expected axis has 5 elements, new values have 4 elements

    已解决ValueError: Length mismatch: Expected axis has 5 elements, new values have 4 elements 文章目录 报错代码 报 ...

  4. valueError: Length mismatch: Expected axis has 40 elements, new values have 38 elements

    背景 我拿原来的模型准备跑一个新数据集,当然列就会不同 新数据集没有head,我就自己傻乎乎一个一个数的列数(应该是数错了 我原来数的38其实是40) 就报了valueError: Length mi ...

  5. ValueError: Length mismatch: Expected axis has 2 elements, new values have 1 elements

    解决办法: 加红部分没写 index_col=0 --第一列为index值

  6. ValueError: Length mismatch: Expected axis has 4 elements, new values have 3 elements

    from sklearn.decomposition import PCA from sklearn import datasets from sklearn import preprocessing ...

  7. 机器学习平台系列——XGB feature_names mismatch 问题解决方案

    最近开发公司的机器学习平台的XGBoost控件.结果报了一个bug,说"feature_names mismatch". 现在我们来复现这个bug: import xgboost ...

  8. dataframe,python,numpy 问题索引2

    20220330 print(frame3.isnull().any()) 找出存在空值的列 print("========================") print(fra ...

  9. tensorflow问题

    20210121 ImportError: No module named 'tensorflow.python' https://stackoverflow.com/questions/414156 ...

最新文章

  1. android binder机制之——(创建binder服务)
  2. 信息系统项目管理师-项目人力资源管理核心知识点思维脑图
  3. 数据结构录 之 单调队列单调栈。
  4. [2012山东ACM省赛] The Best Seat in ACM Contest (模拟)
  5. 从数据的角度解析计算机的发展,2017计算机知识考前冲刺试题及答案
  6. error: failed to push some refs to 'https://gitee.com/xxx/xxx'
  7. 吃饭、睡觉、打星星之“打星星”!
  8. html页面返回原理,浏览器输入URL到界面显示(HTML渲染)发生了什么?
  9. Qt 设置窗体大小和背景颜色
  10. unity3d点击屏幕判断是否击中场景中物体
  11. 【编辑器】VSCode+TEXLIVE环境配置,以SJTUthesis为测试用例
  12. 计算机电源高频干扰,在高频开关电源设计中怎样抑制电磁干扰?
  13. 微信小程序客服消息配置 token 验证失败 微信无请求记录 问题现象的解决办法
  14. _ZN10tensorflow8internal21CheckOpMessageBuilder9NewStringB5cxx11Ev
  15. doctype 怪异模式和标准模式
  16. pta 7-2 jmu-python-组合数 (20 分) python函数练习
  17. IEEEXTREME15.0 游记
  18. 分布式系统和网络系统
  19. 想在互联网上年入百万,必须具备这两种能力!
  20. 携程并了去哪儿,互联网业7:2:1法则几成定律

热门文章

  1. python 列表写入excel_Python读写excel表格的方法一
  2. 第十四篇,STM32的CAN总线通信
  3. docker防止fork炸弹
  4. springmvc java.lang.IllegalStateException: getOutputStream() has already been called for this respon
  5. 【Unity学习笔记】——基础篇:关于光照GI
  6. 90个常用词根,30个前缀30个后缀
  7. uniapp 微信小程序授权获取手机并绑定登录
  8. 马尔科夫细致平稳条件
  9. MySQL DBA的KPI考核指标有哪些
  10. Linux搭建Java部署环境