比较2图像在PHP中

比较两张图片看是否是同一个文件很容易,把文件MD5扔了,但是用PHP GD来判断两张图片是否相同,甚至是合理的。 如果我们从哪里得到两者的区别,那全是白色的(id是白色还是黑色),那么现在我们就可以知道它们是同一张照片了吗?

另外注意:id喜欢知道是否有可能得到2张相同大小的图像来创build洋葱皮效果,1%的透明度为50%,另一种为50%。

ImageMagick通过PHP ImageMagick扩展提供了各种可用于此的工具。

http://www.php.net/manual/en/function.imagick-compareimages.php

最大的问题是该库的文档几乎是不存在的,所以会涉及到很多的反复试验。

$md5image1 = md5(file_get_contents($image1)); $md5image2 = md5(file_get_contents($image2)); if ($md5image1 == $md5image2) { } 

libpuzzle是一个PHP扩展,可以比较图像。

在这个Stackoverflow线程上有一个类似的问题,我开发了一些东西供我自己使用。 张贴在这里,以便它可以帮助别人。

它需要两个(或更多的图像),并为您提供有关检查它们之间差异的选项。 像使用分辨率和严格的选项。

我也写了一个更全面的博客post

PHP与GD库中的图像比较函数http://www.robert-lerner.com/imagecompare.php

不知道这是否容易,解决scheme退出,但可能你可能会从下面的图像检测的想法:

使用PHP进行人脸检测
图像裸露filter(类)

如果你只是比较两个文件,然后哈希数据,然后比较是完美的解决scheme。 如果您比较大量的文件,那么最好根据大小对它们进行sorting,然后仅使用相同的大小进行比较。