mac os 使用tess4j及入门遇到的坑

windows用户可直接使用tess4j最新的api调用(有maven库),直接跳到第三步验证

转载自     http://www.microshell.com/programming/java/performing-optical-character-recognition-in-java/

若不想多看下面步骤,可直接下载上传的编辑后的jar包版本:tess4j-3.4.3 适用于mac版本

http://download.csdn.net/download/qq_38113432/10259023

一、通过macports安装Tesseract

命令如下:

    sudo port install Tesseract

中间可能会有如下一步,填写y继续即可。

 

二、将darwin / libtesseract.dylib 加入jar包中

mkdir darwin  
jar uf tess4j-xxx.jar darwin   

 

cp /opt/local/lib/libtesseract.3.dylib darwin/libtesseract.dylib    
jar uf tess4j-xxx.jar darwin/libtesseract.dylib     
jar tf tess4j-xxx.jar   

成功加入之后即可看到

接下来将修改后的jar包导入项目中即可使用了,下面会附上一个小例子验证。

三、tess4j实例

 

public static void main(String[] args) {
        try {

            File imageFile = new File("./0056.png");//图片位置
            ITesseract instance = new Tesseract();  // JNA Interface Mapping
//            instance.setLanguage("osd");//选择字库文件(只需要文件名,不需要后缀名)
            String result = instance.doOCR(imageFile);//开始识别
            System.out.println(result);//打印图片内容
        } catch (TesseractException e) {
            e.printStackTrace();
        }
    }

成功后将输出正确的验证码,如下所示:

最后祝大家新的一年,大吉大利~

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Tess4J 是一个基于 Tesseract OCR 引擎的 Java 包装器,用于识别文本。在使用 Tess4J 时,可能会遇到以下问题: 1. 找不到 JNI 库 如果在使用 Tess4J 时出现 "java.lang.UnsatisfiedLinkError" 异常,这可能是因为 JVM 找不到 JNI 库的原因。解决方法是将 Tesseract 的 JNI 库添加到 Java 库路径中。可以在代码中使用以下语句添加: ```java System.setProperty("jna.library.path", "path/to/tesseract/lib"); ``` 其中 "path/to/tesseract/lib" 是 JNI 库所在的路径。 2. Tessdata 目录设置错误 Tess4J 需要 Tesseract 引擎的训练数据(tessdata)目录来进行 OCR。如果没有正确设置该目录,可能会出现 "java.lang.IllegalArgumentException: Invalid memory access" 异常。解决方法是在代码中使用以下语句设置该目录: ```java File tessDataFolder = LoadLibs.extractTessResources("tessdata"); ``` 其中 "tessdata" 是训练数据目录的名称,可以根据实际情况修改。 3. 字符集不匹配 如果 OCR 结果包含了乱码或者无法识别的字符,可能是因为字符集不匹配的原因。可以在代码中使用以下语句设置字符集: ```java tesseract.setTessVariable("tessedit_char_whitelist", "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"); ``` 其中 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" 是要识别的字符集,可以根据实际需求修改。 4. Tesseract 引擎版本不匹配 如果在使用 Tess4J 时出现 "java.lang.UnsatisfiedLinkError" 或者其他异常,可能是因为 Tesseract 引擎的版本不匹配。建议使用Tess4J 版本匹配的 Tesseract 引擎版本。 以上是一些常见的 Tess4J 使用问题及其解决方法,希望对您有所帮助。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值