- 应用VisionBase静态类进行初始化,拿到服务连接的结果。
VisionBase.init(MainActivity.this, new ConnectionCallback(){
@Override
public void onServiceConnect(){
Log.i(LOG_TAG, "onServiceConnect");
}
@Override
public void onServiceDisconnect(){
Log.i(LOG_TAG, "onServiceDisconnect");
}
});
- 定义Detector实例,将此应用的Context当做入参。
CardDetector detector = new CardDetector(MainActivity.this); // 构造Detector
- 定义调用配置项。
VisionCardConfiguration driverLicenseConfiguration = new VisionCardConfiguration.Builder()
.setAppType(VisionCardConfiguration.APP_NORMAL)
.setProcessMode(VisionCardConfiguration.MODE_IN)
.setCardType(VisionCardConfiguration.DRIVERLICENSE).build();
detector.setVisionConfiguration(driverLicenseConfiguration);
- 加载引擎。
int resultCode = detector.prepare();
- 定义VisionImage,并将需进行卡证检测图片的bitmap放入VisionImage中。
VisionImage image = VisionImage.fromBitmap(bitmap);
- 定义结果类,以驾驶证为例。
DriverLicense driverLicense = new DriverLicense();
- 调用CardDetector的detect的方法,获取结果。
int resultCode = detector.detect(image, driverLicense, null);
- 可以直接使用结果类获取识别结果。
if (resultCode == HwHiAIResultCode.AIRESULT_SUCCESS) {
String record = driverLicense.getRecord();
}
- 或者也可以将所有输出转化为String(这里json中加入的字段主要为了和卡证体系历史版本保持一致,可忽略)。
JSONObject json = new JSONObject();
try {
json.put("resultCode", resultCode);
if (resultCode == HwHiAIResultCode.AIRESULT_SUCCESS) {
json.put("common_text", new GsonBuilder().disableHtmlEscaping().create().toJson(driverLicense));
}
} catch (JSONException e) {
e.printStackTrace();
}
String totalResult = json.toString();;