java组建tess4j文字识别模块(mac)
Posted BerryJamLv
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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组建tess4j文字识别模块(mac)的主要内容,如果未能解决你的问题,请参考以下文章