用于检测图像库中图像的库?

时间:2015-04-17 11:50:18

标签: image image-processing computer-vision image-recognition

是否有用于检测图像库中图像的开源/免费库?我有大约120张图像,我有一个输入图像,这是来自银行的图像,但可能会略微裁剪/重新缩放(但不会以任何形式改变)。我正在寻找能够从银行返回与输入图像最相似的图像的东西。

2 个答案:

答案 0 :(得分:2)

我不知道你的图像的类型,但我认为它们是森林,客厅,山谷等场景。根据奥利瓦和托拉尔巴,场景可以用低维度特征来表示称为场景的要点。通过使用它,您可以通过使用非常快速的K-Nearest-Neighbor算法获得类似的场景。它们提供了一个很好的MATLAB代码,但我不知道你是否拥有MATLAB许可证。您可以查看下面的链接获取MATLAB代码和原始论文。

http://people.csail.mit.edu/torralba/code/spatialenvelope/

有一次,我使用了代码,这是我的结果。最大的图片是输入,较小的图片是最佳候选者。

Best candidates from daabase to an input image

我搜索了一下,找到了GIST的 C实现,这被称为Lear的GIST实现;但是,我没有使用该代码。链接如下。

http://lear.inrialpes.fr/software

我希望这适合你。快乐的编码!!

参考:

来自http://make3d.cs.cornell.edu/data.html

的图片

要点:http://people.csail.mit.edu/torralba/code/spatialenvelope/

答案 1 :(得分:0)

OpenCV是计算机视觉库,为C / C ++,Python和Java提供接口。但是没有简单的功能来完成你想要的东西。

如果您的图像是灰度或颜色,可能会有效的简单方法是直方图比较。在这里,您计算搜索数据库中图像的直方图,计算搜索图像的直方图,然后使用comparison methods之一比较分布。直方图箱的数量将决定准确性和性能。如果你有大量的图像,你可能想要使用更多的直方图箱来获得良好的准确性,但它会花费更多的时间和内存。

另一种方法是使用基于特征的技术,例如搜索和搜索图像的视觉词袋表示。在这里,您还可以使用直方图比较来比较这些表示。

对于交叉点比较,您必须规范化距离度量,以便比较这些值。在这种情况下,您可以将搜索到的图像的像素/可视单词的总距离除以。

此类任务经常提出的另一种技巧是perceptual hashing,但我没有任何使用它来评论其准确性/性能的经验。