基于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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • django执行原生sql_mysql语句执行顺序

    django执行原生sql_mysql语句执行顺序前言Django在查询数据时,大多数查询都能使用ORM提供的API方法,但对于一些复杂的查询可能难以使用ORM的API方法实现,因此Django引入了SQL语句的执行方法,有以下三种执行方式ext

    2022年8月7日
    4
  • C# ZIP文件的压缩和解压缩(SharpZipLib.dll)

    C# ZIP文件的压缩和解压缩(SharpZipLib.dll)真是折腾呀,网上虽然有不少的源码但测试几个就是不成功,经过折腾还是折腾出来了现在分享出来给大家。源码还是在网友们的基础上调整的,主要是调整源码大大小写格式。sharpziplib.dll下载:http://pan.baidu.com/share/link?shareid=1016448925&uk=134565274&fid=3214033513首先需要在项目里引用sharp

    2022年7月26日
    5
  • Java自学视频整理(持续更新中…)

    Java自学视频整理(持续更新中…)1.Java基础视频 《张孝祥JAVA视频教程》完整版[RMVB](东西网)历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播客)张孝祥2010年贺岁视频:Java高新技术(传智播客)Java多线程与并发库高级应用(传智播客)尚学堂JAVA视频下载大全(持续更新中…请关注!)(尚学堂)《动力节点,王勇JAVA系列视频教程》(东西网)张孝祥Java高新技术

    2022年7月8日
    22
  • IntelliJ IDEA中怎么全局搜索替换(整个项目)(Eclipse)

    IntelliJ IDEA中怎么全局搜索替换(整个项目)(Eclipse)IntelliJIDEA使用教程(总目录篇)我们用Eclipse或者IntelliJIDEA编程,有时候需要将整个项目的某个字符串替换成其他的。全局搜索我会,我还给调成ctrl+g了呢,但是遇到要全局(整个项目)替换字符串。哎哟,我有点蒙了。这不换了编辑器吗。我用的是eclipse的keymap而且电脑又不是mac。那么问题来啦。怎么找快捷键呢。如下;额,顺便说下…

    2025年6月9日
    5
  • Linux通配符摘要

    Linux通配符摘要

    2021年12月30日
    36
  • 傅里叶变换公式「建议收藏」

    傅里叶变换公式「建议收藏」傅里叶变换的目的:有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。1、FS:(Fourierseries)连续时间周期信号的傅里叶级数,时域上任意连续的周期信号可以分解为无限多个正弦信号之和,在频域上表示为离散非周期的信号,即时域连续周期对应频域离散非周期的特点。时域上连续周期函数,采用FS(傅里叶级数)分解为频域上为非周期、连…

    2022年7月17日
    8

发表回复

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

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