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);