如何使用php和GD库进行比较两张图片的最佳方法?
这是场景:
我有一张图片,想找出给定集合中与其最相似的图片。
最相似的图片实际上是同一张图片,不是像素完全匹配但确实是同一张图。
我在示例中用数字1夸大了两张图片的差异,以便更容易理解我的意思。
即使没有带来一致的结果,我的方法是使用imagecopyresampled函数将图像缩小到1px,并查看图像之间的RGB值有多接近。
从可能匹配的图像中的每个红、绿和蓝十进制等效值中扣除每个红、绿和蓝十进制等效值的总和给了我一个不相似的指数,即使最相似的RGB图片并不总是目标图片,但我可以使用它来选择一个可用的目标图片。
以下是将4张图片与目标图像进行比较时的输出示例, 在这种情况下,苹果公司的徽标匹配其中一张图片但不完全相同:
原始图片:
红色:222 绿色:226 蓝色:232
与以下进行比较:
http://a1.twimg.com/profile_images/571171388/logo-twitter_normal.png红色:183 绿色:212 蓝色:212,相似指数为56 红色:117 绿色:028 蓝色:028,相异指数为530 红色:218 绿色:221 蓝色:221,相异指数为13 匹配正确。可能无法比我已经得到的更好结果,我在这里浪费时间,但由于似乎有很多经验丰富的PHP程序员,所以我想你们可以指点我如何改进这个问题。
我愿意尝试其他的图像库,例如iMagick、Gmagick或Cairo,但我更喜欢避免使用PHP以外的其他语言。
提前致谢。