0

指紋の印象を sqlite データベースに bitmap として保存しました。2 つの指紋の印象をビットマップとして比較するための Android コードのソース コードまたはリンクを教えてください。平等に一致させる。

次のコードで試しました。しかし、データベースに保存されているすべての指紋印象と一致します。

public boolean compare(Bitmap imageToCompare , Bitmap imageInDb )
{
    System.out.println("Inside Compare");
    System.out.println("imageToCompare::::"+imageToCompare);
    System.out.println("imageInDb::::"+imageInDb);

    /*int width = imageToCompare.getWidth();
    System.out.println("width::::::"+width);
    int height = imageToCompare.getHeight();
    System.out.println("height::::"+height);
    int pixelCount = width * height;

    int width1 = imageInDb.getWidth();
    System.out.println("width1::::::"+width1);
    int height1 = imageInDb.getHeight();
    System.out.println("height1::::"+height1);*/
    int pixelCount = mImageWidth * mImageHeight;

    System.out.println("pixelCount::::"+pixelCount);
    int[] pixels1 = new int[pixelCount];
    int[] pixels2 = new int[pixelCount];
    System.out.println("11111111111111111");
    //imageToCompare.getPixels(pixels1, 0, 0, 0, width, height);
    imageToCompare.getPixels(pixels1, 0,mImageWidth, 0, 0, mImageWidth, mImageHeight);
    imageInDb.getPixels(pixels2, 0,mImageWidth, 0,0, mImageWidth, mImageHeight);
    System.out.println("22222222222222");
    for (int i = 0; i < pixelCount; i++) {
        if (pixels1[i] != pixels2[i]) {
            System.out.println("333333333333");
            return false;
        }
    }
    System.out.println("444444444444444444");
    return true;
}

ありがとう

4

2 に答える 2

-1

2 つのビットマップを比較するには、Android 用の openCV ライブラリを使用できます。画像比較には多くの機能があり、このトピックは幅広く、必要な精度によって異なります。cvNorm 関数から始めることができます。

以下のリンクでは、Java でコンパイルされた openCV ライブラリとサンプルがあるため、C でネイティブ コードを記述する必要はありません。

リンク

openCV ウェブサイト

于 2012-07-10T09:48:34.480 に答える