今天看到 TOTOBEFREE 写的一篇 Python + aardio 开发的文章,文中提到他一通折腾安装 Tesseract-OCR 库、语言包、搭建环境,但准确率太低( 这应该说的是 Python 的模块,aardio 里 tesseract 库不用安装搭建环境 )。
这里我介绍一个更简单的方法,可以 100% 完美正确地识别这类验证码。而且不需安装任何第三方 OCR 库,不需要语言包,不需要搭建环境,没有任何复杂步骤。
我们用 aardio 自带的 soImage 就足够了,小、简单、省事,几句代码就可以解决问题。
为了把简单的事情变得更简单,我在 aardio 范例里添加了一个工具。
文件位置:
aardio 范例 / 自动化 / 找图找色找字 / 简单 OCR 生成器
打开该工具,界面如下:
1、输入验证码网址。
2、然后点『获取下一个图像』。
3、输入验证码上显示的数字,然后继续点『获取下一个图像』。
反复多次,下面就会自动生成验证码字库,以及验证码识别代码。
生成的代码可以直接使用,例如:
import inet.http;
import soImage;
var dict = {
["1"]="11111111111111111111111111";
["2"]="111111110000001100000011000000110000001100000011111111111";
["4"]="1000001010000010100000101000001010"
}
var img = soImage();
img.loadUrl("https://www.b*****.***/****.php");
var text = img.ocr(dict);
没有任何其他复杂步骤。
这个 ocr 函数的关键代码其实就几句 aardio 代码,可右键跳转到定义直接看源代码。