查找Flickr,Facebook,Instagram和iPhoto中缺少的照片

时间:2012-09-29 20:27:50

标签: facebook image flickr photos iphoto

我有近6年的照片分布在以下服务中:Flickr,Facebook,Instagram并存储在iPhoto中。

以编程方式确定每项服务中缺少哪些照片的最佳方法是什么?

我有一些想法:

  • 使用图像缩略图的MD5?
  • 比较日期/时间时间戳?

我正在寻找一种方法来生成一个服务但不存在于另一个服务上的URL /文件名列表。

我对于解决方案使用的语言并不挑剔,这是在OS X上运行的。

3 个答案:

答案 0 :(得分:4)

使用图像缩略图的MD5 ..不一定有效,因为不同的服务以不同方式裁剪图像。它们也会以不同方式压缩图像,因此您无法使用较大样本的md5运行。

不幸的是,像facebook这样的服务也会删除所有的EXIF数据..

以下是一种可能的解决方案:

我敢打赌你可以将图像分成2x2片并获得每个网格单元的平均颜色。每张图片有四个分数。要判断相似性,您只需要对图像之间的差异进行求和。

这基本上只是对图像的RGB平均值进行4次。这样做4次有助于解决轮换问题。

对于更简单,更快速和更强大的分析,我还建议使用TinEye API。

如果您想自己编写相似度计算算法,请查看以下内容:

Image fingerprint to compare similarity of many images

答案 1 :(得分:1)

我会假设你已经知道如何通过每个服务的各种API获取照片,而问题的主要部分是比较照片。请查看以下有关SO的答案:

如果你不介意为你付费的网络服务,你可以试试Match Engine from Tineye

答案 2 :(得分:1)

我认为维护照片的本地集中数据库应该是您工作的起点。因此,如果您还没有这样的数据库(或者它不是最新的),您应该继续并从所有帐户下载每条信息。

这项任务不应该太难。有几种官方/非官方的方法和工具可以从这些社交网络下载整个帐户。

  1. Facebook会直接为您提供convenient zipfile所有图片,墙贴等信息,只需转到account settings,然后选择download a copy您的数据。
  2. Flickr有一个名为Bulkr的好工具可以下载你的所有照片。
  3. Instagram似乎没有提供完成此任务的官方工具,但您可以选择Instagram DownloaderInstaport之间。
  4. iPhoto应该已经同步。
  5. 既然您的PC上有任何和所有照片,您必须弄清楚哪些是相同的,相似的等等。我认为this question应该为这个问题提供解决方案。

    就个人而言,我投票赞成this method,希望pHash可以在OS X下编译。如果 pHash 编译并运行,您可以首先通过MD5SHA1或其他任何内容来识别完全匹配。如果没有这样的匹配,则可以运行 pHash 以查看两个图像的接近程度

    我可以(给予足够的时间)编写Linux下bash内的所有内容。我想这也可以在Mac OS X下工作,但可能你可以在Cocoa中实现相同的结果甚至更少的编码。

    当您发现给定服务中缺少哪些照片时,您最终可以将它们推送到该服务。但我想这里开始另一个问题:)