我正在尝试使用imagehash库(https://pypi.org/project/ImageHash/)来识别视觉上相同的文件。我正在测试 3 个文件。第二个只是第一个的降低分辨率。文件 3 非常不同。图片如下。
我编写了一个简单的 python 程序来使用 imagehash 来区分图像:
from PIL import Image
import imagehash
import os
import sys
def gethash(relPath):
script_dir = os.path.dirname(__file__) #<-- absolute dir the script is in
path = os.path.join(script_dir, relPath)
return imagehash.phash(Image.open(path))
print(gethash(sys.argv[1]) - gethash(sys.argv[2]))
当我从命令行运行它时,图像 1 和 2 与 1 到 3 具有相同的差异。我在使用 imagehash 时做错了什么?
PS C:\pickle\lambda\hash> py .\testih.py .\img\1.jpg .\img\2.jpg
36
PS C:\pickle\lambda\hash> py .\testih.py .\img\1.jpg .\img\3.jpg
36
PS C:\pickle\lambda\hash> py .\testih.py .\img\2.jpg .\img\3.jpg
30
我试过 phash、average_hash、dhash,结果都差不多。感谢您的任何建议!
1.jpg https://picklepics.app/misc/1.jpg