Hello Mat

 找回密码
 立即注册
查看: 3910|回复: 0

指纹图像去伪

[复制链接]

1294

主题

1520

帖子

110

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22633
发表于 2017-2-5 11:41:55 | 显示全部楼层 |阅读模式
MATLAB主函数程序如下:
  1. % 指纹图像细节特征提取
  2. clc,clear,close all                    % 清屏、清工作区、关闭窗口
  3. warning off                         % 消除警告
  4. feature jit off                        % 加速代码执行
  5. origin=imread('im2.bmp');
  6. subplot(2,2,1);imagesc(origin);
  7. colormap(gray); xlabel('(a)原始图像')
  8. I=origin;
  9. %细化指纹图像,用匹配模板法
  10. [M,N]=size(I);
  11. for i=2:M-1
  12.     for j=2:N-1
  13.         if I(i,j)==0
  14.             if (I(i-1,j)==0&I(i,j+1)==0)|(I(i-1,j)==0&I(i,j-1)==0)|(I(i+1,j)==0&I(i,j-1)==0)|(I(i+1,j)==0&I(i,j+1)==0)
  15.                 I(i,j)=1;
  16.             else
  17.                 I(i,j)=0;
  18.             end
  19.         end
  20.     end
  21. end
  22. subplot(2,2,2);imagesc(I);
  23. xlabel('(b)细化后的指纹图像')
  24. %特征点提取(端点或交叉点)
  25. t=0;
  26. for i=2:M-1
  27.     for j=2:N-1
  28.         if I(i,j)==0
  29.             n=I(i-1,j-1)+I(i-1,j)+I(i-1,j+1)+I(i,j-1)+I(i,j+1)+I(i+1,j-1)+I(i+1,j)+I(i+1,j+1); % 8个领域的值叠加和
  30.             if (n==5|n==7)  % 记录有5个或7个点的领域,中心点
  31.                 t=t+1;
  32.                 x(t)=j;   % 下标保存
  33.                 y(t)=i;   % 下标保存
  34.             end
  35.         end
  36.     end
  37. end
  38. subplot(2,2,3);imagesc(I);
  39. xlabel('(c)细化后的指纹图像')
  40. hold on;plot(x,y,'bo');hold off;   
  41. for i=1:t-1
  42.     for j=i+1:t                                                           %指纹特征去伪
  43.         d=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2);
  44.         if d<6                                                    %去除距离较近的特征点
  45.             x(i)=-1;y(i)=-1;x(j)=-1;y(j)=-1;
  46.         end
  47.     end
  48. end
  49. c=0;
  50. d=0;
  51. for i=1:t
  52.     if (x(i)>=10&x(i)<165)&(y(i)>=10&y(i)<140)   %去除边缘的特征点
  53.         c=c+1;l(c)=x(i);d=d+1;h(d)=y(i);
  54.     end
  55. end
  56. x=find(x);y=find(y);
  57. subplot(2,2,4);imagesc(I);
  58. xlabel('(d)细去伪后的指纹图像特征点')
  59. hold on;plot(l,h,'bo');hold off;
复制代码






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Python|Opencv|MATLAB|Halcom.cn ( 蜀ICP备16027072号 )

GMT+8, 2024-4-27 11:25 , Processed in 0.215874 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表