【发布时间】:2014-05-28 02:05:36
【问题描述】:
我的要求是找到找到两个图像相似度的最佳方法(最有可能是小图像,它是图像键盘的切片部分,具有数值)
基于 Java 的方法是可执行的(我的应用程序在 Java 平台上运行) 1. 寻找图像相似度的最佳方法? 2. 有什么免费工具可以找到吗?
【问题讨论】:
我的要求是找到找到两个图像相似度的最佳方法(最有可能是小图像,它是图像键盘的切片部分,具有数值)
基于 Java 的方法是可执行的(我的应用程序在 Java 平台上运行) 1. 寻找图像相似度的最佳方法? 2. 有什么免费工具可以找到吗?
【问题讨论】:
没有找到相似图像的“最佳方法”。这在很大程度上取决于您的数据。例如。如果您的图像是人的面孔,您将使用另一种方法,例如建筑物或绘画。
开始:
如果您想找到相似的面孔,您可以使用 Eigen-Faces 方法:http://en.wikipedia.org/wiki/Eigenface。在这种情况下,您将使用一组图像进行训练,并且您可以测量这些训练图像与您的数据的距离(即相似性)。您可以找到相似的面孔或仅识别包含面孔之类的图片。
例如,如果您对相似的颜色感兴趣,可以使用颜色直方图:http://en.wikipedia.org/wiki/Color_histogram。在这种情况下,您需要进行测量来测量直方图之间的距离。您将创建(灰度或不同颜色的)直方图,然后测量这些直方图之间的距离。
如果您知道自己的数据是什么样的,那么您应该了解一下算法。上面提到的两个只是众多算法中的两个。然后你应该搜索实现这些算法的工具和库。只问“最好的”不会得到一个有用的答案,它太宽泛了。
您还会遇到图片大小、对象对齐和性能等问题。找到相似的图片很困难。
【讨论】:
有一种东西叫opencv。
此框架使您能够为各种用途制作计算机视觉,并允许您编写自己的逻辑..
下面是使用 eclipse 的例子: http://docs.opencv.org/trunk/doc/tutorials/introduction/java_eclipse/java_eclipse.html
stackoverflow 中有一个线程讨论了这个问题 Checking images for similarity with OpenCV
希望这会有所帮助.. 非常容易使用
【讨论】: