0.0.3 • Published 6 years ago
jnu-jwxt-captcha-breaker v0.0.3
暨南大学教务系统验证码解析程序
暨南大学教务系统验证码解析程序。
目录
环境要求
安装
可以全局安装(作为命令行工具使用):
$ npm install -g jnu-jwxt-captcha-breaker也可以作为本地 npm 模块安装(作为二次开发接口使用):
$ npm install --save jnu-jwxt-captcha-breaker用法
如何在命令行中使用
1. 解析验证码图片
$ jnu-jwxt-captcha-breaker --paths <图片路径>2. 解析一个目录中的所有图片
$ jnu-jwxt-captcha-breaker --dirs <目录路径>该程序支持同时解析多张图片或多个目录,你还可以混合图片和目录使用:
$ jnu-jwxt-captcha-breaker --paths <图片一的路径> --dirs <目录一的路径> --dirs <目录二的路径> --paths <图片二的路径>如何在代码中使用
如果你需要进行二次开发,该程序同样提供了公共 API 接口。
在 Node.js 中,首先通过 commonjs 规范加载该 npm 模块:
const CaptchaBreaker = require('jnu-jwxt-captcha-breaker').CaptchaBreaker;接下来创建解析器对象:
const breaker = new CaptchaBreaker();然后初始化数据参数和模型参数:
await breaker.init(option);init() 方法支持一个 option 对象参数,该对象支持以下字段:
| 参数名称 | 参数类型 | 描述 | 默认值 |
|---|---|---|---|
loadModel | boolean | 是否从文件系统加载预训练好的模型 | true |
trainModel | boolean | 是否使用数据集对模型进行训练 | false |
saveModel | boolean | 是否保存模型到文件系统 | false |
dataDir | string | 数据集的路径 | 'data/' |
modelDir | string | 模型的加载/保存路径 | 'model/' |
最后便可以调用解析方法:
const result = await cb.parse(buffer);parse() 方法支持参数如下:
| 参数名称 | 参数类型 | 描述 | 默认值 |
|---|---|---|---|
buffer | Buffer | 图片内存缓冲对象 | - |
构建
npm run build测试
npm test格式化
项目同时使用了 eslint 和 prettier 进行代码格式化,通过以下命令即可进行格式化:
npm run lint测试结果
该程序在 30 张真实图片上的识别测试结果如下:
| index | image | result |
|---|---|---|
| 0 | ![]() | Unable to split characters. |
| 1 | ![]() | Unable to split characters. |
| 2 | ![]() | Unable to split characters. |
| 3 | ![]() | amdk |
| 4 | ![]() | Aa3F |
| 5 | ![]() | ENMu |
| 6 | ![]() | Unable to split characters. |
| 7 | ![]() | Unable to split characters. |
| 8 | ![]() | NSMe |
| 9 | ![]() | QubG |
| 10 | ![]() | Ruxd |
| 11 | ![]() | wxLz |
| 12 | ![]() | YOCQ |
| 13 | ![]() | ZpeH |
| 14 | ![]() | dauh |
| 15 | ![]() | Unable to split characters. |
| 16 | ![]() | Unable to split characters. |
| 17 | ![]() | gxTb |
| 18 | ![]() | h5Gn |
| 19 | ![]() | kMpH |
| 20 | ![]() | Unable to split characters. |
| 21 | ![]() | mRNh |
| 22 | ![]() | mhsP |
| 23 | ![]() | rCPz |
| 24 | ![]() | Unable to split characters. |
| 25 | ![]() | Unable to split characters. |
| 26 | ![]() | Unable to split characters. |
| 27 | ![]() | Unable to split characters. |
| 28 | ![]() | zKqb |
| 29 | ![]() | zLnz |
目前在字符分割算法上仍然表现欠佳,需要改进。





























