Java使用Java OCR API进行验证码识别
Maven坐标:
<!-- https://mvnrepository.com/artifact/com.asprise.ocr/java-ocr-api -->
<dependency>
<groupId>com.asprise.ocr</groupId>
<artifactId>java-ocr-api</artifactId>
<version>15.3.0.3</version>
</dependency>
示例代码:
import java.io.File;
import com.asprise.ocr.Ocr;
public class OCRTest {
public static void main(String[] args) {
Ocr.setUp(); // one time setup
Ocr ocr = new Ocr(); // create a new OCR engine
ocr.startEngine("eng", Ocr.SPEED_SLOW); // English
String s = ocr.recognize(new File[] {new File("C:\\Users\\zifeiy\\Pictures\\checkcode.jpg")},
Ocr.RECOGNIZE_TYPE_ALL, Ocr.OUTPUT_FORMAT_PLAINTEXT);
System.out.println("Result: " + s);
ocr.stopEngine();
}
}
一些说明
这种方法只能识别一些简单的验证码,比如这样的:
虽然它回报一些error,但是是可以看到结果的:
<error: currently only 1-bit black/white or 32bit RGB images are accepted for barcode recognition>
Result: <error: currently only 1-bit black/white or 32bit RGB images are accepted for barcode recognition>3029
虽然前面报了一长串错误,但是还是可以看到后面的3029
。
若果需要破解一些更模糊的验证码,比如:
这样的,可以研究一下Tesseract。
还有就是,这是一款商业SDK,我们用的是体验版(点进去一看商业版的定制版中最便宜的一年LITE版要4k多美元,抵我大半年的工资,所以还是决定继续用试用版吧),
所以有的时候启动的时候(Ocr.setUp()
)会出现一个弹框:
Java使用Java OCR API进行验证码识别的更多相关文章
- 使用Python基于百度等OCR API的文字识别
百度OCR Baidu OCR API:一定额度免费,目前是每日500次 Python SDK文档:https://cloud.baidu.com/doc/OCR/OCR-Python-SDK.htm ...
- 基于pyteseract google ocr的图形验证码识别
先灰化图片,把图片二值化,利用pytesseract包的pytesseract.image_to_string转换出文字.
- atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本
atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本 1. 去除边框思路原理 1 2. Thumbnailator 是一个用来生成图像缩略图.裁切. ...
- Java 验证码识别之多线程打码兔
验证码识别,爬虫永远的话题~ 用打码兔总体的体验就是单线程速度太慢~ import java.io.IOException; import java.net.MalformedURLException ...
- JAVA验证码识别:基于jTessBoxEditorFX和Tesseract-OCR训练样本
JAVA验证识别:基于jTessBoxEditorFX和Tesseract-OCR训练样本 工具准备: jTessBoxEditorFX下载:https://github.com/nguyenq/jT ...
- Java 验证码识别库 Tess4j 学习
Java 验证码识别库 Tess4j 学习 [在用java的Jsoup做爬虫爬取数据时遇到了验证码识别的问题(基于maven),找了网上挺多的资料,发现Tess4j可以自动识别验证码,在这里简单记录下 ...
- 安卓开发 利用百度识图api进行物体识别(java版)
之前的随笔中,已经实现了python版本调用api接口,之所以使用python是因为python比java要简洁. 但是我发现在使用过程中,chaquopy插件会弹出底部toast显示"un ...
- Java验证码识别解决方案
建库,去重,切割,识别. package edu.fzu.ir.test; import java.awt.Color; import java.awt.image.BufferedImage; im ...
- 【Java】验证码识别解决方案
对于类似以下简单的验证码的识别方案: 1. 2 3 4. 1.建库:切割验证码为单个字符,人工标记,比如:A. 2.识别:给一个验证码:切割为单个字符,在库中查询识别. /*** * author:c ...
随机推荐
- Anton and Chess(模拟+思维)
http://codeforces.com/group/1EzrFFyOc0/contest/734/problem/D 题意:就是给你一个很大的棋盘,给你一个白棋的位置还有n个黑棋的位置,问你黑棋能 ...
- NLP传统基础(3)---潜在语义分析LSA主题模型---SVD得到降维矩阵
https://www.jianshu.com/p/9fe0a7004560 一.简单介绍 LSA和传统向量空间模型(vector space model)一样使用向量来表示词(terms)和文档(d ...
- Python3+Appium学习笔记07-元素定位工具UI Automator Viewer
这篇主要说下如何使用UI Automator Viewer这个工具来定位元素.这个工具是sdk自带的.在sdk安装目录Tools目录下找到uiautomatorviewer.bat并启动它 如果启 ...
- 单元测试框架之unittest(二)
一.摘要 本章笔者将详细介绍组织测试代码的相关内容,所用的测试例子会是冒泡排序,笔者在从业这么久之后回想很多面试都要问冒泡排序,虽然不知道为什么要问这个,但还是希望大家掌握,它与自动化测试关系不大属于 ...
- ZZNUOJ-2157: 水滴来袭-【干扰阅读-卡模糊精度1e-8的问题】
ZZNUOJ-2157: 水滴来袭 那是一个冷雨霏霏的秋天的下午,当罗辑拿着枪威胁三体文明的时候,如果过了三十秒三体人还没有同他展开谈判,罗辑就会扣动扳机即刻结束自己的生命,随后他身上的核弹控制器就会 ...
- 日志分析方法概述 & Web日志挖掘分析的方法
日志在计算机系统中是一个非常广泛的概念,任何程序都有可能输出日志:操作系统内核.各种应用服务器等等.日志的内容.规模和用途也各不相同,很难一概而论. 本文讨论的日志处理方法中的日志,仅指Web日志.其 ...
- Android笔记-Activity相关+内存泄漏+Fragment+service
看了下,上次学习android还是17年的事情,,,,两年过去了我现在终于来搞android了... 官网有一段基础描述: https://developer.android.google.cn/gu ...
- C# Dynamic动态对象
1.ExpandoObject dynamic expObj = new ExpandoObject(); expObj.FirstName = "Daffy"; expObj.L ...
- [TJOI2019]唱、跳、rap和篮球
嘟嘟嘟 TJ律师函警告 20分暴力比较好拿,因为每一种学生可以理解为无限多,那么总方案数就是\(C_{n} ^ {4}\),然后我们枚举至少讨论cxk的有几组,容斥即可. 需要注意的是,容斥的时候还要 ...
- Vue(一)
什么是Vue? 用于构建用户界面的渐进式框架