蟒蛇:操纵图像在线安装下载

时间:2018-10-10 16:09:47

标签: python web image-processing web-crawler image-manipulation

我正在运行此代码以比较属于两个不同社交网络的两个个人资料图片的相似性,首先从两个网站下载图片,然后为每个用户提供两个变量的本地图片路径,我想知道是否有其他选择可以让我在线操作这些图像而不是下载它们,即:提供代码图像的URL而不是本地路径(我不想在本地计算机上下载图像,因为它将花费处理数以百万计的容器时空间太大了

from PIL import Image
import imagehash
hash0 = imagehash.average_hash(Image.open('quora_photo.jpg')) 
hash1 = imagehash.average_hash(Image.open('twitter_photo.jpeg')) 
cutoff = 5

if hash0 - hash1 < cutoff:
    print('images are similar')
else:
    print('images are not similar')

1 个答案:

答案 0 :(得分:1)

每当您在浏览器中看到图像时,您的机器就已经下载了该图像。不下载图像就无法操作图像。

看看tempfile模块,您可以创建临时文件以确保将来将其删除。或者按照@ArnavBorborah所述操作后删除文件

编辑:

看看这种方法urllib.request.urlretrieve

您可以改写他们的示例:

import urllib.request
local_filename, headers = urllib.request.urlretrieve(<image_url>)
with open(local_filename) as image:
    #do stuff
  

第二个参数(如果存在)指定要复制到的文件位置(如果不存在,该位置将是具有生成名称的临时文件)。

如果不指定filename参数,则urllib将创建一个临时文件