对不同分辨率的设备间同步的图像进行重复数据删除

对不同分辨率的设备间同步的图像进行重复数据删除

我目前有几个脚本和 Android 应用程序,它们一起为一系列成员设备(智能手机、个人电脑、数码相机)执行以下操作:

  • 所有成员设备拍摄的所有照片都会自动与 Dropbox 同步
    • 对于智能手机,这是通过Dropsync应用程序
    • 对于数码相机,只要相机通过 USB 连接,就会运行脚本
  • 每周一次,通过这种方式同步的所有成员的所有图片都会移动到 Dropbox 上的不同目录中,以便长期存储。
  • Dropbox/PicsArchive/移动后,将进行重复数据删除 —扫描此存档目录(我们称之为),并检测并删除所有重复项。目前,我使用fdupes来检测重复项,但据我所知,这只能检测精确的重复,即具有相同校验和的文件。

问题

然而所有成员之间都存在着非平凡的联系。

例如,当将特定类型的数码相机连接到运行这些脚本的 PC 的 USB 时,其存储卡上的照片将移动到 Dropbox,并生成缩小的副本,然后将其发送到智能手机成员的子集(使用出色的 Autoremote 应用程序)。这些调整大小的副本很容易出现在智能手机上也由 Dropsync 同步的位置。因此,相机的照片以及这些调整大小的副本最终都会同步到Dropbox/PicsArchive/

另一个例子是使用智能手机的相机(高分辨率)拍照并将其分享给 WhatsApp 联系人——通常,WhatsApp 会降低该图像的分辨率。但我希望两个位置都同步(相机相关的 WhatsApp 媒体目录),这意味着 Dropsync 会将两张图片(一张高分辨率,另一张低分辨率)同步到 dropbox,并且两张图片最终都会保存在Dropbox/PicsArchive/.

显然,我希望只保留最高分辨率/质量的图像。也许这里需要的是更好的备份策略,而不是更通用的工具来清理可以避免的混乱。

以下是当前设置的几张粗略图片。这是原始用例:

然后我实现了链接,以刺激用户使用数码相机拍摄更高质量的图像,同时仍然能够轻松地将这些照片发送给 WhatsApp 用户:

还要注意路径手机相机 → WhatsApp在手机上创建副本(手机相机目录和 WhatsApp 媒体目录都同步,这当然是允许图片的必要条件不是意味着 WhatsApp 也可以同步。

那么,我怎样才能删除所有这些图片的重复数据呢?

答案1

图像魔术师应该能够生成一些哈希值来比较图像,但它更像是一个工具包,您必须花一些时间学习如何使用和创建自己的自定义答案,该答案完全符合您的要求,而不是“这是您粘贴的答案”。但即使是 Google 的“相似图像”也远非完美,真正检测重复的最佳方法是查看它们,无论是创建的“差异”图像,还是实际图像本身。

ImageMagick® 是一款用于创建、编辑、合成或转换位图图像的软件套件。

ImageMagick 是一款免费软件,以可立即运行的二进制发行版或源代码形式提供,您可以在开放和专有应用程序中使用、复制、修改和分发。它根据 Apache 2.0 许可证分发,经 OSI 批准并由 OSSCC 推荐使用。

当前版本是 ImageMagick 6.9.0-5,可从以下网址获取http://www.imagemagick.org/download。它可在 Linux、Windows、Mac Os X、iOS、Android OS 和其他系统上运行。

ImageMagick 示例 - 图像比较- 大量的信息和技术,但很多都涉及创建“差异”图像来查看。

此剪辑应能至少部分解决具有不同元数据的相同图像的“问题”:

您可以让 IM 为每个图像生成一个“签名”...

identify -quiet -format "%#" images...

它会生成一个哈希字符串,类似于 MD5 和 SHA256。但与后者不同的是,它使用实际的图像数据来生成签名,而不是图像元数据。

因此,如果您有同一张图片的两个副本,但具有不同的创建/修改时间戳,则您应该获得两个文件的相同签名,而即使图像本身相同,MD5 和 SHA256 也会产生两个签名。

警告:读取和写入 JPEG 图像将生成不同的图像数据,从而产生不同的签名。这仅仅是由于 JPEG 图像格式使用的有损压缩。

然后将哈希值与您选择的工具进行比较,例如您可能熟悉的 Linux if [[ "$string1" == "$string2" ]]......


其他一些可能的选择:

但是,也许更好的备份策略是只备份“主”高分辨率图像,忽略创建的缩略图和非主文件夹,这样会更快、更容易。

答案2

我过去使用过的三种工具效果很好。它们都适用于 Windows。没有一个是开源的,也没有适用于 Linux 的。

  • Picasa:你只需加载图片,然后进入实验功能即可查找重复项

  • 视觉图片:此工具在最严格的设置下会扫描完全相同的图片。您可以“放松”设置以查找相似的图片。例如,您可以匹配一张图片中皱眉,而另一张图片中微笑的图片。

  • 相似:非常适合音频,但也有图像匹配功能。它还可以检测方向不正确的图像,但效果并不好,只能留下最高质量的图像。

相关内容