我正在尝试使用片段中的Recognizer
和RegerParserSettings
扫描从资源中获取的图像问题是通过回调onScanningDone
得到的BaseRecognitionResult
始终为空我试着用MRTDRecognizer
设置了RecognitionSettings,效果很好,所以我认为这个库集成得很好。这是我正在使用的源代码:
@Override
public void onAttach(Context context) {
...
try {
mRecognizer = Recognizer.getSingletonInstance();
mRecognizer.setLicenseKey(context, LICENSE_KEY);
} catch (FeatureNotSupportedException | InvalidLicenceKeyException e) {
Log.d(TAG, e.getMessage());
}
buildRecognitionSettings();
mRecognizer.initialize(context, mRecognitionSettings, new DirectApiErrorListener() {
@Override
public void onRecognizerError(Throwable t) {
//Handle exception
}
});
}
private void buildRecognitionSettings() {
mRecognitionSettings = new RecognitionSettings();
mRecognitionSettings.setRecognizerSettingsArray(setupSettingsArray());
}
private RecognizerSettings[] setupSettingsArray() {
RegexParserSettings regexParserSettings = new RegexParserSettings("[A-Z0-9]{17}");
BlinkOCRRecognizerSettings sett = new BlinkOCRRecognizerSettings();
sett.addParser("myRegexParser", regexParserSettings);
return new RecognizerSettings[] { sett };
}
我扫描的图像像:
mRecognizer.recognizeBitmap(bitmap, Orientation.ORIENTATION_PORTRAIT, FragMicoblink.this);
这是在片段中处理的回调
@Override
public void onScanningDone(RecognitionResults results) {
BaseRecognitionResult[] dataArray = results.getRecognitionResults();
//dataArray is null
for(BaseRecognitionResult baseResult : dataArray) {
if (baseResult instanceof BlinkOCRRecognitionResult) {
BlinkOCRRecognitionResult result = (BlinkOCRRecognitionResult) baseResult;
if (result.isValid() && !result.isEmpty()) {
String parsedAmount = result.getParsedResult("myRegexParser");
if (parsedAmount != null && !parsedAmount.isEmpty()) {
Log.d(TAG, "Result: " + parsedAmount);
}
}
}
}
}`
提前感谢!
Helllo Spirrow。
您的代码和SegmentScanActivity
之间的区别在于,您的代码使用DirectAPI
,它只能处理您发送来处理的单个位图图像,而SegmentScanActivity
在相机帧从相机到达时处理相机帧。在这样做的同时,它可以利用时间冗余信息来提高OCR质量,即,它组合来自多个视频帧的连续OCR结果以获得更好质量的OCR结果。
此功能无法通过DirectAPI
使用-您需要在我们的相机管理中使用SegmentScanActivity
或自定义扫描活动。
您也可以在此处了解更多信息:https://github.com/BlinkID/blinkid-android/issues/54
问候