Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java 使用 Tess4J 实现图像识别

Java 使用 Tess4J 实现图像识别

作者头像
全栈程序员站长
发布于 2022-07-01 08:38:17
发布于 2022-07-01 08:38:17
2.2K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

最近需要用Java做一个图像识别的东西,查了一些资料,在此写一个基于Tess4J的教程,方便其他人参考和使用。

其实做图像识别,也可以使用TESSERACT-OCR来实现,但是该方式需要下载软件,在电脑上安装环境,移植性不高,使用Tess4J只需要下载相关Jar包,导入项目,再把项目封装好就可以处处运行了。

首先,下载Tess4J的相关资源(一个压缩包),官网:http://tess4j.sourceforge.net/codesample.html

解压,其中的目录结构如下:

需要用到其中圈起来的三个文件夹中的东西。lib文件夹下放的是需要用到的Jar包,tessdata下放的是语言库,默认的有英语库,中文库需要另外下载,下载地址:https://github.com/tesseract-ocr/tessdata/blob/master/chi_sim.traineddata。

新建一个Java项目,将lib文件夹和tessdata文件夹复制到项目的根目录下,找到dist文件夹下的tess4j.jar(名字可能有版本号),将该文件也复制到项目根目录下的lib文件夹下。

项目的的目录如下:

lib中的文件如下(tess4J.jar也在该目录下):

再在eclipse中打开项目,在项目中导入lib文件夹中所有的jar包(Build path –> configure build path),导入后的结果如下:

这样前期准备工作就完成了,下面就剩下代码了。Tess4J的代码比较简洁,如下:

Tess4JTest.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package ocr;

import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import net.sourceforge.tess4j.util.LoadLibs;

import java.io.File;
import java.io.IOException;

/**
 * Tess4J测试类
 */
public class Tess4JTest {

    public static void main(String[] args){

    	String path = "D://Java//Tess4J";		//我的项目存放路径
    	
    	File file = new File(path + "//photo.jpg");
        ITesseract instance = new Tesseract();

        /**
         *  获取项目根路径,例如: D:\IDEAWorkSpace\tess4J
         */
        File directory = new File(path);
        String courseFile = null;
        try {
            courseFile = directory.getCanonicalPath();
        } catch (IOException e) {
            e.printStackTrace();
        }

        //设置训练库的位置
        instance.setDatapath(courseFile + "//tessdata");

        instance.setLanguage("eng");//chi_sim :简体中文, eng	根据需求选择语言库
        String result = null;
        try {
            long startTime = System.currentTimeMillis();
             result =  instance.doOCR(file);
            long endTime = System.currentTimeMillis();
            System.out.println("Time is:" + (endTime - startTime) + " 毫秒");
        } catch (TesseractException e) {
            e.printStackTrace();
        }
        
        System.out.println("result: ");
        System.out.println(result);
    }

}

这样就搞定了。

效果如下:

原图:

读取结果:

从结果来看准确率还有待提高,l 和 1分不清,0 和 O 也没有分清,汉字的准确率还要低一些,大家可以自行训练字体库优化。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130913.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
图像文字识别(四):java调用tess4j识别图像文字
Tesseract-OCR支持中文识别,并且开源和提供全套的训练工具,是快速低成本开发的首选。前面记录过在java中调用tesseract-orc,该方法的原理是通过在java中调用cmd命令行,来执行tesseract,但是该方式需要下载软件,在电脑上安装环境,移植性不高。
全栈程序员站长
2022/06/29
5.5K0
图像文字识别(四):java调用tess4j识别图像文字
JAVA使用Tess4J进行ocr识别,并切换中文
Mac上安装 tesseract_MR.骑士道-CSDN博客_mac tesseract
全栈程序员站长
2022/09/07
3.8K0
JAVA使用Tess4J进行ocr识别,并切换中文
JAVA——Tess4J简单的图像识别DEMO
2、在任意地方创建一个文件夹tessdata,将下载的chi_sim.traineddata 和 eng.traineddata语言包存放在该目录下,也可以直接存放到自己项目的resources/tessdata目录下。
全栈程序员站长
2022/09/05
2.1K0
JAVA——Tess4J简单的图像识别DEMO
图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能
说到语音识别、语音翻译、图像识别、人脸识别等等,现在已经非常非常非常普及了,看过‘最强大脑’的朋友,也应该对‘小度’这个机器人有所了解,战胜国际顶尖的‘大脑’- 水哥,(PS:内幕不知),那么今天,我们来看下关于图像识别,是如何做到的,Java又是如何识别图像的?
码神联盟
2018/07/30
12.2K0
图像识别  | 使用 Java 实现AI人工智能技术-图像识别功能
验证码识别(Tess4J初体验)
当时就懵逼了0.0查了好多资料,大体知道了基本的步骤:1.预处理 2.灰度化 3.二值化 4.去噪 5.分割 6.识别
全栈程序员站长
2022/08/12
8850
验证码识别(Tess4J初体验)
tess4j正确的使用 OCR
在官网上下载下来的 tess4j 的zip,初见时看的云里雾里的,原以为是个jar,直接引用就好了,结果竟是个zip。网上查一下用法,各种说法,各种菜,全是误导,自己不懂就敢瞎说…
全栈程序员站长
2022/09/01
1.1K0
java tess4j ddl_tess4j jna dll报错,求助
使用最新的tess4j 3.3.0包,这个版本的dll文件应该是集成在jar包里面的,环境是win10,vc环境健全,使用eclips
全栈程序员站长
2022/09/01
6420
基于Tess4j的图片识别
Tess4J是对Tesseract OCR API的Java JNA 封装。tesseract是跨平台的OCR(Optical Character Recognition,光学字符识别)引擎,让开发者非常容易的集成OCR能力到他们自己的应用。通过强大的API从图片中识别和提取文本内容。Tess4J支持主流的图片格式,如TIFF,JPEG,GIF,PNG,BMP,and PDF。 OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题,ICR(Intelligent Character Recognition)的名词也因此而产生。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。
全栈程序员站长
2022/08/31
1.7K0
java tess4j mave_图片处理,Tess4j读取验证码、识别文字
https://tesseract-ocr.github.io/tessdoc/Home.html
全栈程序员站长
2022/09/05
1.2K0
Tess4J 简单使用入门[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132239.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/30
2.1K1
Tess4J 简单使用入门[通俗易懂]
SpringBoot + Tess4J 实现本地与远程图片处理
Spring Boot 是一个流行的 Java 框架,可以方便地搭建各种类型的应用。Tess4J 是一个基于 Tesseract OCR 的 Java 接口库,用于识别图像中的文本。本文将介绍如何结合这两个工具,创建一个应用程序,能够处理本地和远程图像,提取其中的文本。
小马哥学JAVA
2024/04/30
4080
使用Java实现图片文字识别
在 Java 中,图片文字识别可以通过 Tesseract-OCR 的 API 完成。Tesseract-OCR 是一个开源的 OCR(Optical character recognition,光学字符识别)引擎,用于识别各种类型的图片中的文本。此外,我们还需要 Leptonica 库的支持,这是一个用于图像处理和分析的开源库。
很酷的站长
2023/10/02
3K0
使用Java实现图片文字识别
Java使用Tesseract-OCR实战
tesseract-ocr-w64-setup-v5.3.0.20221214.exe 选择安装目录,下一步,下一步默认安装
九转成圣
2024/04/10
5560
Spring和Ocr整合详解
Tess4J是对Tesseract OCR API.的Java JNA 封装。使java能够通过调用Tess4J的API来使用Tesseract OCR。支持的格式:TIFF,JPEG,GIF,PNG,BMP,JPEG,and PDF.
品茗IT
2019/09/12
1.5K0
从图像中找到文字 -- 开源 OCR 工具 tesseract 使用简介
OCR 是 Optical Character Recognition (光学字符识别)的缩写,指的是通过检测图像,从而识别出文字的技术。
用户3147702
2022/06/27
2.1K0
从图像中找到文字 -- 开源 OCR 工具 tesseract 使用简介
tess4J 安装使用
参考 https://blog.csdn.net/gs80140/article/details/103938651
全栈程序员站长
2022/08/10
1.7K0
tess4J 安装使用
tesseract-ocr 实现图片识别功能
http://blog.sina.com.cn/s/blog_56d988430102w37c.html
bear_fish
2018/09/19
5.9K0
tesseract-ocr 实现图片识别功能
linux tesseract 安装及部署tess4j项目的常见问题
在windows上项目是可以正常运行的,部署到Linux上后,运行报异常,异常内容为:Unable to load library ‘tesseract’: Native library (linux-x86-64/libtesseract)
Java架构师历程
2018/09/26
4.5K0
linux tesseract 安装及部署tess4j项目的常见问题
Tesseract ocr文字识别
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details/77776697
bear_fish
2018/09/19
17.5K0
牛逼!只需 3 步,Java 也能做图片识别!
最近闲来无事研究了一下用Java如何模拟浏览器的行为,在实验登录的步骤时碰到了识别验证码的问题,于是在网上查找了关于Java如何进行图片识别验证码,由于根据网上查找的相关文章都不适合我的配置,所以特开此博客进行记录一下采坑的过程以及解决方法。
Java技术栈
2021/01/08
9070
牛逼!只需 3 步,Java 也能做图片识别!
相关推荐
图像文字识别(四):java调用tess4j识别图像文字
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验