下面是整个详解步骤过程
效果图
- 流程:点击拍照,调取设备相机拍照,获取图片显示到页面,提取照片内的文字
一、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 中都包含
Google
的Maven
存储库。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
<