在庞大的集合中查找无效图像

2024-05-15 17:21:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一种方法来检测一个巨大的收集(数以万计的图像)损坏的图像文件。我现在使用的方法是这样使用PIL:

try:
    im = PIL.Image.open(f)
    # image valid
except:
    # image invalid
    ...

但那太慢了。检查所有文件要花上好几个小时,好几天。你知道吗

有没有一种更快的方法通过Python查找文件夹中的所有无效图像?你知道吗

不幸的是,imghdr是不够的,因为它不能检测到被截断的图像。你知道吗


Tags: 文件方法图像imagepil图像文件open小时
1条回答
网友
1楼 · 发布于 2024-05-15 17:21:01

通过将问题中的代码包装到函数中,可以加快速度。然后列出所有要测试的文件名,并使用Pool.map模块中的multiprocessing将函数并行应用于所有文件,使用尽可能多的内核。你知道吗

如果你的机器有N个核,这可以给你一个N倍的加速。实际上,由于multiprocessing开销和可能的I/O带宽限制,它将更少。你知道吗

相关问题 更多 >