ImageProcessor API


Summary

본 문서는 신분증 인식기 SDK 에 대한 기술적인 정보를 제공하고 SDK 를 사용하여 어플리케이션에 신분증 인식 기능을 빠르게 구현할 수 있는 방법을 설명한다.

Functions List

// 이미지 처리 엔진 생성자
ImageProcessor(Context context)
// 90도 단위 회전 함수
Bitmap rotateImage(Bitmap bitmap, int degrees, boolean recycleInputImage)
// 프리뷰 영상에서 초점이 흐린 정도를 측정
double getBlurValue(byte[] previewData, int previewWidth, int previewHeight)
// 입력 이미지를 crop후 resize
Bitmap cropImage(Bitmap input, Rect cropRect, int resizeWidth, int resizeHeight, boolean recycleInputImage)
// 입력 이미지에서 신분증 영역을 검출하고 이전에 검출한 영역과 비교하여 유사도 반환
int checkAreaSimilar(byte[] data, int width, int height, int[] docArea, Rect guideRect, int cameraOrientation)

com.selvasai.selvyocr.idcard.ImageProcessor
(이미지 영역 관련 처리 및 기타 기능)

ImageProcessor

클래스 생성자

Parameters
# Name Description Type
[in] context App context Context
Returns

-

Example
ImageProcessor mImageProcessor = new ImageProcessor((getApplicationContext()));
rotateImage

입력된 비트맵을 회전하여 출력

Parameters
# Name Description Type
[in] bitmap 원본 비트맵 Bitmap
[in] degrees 회전 각도 (90 도 단위) int
[in] recycleInputImage inputImage 를 recycle 할지 여부 boolean
Returns

회전된 비트맵

Example
ImageProcessor mImageProcessor = new ImageProcessor((getApplicationContext()));
inputImage = mImageProcessor.rotateImage(inputImage, 90, true);
getBlurValue

프리뷰 영상에서 초점이 흐린 정도를 측정합니다.

Parameters
# Name Description Type
[in] previewData 프리뷰 영상 byte[]
[in] previewWidth 프리뷰 너비 int
[in] previewHeight 프리뷰 높이 int
Returns

0~1 사이의 값 또는 NaN.
1 이면 매우 흐림

Example
float blurValue = mImageProcessor.getBlurValue(data, previewSize.width, previewSize.height);
getBlurValue

프리뷰 영상에서 초점이 흐린 정도를 측정

Parameters
# Name Description Type
[in] previewData 프리뷰 영상 byte[]
[in] previewWidth 프리뷰 영상의 너비 int
[in] previewHeight 프리뷰 영상의 높이 int
[in] area 흐린 정도를 측정할 대상 영역 Rect
[in] cameraOrientation 카메라 회전값 int
Returns

0~1 사이의 값 또는 NaN.
1 이면 매우 흐림

Example
ImageProcessor imageProcessor = new ImageProcessor(context);
double blurValue = imageProcessor.getBlurValue(previewData, previewWidth, previewHeight, area, cameraOrientation);
getBlurValue

이미지에서 초점이 흐린 정도를 측정

Parameters
# Name Description Type
[in] bitmap 비트맵 이미지 Bitmap
Returns

0~1 사이의 값 또는 NaN.
1 이면 매우 흐림

Example
float blurValue = mImageProcessor.getBlurValue(bitmap);
getBlurValue

이미지에서 초점이 흐린 정도를 측정합니다.

Parameters
# Name Description Type
[in] bitmap 초점을 측정할 비트맵 이미지입니다. Bitmap
[in] area 초점을 측정할 대상 영역입니다. Rect
Returns

0~1 사이의 값 또는 NaN.
1 이면 매우 흐림

Example
ImageProcessor imageProcessor = new ImageProcessor(context);
double blurValue = imageProcessor.getBlurValue(bitmap, area);
cropImage

입력 이미지를 Crop 후 Resize

Parameters
# Name Description Type
[in] input 입력 비트맵 이미지 Bitmap
[in] cropRect 자르려는 영역 Rect
[in] resizeWidth 자른 영역을 크기 변경할 너비 값 int
[in] resizeHeight 자른 영역을 크기 변경할 높이 값 int
[in] recycleInputImage 입력 이미지를 recycle 할지 여부 boolean
Returns

Crop 후 Resize 된 이미지

Example
Bitmap croppedResizedImage = mImageProcessor.cropImage(input, cropRect, resizeWidth, resizeHeight, true);
checkAreaSimilar

입력 이미지에서 신분증 영역을 검출하고 이전에 검출한 영역과 비교하여 유사도 반환

Parameters
# Name Description Type
[in] data 입력 비트맵 이미지 byte[]
[in] width 입력 비트맵 이미지 너비 값 int
[in] height 입력 비트맵 이미지 높이 값 int
[in] docArea 검출 된 신분증 영역 int[]
[in] guideRect 촬영 가이드 영역 Rect
[in] cameraOrientation 카메라 회전값 int
Returns

영역검출 후 비교 결과

  • Utils.FIND_AREA_FAIL: 영역검출 실패
  • Utils.FIND_AREA_SIMILAR: 영역검출 결과 비슷함
  • Utils.FIND_AREA_DIFFERENT: 영역검출 결과가 다름

입력 값인 int[]docArea 로 새로 검출된 영역이 전달됨

Example
int similarityScore = mImageProcessor.checkAreaSimilar(data, width, height, docArea, guidRect, cameraOrientation);