JAVA Tesseract OCR引擎
Tess4j是一个基于Tesseract OCR引擎的Java库, Tesseract库最初由惠普实验室于1985年开发,后来被Google收购并于2006年开源。识别效果不好,速度还慢,但是好早好早了。
一、POM依赖
net.sourceforge.tess4j
tess4j
5.12.0
net.java.dev.jna
jna
5.14.0
二、配置文件 TesseractOcrConfiguration
import cn.cakeerp.util.StrUtil;
import net.sourceforge.tess4j.Tesseract;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class TesseractOcrConfiguration {
@Bean
public Tesseract tesseract() {
Tesseract tesseract = new Tesseract();
// 设置训练数据文件夹路径
tesseract.setDatapath(StrUtil.erpConfig.getTraineddata());
// 设置为中文简体
tesseract.setLanguage("chi_sim");
return tesseract;
}
}
三、使用
@Resource
private Tesseract tesseract;
//直接就可以识别,也可以
System.out.println(tesseract.doOCR(new File("d:\\2.jpg")));
//也可以从 MultipartFile imageFile 里面识别
InputStream is = null;
try {
is = new ByteArrayInputStream(imageFile.getBytes());
BufferedImage bufferedImage = ImageIO.read(is);
String textStr = tesseract.doOCR(bufferedImage);
if (null == textStr || textStr.trim().equals("")) {
return JsonResult.failed("识别失败,结果为空.");
}
log.error("识别内容为:{}", textStr);
return JsonResult.failed("未识别到订单号", -1);
} catch (Exception e) {
return JsonResult.failed(e.getMessage(), -1);
} finally {
if (null != is) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
后续 在官方的仓库中下载到了最新的训练文件 50.2MB结果测试效果还是没啥变化,里面也没有什么可配置的参数。不知道别人怎么用呢。
tessdoc/Data-Files.md at main · tesseract-ocr/tessdoc · GitHub
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

