我有一个工作代码,将迭代一个文件夹,标识和删除,如果一个.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, 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)
(0, 0, 0, 0)
(0, 0, 0, 0)
(0, 0, 0, 0)
(0, 0, 0, 0)
(0, 0, 0, 0)
(0, 0, 0, 0)
(0, 0, 0, 0)
(0, 0, 0, 0)
(0, 0, 0, 0)
(0, 0, 0, 0)
(0, 0, 0, 0)
(0, 0, 0, 0)
....
Like 400,000 more rows of this发布于 2021-02-05 00:28:14
这应该会更快
directory = 'D:/images/'
for image in os.listdir(directory):
indiv = Image.open(directory + image)
if all(pixels == (0, 0, 0, 0) for pixels in list(indiv.getdata())):
os.remove(directory + image)我也不确定list(...)是否需要,我对PIL也不太熟悉。如果它不起作用,移除它就会导致另一种加速。
https://stackoverflow.com/questions/66055818
复制相似问题