0
sqlite 데이터베이스에 지문 인식을 비트 맵으로 저장했습니다. 아무도 비트 맵으로 두 지문 노출을 비교하는 안드로이드 코드의 소스 코드 또는 링크를 도와주세요. 평등을 맞추기.지문 비교 코드
다음 코드를 사용해 보았습니다. 그러나 데이터베이스에 저장된 모든 지문 인식과 일치합니다.
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;
}
감사
에서 네이티브 코드를 작성할 필요가 없습니다 있도록, OpenCV의 라이브러리와 자바에서 컴파일 된 샘플을 아래 링크에서
지문을 비교하는 것은 더 많은입니다 두 비트 맵을 비교하는 것보다 각 지문은 특정 지점을 기준으로 고유합니다 (거의 고유합니다). 일반적으로 일치하는 부분이 있다고 말하기 위해서는 최소 6 점이 필요합니다. 다음은 [일치하는 프로세스에 대한 설명] (http://fingerchip.pagesperso-orange.fr/biometrics/types/fingerprint_algo.htm)입니다. OpenCV를 사용하여 실제 일치를 수행 할 수 있지만 가장 쉬운 방법은 아닙니다. –