Java使用Tess4j识别图片里的文字

简介: Java使用Tess4j识别图片里的文字

近期项目里新增了识别图片里的文字的需求,在这里总结一下实现步骤

下载安装tessdata

下载地址:https://digi.bib.uni-mannheim.de/tesseract/

image.png

其中文件名中带有dev的为开发版本,不带dev的为稳定版本,可以选择下载不带dev的版本,例如可以选择下载tesseract-ocr-setup-3.05.01.exe。

安装:
image.png

此时可以勾选Additional language data(download)选项来安装OCR识别支持的语言包,这样OCR便可以识别多国语言。然后一路点击Next按钮即可。

配置环境变量

  1. 把安装目录配置到path里即可;
  2. 再新建变量名为TESSDATA_PREFIX,变量值还是安装目录;

检验是否配置成功

tesseract -v

image.png

出现版本号就是配置成功;

代码测试

  1. 添加依赖
<dependency>
   <groupId>net.sourceforge.tess4j</groupId>
    <artifactId>tess4j</artifactId>
    <version>4.5.4</version>
</dependency>
  1. 代码
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;

import java.io.File;

public class Tess4jDemo {
   
   

    public static void main(String[] args) throws TesseractException {
   
   
        final ITesseract instance = new Tesseract();
        //
        instance.setDatapath("D:\\tessdata");
        //如果需要识别英文之外的语种,需要指定识别语种,并且需要将对应的语言包放进项目中
        instance.setLanguage("chi_sim");
         //该目录下有很多图片,每张图片里有文字内容
        File imageLocation = new File("D:\\verifyImg");
        for(File image : imageLocation.listFiles()){
   
   
        //输出识别结果
            System.out.println(image.getName()+" -->"+instance.doOCR(image));
        }
    }
}
相关文章
|
27天前
|
Java
java通过commons-fileupload实现多张图片的上传(servlet)
java通过commons-fileupload实现多张图片的上传(servlet)
23 2
|
1月前
|
存储 Java 计算机视觉
Java代码居然可以做出如此高级的图片编辑系统
Java代码居然可以做出如此高级的图片编辑系统
29 0
|
27天前
|
前端开发 Java
java通过commons-fileupload实现多张图片的上传(jsp页面)
java通过commons-fileupload实现多张图片的上传(jsp页面)
16 2
|
4月前
|
Java Linux Windows
java 图片上绘制文字Graphics2D linux 中文乱码
java 图片上绘制文字Graphics2D linux 中文乱码
|
30天前
|
Java
java中复制图片
java中复制图片
10 2
|
1月前
|
文字识别 Java Maven
java调用tess4j识别图像中的文字
java调用tess4j识别图像中的文字
26 3
|
1月前
|
存储 Java Maven
Java能这么轻松识别二维码
Java能这么轻松识别二维码
66 1
|
1月前
|
存储 Java Apache
java 读取图片成二进制流
【2月更文挑战第10天】
|
2月前
|
人工智能 文字识别 Java
AI工具【OCR 01】Java可使用的OCR工具Tess4J使用举例(身份证信息识别核心代码及信息提取方法分享)
【2月更文挑战第1天】Lept4J和Tess4J都是基于Tesseract OCR引擎的Java接口,可以用来识别图像中的文本,本次介绍Tess4J
89 0
|
2月前
|
传感器 人工智能 监控
Java智慧工地管理云平台源码 带AI识别、桌面管理+大屏指挥+手机APP
智慧工地平台支持项目级、公司级、集团级多级权限划分,可根据企业的组织架构进行项目权限、功能权限、数据权限设定。
67 0