Tesseract OCR集成Android Studio实现OCR识别

简介: Tesseract OCR集成Android Studio实现OCR识别

Tesseract OCR集成Android Studio实现OCR识别

介绍

Tesseract OCR谷歌开源的OCR识别引擎,支持多国文字包括中文简体与繁体。最新的版本是3.x。可以通过安装程序安装在机器上然后通过命令行运行该程序识别各种图片中的文字、同时还提供二次开发包,支持二次开发包括C、C++语言。也可以被移植到Android平台实现移动应用领域的OCR识别APP。

下载

在Android平台上使用Tesseract OCR首先要下载Tess2工程,它是专门针对Android平台编译出来的,下载地址如下 - https://github.com/rmtheis/tess-two 。下载解压缩之后你就会看到如下目录结构:

然后打开Android Studio新建一个项目应用,选择导入Module之后选择导入红色圆圈中的tess-two文件夹,导入之后你就会看到如下:

项目必须是支持NDK的,所以要在Project Structure中指明NDK的路径。原因是tess-two是个NDK项目,没有NDK支持无法完成编译。


此外你可能还会遇到没有android-maven的错误,把下面的脚本加到build.gradle的最上面即可:

buildscript { 

    repositories { 

        jcenter() 

    } 

    dependencies { 

        classpath ‘com.android.tools.build:gradle:2.1.2’ 

        classpath ‘org.codehaus.groovy:groovy-backports-compat23:2.3.5’ 

        classpath ‘com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0’ 

        classpath ‘com.github.dcendents:android-maven-gradle-plugin:1.5’ 

    } 

} 

如果一切顺利,你就会完成导入与编译,看到导入成功的目录结构,上图第二张所示。下面就是在你的Activity中添加初始化代码如下: 

    private void initTessBaseData() { 

        mTess = new TessBaseAPI(); 

        String datapath = Environment.getExternalStorageDirectory() + “/tesseract/”; 

        // String language = “num”; 

        String language = “eng”; 

        File dir = new File(datapath + “tessdata/”); 

        if (!dir.exists()) 

            dir.mkdirs(); 

        mTess.init(datapath, language); 

    } 

 然后通过监听【识别】按钮的Click事件响应识别动作如下: 

 
    public void onClick(View v) { 

        Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.textimage); 

        mTess.setImage(bitmap); 

        String result = mTess.getUTF8Text(); 

        TextView txtView = (TextView)this.findViewById(R.id.idCard_textView); 

        txtView.setText(“结果为:” + result); 

        ImageView imgView = (ImageView)this.findViewById(R.id.imageView); 

        imgView.setImageBitmap(bitmap); 

    } 

 
 

   显示结果如下:

   其中上部分为识别到文字显示,下面是对应加载的文字图片。


这里特别要注意的是必须在你对应目录有相关tessdata文件才可以,关于tessdata可以到如下地址下载:


https://github.com/tesseract-ocr/tessdata  


手动或者通过程序Copy到你在初始化时候生成的目录下面即可。


此外,还不要忘记把tess-two作为依赖添加到app中去。

 

相关文章
|
3天前
|
机器学习/深度学习 人工智能 文字识别
文本,文字扫描01,OCR文本识别技术展示,一个安卓App,一个简单的设计,文字识别可以应用于人工智能,机器学习,车牌识别,身份证识别,银行卡识别,PaddleOCR+SpringBoot+Andr
文本,文字扫描01,OCR文本识别技术展示,一个安卓App,一个简单的设计,文字识别可以应用于人工智能,机器学习,车牌识别,身份证识别,银行卡识别,PaddleOCR+SpringBoot+Andr
|
3天前
|
JSON 文字识别 数据格式
文本,文字识别,Flask实现内部接口开发,OCR外部接口的开发,如何开发一个识别接口,通过post调用,参数是图片的路径,内部调用,直接传图片路径就行
文本,文字识别,Flask实现内部接口开发,OCR外部接口的开发,如何开发一个识别接口,通过post调用,参数是图片的路径,内部调用,直接传图片路径就行
|
29天前
|
文字识别 自然语言处理 开发工具
印刷文字识别产品使用合集之OCR统一识别功能已开通,响应为200但没有content信息,是什么原因
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
29天前
|
文字识别
印刷文字识别产品使用合集之可以支持对哪些类型的票据进行识别支持数电发票的ocr识别吗
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
1月前
|
编解码 文字识别
印刷文字识别产品使用合集之文字大小在多少个像素范围内比较适合ocr
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
29天前
|
人工智能 JSON 文字识别
印刷文字识别操作报错合集之口算判题AI能力(文字识别OCR)接口返回数据的时,不显示正确答案只判断对错吗
在使用印刷文字识别(OCR)服务时,可能会遇到各种错误。例如:1.Java异常、2.配置文件错误、3.服务未开通、4.HTTP错误码、5.权限问题(403 Forbidden)、6.调用拒绝(Refused)、7.智能纠错问题、8.图片质量或格式问题,以下是一些常见错误及其可能的原因和解决方案的合集。
|
4天前
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
11 1
|
5天前
|
监控 负载均衡 Java
Spring Boot与微服务治理框架的集成
Spring Boot与微服务治理框架的集成
|
6天前
|
负载均衡 Java Nacos
Spring Boot与微服务治理框架的集成策略
Spring Boot与微服务治理框架的集成策略
|
10天前
|
消息中间件 Java Kafka
springboot集成kafka
springboot集成kafka
15 2