python使用pytesseract识别验证码的方法

2023-05-16

1、系统环境

  • OS X  10.7
  • MacBook Pro(13英寸,2012年初期)
  • Python 2.7


2、需要软件包

    a、需要安装PIL以及pytesseract库

        Python-tesseract是一个基于google's Tesseract-OCR的独立封装包;

        Python-tesseract功能是识别图片文件中文字,并作为返回参数返回识别结果;

        Python-tesseract默认支持tiff、bmp格式图片,只有在安装PIL之后,才能支持jpeg、gif、png等其他图片格式;

        Python-tesseract支持python2.5及更高版本;

        PIL[Python Imaging Library]来支持更多的图片格式;

    b、需要安装google tesseract-ocr

          执行命令行 tesseract.exe 1.png output -l eng ,可以识别1.png中文字,并把识别结果输出到output.txt中;

          Pytesseract对上述过程进行了二次封装,自动调用tesseract.exe,并读取output.txt文件的内容,作为函数的返回值进行返回。


3、程序

    import pytesseract
    from PIL import Image

    image = Image.open('./0.png')
    code = pytesseract.image_to_string(image)
    print (code)


4、PLI安装

    mac安装PIL有点麻烦,此处不再详叙。参见我的其他博客内容!


5、安装google tesseract-ocr

准备工作1

tips:以下依赖文件,可进入http://ftpmirror.gnu.org/中找到对应的文件进行下载,推荐每个包看日期下载最新版本,以下为本文下载的安装包。

  • libtool-2.4.6.tar.gz
  • autoconf-latest.tar.gz
  • automake-1.15.tar.gz
  • jpegsrc.v9b.tar.gz

以上必需安装大礼包可上百度云盘免费领取,如过期请自行下载,链接: http://pan.baidu.com/s/1i56i5e9 密码: 7rhq

安装步骤1

以automake-1.15.tar.gz为例,请依次顺序安装。



  

安装步骤1一般不会出现什么问题,轻松安装。

准备工作2

tips:以下依赖文件,请用brew进行直接下载安装,如果用安装包编译安装的话,可能会出现难以解决的问题。哎,心烧得慌。

brew for mac 的安装方法,在mac命令行控制台执行如下命令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  • tiff-4.0.6.tar.gz
  • libpng-1.6.21.tar.gz
  • leptonica-1.73.tar.gz
  • tesseract-ocr-3.04.01.zip

安装步骤2

请用brew依次顺序安装,如下:



  

此过程可能会出现不少问题,心里脆弱的也许会马上崩溃,如同这样:

         痛定思痛之后,还是继续解决问题吧,最常见的问题可能是:

这里写图片描述

不要觉得下载安装看上去好像正常,但是出现error就必须重视看看,大致意思是说创建link的过程中*** is not writable,目录不可写怎么办,改权限,可以直接暴力点上777。就本例所示:


  

解决该类问题的思路很简单,什么不可写就上777,再按照Error后面紧跟的提示,比如说You can using again using …重试加link即可。 当安装正常,问题全部修复后,运行:



  

至此,tesseract的安装已完成95%,仅剩最后的语言包配置。仿佛看见胜利的曙光,[愁绪挥不去苦闷快散去]。

安装步骤3

需要在tesseract-ocr下载语言包,因为语言包有几百兆甚至1个G,没必要完全下载。只用下载eng(英语)、chi_sim(中文简体)、chi_tra(中文繁体)。有趣的事情来了,不少github新手,不知道如何在github上下载某个项目里面某个具体的文件。因为github上面只有在项目的主页才有显性的Download Zip按钮,只能一次性下载整个项目。不用担心,一张图让你明白怎么解决整个问题。

这里写图片描述

然后将下载的语言包导入tessdata文件夹即。可能有人不太明白tessdata文件夹在哪儿,其实不用明白也可以。这里可以假装已经导入,进行测试步骤,运行:


  

这里写图片描述

直接导入到对应目录即可。So mission 100% completed.

这里写图片描述

测试步骤4

本文测试样张为12306验证码接口提供的验证码,下载后用Photoshop裁剪文字部分,如下图示:

运行:



  

这里写图片描述

结果差强人意,正确识别出了5个字,剩下的就靠自己的研究了。

安装过程中大写的错误

前文交代过,第二部分如果用安装包编译安装的话,每一步都是正常通过,但tesseract就是没法用。具体表现为:


  

首先提示,检测不到libjpeg、libpng、libtiff库,可宝宝已经无数次检查安装过。只能重复的进行sudo make uninstall、sudo ./configure && sudo make && sudo make install,以为是版本不兼容,换了好多版本尝试也没结果。
检测不出来不管了,直接测试功能,结果提示

这里写图片描述

上百度谷歌了一下,找了许多方法,基本上都是说缺少前面的三个包,重新卸载安装,还有的救,结果我经过了一下午数十次重复安装的情况下也没能救的了自己,那就换思路,做学问要一丝不苟,不怕失败。结果用brew弄好了,不错,好的开始,加油明天。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python使用pytesseract识别验证码的方法 的相关文章

随机推荐

  • ubuntu OPT权限

    首先opt是系统文件夹 xff0c 权限被保护起来了需要一定的权限才可以操作 1 打开终端 输入如下命令 2 sudo chmod 777 opt 然后回车 xff0c 这时候会提示输入管理员密码密码 xff0c 这样opt就可以创建文件了
  • 看这篇就够了——ubuntu系统中的cuda cudnn cudatookit及pytorch使用

    一 基本概念 1 1 nvidia独立显卡 独立显卡是指以独立板卡形式存在 xff0c 可在具备显卡接口的主板上自由插拔的显卡 独立显卡具备单独的显存 xff0c 不占用系统内存 xff0c 而且技术上领先于集成显卡 xff0c 能够提供更
  • 虚拟机中ubuntu系统无法正常连接网络

    网络连接标志不见 xff0c 或者链接状态无 xff0c 或者如下图 解决办法1 xff1a 桥连接模式 桥连接模式就是直接使用物理主机的网络 假设物理主机在局域网中 xff0c IP地址为192 168 20 24 24 xff0c 因此
  • golang interface 使用

    interface 是方法签名的集合 xff0c interface 类型的值可以存储任何类型变量的值的类型 学到的一个问题 xff0c 判断 interface 类型的变量不能只判断 value xff0c 需要判断 type 和 val
  • 前端自动化构建工具搭建基于Ubuntu20.04:第五步ssh免密登录

    jenkins服务器与前端资源运行服务器之间实现免密登录 jenkins服务器 A 前端资源运行服务器 B 生成ssh密钥 span class token comment 邮箱信息根据自己情况选择 一路回车生成下面的图片内容 span s
  • 常用图算法(C语言)

    最短路 Dijkstra 题目 xff1a 743 网络延迟时间 邻接矩阵 xff1a span class token keyword int span span class token function min span span cl
  • POJ初级分类 贪心专题 poj1328 POJ2109 POJ 2586

    题目1328 代码及解释 xff1a POJ1328 Radar Installation 题目大意 xff1a 有一条海岸线 xff0c 一边是海岸 xff0c 一边是大海 xff1b 海中有一些小岛 xff0c 我们要建造一些雷达 xf
  • 离散数学第六章 图

    图 一 图的基本概念 1 无向图与有向图 此处要熟悉一下无序对与无序积的概念 xff1b 集合中有元素重复出现的话就称为多重集合 xff0c 简称多重集 xff0c 元素在多重集合中出现的次数称为该元素的重复度 xff1b 无向图 xff1
  • 最佳加法表达式(动态规划)

    递归 xff08 带备忘的自顶向下法 xff09 题目 xff1a 有一个由1 9组成的数字串 问如果将m个加 号插入到这个数字串中 在各种可能形成的 表达式中 xff0c 值最小的那个表达式的值是多少 子问题 xff1a 将最后面的那个加
  • 常见排序代码(C语言)

    选快希堆不稳 xff08 是不稳定的排序 xff09 xff0c 堆归选基不变 xff08 运行时间不发生变化 xff0c 与初始状态无关 xff09 插入排序 Note The returned array must be malloce
  • PyCharm安装第三方模块Request、BeautifulSoup

    开始用eclipse写python xff0c 然后还是不怎么好用 xff0c 当初本地装了BeautifulSoup模块 xff0c eclipse里面也不能用 xff0c python自带IDLE也不是很好用 xff0c 就又转PyCh
  • MySQL的join用法

    MySQL的join用法主要有三种 xff1a inner jon 内连接left join 左连接right join 右连接 table a table b 1 inner join 内连接又叫等值连接 xff0c 此时的inner可以
  • OpenCV VideoWriter用法

    百度了一些 xff0c 发现不对 xff0c 在stackoverflow上面找到了解决方法 xff0c 好像是版本问题 import cv2 path 61 span class hljs string 34 34 span file 6
  • Vue 项目部署到阿里云服务器(Nginx 代理)

    查看 linux 服务器版本号 lsb release a 1 本地打包 首先 xff0c 要将本地 config index js 中的 assetsPublicPath 39 39 改为 assetsPublicPath 39 39 x
  • 一种跨平台的C/C++动态库的符号隐藏方式

    源地址 xff1a http blog guorongfei com 2018 04 11 symbol visibility lt h1 id 61 34 什么是符号隐藏 34 gt lt a href 61 34 什么是符号隐藏 34
  • 如何在vscode使用 Copilot、Sign in to access the GitHub Copilot technical preview.

    1 Copilot申请方法 使用浏览器打开如下链接 xff1a https copilot github com 2 点击Sign up xff0c 登录你的GitHub账号 3 点击Join Waitlist xff0c 加入候补名单 4
  • 将QImage转化为半透明的效果

    之前项目上的需要 xff0c 中间用到了把QImage变成半透明的效果 xff0c 当时查了一些资料 xff0c 为了防止遗忘 xff0c 就在博客中记录了下来 下面是代码 xff1a 将QImage转化为半透明的效果 QPixmap Ch
  • 快速实现内网穿透已成功(巧妙绕过路由器)

    内网穿透在实际生活中 xff0c 我们经常会在内网里部署服务让外网访问内网应用 xff0c 比如Apache xff0c Tomcat xff0c 数据库 xff0c 微信小程序的开发以及企业的一些管理软件 xff08 OA CRM ERP
  • Kali更新源

    若在apt get install update有报错的情况 xff1a 则需要更换kali的源了 更换方法 vim etc apt sources list d docker list 或 vim ect apt sources list
  • python使用pytesseract识别验证码的方法

    1 系统环境 OS X 10 7 MacBook Pro 13英寸 xff0c 2012年初期 Python 2 7 2 需要软件包 a 需要安装PIL以及pytesseract库 Python tesseract是一个基于google 3