java 实现 OCR 图片文字识别中文
2020年1月9日大约 1 分钟
背景
我们上一节讲过了针对英文的 ocr 实现,现在我们来尝试一下中文识别。
我们准备一张简单的中文图片:

准备工作
下载中文训练集
下载地址 所有语言的训练集
此处直接下载 简体中文训练集,然后将其拷贝到我们的
tessdata 文件夹中:
C:\Program Files (x86)\Tesseract-OCR\tessdata
maven 引入
net.sourceforge.tess4j
tess4j
4.5.1
编码
package com.github.houbb.ocr;
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import java.io.File;
/**
* @author binbin.hou
* @since 1.0.0
*/
public class Main {
public static void main(String[] args) throws TesseractException {
ITesseract instance = new Tesseract();
// 指定训练数据集合的路径
instance.setDatapath("C:\\Program Files (x86)\\Tesseract-OCR\\tessdata");
// 指定为中文识别
instance.setLanguage("chi_sim");
// 指定识别图片
File imgDir = new File("D:\\code\\ocr\\src\\main\\resources\\nihao.png");
long startTime = System.currentTimeMillis();
String ocrResult = instance.doOCR(imgDir);
// 输出识别结果
System.out.println("OCR Result: \n" + ocrResult + "\n 耗时:" + (System.currentTimeMillis() - startTime) + "ms");
}
}
测试结果
OCR Result:
你 好 啊 , 文 字 识 别 。
耗时:1499ms
总结
目前看来还是比较简单的,但是实际应用常见会更加的复杂。
比如中英文混杂的文字,如何降低色彩等噪音信息。
关于图片相关的信息也需要进一步学习。
参考资料
贡献者
binbin.hou