🍓 简介:java系列技术分享(👉持续更新中...🔥)
🍓 初衷:一起学习、一起进步、坚持不懈
🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏
🍓 希望这篇文章对你有所帮助,欢迎点赞 👍 收藏 ⭐留言 📝
文章目录
- 一、OCR图文识别简介
- 二、Tess4J示例代码
-
- [2.1 引入依赖](#2.1 引入依赖)
- [2.2 导入中文字体库](#2.2 导入中文字体库)
- [2.3 准备一张带文字的图片](#2.3 准备一张带文字的图片)
- [2.4 代码编写](#2.4 代码编写)
- [2.5 结论](#2.5 结论)
一、OCR图文识别简介
Tess4J官网
:Tess4J官网:https://tess4j.sourceforge.net/usage.html
- OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程
技术 | 说明明 |
---|---|
百度OCR | 收米 |
Tesseract-OCR | Google维护的开源OCR引擎,支持Java,Python等语言调用 |
Tess4J | 封装了Tesseract-OCR ,支持Java调用。(使用Tess4J需要不同的词库文件进行支撑 ) |
二、Tess4J示例代码
2.1 引入依赖
xml
<!-- 图片识别文字-->
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>5.9.0</version>
</dependency>
2.2 导入中文字体库
将tessdata放到一个没有中文、特殊字符、空格的目录下
我下载的是简体中文
语言库下载
:
https://github.com/tesseract-ocr/tessdata
2.3 准备一张带文字的图片
2.4 代码编写
我的语音库位置
测试代码
java
public class OcrTest {
public static void main(String[] args) throws TesseractException {
try {
Tesseract tesseract = new Tesseract();
// 语言库位置(修改为跟自己语言库文件夹的路径)
tesseract.setDatapath("D:\\develop\\workspace\\test-demo\\consumer-service\\src\\main\\resources\\tessdata");
//chi_sim :简体中文, 根据需求选择语言库
tesseract.setLanguage("chi_sim");
// 识别图片的路径(修改为自己的图片路径)
File file = new File("D:\\程序员.png");
String result = tesseract.doOCR(file);
// 替换回车和tal键 ,让结果在一行显示
result = result.replaceAll("\\r|\\n", "").replaceAll(" ", "");
System.out.println("识别的结果为:" + result);
} catch (TesseractException e) {
e.printStackTrace();
}
}
}
控制台打印结果
2.5 结论
经过多次换图测试
,发现可以看到还是有很多不准确
的地方.识别还是不太又好。
如果项目对精确度要求较高,还是研究付费的吧。