问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 怎么调用tess4j

发布网友 发布时间:2022-05-09 08:20

我来回答

3个回答

热心网友 时间:2024-02-10 21:16

  网上传的代码示例大多是在Windows下安装Tesseract ORC后通过CMD命令操作进行图识别操作.而 Tess4j 针对Tesseract 提供了JNI支持,同时还提供了一些图片操作的工具类,提供比如图片放大,旋转,黑白处理,锐化 等用来提高识别率的操作.操作十分方便. Tess4j 简单到超乎想象,只是自己在使用环境比较特殊,遇到很多问题,这里一一道来.

  

  1 依赖包.

  tess4j.jar   Tess4j的本尊,用于Tesseract 的JNA支持,并提供相关操作工具类

  jna.jar       看到Tesseract 的第一反应是要用cmd或JNI来操作它,了解了一下 Tess4j 使用的JNA,有点JNI高级版的感觉,CMD什么的,玩蛋蛋去吧.

  jai_imageio.jar   图片操作的工具类,支持Tiff就靠它了. 它的 META-INF 里有文章,这个后面详说.

  还有其它几个包,是用于操作PDF用的吧,没有引用,也没有发生错误.所以的包可以在 Tess4j 的文件目录里面找到.

  

  2 操作代码.

  官方的示例中给出了一个超级简单有效的示例,不足20行代码!!!我和小伙伴们都被震惊了!!!关键代码如下:

  Java代码  收藏代码

  File imageFile = new File("eurotext.tif");

  Tesseract instance = Tesseract.getInstance();  // JNA Interface Mapping

  String result = instance.doOCR(imageFile);

  实际使用中为了提高识别率还要对图片作一些处理来提高识别率,使用Tess4j 自带的工具类即可完成,这样识别率就大大的提高了.( 这里无法解决 验证码 中干扰线问题,干扰线的清理,网上有其它方式处理 )

  Java代码  收藏代码

  // 这里对图片黑白处理,增强识别率.这里先通过截图,截取图片中需要识别的部分

  BufferedImage textImage = ImageHelper.convertImageToGrayscale(ImageHelper.getSubImage(panel.image, startX, startY, endX, endY));

  // 图片锐化,自己使用中影响识别率的主要因素是针式打印机字迹不连贯,所以锐化反而降低识别率

  // textImage = ImageHelper.convertImageToBinary(textImage);

  // 图片放大5倍,增强识别率(很多图片本身无法识别,放大5倍时就可以轻易识,但是考滤到客户电脑配置低,针式打印机打印不连贯的问题,这里就放大5倍)

  textImage = ImageHelper.getScaledInstance(textImage, endX * 5, endY * 5);

  3 使用中遇到的问题

  3.1 相关DLL文件,相关字库文件

  liblept168.dll,libtesseract302.dll 其中 liblept168.dll 要先加载.

  tessdata 存放的是字库文件,如果需要数字,英文以外的支持需要 Tesseract 页面下载相关字库.

  因为公司使用时是将文件打成Jar布署,然后提供客户端下载,所以就把以上两个文件一起打进tess4j.jar里面,然后客户端使用时 tessdata 直接可用,而 liblept168.dll,libtesseract302.dll 需要释放到临时目录然后加载.相关代码:

热心网友 时间:2024-02-10 21:16

java 调用tess4j步骤如下:

一 下载相关的jar包

1.下载Tess4J jar,网址:http://sourceforge.net/projects/tess4j/

2.如果你使用的JVM 64位的,还需要下载 liblept168.dll、libtesseract302.dll的64位文件,下载地址:https://github.com/charlesw/tesseract/tree/master/src/lib/TesseractOcr/x64


二 项目整合

先看看最后整合成功的目录结构,开发环境:Win8.1 64位 + Eclipse 4.2 + JDK 7 64位,工程目录结构如下:


       src目录下是 Tess4J的源码目录,test目录 是Tess4J官方提供的demo目录,并将 liblept168.dll、libtesseract302.dll,gsdll64.dll(pdf转换需要用到此文件) 三个文件拷贝到 src根目录下。


三 测试代码

/**
    * Test of doOCR method, of class Tesseract1.
    */
   @Test
   public void testDoOCR_File() throws Exception {
       System.out.println("doOCR on a PNG image");
       File imageFile = new File("eurotext.png");
       String expResult = "The (quick) [brown] {fox} jumps!\nOver the $43,456.78 <lazy> #90 dog";
       String result = instance.doOCR(imageFile);
       System.out.println(result);
       assertEquals(expResult, result.substring(0, expResult.length()));
   }

热心网友 时间:2024-02-10 21:17

你说的是tom4j吧?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 cd quick4j是什么意思 毛孔粗大涂蜂蜜有用吗 蜂蜜水对治疗便秘到底有没有用呀? 蜂蜜有什么作用啊?都说对身体好,没感觉出来啊 蜂蜜除了饮用外还有没有其它的作用?求解答 蜂蜜有什么作用啊?都说对身体好,没感觉出来啊。 蜂蜜有没有医疗保健作用 感觉超市里卖的蜂蜜喝着没什么效果,有什么好蜂蜜推荐吗 为什么我喝了很久的蜂蜜了,还是没有用??? 蜂蜜除了吃,还有没有其他用? 我每天坚持喝蜂蜜,已经快三年了,怎么一点儿作用都没有? 很多人说蜂蜜能够通便,为啥我感觉喝了没有什么用处? 请问做嵌入式linux驱动开发的工作需要对驱动熟练到什么程度才行? 蝴蝶兰怎样养才好 图片英文翻译? &quot;图片&quot;英文怎么写? 图片英语怎么写? “图片”的英语是什么? 图片的英文单词 客户在拼多多下单地址跟发货地址是一个地方会不会算违规? 诺基亚所有手机中哪款性能最好? 如何重装电脑`` 推荐几款诺基亚手机,白色的, virustotal扫描结果 呼市股票去哪开户好,有门槛吗? 呼和浩特炒股怎么开户,免费吗?在哪里开户比较好?我想开个户又不知道去哪好 呼和浩特万通证券买股票怎么开户 呼和浩特华金证券买股票怎么开户 呼和浩特市股票开户佣金办理一般是多少 在呼市怎样开户炒股啊??具体地点在哪啊?? 我想在呼市玩股票谁能告诉我怎么办理手续吗 2014年江西中级经济师准考证打印时间是哪天? 2002年中级经济师考试时间 手机上有没有能够消除视频马赛克的软件? 手机视频去除马赛克的软件!!! 视频怎么去除马赛克,(手机软件)有的话麻烦发一个,,,不清楚的别进,,, 这种空心表带怎么拆? 求关注的白底素材在哪里找 请问这种图片底纹怎么用ps做出来,不包括字,就是白底上的那个效果。 初级会计报名,需要提前注册再报名吗? 还是只要报名时间到了,直接进去注册报名就行了?