Android 图片文字识别

功能:简单实现,图片验证码的文字识别,填充到文本框
注:文件读写权限
在这里插入图片描述

  1. 引入依赖:源码地址
    implementation 'com.rmtheis:tess-two:9.1.0'`
  1. 下载语言包,放到assets目录下,我这里文字都是数据,只引入了eng的语言包
    https://github.com/tesseract-ocr/tessdata/tree/3.04.00
  2. 识别功能核心代码
 /**
     * 识别图像
     *
     * @param context
     * @param bitmap
     */
    public static void recognition(final Context context, final Bitmap bitmap) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                /**
                 * 检测sd卡是否存在语言库
                 * 若不存在,从assets获取到本地sd卡
                 */
                String DATAPATH = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator;
                String LANGUAGE_PATH = DATAPATH + File.separator + "tessdata";
                String FILE_PATH = LANGUAGE_PATH + File.separator + "eng.traineddata";
                File file = new File(FILE_PATH);
                if (!file.exists()) {
                    SDUtils.assets2SD(context.getApplicationContext(), LANGUAGE_PATH, "eng.traineddata");
                }

                TessBaseAPI tessBaseAPI = new TessBaseAPI();
                tessBaseAPI.setDebug(true);
                tessBaseAPI.init(DATAPATH, "eng");
                //识别的图片
                tessBaseAPI.setImage(bitmap);
                //获得识别后的字符串
                String text = tessBaseAPI.getUTF8Text();

                tessBaseAPI.end();
                //发送一条即时消息
                LiveEventBus.get("imgCode").post(text);
            }
        }).start();
    }
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值