博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OCR识别验证码
阅读量:5912 次
发布时间:2019-06-19

本文共 910 字,大约阅读时间需要 3 分钟。

最近在爬某网站,老是蹦出来验证码,就想着找个OCR破了这个验证码,然后就开始了OCR探索之旅。

首先简单说一下什么是OCR

OCR是(Optical Character Recognition,光学字符识别)的简称,主要用途:

  1. 办公用途,用来识别图片里面的文字,可以高效率的录入图片类型文件。

  2. 识别网站验证码

  3. 详见或者

OCR识别的验证码原理

  1. 采集一批验证码,根据图片特点进行初步处理(二值化/灰度化/滤波/降噪等处理)

  2. 然后分割图片,旋转图片,模板选取,训练算法,让它更准确。

  3. 有兴趣的可以看一个Python实现的OCR识别验证码详细,实际操作过程挺有意思的,大家有兴趣了可以试试

OCR识别验证码的具体操作

  1. 首先我测试了一个百度开源的Node.js实现的OCR包

    gitHub地址

安装也很简单直接按照安装即可

发现百度的这个OCR包识别效果不太理想

![node_ocr.png][1]
  1. 然后经过一番Google和小伙伴们的推荐 选择一个Google开源的这个是C++写的,直接融合到爬虫里不太方便,__有外国朋友基于tesseract封装了一个Python的包pytesseract__,直接开箱即用,融入爬虫程序中。

  2. 百闻不如一run

    **ps(这里使用的操作系统是Ubuntu16.04;Python版本是2.7)**  直接 `pip install pytesseract` 然后Python图片处理要用到PIL(Python Imaging Library) `pip install PIL`原图片

    ocr.gif

写个简单的测试demo![code.png][3]看下识别结果   ![error.png][4] 报错了, 根据报错信息来看,是确实了什么文件,或者依赖lib我跟踪了pytesseract的代码,发现是少了C++提供的OCR服务,因为pytesseract是调用的tesseract(C++写的)然后安装tesseract ```sudo apt install tesseract```再run一下代码

pyocr_res.png

整体结果还可以(倒数第四位识别错了),再训练一下准确率就更高了。

预知后事如何,且听下回分解

转载地址:http://oampx.baihongyu.com/

你可能感兴趣的文章
Mac如何实现免密登录阿里云服务器
查看>>
Java知识点总结(JDBC-事务)
查看>>
小程序根据索引滚动指定的位置
查看>>
JavaScript基础系列--打败this
查看>>
如何开启MySQL慢查询日志
查看>>
windows一键部署java项目
查看>>
用 Go 来了解一下 Redis 通讯协议
查看>>
《深入浅出mysql》学习笔记
查看>>
CSS预编译语言Less的用法总结
查看>>
行内元素的padding和margin是否有效
查看>>
Java内存模型
查看>>
Fabric记录
查看>>
javascript引擎——V8
查看>>
mysql中or和in的效率
查看>>
聊聊NettyConnector的start及shutdown
查看>>
解决SS4.0.8在win10无法加载 DLL“libcrypto-1_1.dll”问题
查看>>
记录一次更新Masonry的问题
查看>>
js面向对象
查看>>
Python3使用 pytesseract 进行图片识别
查看>>
Vant 1.0 正式发布:轻量、可靠的移动端 Vue 组件库
查看>>