使用python的PIL / Pillow verify()检测到图像(png,jpg或jpeg)已损坏

时间:2019-08-27 12:05:15

标签: python image python-imaging-library

我正在尝试从大型图像数据集中检测损坏的图像。我正在使用Pillow程序包和verify()。 我只是想检测图像查看器或浏览器中损坏或无法打开的图像,因为它们是“坏苍蝇”,所以我的所有图像始终被检测为“坏”。

  • 我在git问题评论中读到,枕头只能检测png文件,即使这样,我所有的png图像也都被检测为不良。
  • 我还使用在线随机下载的图片测试了代码,并将其全部检测为“错误文件”
  • 注意:我正在使用Notebook ++进行编码(应该没问题,对吧?)
from os import listdir
from PIL import Image

for imageFolder in listdir('./batch1'):
    try:
        img = Image.open('./batch1'+imageFolder)
        img.verify()     # to veify if its an img
        img.close()     #to close img and free memory space
    except (IOError, SyntaxError) as e:
        print('Bad file:', imageFolder)

我做错什么了吗?

是否有其他方法可以达到我检测损坏图像的目的,而无需手动删除每个损坏的图像?

1 个答案:

答案 0 :(得分:0)

您需要在路径后添加/。否则,您的完整路径似乎像.'batch1your_img.png

from os import listdir
from PIL import Image

for imageFolder in listdir('./batch1'):
    try:
        img = Image.open('./batch1/'+imageFolder)
        img.verify()     # to veify if its an img
        img.close()     #to close img and free memory space
    except (IOError, SyntaxError) as e:
        print('Bad file:', imageFolder)

还要确保您的batch1目录仅包含图像,否则会出现另一个错误。