问题描述
如果 .tif
仅包含全零像素值,因此是黑色图像,我有一个工作代码将遍历文件夹,识别和删除。问题是我的文件夹中有 12,000 张图像,这个过程需要很长时间才能完成。我想知道是否有更快的方法可以做到这一点?
from PIL import Image
import os
directory = 'D:/images/'
for image in os.listdir(directory):
indiv = Image.open(directory + image)
pixel_values = list(indiv.getdata())
y = len(pixel_values)
list_yes = []
for RGBA in pixel_values:
if RGBA == (0,0):
Black_image = 'yes'
list_yes.append(Black_image)
x = len(list_yes)
if x == y:
os.remove(directory + image)
黑色 .tif 的输出:
(0,0)
(0,0)
....
Like 400,000 more rows of this
解决方法
这应该会快很多
directory = 'D:/images/'
for image in os.listdir(directory):
indiv = Image.open(directory + image)
if all(pixels == (0,0) for pixels in list(indiv.getdata())):
os.remove(directory + image)
我也不确定是否需要 list(...)
,我对 PIL 不太熟悉。如果它没有工作,删除它应该会导致另一个加速。