将两个图像与 php 和Graphic Draw (GD) Library进行比较的最佳方法是什么?
这是场景:
我有一张图片,我想找出给定集合中的哪张图片与它最相似。最相似的图像实际上是同一幅图像,不是像素完美匹配而是同一幅图像。为了便于理解我的意思,我用示例中的第一名戏剧化了两张图片之间的差异。
尽管它没有带来一致的结果,但我的方法是使用imagecopyresampled函数将图像减小到 1px,并查看图像之间的 RGB 值有多接近。
从可能匹配的红色、绿色和蓝色十进制等效值中减去每个红色、绿色和蓝色十进制等效值的值的总和给了我一个相异指数,即使它没有按预期工作,因为并不总是大多数 RGB 相似图像是目标图像,我可以用来从可用目标中选择图像。
这是将 4 个图像与目标图像(在本例中为苹果徽标)进行比较时的输出示例,它与其中一个图像匹配但不完全相同:
原图:
对比:
http://a1.twimg.com/profile_images/571171388/logo-twitter_normal.png 红色:183 绿色:212 蓝色:212,相似指数为 56
红色:117 绿色:028 蓝色:028 和相异指数 530
红色:218 绿色:221 蓝色:221 和相异指数13 匹配正确。
红色:061 绿色:063 蓝色:063 和相异指数 491
甚至可能比我已经得到的结果更好,而且我在这里浪费时间,但由于似乎有很多经验丰富的 php 程序员,我想你可以为我指出如何改进的正确方向这。
我对 php 的iMagick、Gmagick或Cairo等其他图像库持开放态度,但我更愿意避免使用 php 以外的其他语言。
提前致谢。