基本概念
Tesseract Open Source OCR Engine:包含一个OCR引擎-
libtesseract
和一个命令行程序-tesseract
。Tesseract 4添加了一个新的基于LSTM的OCR引擎,该引擎专注于行识别,但仍支持Tesseract 3的传统Tesseract OCR引擎,该引擎通过识别字符模式进行工作。通过使用传统OCR引擎模式(--oem 0),可以与Tesseract 3兼容。它还需要训练有素的数据文件来支持旧式引擎,例如tessdata存储库中的文件。
Tess4J:Tesseract OCR API的Java JNA包装器。
Maven
<dependencies><dependency><groupId>net.sourceforge.tess4j</groupId><artifactId>tess4j</artifactId><version>4.4.0</version></dependency></dependencies>
GitHub
Tesseract Open Source OCR Engine :/tesseract-ocr/tesseract
Tess4J项目:/nguyenq/tess4j
语言库:/tesseract-ocr/tessdata/blob/master/eng.traineddata
DEMO
1、首先创建一个新的maven项目,将所需jar包引入pom.xml
2、在任意地方创建一个文件夹tessdata,将下载的chi_sim.traineddata 和 eng.traineddata语言包存放在该目录下,也可以直接存放到自己项目的resources/tessdata目录下。
3、编写代码
// 识别图片的路径(修改为自己的图片路径)String path = "D:\\test.jpg";// 语言库位置(修改为跟自己语言库文件夹的路径)String lagnguagePath = "D:\\tessdata";File file = new File(path);ITesseract instance = new Tesseract();//设置训练库的位置instance.setDatapath(lagnguagePath);//chi_sim :简体中文, eng 根据需求选择语言库instance.setLanguage("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);
5、可选步骤:配置环境变量(TESSDATA_PREFIX)
环境变量地址指向你存放语言包的文件夹路径,如:我的语言包路径在 D:\tessdata
运行结果
以一张简单的图片为例:图片放置在D:\test.png根目录下,因此使用代码测试前需要修改代码中指定的两个路径!!!
识别图片:
运行代码后:
常见问题
解决chi_sim.traineddata报read_params_file: parameter not found: allow_blob_division
Warning: Invalid resolution 0 dpi. Using 70 instead.
关于tesseract 出错信息:read_params_file: Can't open chi_sim
扩展学习
提高识别率
1.对称近邻均值滤波
参考:
/fangbinwei93/article/details/50562449
2.指定config为digits,并修改tessdata\configs\digits文件,将白名单中设置需要识别的内容。如只需要识别数字,则指定whitelist为0123456789即可。
也可在程序中指定:
参考:
/hellousb/article/details/39477859
3.尽量指定图像的一块区域识别。比如验证码起始位置和结束位置很多空白的,可以去掉,只对验证码区域做识别。
4.训练字库,提升识别率
参考:
/white0blue/article/details/47972405
/tuling_research/article/details/41091163
其他参考
tesseract-ocr参数:http://www.sk-spell.sk.cx/tesseract-ocr-parameters-in-302-version
参考文章
/p/ef60ef5395c5
/asker009/p/11098220.html
/qincidong/article/details/82781361
/zai_xia/article/details/80003778