How to get a ridge from a fingerprint's minutiae

877 Views Asked by At

I binarized the fingerprint, thinned it with YYZhang's algorithm, got the minutiaes looking around of a pixel with this method

public static ArrayList<Point> timesPattern01(int i, int j, byte[][] image){

        ArrayList<Point> ps = new ArrayList<>();    


        if(image[i-1][j]==0 && image[i-1][j+1]==1) ps.add(new Point(i-1,j+1)); 
        if(image[i-1][j+1]==0 && image[i][j+1]==1) ps.add(new Point(i,j+1));
        if(image[i][j+1]==0 && image[i+1][j+1]==1) ps.add(new Point(i+1,j+1));
        if(image[i+1][j+1]==0 && image[i+1][j]==1) ps.add(new Point(i+1,j));
        if(image[i+1][j]==0 && image[i+1][j-1]==1) ps.add(new Point(i+1,j-1));
        if(image[i+1][j-1]==0 && image[i][j-1]==1) ps.add(new Point(i,j-1));
        if(image[i][j-1]==0 && image[i-1][j-1]==1) ps.add(new Point(i-1,j-1));
        if(image[i-1][j-1]==0 && image[i-1][j]==1) ps.add(new Point(i-1,j));

        return ps;
    }

And

for(int i=Wx+Xfactor; i<Ex-Xfactor; i++){
        for(int j=Ny+Yfactor; j<Sy-Yfactor; j++){
            ArrayList<Point> patterns = timesPattern01(i,j,fpImage);
            if(fpImage[i][j]==1){
                if(patterns.size() ==1){
                    termination.add(new Minutiae("termination",patterns,new Point(i,j)));

                }
                if(patterns.size()==3){
                    bifurcation.add(new Minutiae("bifurcation",patterns,new Point(i,j)));

                }
            }
        }
    }

Where (Wx or Ex)+Xfactor and (Sy or Ny)+ Yfactor are the border of the fingerprint, so I wont get borderly false minutiaes

But My problem is, to get minutiae's orientation or even remove false minutiaes I need to track the ridge. How can I track the ridge, or even worse how can I track 3 ridge from a bifurcation point? Sorry but i can't think in a way to do this

1

There are 1 best solutions below

0
On

NIST provides detailed descriptions of their algorithms for templating in their User Guide to NIST Biometric Image Software. The software is also in the public domain if you want to take a look at the source code.

Pages 62 - 68 of the document detail methods for elimination of erroneous minutia.