java ocr tesseract_java ocr tesseract, (支持tif,jpg,png,pdf等)

之前在对tif做ocr的时候,在网上找了很多资源,最后选择了tesseract。

关于tesseract相信大多数人找到了资料无非两种,我来一一阐述一下用后的感受。

1.使用tess4j,在实测中发现这种封装后的效果极差,稍微复杂一点的文档识别出来的精度惨不忍睹。所以推荐以下一种方式。

2.安装tesseract原版客户端,使用java中的ProcessBuilder运行。

网上找出来的资源多是3个类,一个OCR,一个OCR2,一个ImageIOHelper,在使用中发现了实在实际上只OCR了tif中的第一个图片,如果tif有多张那么后面都被略过。

于是我把代码研究了后,发现在ImageIOHelper中的这一行代码出了问题

BufferedImage bi = reader.read(0);

IIOImage image= new IIOImage(bi,null,reader.getImageMetadata(0));

tempFile=tempImageFile(imageFile);

ios=ImageIO.createImageOutputStream(tempFile);

writer.setOutput(ios);

writer.write(streamMetadata, image, tiffWriteParam);

BufferedImage bi 只是reader.read的第一张图,并没有把剩余的图片进行读取。

在修改的过程中我又想,又为什么要把原来的文档转成imageFile呢,tesseract客户端不是可以直接读取源文件?难道是转成imageFile后精度会变高,最后我试了一下,发现转没转结果都没有发生改变

最后我整理了一下代码,以下是完整的教程。

1.安装tesseract ,我是用的是5.0,将tessdata.zip中的内容覆盖到安装目录的tessdata文件夹下

2.记得看下环境变量下是否有这两台

一丶安装路径path

db4d122b5f0850f9bcfd19e5401e2080.png

二丶TESSDATA_PREFIX变量

15295ed61758013a7348a324173afdd3.png

3.测试OCR.java 完成

tesseract安装包及tessdata压缩包,和java文件的网盘地址:

链接: https://pan.baidu.com/s/1UchatLQm2WRBksKTd1aK3w 提取码: 14hc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值