Python 3.x 比较图像并删除每行的相似图像

Python 3.x 比较图像并删除每行的相似图像,python-3.x,image,machine-learning,image-processing,Python 3.x,Image,Machine Learning,Image Processing,我需要比较400000张图片,并删除类似的图片。我将有大约100000个id,在一个文件中包含多个不同大小的图像。我想创建两列id和图像,并为每个id删除类似的图像。如果一个id有10个图像,但只有两个不同,我希望该id只有两个图像。我正在寻找在python中实现这一点的简单方法 import PIL from PIL import Image import imagehash hash1 = imagehash.phash(Image.open('image_a.jpg')) print(

我需要比较400000张图片,并删除类似的图片。我将有大约100000个id,在一个文件中包含多个不同大小的图像。我想创建两列id和图像,并为每个id删除类似的图像。如果一个id有10个图像,但只有两个不同,我希望该id只有两个图像。我正在寻找在python中实现这一点的简单方法


import PIL
from PIL import Image
import imagehash

hash1 = imagehash.phash(Image.open('image_a.jpg'))
print(hash1)

hash2 = imagehash.phash(Image.open('image_b.jpg'))
print(hash2)


hash1 == hash2


输出

e5969a1b256e8cc9

ebd49312f02e862f


False

你需要仔细思考你所说的“相似”是什么意思。100x100像素黑色JPEG与100x100像素黑色PNG相似吗?文件内容将完全不同。8位全红色图像和16位全红色图像怎么样?它们相似吗?这些文件将完全不同。一个8位100x100纯红PNG和另一个内容相同但保存1秒后的PNG怎么样?它们将有不同的校验和/散列,因为创建时间是嵌入的。我将只使用JPEG,我的意思是,如果一行中有两个图像,或者说id编号1有两个图像显示相同的产品,但像素大小不同…或者我有图像显示产品,或者说瓶子2图像显示产品的正面,3图像显示产品的背面瓶子我只希望该行或id有两个图像。我不知道当涉及到图像时,我可以使用一些相关性吗?我不会使用像素黑JPGI找到一个简单的解决方案与imagehash