本文主要是介绍Java实现CR-图片文字识别功能(超简单),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一.什么是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进行识别其他语言的训练,具体的训练方式请参考官方提供的文档:Tesseract User Manual | tessdocTesseract documentationhttps://tesseract-ocr.github.io/tessdoc/
三.使用案例
1.导入相关的依赖
XML
1 2 3 4 5 | <dependency><groupId>net.sourceforge.tess4j</groupId><artifactId>tess4j</artifactId><version>4.1.1</version> </dependency> |
2.导入中文字体库
地址: tessdata.zip - 蓝奏云文件大小:1.6 M|https://wwvc.lanzouj.com/iuPhc1h7j46f
3.编写测试类进行测试
待识别的图片
测试程序
JAVA
package com.atguigu.gulimall.search.utils;import net.sourceforge.tess4j.Tesseract; import net.sourceforge.tess4j.TesseractException;import java.io.File;/*** @author Jason Gong* @version 1.0* @Date 2023/12/8* @Description*/ public class Main {/*** 识别图片中的文字** @param args*/public static void main(String[] args) throws TesseractException {//创建实例Tesseract tesseract = new Tesseract();//设置字体库的路径tesseract.setDatapath("C:\\Users\\c2405\\Desktop\\tessdata");//设置语言//字体库为chi_sim.traineddata,语言取.前面的内容,即文件名//简体中文tesseract.setLanguage("chi_sim");//识别图片String ocr = tesseract.doOCR(new File("C:\\Users\\c2405\\Desktop\\apic21002.jpg"));//打印识别的结果//打印的时候可以去除回车和tab空格//System.out.println(ocr.replaceAll("\\n|\\r","-"));System.out.println(ocr);} } |
识别的结果
这篇关于Java实现CR-图片文字识别功能(超简单)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!