我想知道如何创建指纹数据库。如果指纹被存储为图像,那么如何比较数据库中的图像,或者创建像TinEye这样的图像搜索引擎
我知道这是一个很大的话题,但我只是在寻找一个起点。这可以使用Python/Django库和MySQL来完成吗?
发布于 2012-03-13 18:30:23
Python Imaging Library可能是开始使用图像处理的最好的库。
最常用于实时图像处理的库是OpenCV (您不需要实时,但使用fast不会出错)。它有Python绑定和内置的feature detection algorithms。另请参见this comparison。
有关图像比较算法的概述,请查看this question。
发布于 2012-03-14 00:07:37
OpenCV附带了一个样例程序,它可以实现您想要的功能。它被称为find_obj.py。在您的编辑器中拉出它并更改:
surf = cv2.SURF(1000)至
surf = cv2.SURF(100)这应该会在指纹扫描的底片中找到很多“内部”的兴趣点。
您可以尝试一些变量,并最终为您正在比较的图像类型找到最佳配置。修改示例以允许您将单个图像与整个目录进行比较也是相当简单的。
我应该指出,这只会对执法部门使用的那种数字化指纹扫描有效。
发布于 2012-03-13 18:24:49
作为一种非常简单的方法,您可以抓取所有图像并计算每个图像的散列。
稍后,当用户提交要搜索的图像时,您也会计算该图像的散列,并在数据库中查找相同的散列。
然而,这确实是一种过于简单的方法,只有在搜索到准确的图像副本时才会起作用。理想情况下,每个图像都应该转换为一些简化的特征集(以便对同一图像的不同版本-不同的格式、大小、噪声等有容忍度)。用于比较。例如,可以尝试将图像(包括爬行和提交以供搜索)转换为128x128大小的灰度并计算其哈希。
https://stackoverflow.com/questions/9682099
复制相似问题