【Java】学习使用Tesseract实现验证码图片内容识别
Tesseract为OCR中最为流行的开源软件,本文仅演示了使用Tesseract识别验证码图片的应用场景,其他使用场景需要自行解锁
本人的学习环境:
操作系统:win10
java版本:jdk11
(仅作为环境介绍,不一致也无妨)
步骤一:
安装Tesseract环境
可去官网查看各个环境的安装教程,本次是使用的windows版本,windows安装地址
如需要使用简体中文,需要在安装过程中指定其他语言数据下载,如下图所示:
步骤二:
添加相关Maven依赖
<dependency> <groupId>org.bytedeco.javacpp-presets</groupId> <artifactId>tesseract-platform</artifactId> <version>4.0.0-1.4.4</version> </dependency>
步骤三:
java测试类代码
package wcontour.ocr; import org.bytedeco.javacpp.BytePointer; import org.bytedeco.javacpp.lept; import org.bytedeco.javacpp.tesseract; import static org.bytedeco.javacpp.lept.pixDestroy; import static org.bytedeco.javacpp.lept.pixRead; public class OCRTest { public static void main(String[] args) { //验证码路径 String filePath = "C:\\Pictures\\OCR\\yzm2.jpg"; //开始识别 ocrTest(filePath); } public static void ocrTest(String filePath) { BytePointer outText; tesseract.TessBaseAPI api = new tesseract.TessBaseAPI(); //s指定安装好的tessdata目录路径,s1指定语言 //chi_sim为简体中文(需要在安装tessdata过程中手动指定安装chi_sim语言),eng为英文(为默认安装语言) if (api.Init("E:\\ENV\\Tesseract-OCR\\tessdata", "chi_sim") != 0) { System.err.println("无法初始化tesseract"); return; } // 放入图片 lept.PIX image = pixRead(filePath); api.SetImage(image); // 获取OCR结果 outText = api.GetUTF8Text(); System.out.println("OCR output:\n" + outText.getString()); // 销毁使用过的对象并释放内存 api.End(); api.close(); outText.deallocate(); pixDestroy(image); } }
测试结果:
感谢观看!

--有问题,有困难,才会有收获
本文来自博客园,作者:不想输入手机号和邮箱,转载请注明原文链接:https://www.cnblogs.com/ganggang7878/p/17446523.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异