在java中查找图像相似性的最佳方法

时间:2014-05-27 16:35:22

标签: java image

我的要求是找到找到两个图像相似性的最佳方法(最有可能是小图像,它是图像键盘的切片部分,具有数值)

基于Java的方法是可执行的(我的应用程序在java平台上运行) 1.找到图像相似性的最佳方法? 2.有哪些免费工具可以找到它?

2 个答案:

答案 0 :(得分:1)

没有找到类似图像的“最佳方法”。它高度依赖于您的数据。例如。如果你的图像是人的面孔,你会使用另一种方法,如建筑物或绘画。

开始使用:

如果你想找到相似的面孔,你可以采用Eigen-Faces方法:http://en.wikipedia.org/wiki/Eigenface。在这种情况下,您将使用一组图像进行训练,您可以测量这些训练图像与数据的距离(即相似性)。您可以找到类似的面孔,或者只识别包含面部内容的图片。

例如,如果您对类似颜色感兴趣,可以使用颜色直方图:http://en.wikipedia.org/wiki/Color_histogram。在这种情况下,您需要一个测量来测量直方图之间的距离。您可以创建直方图(灰度或不同颜色),然后测量这些直方图之间的距离。

如果你知道你的数据是什么样的,你应该告诉自己算法。上面提到的两个只是众多算法中的两个。然后,您应该搜索实现这些算法的工具和库。只要求“最好的一个”就不会得到一个可用的答案,它的范围很广。

您还会遇到图片大小,对象对齐和性能等问题。找到类似的图片很困难。

答案 1 :(得分:0)

有这样的东西叫做opencv。

这个框架工作使您能够为各种用途制作计算机视觉,并允许您编写自己的逻辑..

以下是使用eclipse的示例: http://docs.opencv.org/trunk/doc/tutorials/introduction/java_eclipse/java_eclipse.html

stackoverflow中有一个讨论此问题的线程 Checking images for similarity with OpenCV

希望这会有所帮助.. 非常好用

相关问题