基于Tess4j的图片识别

基于Tess4j的图片识别Tess4J是对TesseractOCRAPI的JavaJNA封装。tesseract是跨平台的OCR(OpticalCharacterRecognition,光学字符识别)引擎,让开发者非常容易的集成OCR能力到他们自己的应用。通过强大的API从图片中识别和提取文本内容。Tess4J支持主流的图片格式,如TIFF,JPEG,GIF,PNG,BMP,andPDF。…

大家好,又见面了,我是你们的朋友全栈君。

        Tess4J是对Tesseract OCR API的Java JNA 封装。tesseract是跨平台的OCR(Optical Character Recognition,光学字符识别)引擎,让开发者非常容易的集成OCR能力到他们自己的应用。通过强大的API从图片中识别和提取文本内容。Tess4J支持主流的图片格式,如TIFF,JPEG,GIF,PNG,BMP,and PDF。
        OCR(Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题,ICR(Intelligent Character Recognition)的名词也因此而产生。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。

1、maven依赖

<!– https://mvnrepository.com/artifact/net.sourceforge.tess4j/tess4j –>
    <dependency>
        <groupId>net.sourceforge.tess4j</groupId>
        <artifactId>tess4j</artifactId>
        <version>4.3.1</version>
    </dependency>

2、示例代码

String path = “D:\\wspace\\tess4j-demo2”;        //测试数据路径
        
        File file = new File(path + “\\test-data\\testPhone.jpg”);
        ITesseract instance = new Tesseract();
 
        File directory = new File(path);
        String courseFile = null;
        try {

            courseFile = directory.getCanonicalPath();
        } catch (IOException e) {

            e.printStackTrace();
        }
 
        //设置训练库的位置
        instance.setDatapath(courseFile + “\\tessdata”);
 
//        instance.setLanguage(“eng”);//chi_sim :简体中文, eng    根据需求选择语言库
//        instance.setLanguage(“chi_sim”);//chi_sim :简体中文, eng    根据需求选择语言库
        
//        instance.setLanguage(“num”);//自定义的训练库
        instance.setLanguage(“hz”);//自定义的训练库
        String result = null;
        try {

            long startTime = System.currentTimeMillis();
             result =  instance.doOCR(file);
            long endTime = System.currentTimeMillis();
            System.out.println(“Time is:” + (endTime – startTime) + ” 毫秒”);
        } catch (TesseractException e) {

            e.printStackTrace();
        }
        
        System.out.println(result);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144052.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • keyvaluepair_C# KeyValuePair<TKey,TValue>的用法【转】 .

    keyvaluepair_C# KeyValuePair<TKey,TValue>的用法【转】 .KeyValuePair可以这样实例化KeyValuePairmcmillan=newKeyValuePair(“McMillan”,99);取值Console.Write(mcmillan.Key);Console.Write(“”+mcmillan.Value);以下是一个把对象放到数组中usingSystem;usingSystem.Collections.Generic…

    2022年7月13日
    18
  • 修改asmx样式

    修改asmx样式今天看到一张图,asmx的WebService。长这样:当时就感觉有意思,这个页面风格和我们平时的不一样,我们平时的WebService长这样:我们如果在WebMetohd上面加注释,即[WebMethod(Description=”注释”)],那么长这样:那么问题就来了,第一张图里面的样式是如何实现的呢?在浏览器上进入调试模式观察,可以发现它的html和我们的有点不…

    2022年4月29日
    40
  • 用js来实现那些数据结构03(数组篇03-排序及多维数组)

    终于,这是有关于数组的最后一篇,下一篇会真真切切给大家带来数据结构在js中的实现方式。那么这篇文章还是得啰嗦一下数组的相关知识,因为数组真的太重要了!不要怀疑数组在JS中的重要性与实用性。这篇文章分为

    2022年3月25日
    40
  • html中去除下划线,下划线怎么取消?「建议收藏」

    html中去除下划线,下划线怎么取消?「建议收藏」下划线怎么取消??本文介绍word文档中下划线和html中文字下划线取消的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。HTML网页中下划线怎么取消?在HTML网页中我们经常会使用到超链接来实现页面的跳转,我们在HTML网页中添加超链接时默认是有下划线的,有时我们不想要下换线该如何去掉下划线呢?可以用css中text-decoration:none来去掉超链接的下划线。示…

    2022年5月7日
    150
  • HTML学习笔记之二(回到顶部 与 回究竟部)

    HTML学习笔记之二(回到顶部 与 回究竟部)

    2022年2月1日
    44
  • spring boot dubbo配置(上古卷轴5基础整合包)

    SpringBoot整合Dubbo3.0基础配置(dubbo-spring-boot-starter)一、说明众所周知,阿里早已把dubbo捐赠给了Apache,现在dubbo由Apache在维护更新,dubbo也已经成了Apache下的顶级项目。所以本demo项目所依赖的坐标是Apache官方最新的3.0.4坐标。<dependency><groupId>org.apache.dubbo</groupId><artifac

    2022年4月10日
    128

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号