当前位置: 首页 > article >正文

如何解决部分图片读取转化异常的问题

问题描述

接触到一个数据集,有个别图片在读取转化的时候出现了异常,由于图片之间有关联,导致后续图片无法时候。

解决方法

将异常的图片转为白色或者黑色的图片,保证其他的图片可以正常使用!代码如下:

import glob
from PIL import Image

imglist = glob.glob('Wildtrack/Image_subsets/*/*.png')
image_bug=[]
for imagepath in imglist:
    try:
        image_pil = Image.open(imagepath).convert('RGB')
    except Exception as ex:
        image_bug.append(imagepath)

for image_path in image_bug:
    print(image_path)
    # shutil.rmtree(image_path)
    img = Image.new('RGB', (1920, 1080), (255, 255, 255))

    # 保存图片
    img.save(image_path)

这段Python代码是用于处理特定目录下的PNG图像文件的。它使用Pillow库(PIL)和glob库来完成任务。下面是代码的逐步解释:

  1. import glob: 导入glob模块,这个模块提供了一个函数来处理通配符匹配。
  2. from PIL import Image: 从PIL(Python Imaging Library,也称为Pillow)导入Image模块,这个模块提供了对图像的各种操作。
  3. imglist = glob.glob('Wildtrack/Image_subsets/*/*.png'): 使用glob的glob函数,匹配’Wildtrack/Image_subsets’目录下所有子目录中的所有PNG图像文件,并将这些文件的路径存储在imglist列表中。
  4. image_bug=[]: 创建一个名为image_bug的空列表,用于存储出现错误的图像路径。
  5. for imagepath in imglist:: 对imglist列表中的每个图像路径进行遍历。
  6. try:: 尝试以下操作:
    • image_pil = Image.open(imagepath).convert('RGB'): 使用PIL的Image模块打开图像文件,并将其转换为RGB模式。
  7. except Exception as ex:: 如果在尝试过程中出现任何异常,则执行以下操作:
    • image_bug.append(imagepath): 将出现问题的图像路径添加到image_bug列表中。
  8. for image_path in image_bug:: 对image_bug列表中的每个图像路径进行遍历。
  9. print(image_path): 打印出存在问题的图像路径。
  10. img = Image.new('RGB', (1920, 1080), (255, 255, 255)): 使用PIL的Image模块创建一个新的RGB图像,尺寸为1920x1080,背景色为白色(255,255,255)。
  11. img.save(image_path): 将新创建的空白图像保存到image_path指定的路径。

需要注意的是,这段代码会在存在问题的图像路径处创建一个空白图像,而不仅仅是打印出问题。如果你希望避免覆盖原始文件,你需要对代码进行相应的修改。


http://www.kler.cn/a/228457.html

相关文章:

  • 网络通信---MCU移植LWIP
  • CSS语言的数据类型
  • 2024年美赛C题评委文章及O奖论文解读 | AI工具如何影响数学建模?从评委和O奖论文出发-O奖论文做对了什么?
  • Excel 技巧17 - 如何计算倒计时,并添加该倒计时的数据条(★)
  • Mac 使用 GVM 管理多版本 Go 环境
  • 显卡(Graphics Processing Unit,GPU)架构详细解读
  • Python中的HTTP代理与网络安全
  • RK3568平台 设备模型基本框架-kobject 和kset
  • 知识图谱概论
  • [python] 过年燃放烟花
  • Redis渗透SSRF的利用
  • 使用sql创建数据库以及常用的sql简介
  • Maven提示Failure to find com.oracle:ojdbc14:jar:10.2.0.4.0
  • VScode+PlatformIO 物联网Iot开发平台环境搭建
  • 靶机实战bwapp亲测xxe漏洞攻击及自动化XXE注射工具分析利用
  • 网易和腾讯面试题精选---缓存面试问题和答案
  • MTK8365安卓核心板_联发科MT8365(Genio 350)核心板规格参数
  • XML:可扩展标记语言
  • jQuery---获取元素的个数
  • 跟着cherno手搓游戏引擎【21】shaderLibrary(shader管理类)
  • Python信息安全库之fsociety使用详解
  • LabVIEW与EtherCAT实现风洞安全联锁及状态监测
  • HTML+CSS:导航栏组件
  • 深入理解Istio服务网格(一)数据平面Envoy
  • IDEA新建文件夹后右击不能创建class类排错方法
  • 操作系统-进程互斥的软件实现方法(单标志法 双标志先检查法 双标志后检查法 Peterson算法)