Android 开发 OCR 拍照 + ML Kit 识别文字 巨详细全部代码教程

效果图

  • 流程:点击拍照,调取设备相机拍照,获取图片显示到页面,提取照片内的文字
    在这里插入图片描述

一、OCR的含义

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

二、什么是ML Kit

ML Kit是一个由Google开发的跨平台移动SDK(Android和iOS)。它带来了谷歌的端上机器学习能力。
ML Kit所有在端上运行的API允许实时和离线功能。这也意味着这些功能在离线模式下也可用。

ML Kit可以识别超过100种语言的文本,包括原生拼写及罗马转写系统,比如汉语、俄语、印地语、英语、希腊语等。点击查看支持语言的完整列表

三、官网步骤教程

  • 本文跟着官网教程走,如下图:
    在这里插入图片描述

1、添加依赖

注意此 API 需要 Android API 级别 21 或更高版本。确保应用的 build file 使用值 21 或更高。minSdkVersion

  • 在项目级文件中,请确保在 your 和 sections 中都包含 GoogleMaven 存储库。build.gradlebuildscriptallprojects
  • 将 ML Kit Android 库的依赖项添加到模块的应用级 gradle 文件,该文件通常为:app/build.gradle

本文讲的是中文识别,所以只导入了中文依赖包,你可以根据自己所需选择导入的依赖包

 // To recognize Chinese script
  implementation 'com.google.mlkit:text-recognition-chinese:16.0.0'

在这里插入图片描述

2、创建TextRecognizer

因为本文是中文,所以使用的中文脚本库

 ChineseTextRecognizerOptions build = new ChineseTextRecognizerOptions.Builder().build();
 TextRecognizer recognizer = TextRecognition.getClient(build);

在这里插入图片描述

3、输入图像

图像来源有:

  • 使用media.Image
  • 使用文件 URI
  • 使用 或ByteBufferByteArray
  • 使用Bitmap

本文用的是使用Bitmap,如下图

InputImage image = InputImage.fromBitmap(bitmap, 0);

在这里插入图片描述

4、处理图像

将图像传递给方法:process

 recognizer.process(image)
                .addOnSuccessListener(new OnSuccessListener<Text>() {
   
                    @Override
                    public void onSuccess(Text visionText) {
   
                        // Task completed successfully
                        // ...
                    }
                })
                .addOnFailureListener(
                        new OnFailureListener() {
   
                            @Override
                            public void onFailure(@NonNull Exception e) {
   
                                // Task failed with an exception
                                // ...
                            }
                        });

在这里插入图片描述

四、实际代码案例Demo如下:

别忘了导入依赖包!!!

1、Main.xml

<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AaVictory.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值