Android图片文字识别

本文介绍了一种使用tess-two库进行OCR图文识别的方法,并详细解释了如何设置依赖、下载字体库、将字体库文件拷贝到指定路径、初始化tess-two及处理图片以识别文字的过程。

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

导言:
OCR,tess-two ,openCV等晕人的东西先分清,OCR,tess-two是图片文字识别,而openCV是图像识别比对,对于更复杂的图片文字识别需求可以采用百度云人工智能通用文字识别开发的SDK,准确性更高

可运行的步骤:
1:添加依赖

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

2:下载字体识别库(chi_sim.traineddata 中文简体,chi_tra.traineddata 中文繁体,eng.traineddata 英文库)

3:为了apk的大小,我们需要将字体识别库文件拷贝到SD卡目录中,比如eng.traineddata的copy

  private String mDataPath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator;
  private String mFilePath = mDataPath + File.separator + "tessdata" + File.separator + "eng.traineddata";
  private void copyFile() {
        try {
            File mFile = new File(mFilePath);
            if (mFile.exists()) {
                mFile.delete();
            }
            if (!mFile.exists()) {
                File p = new File(mFile.getParent());
                if (!p.exists()) {
                    p.mkdirs();
                }
                try {
                    mFile.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            OutputStream os = new FileOutputStream(mFilePath);
            InputStream is = this.getAssets().open("eng.traineddata");
            byte[] buffer = new byte[1024];
            int len = 0;
            while ((len = is.read(buffer)) != -1) {
                os.write(buffer, 0, len);
            }
            os.flush();
            os.close();
            is.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

4:tess two初始化

 TessBaseAPI baseApi;
 baseApi = new TessBaseAPI();
 baseApi.init(mDataPath, "eng");

5:处理bitmap图片并识别里面的内容

//OCR图片文字识别
baseApi.setImage(bitmap);
String result = baseApi.getUTF8Text().replace(" ", "").toLowerCase();

6:其他要求看需求,本文结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值