找到java中两个图像之间的感知相似度

soh*_*z92 3 java algorithm image-processing

我正在寻找一种算法,可以找到两个图像之间的感知相似度,实际上我想将一张图片输入系统,然后搜索整个包含大量图片的数据库,然后检索与源图像有更多感知相似性的图像,有什么身体可以帮帮我吗?

我的意思是我想找到类似的照片.我听说一些算法可以根据源图片的形状,颜色等(逐个像素)找到相似的图片.我想拥有我输入源图像的系统,系统根据形状,颜色,大小等感知特征检索相似的图像.

谢谢

Mau*_*its 6

在尝试找到可捕获的可测量实体之前,您需要仔细定义"感知上类似"对您意味着什么.想象一幅草地的图片在与马的蓝天下.您的应用程序应该检索所有马图片?或者所有带绿草和蓝天的照片?在后一种情况下,上述颜色直方图是一个良好的开端.或者你可以看看高斯混合模型(GMM),它们在检索中使用得相当多.这段代码可能是一个起点和本文使用高斯混合矢量量化生成的颜色直方图进行图像检索

更复杂的是所谓的"词袋"或"视觉词"方法.它越来越多地用于图像分类和识别.该算法通常从检测图像中的稳健点开始,这意味着这些点将在某些图像失真中存活.示例流行的算法是SIFT和SURF.使用描述符捕获这些找到的点周围的区域,该描述符例如可以是智能直方图.

在最简单的形式中,可以从所有图像中收集来自所有描述符的所有数据并将它们聚类,例如使用k-means.然后,每个原始图像都具有对许多聚类有贡献的描述符.这些聚类的质心,即视觉词,可以用作图像的新描述符.VLfeat网站包含这种方法的一个很好的演示,对caltech 101数据集进行分类.同样值得注意的是Caltech本身的结果和软件.