我对图像处理和图像匹配非常陌生,并且不太清楚。我需要做的是 a)拍摄照片 b)从中提取特征(SIFT,SURF更适合匹配) c)创建哈希(如MD5或SHA1) d)将其存储在数据库中,并搜索不同的图像(如果有相似的话)。
基本上(A Tineye)
我提到OpenCV / SURF How to generate a image hash / fingerprint / signature out of the descriptors?。我还检查了pHash并试图通过opencv simple_matcher.cpp
运行SIFT SURF阅读一些关于几何散列/局部敏感散列的内容,但不确定我是否朝着正确的方向前进。
如何根据从SIFT / SURF(OpenCV)中提取的功能创建哈希?如果有人能说出要遵循的简单步骤或者提出一些前进的建议,我将不胜感激。
答案 0 :(得分:3)
好的,有很多很好的方法可以匹配各种复杂程度的图像。我将提供一个建议,我认为这对你所描述的问题已经足够好了,并且实现起来非常简单(因为你说你对CV很超新:) :)。
相同的图像最有可能产生最高的分类分数。
我之所以建议使用这种更快速和散列方法的原因是因为你不太可能因为〜500这样的图像而出现性能问题,并且因为opencv中有一个很好的例子(bagofwords_classification.cpp) ,你可以一步一步地实现你想要的目标。