【问题标题】:Comparing images and removing similar images per every row比较图像并删除每行的相似图像
【发布时间】:2020-07-07 13:35:17
【问题描述】:

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

【问题讨论】:

  • 您需要仔细考虑您所说的“相似”是什么意思。 100x100 像素黑色 JPEG 是否类似于 100x100 像素黑色 PNG?文件内容将完全不同。 8 位全红图像和 16 位全红图像怎么样?它们相似吗?文件将完全不同。一个 8 位 100x100 纯红色 PNG 和另一个具有相同内容但在 1 秒后保存的 PNG 呢?由于嵌入了创建时间,它们将具有不同的校验和/哈希值。
  • 我将仅使用 JPEG 并且类似地我的意思是如果我在一行中有两个图像,或者假设 id nuber 1 有两个图像显示相同的产品但像素大小不同......或者我有显示产品的图像假设瓶子 2 图像显示瓶子的正面和 3 图像背面我希望该行或 id 只有两个图像。我不知道在图像方面我可以使用一些相关性吗?
  • 我不会用像素黑JPG
  • 我找到了一个使用 imagehash 的简单解决方案

标签: python-3.x image machine-learning image-processing


【解决方案1】:

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

错误

【讨论】:

    猜你喜欢
    • 2011-08-09
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 2012-07-29
    • 2020-04-02
    • 1970-01-01
    相关资源
    最近更新 更多