PIL和skimage花费的时间太长,无法加载56000 URL

时间:2018-07-16 12:21:00

标签: python-3.x python-imaging-library scikit-image

我的数据框21000有56000行,其中图像缩略图URL作为其列值之一。我正在评估这些图像中的每个图像是否对比度很低。我让下面的代码运行9个小时!但仍然没有结果,内核仍然很忙。你能让我知道怎么了吗?

P.S。我用数据框的一部分(100行)尝试了该代码,成功运行了3秒。按该标准确定,56000行应该花费30分钟。临时文件或其他内容是否发生内存溢出? 也许我需要在这里引入一个try块来捕获任何异常(即使没有错误显示)?我不确定该怎么做。

data3

1 个答案:

答案 0 :(得分:0)

以下解决方案避免将临时映像保存到磁盘,从而减少了开销:

def f(row):
    url = row['ThumbnailURL']
    img = Image.open(BytesIO(requests.get(url).content))
    return is_low_contrast(img, fraction_threshold=0.4, lower_percentile=1, 
                           upper_percentile=99, method='linear')

要尝试使用此代码,您需要包括以下导入:

import requests
from io import BytesIO
from PIL import Image
from skimage.exposure import is_low_contrast