`

java下OCR的实现[j4l简单使用]

阅读更多

昨天在做一些验证码识别,因为主要用的语言是java,所以也是用java来做了。

 

刚开始自然是思路全无,后来在网上找到了J4L 这个工具jar

 

网站:http://www.java4less.com/ocrtools/ocrtools.php?info=guide

 

使用起来也是很简单:

这边先下载他的jar包:

http://www.java4less.com/ocrtools/ocrtools.php?info=download

 

下载后解压 得到一堆文件:



 运行一下那三个bat文件就可以看到效果:



 

如果你是64位的机器 请把bits64里的dll复制到这个目录并且覆盖掉 不然会有平台不支持的错误

 

在代码里使用也很简单 把lib下的jar包导入到build path

并且把tess3WrapperDLL.dll  leptonlibd.dll  放到path下(%java_home%/bin啊之类的 就是环境变量里设置的path)

 

接下去就可以简单使用了:

我这边的代码为了处理一下验证码 直接拿来用基本上用不了 所以用了http://ykf.iteye.com/blog/212431 里面图像的处理类

代码很简单 如下:

	public static String getVerifyText(InputStream ins) throws MalformedURLException,
			IOException {
		OCRFacade facade = new OCRFacade();

		BufferedImage bi = ImageIO.read(ins);

		ImageFilter ifter = new ImageFilter(bi); 

		bi = ifter.changeGrey(); //这里只用了一个二值化 可以再多加几个

		ByteArrayOutputStream bao = new ByteArrayOutputStream();
		ImageIO.write(bi, "png", bao);

		String text = facade.recognizeImage(bao.toByteArray(), "png", "eng");

		System.out.println("Text in the image is: ");
		System.out.println(text);
		return text;
	}

 结果:



 

试了一下 这类简单的识别 正确率虽然不是特别高 但是差不多足够用了

 

 

不过由于用到了外部的dll 实际使用中如果使用多线程(就算是单线程也一样) 识别的图片一多(单线程下 几百个) 虚拟机就会崩溃...不适合进行批量工作  不过这是找到最好的了...

  • 大小: 68.6 KB
  • 大小: 86.9 KB
  • 大小: 10.1 KB
0
0
分享到:
评论
5 楼 Ryan1Zheng 2016-10-08  
tess3Wrapper
4 楼 fair_jm 2015-11-14  
fair_jm 写道
lishankang 写道
楼主没有遇到这个问题吗?

Exception in thread "main" java.lang.UnsatisfiedLinkError: no TessWrapperDLL in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.java4less.ocr.tess.Wrapper.<clinit>(Unknown Source)
at com.java4less.ocr.tess.OCRFacade.recognizeFile(Unknown Source)
at testOrc.TestORC.main(TestORC.java:18)


文章里说了 把这个bin复制到path下

把这个dll。。。说错了
你可以直接复制到java的bin下面去
3 楼 fair_jm 2015-11-14  
lishankang 写道
楼主没有遇到这个问题吗?

Exception in thread "main" java.lang.UnsatisfiedLinkError: no TessWrapperDLL in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.java4less.ocr.tess.Wrapper.<clinit>(Unknown Source)
at com.java4less.ocr.tess.OCRFacade.recognizeFile(Unknown Source)
at testOrc.TestORC.main(TestORC.java:18)


文章里说了 把这个bin复制到path下
2 楼 lishankang 2015-11-03  
楼主没有遇到这个问题吗?

Exception in thread "main" java.lang.UnsatisfiedLinkError: no TessWrapperDLL in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.java4less.ocr.tess.Wrapper.<clinit>(Unknown Source)
at com.java4less.ocr.tess.OCRFacade.recognizeFile(Unknown Source)
at testOrc.TestORC.main(TestORC.java:18)
1 楼 topcat 2013-07-28  
不错呀!留下,以后可能用的到。

相关推荐

    java验证码识别库,J4L和Tess4J

    在提供的压缩包文件中,“tesseract验证码识别java.zip”可能包含了使用Tess4J进行验证码识别的示例代码和依赖库,而“j4locrl验证码识别java.zip”则可能包含使用J4L库的相关示例。通过解压并分析这些文件,你可以...

    j4l图片数字识别

    这个工具被称为“j4l”,它可能是一个Java库或者一个集成开发环境(IDE)插件,帮助开发者处理光学字符识别(OCR)的任务。 描述中的“识别概率还可以”暗示j4l在执行OCR任务时,其准确率处于中等水平。这意味着它...

    Java 二维码,QR码,J4L-QRCode 的资料整理

    Java 二维码技术主要涉及到生成和解析二维码的库,如J4L-QRCode,这是一个用于创建QR码条形码的Java组件。QR码,全称为Quick Response Code,是一种二维条码,由日本Denso Wave公司在1994年发明,主要用于存储大量...

    JAVA EJEMPLOS.zip_hearingq4l_java socket _zip

    在这个"JAVA EJEMPLOS.zip_hearingq4l_java socket _zip"压缩包中,包含了一系列与Java网络通信相关的示例代码,主要涉及到Java Socket编程。Java Socket是Java API中用于实现网络上不同设备间双向通信的接口,它是...

    awakened _java_windoww4l_

    标题“awakened_java_windoww4l_”暗示我们讨论的是一个Java项目,可能是用于创建一个后台服务,该服务能够保持应用在系统休眠时依然活跃,并在唤醒后展示特定的用户界面。这个项目的重点是处理Android系统的唤醒锁...

    TSC Alpha-4L中文使用说明书.pdf

    "TSC Alpha-4L中文使用说明书.pdf" 本文档提供了TSC Alpha-4L便携型条形码打印机的使用说明书,旨在帮助用户正确地使用和维护该打印机。下面是该说明书中所涉及到的知识点: 1. 打印机简介 * 标准配备:TSC Alpha...

    DFA-java.zip_DFA java_anglee4l_java DFA

    在这个压缩包“DFA-java.zip”中,作者anglee4l分享了他使用Java实现DFA(Deterministic Finite Automaton,确定有限状态自动机)的代码。DFA是FSA的一种特例,它具有明确的唯一路径来接受输入字符串。 DFA在编译...

    libv4l-4.0.0

    例如,开发者可以通过GStreamer的API调用libv4l,实现视频预览、录制、编码、解码等功能,同时还能处理各种视频格式和编码标准,如MJPEG、H.264等。 在文件列表中,"libv4l-0.4.0"可能包含了库的源代码、头文件、...

    TSC Alpha-4L英文使用说明书.pdf

    "TSC Alpha-4L英文使用说明书.pdf" 本篇资源摘要信息主要介绍TSC Alpha-4L移动条形码打印机的使用说明书,以下是从标题、描述、标签和部分内容中提取的相关知识点: 1. TSC Alpha-4L移动条形码打印机的产品规格:...

    宝典2017_java面试宝典_hourcqj_atomicd4l_

    《宝典2017_java面试宝典_hourcqj_atomicd4l_》这份资料是针对Java程序员面试准备的一份综合教程,源自某培训机构的教学资源。由于提及“hourcqj”和“atomicd4l”,这可能是作者或课程的特定代号。尽管资料可能不是...

    libv4l-0.6.4.tar.gz

    libv4l(Linux Video for Linux)是一个开源项目,其目标是为Linux平台上的视频捕获和编码提供一个统一的、易于使用的API。它是一个用户空间库,用于简化Video4Linux2(V4L2)接口的使用,V4L2是Linux内核提供的用于...

    java中log4j的扩展写法

    ### Java中Log4j的扩展写法 #### 一、引言 在Java开发中,日志记录是一项非常重要的功能,它有助于跟踪程序运行时的状态并帮助开发者进行问题定位和性能优化。Log4j作为一款优秀的日志管理工具,被广泛应用于各种...

    j4locr_eval

    J4L OCR(Java for Leptonica OCR)可能是基于Leptonica,这是一个广泛使用的图像处理库,而j4locr_eval可能是它的Java接口或者封装,使得Java开发者能够方便地利用Leptonica的OCR功能。 1. **OCR技术**:OCR技术...

    TSC Alpha-4L安装使用说明书.pdf

    《TSC Alpha-4L打印机安装使用指南》 TSC Alpha-4L是一款高效能的条形码打印机,适用于各种工业、商业环境。本指南将详细介绍如何正确安装和使用这款设备,确保用户能够顺利地进行标签打印工作。 一、设备开箱与...

    libv4l-0.6.2-test.tar.gz

    本文将深入探讨libv4l库的功能、作用以及如何在Linux环境下使用这个测试版本。 首先,libv4l的核心功能是提供一个统一的接口,使得开发者能够更容易地与各种V4L(Video4Linux)兼容的硬件进行交互,如摄像头和其他...

    SAM4L技术指导资料

    - **嵌入式 Flash 存储器**: SAM4L 系列提供从 128 KB 到 512 KB 不等的嵌入式 Flash 存储空间,支持 64 位宽访问,能够在 24 MHz 下实现零等待状态访问。 - **嵌入式 SRAM**: 最多可配备 64 KB 的嵌入式 SRAM,用于...

    libv4l-dev

    opencv 依赖libv4l来打开摄像头,不然会报HIGHGUI ERROR: V4L/V4L2: VIDIOC_S_CROP

    J4LChartDemos

    【J4LChartDemos】是一个关于Java图表库的演示项目,主要展示了如何在Java应用程序中使用J4L Chart库创建各种丰富的图表。这个库特别适用于那些需要在GUI(图形用户界面)中显示数据统计、分析结果或者进行数据可视...

    VideoQtV4l2_QT_在QT环境下使用v4l2框架摄像头测试_tears93v_

    在Linux环境下,开发图形...总之,`VideoQtV4l2`项目提供了一个学习如何在Linux的QT环境下利用v4l2框架操作摄像头的宝贵实例。掌握这些技能后,开发者能够构建自己的多媒体应用,如视频会议、监控系统或图像处理工具。

Global site tag (gtag.js) - Google Analytics