java组建tess4j文字识别模块(mac)

场景:小程序对接后台,需要识别验证码。
需求:组件一个tess4j模块传入验证码图片并返回识别结果。

解决方式:

Homebrew 安装tesseract

brew install tesseract

安装目录为

/usr/local/Cellar/tesseract/4.1.1/

拷贝相关文件至项目目录下(不然会报错)

# 源文件
/usr/local/Cellar/tesseract/4.1.1/lib/libtesseract.4.dylib
# 目标路径
/项目根目录/target/classes/darwin/libtesseract.dylib

Spring Boot项目引入package

import net.sourceforge.tess4j.ITesseract;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;


class Captcha
{
    static String captchaRecogenize() throws IOException {
        String lagnguagePath = "/usr/local/Cellar/tesseract/4.1.1/share/tessdata";
        ITesseract instance = new Tesseract();
        // 设置dpi
        instance.setTessVariable("user_defined_dpi", "300");
        //设置训练库的位置
        instance.setDatapath(lagnguagePath);

        URL url = new URL("https://图片的Url");
        BufferedImage bi_image = ImageIO.read(url);

        //chi_sim :简体中文, eng    根据需求选择语言库
        instance.setLanguage("eng");

        String result = null;
        try {
            long startTime = System.currentTimeMillis();
            result =  instance.doOCR(bi_image);

            long endTime = System.currentTimeMillis();
            System.out.println("Time is:" + (endTime - startTime) + " 毫秒");
        } catch (TesseractException e) {
            e.printStackTrace();
        }

        System.out.println("识别结果:");
        System.out.println(result);
        return result;
    }
}

上面给出的是Url图片的识别方式,文件识别方式网上有很多介绍,不再赘述。

Tesseract-ocr语言库 下载地址
Tesseract-ocr 官方文档

你可能感兴趣的:(文字识别,java,自然语言处理,java)