gpt4 book ai didi

android - 增强 TessBaseAPI.getUTF8Text() 的可读性

转载 作者:太空狗 更新时间:2023-10-29 14:50:39 25 4
gpt4 key购买 nike

我尝试通过 Android 中的 Tess-Two 使用 Tesseract OCR 来识别图像中的文本(使用 Android Studio 开发)。

在 gradle 中,我将以下行添加到依赖项部分:

compile 'com.rmtheis:tess-two:5.4.1'

然后,在主 Activity 的 onCreate() 中,我有以下代码来初始化库和加载图像:

    final String lang = "eng";
TessBaseAPI baseAPI = new TessBaseAPI();
boolean initResult = baseAPI.init(Environment.getExternalStorageDirectory().getPath(), lang);
if(initResult) {
InputStream is = null;
try {
is = getAssets().open("test2.jpg");
final Drawable drw = Drawable.createFromStream(is, null);
Bitmap bmp = ((BitmapDrawable) drw).getBitmap();

baseAPI.setDebug(true);
baseAPI.setImage(bmp);
ImageView imageView = (ImageView)findViewById(R.id.imageView);
imageView.setImageBitmap(bmp);

String recognizedText = baseAPI.getUTF8Text().trim();
Log.d(TAG, recognizedText);
TextView textView = (TextView) findViewById(R.id.txt_debug);
textView.setText(recognizedText);
baseAPI.end();
} catch (FileNotFoundException nfe) {
Log.d(TAG, "File Not Found");
nfe.printStackTrace();
} catch (IOException ioe) {
Log.d(TAG, "Unable to open the file");
ioe.printStackTrace();
}
} else {
Log.d("OCR", "Unable to init Base API");
}

最后,我将 JPEG 放在 Assets 文件夹中 (app/src/main/assets/)。这是 JPEG,基本上是一段文字。

JPEG

但是,OCR 结果是(非常垃圾):

OWW WW ON
R W WWW WK
KW MK
214
3 W5 HE WM
M WW WWW
LFNWW VW QTY
VM ACNL 19 WE NH
5 332152391
HQ W M W

如何提高扫描的可读性?

我尝试了以下页面安全模式,但结果是:

// Automatic page segmentation with orientation and script detection
baseAPI.setPageSegMode(TessBaseAPI.PageSegMode.PSM_AUTO_OSD);
// Treat the image as a single text line
baseAPI.setPageSegMode(TessBaseAPI.PageSegMode.PSM_SINGLE_LINE);

最佳答案

Tesseract 的识别主要取决于两件事:字体文件和训练好的数据文件。

通常 tesseract 不能识别手写,但理论上如果你训练它识别一种类似于手写的字体那么它就可以工作。

关于android - 增强 TessBaseAPI.getUTF8Text() 的可读性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35693025/

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