我正在使用twython来提取在Twitter上为#apple分享的图像。图像具有由twitter分配的唯一图像ID,但图像在图形上相同。如何检测重复图像?
对于本地图像,我得到了解决方案:
为每个图像计算哈希值,然后删除重复项。
import struct
import os
import hashlib
def jpeg(fh):
hash = hashlib.md5()
assert fh.read(2) == "\xff\xd8"
while True:
marker,length = struct.unpack(">2H", fh.read(4))
assert marker & 0xff00 == 0xff00
if marker == 0xFFDA: # Start of stream
hash.update(fh.read())
break
else:
fh.seek(length-2, os.SEEK_CUR)
print "Hash: %r" % hash.digest()
jpeg(file("two.jpg")) # Gives the hash of the image
然而,Twitter图像存储在外部服务器上,这种方法不起作用?假设我必须从twitter获得唯一的图像?
例如:twitter数据给出:
http://pbs.twimg.com/media/CKwk2doVEAE-Y9g.jpg http://pbs.twimg.com/media/CKwka9fUwAEmdLr.jpg
并且所有三个都是相同的图像。