zoukankan      html  css  js  c++  java
  • 指纹增强程序Hong_enhancement

    本算法是基于Lin Hong et al 的论文“Fingerprint ImageEnhancement: Algorithm and Performance Evaluation”编写而成。其中一个重要的假设就是:沿脊线垂直方向的灰度变化呈正弦波形

    程序的流程如下所示:


     

    0 Notation


    O 是方向场F 是频率场 R 是区域标记


    1 Normalization 

    将原始图像的灰度值的均值和方差调整到所期望的均值和方差,减少沿脊和谷方向上的灰度级的变化。


     

    img=imread('25_2.tif');
    img=double(img);
    figure,imshow(img./255)
    [ht,wt] =   size(img);
    m       =   mean(img(:));
    v       =   var(img(:));
    gmidx   =   find(img > m); 
    lmidx   =   find(img <=m); m0=100;v0=100;
    nimg(gmidx) = m0 + sqrt((v0*(img(gmidx)-m).^2)/v);
    nimg(lmidx) = m0 - sqrt((v0*(img(lmidx)-m).^2)/v);
    nimg        = reshape(nimg,[ht,wt]); 
    figure,imshow(nimg./255)  
    



    2 Orientation Image

    方向场反映了指纹图像上纹线的方向,其准确性直接影响图像增强的效果。

    (1):将图像划分为不重叠的子块(16×16)

    (2):利用Sobel算子计算每个子块的像素点的梯度值。

    (3):利用以下公式计算中心点在(i,j)的子块的脊线的方向值



    其中是以像素θ(i,j)为中心的子块的局部脊线方向。由于指纹脊线方向变化缓慢,并在一个小范围内具有相对稳定的变化趋势。因此可采用高斯低通滤波器进行平滑处理。

     

    dbg_show_orientation=1;
    img=imread('6_2.tif');
    img=double(img);
    % figure,imshow(img./255)
    hy  = fspecial('sobel');
    hx  = hy';
    gx = imfilter(img,hx,'same','symmetric');
    gy = imfilter(img,hy,'same','symmetric');
    g   = gx+i*gy;  
    gblk=blkproc(g.^2,[10 10],inline('sum(sum(x))'));
    oimg    = 0.5*angle(gblk)+pi/2;
    [blkht,blkwt]   =   size(oimg)
    %smoothen_orientation_field
    g =   cos(2*oimg)+i*sin(2*oimg);
    g =   imfilter(g,fspecial('gaussian',5));
    oimg=   0.5*angle(g);
    if(dbg_show_orientation) 
    quiver(cos(oimg),sin(oimg)); 
    axis ij;axis image; 
    axis([0 blkwt 0 blkht]); 
    title('Orientation Image'); pause; 
    end; 
    


     

    3 Ridge Frequency Image

      在指纹图像的局部非奇异区域里,沿着垂直于脊线的方向看,指纹脊线和谷线像素点灰度值大致形成一个二维的正弦波,定义纹线频率为相邻的两个波峰或波谷之间的像素点数的倒数。

    (1):将图像划分为不重叠的子块(16×16)

    (2):以图像子块中心点(i,j)为中心,子块脊线方向为短轴,作一个尺寸为的长方形窗口,如图所示:在窗口中按如下公式计算幅值X[K]









  • 相关阅读:
    CodeForces 510C Fox And Names (拓扑排序)
    Codeforces 1153D Serval and Rooted Tree (简单树形DP)
    HDU 6437 Problem L.Videos (最大费用)【费用流】
    Luogu P3381 (模板题) 最小费用最大流
    Codeforces 741B Arpa's weak amphitheater and Mehrdad's valuable Hoses (并查集+分组背包)
    Codeforces 1144F Graph Without Long Directed Paths (DFS染色+构造)
    HDU 2204 Eddy's 爱好 (容斥原理)
    Codeforces 939E Maximize! (三分 || 尺取)
    Codeforces 938D. Buy a Ticket (最短路+建图)
    CodeForces 959E Mahmoud and Ehab and the xor-MST (MST+找规律)
  • 原文地址:https://www.cnblogs.com/pangblog/p/3253762.html
Copyright © 2011-2022 走看看