高分寻求指纹算法???!!!

longchengdong 2000-07-13 03:09:00
加精
各位大虾,谁有指纹提取和比对的算法,请告诉我,分不够我再加!!! 急急急急急急急急急急急急急急急急!!!!
...全文
408 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gqxs 2001-06-12
  • 打赏
  • 举报
回复
我也想要
gqxs@163.com
longchengdong 2000-07-17
  • 打赏
  • 举报
回复
我的E_Mail地址:longchengdong@163.net
longchengdong 2000-07-17
  • 打赏
  • 举报
回复
我的
longchengdong 2000-07-17
  • 打赏
  • 举报
回复
YourSoft:

你说的算法对我启发很大,能否再详细地谈谈,或者推荐一些参考书给我看看,谢谢!!!

给我发E_Mail吧!
yoursoft 2000-07-15
  • 打赏
  • 举报
回复
再说明以下,我写的算法是有局限性的.但步骤是行得通的.
yoursoft 2000-07-15
  • 打赏
  • 举报
回复
仅提供一种方法作为参考:
1.图形二值化同时去除杂点,注意二值化的比较值确定.凸出部分为1,凹下部分为0.生成0和1的点矩阵D[][](存储点矩阵的方式有很多,可以选择对算法有帮助的结构存储)
//假设点矩阵大小512*512;
Byte d[512][512];
2.作一个瘦身处理,即将指纹线宽度变成单线.简单算法是:
//逐行扫描,
Byte newD[512][512]=0;//瘦身处理结果数组,初始为0;
int startX,startY;
bool findDot=false;
for(int i=0;i<512;i++)
for(int j=0;j<512;j++)
{
if(d[i][j]==1)
{
if(findDot)
{//表示找到线与此行相交的终止点
//只取起始点到终止点的中点
newD[(i+startX)/2][(j+startY)/2]=1;
}
else
{//表示找到线与此行相交的起始点
startX=i;startY=j;
}
}
}
3.提取轮廓,获取矢量化所需数据.简单算法:(不是一个快的好的算法,仅作思路提示)
a)创建数组,保留一条指纹的顺序点数据,逐行找到第一个为1的起始点开始矢量化.保留该点坐标startX[],startY[];其下标是初始值=0,每次执行a)一次加1.
b)依次按8个方向搜索下一个连接点
1 2 3
\ | /
4- 0 -5
/ | 6 7 8
c)记录下来,(依次放到一个数组中),将该点置为0,
d)如果此点等于startX[],startY[]任何一对点坐标数据,将此指纹线数组连接到找到的startX,startY对应的数组前.跳到e)
d)重复b)c)步骤,知道找不到下一个连接点为止跳到e)
e)执行a),直到没有为1的点为止
4.根据指纹线数据可采用二次曲线摹拟,获取顶点,并保存这些顶点.这些顶点可以作为指纹的特征数据.
5.如果要判断指纹是否是同一个人的指纹,将检查的指纹按上诉方法获取特征数据,然后比较数据库中所存的特征数据,比较时,考虑允许误差值.当然,一个更值得注意的是倾斜处理.

以上仅提供一种实现的思路,有许多必须细化和优化.
xdpan 2000-07-14
  • 打赏
  • 举报
回复
其实目前做指纹识别的以有好几家,其中北大、清华和北邮效果较好,都分别有相应的研究机构或公司,基本已经有产品推出,但指纹算法还远未成熟,故研究者络绎不绝,我认识其中几位。
longchengdong 2000-07-13
  • 打赏
  • 举报
回复
xdpan:
什么信息你告诉我,我这里先谢谢你了
xdpan 2000-07-13
  • 打赏
  • 举报
回复
是商用么?果真如此的话,我可以给你提供相关信息,供你联络。

33,006

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧