OpenCV:指纹图像和数据库比较 [英] OpenCV: Fingerprint Image and Compare Against Database
问题描述
我有一个图像数据库。当我拍摄新照片时,我想将其与此数据库中的图片进行比较,并接收相似性分数(使用OpenCV)。这种方式我想检测,如果我有一个图像,这是
I have a database of images. When I take a new picture, I want to compare it against the images in this database and receive a similarity score (using OpenCV). This way I want to detect, if I have an image, which is very similar to the fresh picture.
可以创建我的数据库图像的指纹/哈希,并匹配新的数据库图像吗?
Is it possible to create a fingerprint/hash of my database images and match new ones against it?
我正在搜索合并代码段或技术演示,而不是商业解决方案。
I'm searching for a alogrithm code snippet or technical demo and not for a commercial solution.
最好,
Stefan
推荐答案
Pual R已经评论过,这个指纹/哈希的特征向量或一组特征描述符。但是在计算机视觉中使用的大多数特征向量对于针对数据库的搜索通常太昂贵。所以这个任务需要一个特殊的特征描述符,因为像SURF和SIFT这样的描述符将花费太多的时间用于搜索,即使有各种优化。
As Pual R has commented, this "fingerprint/hash" is usually a set of feature vectors or a set of feature descriptors. But most of feature vectors used in computer vision are usually too computationally expensive for searching against a database. So this task need a special kind of feature descriptors because such descriptors as SURF and SIFT will take too much time for searching even with various optimizations.
OpenCV的唯一的东西
The only thing that OpenCV has for your task (object categorization) is implementation of Bag of visual Words (BOW).
它可以计算特殊类型的图像特征和训练视觉词汇词汇。接下来,您可以使用此词汇表在数据库中查找相似的图片,并计算相似性分数。
It can compute special kind of image features and train visual words vocabulary. Next you can use this vocabulary to find similar images in your database and compute similarity score.
这里是 OpenCV文档的一袋话。另外OpenCV有一个名为 bagofwords_classification.cpp
的示例。这真的很大,但可能会有帮助。
Here is OpenCV documentation for bag of words. Also OpenCV has a sample named bagofwords_classification.cpp
. It is really big but might be helpful.
这篇关于OpenCV:指纹图像和数据库比较的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!