gpt4 book ai didi

android - Microblink 识别器设置 RegexParserSettings

转载 作者:行者123 更新时间:2023-11-30 00:22:59 25 4
gpt4 key购买 nike

我正在尝试使用 Recognizer 扫描从资源中获取的图像用RegerParserSettings在 fragment 内。 问题是BaseRecognitionResult通过回调得到onScanningDone始终为空。 我尝试使用 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);

这是 fragment 中处理的回调

@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);
}
}
}
}
}`

提前致谢!

最佳答案

你好 Spirrow。

您的代码与SegmentScanActivity 的不同之处在于您的代码使用DirectAPI,它只能处理您发送以供处理的单个位图图像,而SegmentScanActivity 处理来自相机的相机帧。这样做的同时,它可以利用时间冗余信息来提高OCR质量,即将来自多个视频帧的连续OCR结果结合起来以获得更好质量的OCR结果。

此功能无法通过 DirectAPI 使用 - 您需要使用 SegmentScanActivity,或使用我们的 camera management 自定义扫描 Activity .

您还可以在这里找到更多信息: https://github.com/BlinkID/blinkid-android/issues/54

问候

关于android - Microblink 识别器设置 RegexParserSettings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45933220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com