利用Tesseract实现javascript验证码识别

  • Tesseract安装
  • 使用
  • 本地安装

Tesseract安装

  • 直接在需要使用的页面中引入
<script src='https://cdn.rawgit.com/naptha/tesseract.js/1.0.10/dist/tesseract.js'>script>

或者

  • 下载 https://github.com/naptha/tesseract.js zip文件并
    解压,将dist目录中的 tesseract.js 拷贝到项目中,然后通过 script标签引入

使用

Tesseract.recognize("http://xxx/xxx.jpg", {
    classify_bln_numeric_mode: 1
}).then(function(result){
    $("#code").val(result.text);
});

recognize 方法第一个参数是类图片对象,可以是 img 元素,也可以是一个图片链接。第二个参数是配置选项,例如本例中的classify_bln_numeric_mode假定输入是数字;更多的配置选项参考 https://github.com/naptha/tesseract.js/blob/master/docs/tesseract_parameters.md
then方法返回处理结果

本地安装

tesseract.js只是一个简单的包装器,实际识别工作依赖于WebWorker。而WebWorker以及其需要的其它资源都来自与CDN。如果我们想将WebWorker以及其它资源保存在本地提高加载速度,我们可以按如下方法设置:

Tesseract.create({
    workerPath: '/path/to/worker.js',
    langPath: 'https://localhost/',
    corePath: 'https://localhost/index.js',
}).recognize("http://xxx/xxx.jpg", {
    lang: 'eng',
    classify_bln_numeric_mode: 1
}).then(function(result){
    $("#code").val(result.text);
});
  1. workerPath: worker.js路径,worker.js可以从第一步中下载的dist目录中获取
  2. langPath: 语言资源包请求地址,默认 https://cdn.rawgit.com/naptha/tessdata/gh-pages/3.02/。语言包url可以通过 langPath + langCode + '.traineddata.gz'计算得到,例如英语的语言包地址在上例中就是 https://localhost/eng.traineddata.gz。这里说的语言是指图片中待识别的内容是何种语言,可以在 recognize 方法中通过第二个参数设置,上例中设置语言为 eng,完整的可取语言列表参见 https://github.com/naptha/tesseract.js/blob/master/docs/tesseract_lang_list.md
  3. corePath: index.js 路径,默认 https://cdn.rawgit.com/naptha/tesseract.js-core/master/index.js

你可能感兴趣的:(javascript)