- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我尝试通过 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,基本上是一段文字。
但是,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/
我正在尝试使用 tesseract c++ 库做一些事情,但我收到以下链接器错误 (mingw32-g++): undefined reference to `tesseract::TessBaseA
假设我已经创建了两个 TessBaseAPI 对象 — xapi 和 yapi — 通过调用 Init() 的以下重载进行初始化功能: int Init(const char * datapath,
编译代码时出现错误: import tessercat api = tesseract.TessBaseAPI() 错误是: AttributeError:'module' object has no
我尝试通过 Android 中的 Tess-Two 使用 Tesseract OCR 来识别图像中的文本(使用 Android Studio 开发)。 在 gradle 中,我将以下行添加到依赖项部分
我正在尝试使用 tess-two 为 OCR 运行演示应用程序,但我遇到了代码问题: 我已按照以下步骤操作: 首先,我从这里下载并安装了 ndk https://developer.android.c
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我在 build.gradle 中添加了 tess-two 库,如下所示 implementation 'com.rmtheis:tess-two:9.1.0' 我想用 TessBas
我有一个 android 应用程序,我在其中使用 Tesseract OCR,即 TessBaseAPI。这需要 21mb 文件的 tessdata。我最终发布的应用程序 APK 大小约为 19 MB
我使用 openCV 2.4.9 和 tesseract 3.04 编写了一个程序,两者都使用 C API。 由于 openCV 的 C API 已被弃用,我决定修改它以使用两个库的 C++ API。
我是 java cpp 和 tesseract-ocr 的新手。我在几个小时内遇到了一个问题。我在创建 TessBaseAPI 时收到 UnsatisfiedLinkError: no jnilept
我们正在解析显示文本片段的图像,该图像的分辨率为 2121x105 像素。在 Java 中,我们有以下代码来获取字节数组(我们的限制之一是在此处使用字节数组): import org.apache.c
我是一名优秀的程序员,十分优秀!