5

指紋デバイスからデータを取得するアプリケーションがあります。指特徴点抽出には 3 つの手順があります。

  1. 指紋画像の二値化
  2. 画像の細線化
  3. 特徴点抽出

画像の二値化と画像の細線化の部分が完了しました。これで、Minutiae Extraction のコードが実装されました。コードは次のようになります。

byte[][] outSkeleton = BasicOperations.copy(fingerprint.getSkeleton());

    int margin = 50;
    int bif = 0;
    int eol = 0;
    for(int i=margin+20; i<width-margin-20; i++){
        for(int j=margin; j<height-margin; j++){
            int patterns = BasicOperations.timesPattern01(i,j,fingerprint.getSkeleton());
            if(fingerprint.getSkeleton()[i][j]==1){
                if(patterns==1){
                    outSkeleton = drawRectangle(i,j,outSkeleton,2);
                    eol++;
                }
                if(patterns==3){
                    outSkeleton = drawRectangle(i,j,outSkeleton,3);
                    bif++;
                }
            }
        }
    }

..........

public static int timesPattern01(int i, int j, byte[][] image){
    int pattern01 = 0;

    //Counting threads[0,1]
    if(image[i-1][j]==0 && image[i-1][j+1]==1) pattern01++;
    if(image[i-1][j+1]==0 && image[i][j+1]==1) pattern01++;
    if(image[i][j+1]==0 && image[i+1][j+1]==1) pattern01++;
    if(image[i+1][j+1]==0 && image[i+1][j]==1) pattern01++;
    if(image[i+1][j]==0 && image[i+1][j-1]==1) pattern01++;
    if(image[i+1][j-1]==0 && image[i][j-1]==1) pattern01++;
    if(image[i][j-1]==0 && image[i-1][j-1]==1) pattern01++;
    if(image[i-1][j-1]==0 && image[i-1][j]==1) pattern01++;

    return pattern01;
}

.....

private static byte[][] drawRectangle(int x, int y, byte[][] skeleton, int color){
    int size = 3;
    for(int i=-size; i<=size; i++){
        skeleton[x-i][y+size] = (byte)color;
        skeleton[x+i][y-size] = (byte)color;
        skeleton[x-size][y+i] = (byte)color;
        skeleton[x+size][y-i] = (byte)color;
    }
    return skeleton;
}

しかし、このコードは平均 300 前後を計算しEND OF LINESます。ラインのすべての終点が考慮されます。

ここに画像の説明を入力

コードを最適化するのを手伝ってくれる人はいますか?

4

2 に答える 2

0

X、Y の形のミニチュア ポイントとその向きの角度を取得する必要がある場合は、ここでソース AFIS プロジェクトをチェックしてください。それを使って指紋画像からミニチュアデータを抽出することができました。

于 2016-05-07T21:45:21.137 に答える