创建指纹数据库

时间:2012-03-13 10:17:11

标签: python image-processing search-engine information-retrieval feature-detection

我想知道如何创建指纹数据库。如果指纹存储为图像,如何比较数据库中的图像,或创建像TinEye这样的图像搜索引擎?

我知道这是一个很大的主题,但我只是在寻找一个起点。可以使用Python / Django库和MySQL来完成吗?

3 个答案:

答案 0 :(得分:2)

OpenCV附带了一个示例程序,可以满足您的需求。它被称为find_obj.py。在编辑器中将其拉出并更改:

surf = cv2.SURF(1000)

surf = cv2.SURF(100)

这应该在指纹扫描的负面找到许多“内部”兴趣点。

您可以使用许多变量,最终找到您要比较的图像种类的最佳配置。更改样本以允许您将单个图像与整个目录进行比较也非常简单。

我应该指出,这只对执法部门使用的数字化指纹扫描有效。

答案 1 :(得分:1)

作为一种非常简单的方法,您可以抓取所有图像并为每个图像计算哈希值。

稍后,当用户提交搜索图像时,您也会为此计算哈希值,并在数据库中查找相同的哈希值。

然而,这是一种非常简单的方法,只有在搜索精确的图像副本时才有效。理想情况下,每个图像都应转换为一些简化的特征集(以便对同一图像的不同版本 - 不同的格式,大小,噪声等具有容差)用于比较。例如,可能值得尝试将转换后的图像(包括已爬网和提交以进行搜索)转换为128x128的灰度级并计算其哈希值。

答案 2 :(得分:1)

Python Imaging Library可能是开始使用。

进行图像处理的最佳库

最常用于实时图像处理的库(您不需要实时,但快速不会出错)是OpenCV。它有Python绑定和内置feature detection algorithms。另请参阅this comparison

有关图像比较算法的概述,请查看this question