java使用tess4j实现图片上的文字识别
最近在研究tesseract实现文字识别,废话不多说,研究新技术,首先要百度。百度一下相关的文章还不少,基本都是这样的
代码很简单,也没有什么注意事项,然后我建了测试项目,抄了代码,然后......
运行结果是这样的
还有这样的 没事,意料之中,写了这么久代码,早有这种觉悟。百度解决方法吧,有说是少了什么dll的,把dll复制到系统目录下,不行。有说是没安装vc++,好吧,那安装,结果意料之中,还是不行,继续百度,说是vc++版本不对,要2019版,不能2015版,可是
人家一个安装包就是2015-2019,这个就是最新版,没有单独2019版 。好吧,那我就换旧版本的tess4j的jar包和旧版本的vc++,然后,意外发生了,成功了。
总结一下,不同版本的tess4j要对应不同版本的vc++,但是最新版的tess4j和最新版的vc++不匹配。
以上就是我趟过的坑,我把它写出来,希望刚学习Tesseract的朋友少走点弯路,也让我以后如果换个环境开发的时候不会重蹈覆辙。
下面就是我测试通过的案例,windows上是不需要安装Tesseract-OCR的。
开发环境:win10 + vc++2103(下载) + jdk8 + myeclipse2017ci
package com.test;import java.io.File;import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;public class Main {public static void main(String[] args) {File imageFile = new File("aa.png");ITesseract tess = new Tesseract();// 设置训练库路径,我这里把训练库放在项目目录下tess.setDatapath("./tessdata");try {String result = tess.doOCR(imageFile);System.out.println(result);} catch (TesseractException e) {e.printStackTrace();}}}
如果只是英文数字识别,训练库在tess4j-3.0.0.jar里面就有,解压tess4j-3.0.0.jar,把tessdata复制到项目目录下即可,如果要识别中文,需要另外下载中文训练库(下载地址),下载下来是一个文件chi_sim.traineddata,把这个文件放到tessdata下,代码加一句选择语言库就可以了。
package com.test;import java.io.File;import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;public class Main {public static void main(String[] args) {File imageFile = new File("aa.png");ITesseract tess = new Tesseract();// 设置训练库路径,我这里把训练库放在项目目录下tess.setDatapath("./tessdata");// 选择语言库(chi_sim:简体中文; eng:英文(默认))tess.setLanguage("chi_sim");try {String result = tess.doOCR(imageFile);System.out.println(result);} catch (TesseractException e) {e.printStackTrace();}}}
linux上运行
要在linux上使用tess4j需要安装Tesseract,没什么坑,参考这篇文章就可以了https://www.jianshu.com/p/134a09c5af9e
然后把项目打包成可运行的jar
在linux上新建目录/home/jar,把打好的包和训练库上传
运行
java使用tess4j实现图片上的文字识别相关推荐
- 如何将图片上的文字识别成可修改的文本
曾几时何打字员是一种正式的工种,而随着科技的不断发展,图片中的文字已经能直接通过工具识别成文字,具体是如何操作的呢?一起来看看吧 搜索speedpdf打开工具后,在首先选择JPG转Word并进入到转换 ...
- 【小工具】JS+PHP实现 屏幕截图粘贴图片上传+文字识别+一键复制识别结果
今天为大家带来一款我自己写的小应用,由于最近在学习网课,而个人又是OneNote笔记爱好者,不做笔记就觉得课程学习不完整,但是懒就懒在实在不想打字啊,所以想到了直接截图用文字识别嘛,于是经过几个小时的 ...
- 如何快速识别提取图片上的文字
我们在日常工作中,我们经常会遇到将图片上文字转换成Word文档这样的情况,要知道, 图片上的文字是不能直接复制的,这是一件令人头疼的一件事情.那么要怎样才能快速的 提取这些图片的文字呢? 快速识别提取 ...
- 图片上的文字转换成word-捷速OCR文字识别
图片上的文字转换成word-捷速OCR文字识别 这几天公司需要我将一片旅游书籍上的几篇关于旅游的文章进行编辑,做一个相关方面的专题,这可就烦到我了,专题方面的设计对我来说并不难,难的就是我必须把那几篇 ...
- java读取图片、PDF中图片上的文字
读取图片上的文字 提示:本文是基于tess4j 文章目录 读取图片上的文字 前言 一.tess4j是什么? 二.使用步骤 1.POM引入库 2.实例代码 总结 前言 总是有一些与众不同的需求在等着研发 ...
- java实现在图片上插入文字并保存。
这两天通过在网上查阅资料,了解了在图片上插入文字并保存的功能,下面记录一下. 工具类:PrintImage. package com.learning.www.utils; import java.a ...
- java获取远程图片并在图片上写文字
本编文章主要是分享一下,从远程获取图片文件,用java在图片上写文字并合成图片的示例.一下代码完全拷贝后是可以正常运行的. 主要有三个类: DrawPicFromUrlToOSS:核心类,获取图片并在 ...
- java绘制海报,使用BufferedImage,Graphics2D,drawString方法在图片上写文字,中文不显示;drawString写文字为空问题
项目场景: 项目场景:公司需要制作一张海报.通过java后台制作海报,给图片拼接图片,添加水印添加文字,定义字体为"宋体",给海报添加头像.姓名.性别.个人简介.二维码等信息.把代 ...
- java生成二维码(在图片上生成二维码(二维码带logo)并且在图片上添加文字标签)
1pom.xml <!--生成二维码--> <dependency><groupId>cn.hutool</groupId><artifactId ...
最新文章
- 一文贯通python文件读取 1
- 实现 消息提醒图标_用了5年苹果手机都不知道,原来小汽车图标是这个意思 ! ! !...
- OJ1000: A+B Problem
- 基於tiny4412的Linux內核移植--- 中斷和GPIO學習(2)
- Kafka : 报错 KafkaController NoSuchElementException : : key not found : [xxx]
- web前端开发常用的优化技巧汇总
- 大快DKH大数据网络爬虫安装教程(详细图文步骤)
- 用matlab解根3乘根2,数值计算课后习题答案--石瑞民.doc
- 三星Note3 SM-N9009 国内天翼版本安装谷歌框架
- 比特率和波特率的关系
- PDF怎么转Word?免费在线 PDF 转 Word 方法分享
- 为远程群晖NAS配置固定的公网URL地址 1/2
- MATLAB三维绘图(四)绘制特殊的三维图
- spring 配置相关
- 移动H5调试神器 vConsole
- C语言实现图书管理系统
- 远山的呼唤山村生存挑战营出行通知
- idle扩展插件_插件ng-Idle的使用
- SAP MM VL02N试图做PGI,报错-存储地点不是为交货项目000010确定的-
- python藏头诗生成器_GitHub - songyifan427/Chinese_poem_generator: 唐诗、宋词生成器,有详细说明...