Skip to content

Latest commit

 

History

History
110 lines (68 loc) · 4.5 KB

readme-zh.md

File metadata and controls

110 lines (68 loc) · 4.5 KB

EasyOCR 使用手册


EasyOCR 是一个使用Java语言实现的 OCR 识别组件,其工作基于 Tesseract-OCR 开源引擎。借助几个简单的API,即能使用Java语言调用 Tesseract-OCR 引擎完成图片内容识别工作。

EasyOCR 最主要特点是能几种常见 CAPTCHA 验证码图片提供自动一体化的识别功能(自动化完成图片清理、识别 CAPTCHA 验证码图片内容的工作)。

CAPTCHA:Completely Automated Public Turing Test to Tell Computers and Humans Apart

主要特点:

  • 专门针对常用验证码图片的清理、识别一体化实现,支持对图片的清理、形变和旋转三种场景,内置多种常见类型的验证码图片清理选项
  • API极简,一个方法,一行代码即可完成
  • 由于基于Tesseract-OCR引擎,所以引擎支持的多种语言都可以识别
  • 支持插件,能够编写基于EasyOCR一体化识别的验证码图片清理扩展插件

汉字识别说明:

tesseract-ocr 是一个相对精准的开源免费 OCR 引擎。但 OCR 引擎对汉字识别相对较复杂,尤其是在文字较小、字体设计不清晰、段落文字、文字间距较小等场景下识别会不太理想(这是普遍问题,对比 ABBYY 等顶尖商业引擎,Tesseract OCR 也并不逊色),但如果能提前对待识别图片文字进行处理和优化(具体文字情况,需要具体的转换处理方法,如图片清洗、间距调整、宽高比例调整......等等),则可大幅提高识别率。

EasyOCR 使用步骤:

  1. 必须首先在服务器下载并安装Tesseract-OCR(项目主页)。在PATH环境变量中添加Tesseract-OCR的执行目录(可选,推荐设置)。

  2. 加入easyocr-3.0.4-RELEASE.jar

  • Maven
<dependency>
    	<groupId>cn.easyproject</groupId>
    	<artifactId>easyocr</artifactId>
    	<version>3.0.4-RELEASE</version>
</dependency>
  1. 调用API

EasyOCR API:

EasyOCR 内置两套主要的API:

  1. ImageClean:验证码图片清理类,完成各种验证码图片的清理工作并输出。支持图片清理(内置几种预定义的图片清理模式可以灵活切换选择)、形变和旋转三种场景,并支持场景的同时应用,来提高文字识别率。

  2. EasyOCR:识别图片文字的OCR核心类,完成对OCR引擎的调用。内部可借助ImageClean完成自动清理,识别的一体化工作。

EasyOCR 使用实例:

demo_eurotext.png

img_INTERFERENCE_LINE.png

img_NORMAL.jpg

EasyOCR e=new EasyOCR();
//直接识别图片内容
System.out.println(e.discern("images/demo_eurotext.png")); 
//直接识别验证码图片内容
System.out.println(e.discernAndAutoCleanImage("images/img_INTERFERENCE_LINE.png",ImageType.CAPTCHA_INTERFERENCE_LINE)); 
//验证码图片,经过:普通清理、形变场景自动一体化处理后,识别内容
System.out.println(e.discernAndAutoCleanImage("images/img_NORMAL.jpg", ImageType.CAPTCHA_NORMAL, 1.6, 0.7));
		

提示:对验证码图片进行合适的形变有助于提高识别率。在需要比例调整的特殊情况下,可通过多次分析观察获得合适比例。

for(double imageWidthRatio=0.8;imageWidthRatio<=2;imageWidthRatio+=0.1){
	for (double imageHeightRatio = 0.8;imageHeightRatio<=2.8;imageHeightRatio+=0.1) {
		System.out.println(e.discernAndAutoCleanImage("images/d.jpg",ImageType.CAPTCHA_NORMAL,imageWidthRatio,imageHeightRatio));
	}
}

EasyOCR 中文识别示例:

Tesseract 默认识别语言为英文,通过tesseractOptions属性可以修改识别语言的种类。

EasyOCR e=new EasyOCR();
// 设置识别命令行参数为中文(默认为英文)
e.setTesseractOptions(EasyOCR.OPTION_LANG_CHI_SIM);

System.out.println(e.discern("C:\\novel.png"));

结束

留言评论

如果您有更好意见,建议或想法,请联系我。

联系、反馈、定制、培训 Email:[email protected]

支付宝钱包扫一扫捐助:

支付宝钱包扫一扫捐助

http://www.easyproject.cn