目录
什么是OCR
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程
方案 | 说明 |
---|---|
百度OCR | 收费 |
Tesseract-OCR | Google维护的开源OCR引擎,支持Java,Python等语言调用 |
Tess4J | 封装了Tesseract-OCR ,支持Java调用 |
Tesseract-OCR特点:
- Tesseract支持UTF-8编码格式,并且可以“开箱即用”地识别100多种语言。
- Tesseract支持多种输出格式:纯文本,hOCR (HTML),PDF等
- 官方建议,为了获得更好的OCR结果,最好提供给高质量的图像。
- Tesseract进行识别其他语言的训练。具体的训练方式,请参考官方提供的文档: https://github.com/tesseract-ocr/tessdoc
Tess4j案例
创建项目导入tess4j对应的依赖
<dependency>
<groupId>net.sourceforge.tess4j</groupId>
<artifactId>tess4j</artifactId>
<version>4.1.1</version>
</dependency>
导入中文字体库, 把资料中的tessdata文件夹拷贝到自己的工作空间下
编写测试类进行测试
import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import java.io.File;
public class Application {
public static void main(String[] args) throws TesseractException {
//创建Tesseract对象
ITesseract tesseract = new Tesseract();
//设置字体库路径
tesseract.setDatapath("D:\\");
//设置识别的语言-简体中文
tesseract.setLanguage("chi_sim");
//执行ocr识别(识别图片)
String result = tesseract.doOCR(new File("D:\\123.png"));
//替换回车和tal键 使结果为一行
System.out.println("识别的结果为:"+result);
}
}
图片文字识别-管理敏感词
一、首先创建一个父工程tess4j