您的位置:首页 > 游戏 > 游戏 > 动易内容管理系统_网站建设费用资本化_百度竞价点击神器下载安装_新闻平台发布

动易内容管理系统_网站建设费用资本化_百度竞价点击神器下载安装_新闻平台发布

2024/11/17 18:20:20 来源:https://blog.csdn.net/m0_74896766/article/details/142733670  浏览:    关键词:动易内容管理系统_网站建设费用资本化_百度竞价点击神器下载安装_新闻平台发布
动易内容管理系统_网站建设费用资本化_百度竞价点击神器下载安装_新闻平台发布

文章目录

  • 指纹识别
    • 1. 计算指纹间匹配点的个数
    • 2. 获取指纹编号
    • 3. 获取对应姓名
    • 4. 代码实现
  • 总结

指纹识别

假设,现在我们有一个小的指纹库,此时,有一个指纹图片需要我们识别是不是指纹库中某一个人的。如果是,是谁的呢?

本篇,我们就来完成这个小项目,通过指纹图片,找出是库中哪个人的。

  • 已有指纹库

在这里插入图片描述

  • 对应人名
nameID = {0:'张三',1:'李四',2:'王五',3:'赵六',4:'朱老七',5:'钱八',6:'铁栓',7:'铁柱',8:'金川',9:'银川',9999:"无此人"}
  • 源图像

在这里插入图片描述

1. 计算指纹间匹配点的个数

首先,如果要对指纹进行匹配的话,我们需要计算两个指纹图片的特征匹配点个数,特征相似度越高(特征匹配点数量多),两个指纹为同一个人的概率越大。

"""-----计算两个指纹间匹配点的个数-----"""
def getNum(src,model):img1 = cv2.imread(src)img2 = cv2.imread(model)# 创建SIFT特征提取器sift = cv2.SIFT_create() # orb_create()# 检测关键点和计算描述符(特征向量) 源图像kp1,des1 = sift.detectAndCompute(img1,None)# 检测关键点和计算描述符  模板图像kp2, des2 = sift.detectAndCompute(img2, None)# 创建FLANN匹配器flann = cv2.FlannBasedMatcher()# 使用K近邻匹配(des1中的每个描述符与des2中的最近两个描述符进行匹配)matches = flann.knnMatch(des1,des2,k=2)ok = []for m,n in matches:# 根据Lowe's比率测试,选择最佳匹配if m.distance < 0.8 * n.distance:ok.append(m)# 统计通过筛选的匹配数量num = len(ok)return num

2. 获取指纹编号

对于我们需要查找的指纹对象,我们自然是在指纹库中匹配到之后,获取它的信息,得到它的编号,从而得到它的信息。

"""-----获取指纹编号-----"""
def getID(src,database):max = 0for file in os.listdir(database):model = os.path.join(database,file)num = getNum(src,model)print("文件名:",file,"距离:",num)if num > max:max = numname = fileID = name[0]if max < 100: # src图片不一定是库里的指纹ID = 9999return ID

通过循环遍历指纹库中的每一张图片,计算每张图片与源图像的特征点数量,取出数量最多的图片,确定它是匹配成功的对象(当然最多的数量至少要超过一百个,否则没有)。

3. 获取对应姓名

def getName(ID):nameID = {0:'张三',1:'李四',2:'王五',3:'赵六',4:'朱老七',5:'钱八',6:'铁栓',7:'铁柱',8:'金川',9:'银川',9999:"无此人"}name = nameID.get(int(ID))return name

4. 代码实现

if __name__ == '__main__':src = 'src.bmp'database = "database"ID = getID(src,database)name = getName(ID)print("识别结果为:",name)
-------------------
识别结果为: 铁柱

总结

本篇介绍了,如何将源图像指纹同指纹库中的指纹进行匹配,并得到的对应指纹的信息。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com