Tesseract-Ocr图片内容识别

Tesseract-Ocr介绍

需要一个简单的识别对应一类图片中的金额,发现这个实现和应用非常简单,就此记录一下。

Tesseract 是一种开源文本识别 (OCR)引擎,在Apache 2.0 许可下可用。.

Tesseract 可以通过命令行直接使用,或者(对于程序员)通过使用API从图像中提取打印文本。它支持多种语言。Tesseract 包括外部工具、包装器和培训项目。

官网:https://github.com/tesseract-ocr
训练工具:https://github.com/tesseract-ocr/tesseract/wiki/AddOns
训练数据仓库:
在这里插入图片描述
https://github.com/tesseract-ocr/tessdata
https://github.com/tesseract-ocr/tessdata_best
https://github.com/tesseract-ocr/tessdata_fast

java调用

maven

		<dependency>
			<groupId>net.sourceforge.tess4j</groupId>
			<artifactId>tess4j</artifactId>
			<version>4.1.1</version>
		</dependency>

下载训练库

下载训练库及配置
在这里插入图片描述
直接将对应源码中的tessdata文件夹给加入工程根目录

调用api

public static String readImgNum(String url) {
		ITesseract instance = new Tesseract();
		// 如果未将tessdata放在根目录下需要指定绝对路径
		// instance.setDatapath("the absolute path of tessdata");
		
		// 如果需要识别英文之外的语种,需要指定识别语种,并且需要将对应的语言包放进项目中
		instance.setDatapath("tessdata");
		instance.setLanguage("eng");
//		instance.setLanguage("chi_sim");//chi_sim代表中文库

		// 指定识别图片
		String ocrResult = "";
		try {
			BufferedImage image = ImageIO.read(new URL("https:" + url));
			ocrResult = instance.doOCR(image);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return ocrResult;
	}

eng库源码中带的识别不了数字,也是很尴尬,找这个问题也是找了挺久。

可以直接使用网上的url,或者本地的文件都行

异常解决

  • read_params_file: parameter not found: enable_new_segsearch

直接下载的eng库是有问题的,还是需要去git上重新下载。

  • java.lang.Error: Invalid memory access

对应的data库没有找到,检查对应的库地址

附录

整个工程的资源包下载
中文库
英文库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忙碌的菠萝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值