Java使用Tess4J实现图像文字识别
OCR技术
OCR(Optical Character Recognition),光学字符识别的意思,也被称作文字识别。简单讲就是对图片文件中的文字进行识别和提取的过程。现实生活中使用的场景也非常多,比如文件扫描、车牌号识别、图片内容识别等。图像识别也是人工智能的一个重要领域。 Tess4J
Tesseract是一个开源的OCR引擎,Tess4J则是对Tesseract OCR API的Java JNA封装,使java能够通过调用Tess4J的API来使用Tesseract OCR。Tesseract OCR是支持Tess4J进文件文字识别的基础,Tess4J支持TIFF、JPEG、GIF、PNG、BMP、PDF等格式。Tess4J可直接使用Maven方式引入。 快速体验
环境信息
操作系统:Ubuntu 18.04.6 LTS
JDK:openjdk version "1.8.0_352"
Maven:Apache Maven 3.6.0
1、安装Tesseract
按照官方文档安装Tesseract,Ubuntu系统可以直接通过apt 来安装。sudo apt install tesseract-ocr sudo apt install libtesseract-dev
2、新建maven工程,引入tess4j依赖。 net.sourceforge.tess4j tess4j 5.4.0
3、下载tess4j语言库,下载好后将tessdata文件夹拷贝到maven工程项目代码里,与src 目录同级。
代码结构
4、java调用tess4j实现图像识别,代码如下:package org.cj.tess4j; import net.sourceforge.tess4j.ITesseract; import net.sourceforge.tess4j.Tesseract; import net.sourceforge.tess4j.TesseractException; import java.io.File; public class Demo { public static void main(String[] args) throws TesseractException { ITesseract instance = new Tesseract(); //指定语言训练模型数据的目录 instance.setDatapath("tessdata"); //指定语言种类, 中文是chi_sim instance.setLanguage("chi_sim"); File imageFile = new File("images/tess4j/4ocr-1.png"); long startTime = System.currentTimeMillis(); String result = instance.doOCR(imageFile); System.out.println("识别结果: " + result + "r 耗时: " + (System.currentTimeMillis() - startTime) + "ms"); } }
5、运行预览
图片内容
图片内容
识别结果
识别结果注意问题
1、运行的时候提示Unable to load library "tesseract"
提示这个是因为没有安装tesseract,ubuntu环境执行sudo apt install tesseract-ocr 安装。
2、运行的时候提示read_params_file: parameter not found: enable_new_segsearch
这里下载的训练数据包是有问题的,在这重新下载tessdata训练数据包。使用总结
1、Tesseract最大优势就是开箱即用,且拥有大量的语言训练数据。
2、识别的速度慢、耗时长。
3、识别的精度不是很高,甚至有时候会很低,此时就需要自己按需去训练数据包了。
4、依赖语言训练包,官方提供了三种训练数据包,分别是tessdata_fast、tessdata_best、tessdata,这三个训练数据包的差异如下,具体可到官网查阅,推荐使用tessdata_best数据包。
Traineddata Compare
古人十五句醒世名言,足以令人醍醐灌顶1。道高益安,势高益危道德愈高尚则愈安全,权势愈高则愈是危险。追求权势地位,高处不胜寒,爬得越高,摔得越重追求道德完善,一览众山小,越到高处,越是平安。2。思而后动,论而后行办事要
诗歌难过难过甘肃温进伟我有点难过三年了在小区值班经过酷暑也经过严寒芸芸众生来去匆匆唯独放不下的是大家的绿码请带好口罩扫一扫高高兴兴骑着绿码回家如今我却骑羊回家守护了别人却没能守护好自身我真
2023最重要的是什么?2023最重要的是什么?这是007写作社群创始人覃杰老师发起的这么一个思考,想要过好这一年,先得想清楚这一年最重要的是什么?是实现什么目标?还是认真对待某一个人或者某一件事?孙老师
诗人角巴音河(外五首)文刘大伟和宽哥欣赏巴音河夜景开阔,悠长,梦幻甚至感受到了它的年轻奔出祁连,把荒漠和戈壁穿在身上一直奋力向前走的河不都是年轻的吗?捋捋被风吹乱的头发用半卷残稿抒情的诗人不都是年轻的吗
每天晚饭都要喝二两酒的人,最后身体都咋样了?看完后受益匪浅时光飞快,在如今这个快节奏的社会,可以说每个人生活在这个世界自然面临着烦恼和苦闷,人类的悲喜并不相通。那问题来了何以解忧?有人便喜欢喝几口小酒,让平淡的生活增添点色彩。那么,每天晚
消极,是因为没看到希望其实好多时候消极是一种很值得关注和同情的状态。消极绝不是天生的持续性的,也不是无缘无故的。消极的人很大程度上不是不愿意抖起精神,而是因为他们可能入错了行,或者是没遇到对的人,没找到
做人,哪怕再没心眼,这几件事也要瞒着兄弟姐妹,这是高情商图源自网络侵权请联系删除兄弟姐妹是我们在这个世界上血脉相连的亲人,我们从小一起长大,共同抵挡着生活中的风霜雨雪。有些人认为,和兄弟姐妹之间的相处就要坦诚以待,不应该有任何隐瞒。实际
从两千万分之一到两千分之一仰山朝圣之路诗和源芳见闻录(上)在去往位于黄山的仰山之前,其实是不知道仰山的。严格来讲,直到2019年,仰山是什么,在哪里,有什么故事,有什么传说,都不知晓。知道仰山还是因为要在位于仰山山脚下的休宁县源芳乡源芳村
穿旗袍需不需要穿内衣和裤子?旗袍是我们中国的传统服饰,也是我们中国的国粹,即使旗袍有很多年的历史,但是现代女人对旗袍的喜欢只增不减。那么今天我们就来了解一下穿旗袍需不需要穿内衣?以及穿旗袍需不需要穿裤子呢?事
王思聪携小15岁新女友路边店嗦粉!身材发福显油腻,土味情话很溜自从上次路人偶遇王思聪牵手女友去三亚餐厅吃饭,网友惊奇的发现女友已不是与王思聪相处一年半的慎婕后,20岁的新女友小肉安就高调的接过了慎婕的棒,正式开启了狂秀恩爱的模式。1月8日,有
57岁巩俐罕露面!雇5个保镖随从超气派,脸色蜡黄身材走样似大妈1月9日,娱乐看点曝光了一段偶遇巩俐的画面。久未露面的巩俐罕见现身街头,但其状态好似不佳,身材走样,脸色蜡黄,不少网友调侃垮了!画面里的巩俐身穿一身白色纱衣,透过纱衣仿佛能看见巩俐