OpenCV / SURF 如何从描述符中生成图像哈希/指纹/签名?

2024-02-14

这里有一些主题对于如何查找相似图片非常有帮助。

我想做的是获取图片的指纹,并在数码相机拍摄的不同照片上找到相同的图片。 SURF 算法似乎是独立于缩放、角度和其他扭曲的最佳方法。

我使用 OpenCV 和 SURF 算法来提取样本图像上的特征。现在我想知道如何将所有这些特征数据(位置、拉普拉斯、大小、方向、粗麻布)转换为指纹或哈希。

该指纹将存储在数据库中,搜索查询必须能够将该指纹与具有几乎相同特征的照片指纹进行比较。

Update:

似乎没有办法将所有描述符向量转换为简单的散列。那么将图像描述符存储到数据库中以便快速查询的最佳方法是什么?

词汇树是一个选择吗?

我将非常感谢任何帮助。


您提到的特征数据(位置、拉普拉斯算子、大小、方向、粗麻布)不足以满足您的目的(如果您想进行匹配,这些实际上是描述符中不太相关的部分)。您要查看的数据是“描述符”(第四个参数):

void cvExtractSURF(const CvArr* 图像、const CvArr* 掩码、CvSeq** 关键点、CvSeq** 描述符、CvMemStorage* 存储、CvSURFParams 参数) http://opencv.willowgarage.com/documentation/feature_detection.html#extractsurf

这些是 128 或 64 个(取决于参数)向量,其中包含特定特征的“指纹”(每个图像将包含可变数量的此类向量)。 如果您获得最新版本的 Opencv,他们有一个名为 find_obj.cpp 的示例,其中向您展示了如何使用它进行匹配

update:

你可能会发现this https://stackoverflow.com/questions/2074956/logo-recognition-in-images讨论有帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCV / SURF 如何从描述符中生成图像哈希/指纹/签名? 的相关文章

随机推荐