android ocr,Android OCR工具之Tess-Two的使用

本文介绍了光学字符识别(OCR)原理,重点讲解了Tesseract在Android应用中的使用,包括添加依赖、初始化过程、数据包管理以及如何在子线程中进行文字识别。同时提到了Tesseract在Android中的兼容性和数据包配置要求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OCR is 什么东东?

ocr是Optical Character Recognition(光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。

上面一段描述来源于某广告度

f8079d004b4d

什么叫Tesseract?

算了,这不是重点,我提供了一个学习什么是Tesseract的平台,需要的自己去看,点击我跳转

f8079d004b4d

tess-two

Tesseract是使用C++实现的,在Android上使用有一丢丢的麻烦,tess-two就是我们非常喜欢的东西了,它封装了Java API,可以在Android平台上直接调用,是不是开心到飞呢。

tess-two的使用

这里我们以Android Studio开发工具为主。

Android版本要求,最低2.3

在app的build.gradle里面添加

dependencies {

implementation 'com.rmtheis:tess-two:9.1.0'

}

识别文字,我们还需要数据包

我们使用chi_sim.traineddata数据包,根据自己的需求下载对应的数据包。

数据包下载下来放到assets文件夹下

f8079d004b4d

val baseApi = TessBaseAPI()

baseApi.setDebug(true)

baseApi.init(path, LANGUAGE_FILE_NAME)//这里需要注意

baseApi.setImage(bitmap)

val text = baseApi.utF8Text

文字识别的关键代码就五行,是不是很简单。

文字识别过程中,比较耗时,所以建议放到子线程中。

baseApi.init在初始化中,需要两个参数

第一个参数:数据包放到存储卡中位置

第二个参数,数据包的名称

我们点击进去看看init的实现

f8079d004b4d

从源码中可以看出,

1.数据包路径不能为空

2.数据包存储位置上一级文件夹的名称必须是tessdata

3.第二个参数必须是存储在sd卡上的名称,后缀必须是.traineddata

所以,在app启动的时候,需要把assets文件夹中的数据包copy到存储卡上。

Android 6.0还要申请存储卡读写权限哦。

demo效果图

f8079d004b4d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值