本文只针对数字或字母验证码识别

准备工具

  • tesseract-ocr-w64-setup-v4.1.0.20190314.exe
  • pip install pytesseract
  • pip install pillow
  • 中文包

tesseract-ocr和中文包的下载连接: 链接:链接:https://pan.baidu.com/s/1r_LZKRXBT2Ffp7QrYQwOSA?pwd=junm
提取码:junm

安装好tesseract,记住安装的所在位置

如D:\Program Files\Tesseract-OCR

解压中文包的压缩包

解压中文包的压缩包,将压缩包里面格式为.traineddata的文件复制在安装目录里边tessdata的文件夹下,如D:\Program Files\Tesseract-OCR\tessdata这下面就行了。

配置tesseract的环境变量

第一个:
TESSDATA_PREFIX —> 你安装的路径,比如 D:\Program Files\Tesseract-OCR
第二个: 在path里面新建一个
你安装的路径,比如 D:\Program Files\Tesseract-OCR

查看版本

win+R输入cmd打开命令行工具,输入tesseract -v

查看一安装好的语言包

win+R输入cmd打开命令行工具,输入tesseract --list-langs

修改pytesseract.py文件,指定tesseract.exe安装路径

# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe‘
#就是你安装的位置

代码实例

import pytesseract
from PIL import Image
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECchromedriver_path = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"  # chromedriver的路径
# 创建chrome参数对象
options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('--start-maximized')
options.add_argument('--disable-gpu')
options.add_argument('--hide-scrollbars')
options.add_argument('test-type')
options.add_experimental_option("excludeSwitches", ["ignore-certificate-errors","enable-automation"])
driver = webdriver.Chrome(options=options, executable_path=chromedriver_path)
driver.get('http://www.alihba.fun/jiaoyanma/jiaoyanma.php')def screen(screenXpath):img = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, screenXpath)))driver.save_screenshot("allscreen.png")  # 对整个浏览器页面进行截图left = img.location['x']+26top = img.location['y']+10right = img.location['x'] + img.size['width']+53bottom = img.location['y'] + img.size['height']+10print(left,top,right,bottom)im = Image.open('allscreen.png')im = im.crop((left, top, right, bottom))  # 对浏览器截图进行裁剪im.save('jietu.png')print("截图完成")# driver.quit()def Identify():image = Image.open("./jietu.png")code = pytesseract.image_to_string(image,lang="eng", config="--psm 6")  #lang的值可以根据安装的语言选择,也不是都可以用,一般看的是验证码类型就可以了。print("识别出验证码为:   ",code)def main():screenXpath = '//*[@id="captcha_img"]'screen(screenXpath)sleep(5)Identify()if __name__ == '__main__':main()


-psm 参数

0:定向脚本监测(OSD)
1: 使用OSD自动分页
2 :自动分页,但是不使用OSD或OCR(Optical Character Recognition,光学字符识别)
3 :全自动分页,但是没有使用OSD(默认)
4 :假设可变大小的一个文本列。
5 :假设垂直对齐文本的单个统一块。
6 :假设一个统一的文本块。
7 :将图像视为单个文本行。
8 :将图像视为单个词。
9 :将图像视为圆中的单个词。
10 :将图像视为单个字符。

通过测试,如果验证码全为数字,准确率比较高,字母识别的准确率稍低

最后可以关注一下我个人微信公众号,不定期更新一些好用的资源以及生活上的点点滴滴~~

Python图像(字母数字)识别相关推荐

  1. 利用深度学习(CNN)进行验证码(字母+数字)识别

    利用深度学习(CNN)进行验证码(字母+数字)识别_helen1313的专栏-CSDN博客 本文方法针对的验证码为定长验证码,不包含中文. 本文的思路是:1. 使用keras中预训练好的模型,在pyt ...

  2. python 手写数字识别 封装GUI,手写板获取鼠标写字轨迹信息

    python 手写数字识别知识不用多说,本文用深度学习Python库Keras实现深度学习入门教程mnist手写数字识别.mnist手写数字识别是机器学习和深度学习领域的"hello wor ...

  3. halcon车牌字母数字识别

    halcon车牌字母数字识别 dev_close_window () read_image (Image, 'F:/Download/images/车牌.jpg') get_image_size (I ...

  4. 【印刷字符识别】基于matlab OCR印刷字母+数字识别【含Matlab源码 1861期】

    ⛄一.OCR简介 OCR技术是光学字符识别的缩写, 是通过扫描等光学输入方式将各种票据.报刊.书籍.文稿及其它印刷品的文字转化为图像信息, 再利用文字识别技术将图像信息转化为可以使用的计算机输入技术. ...

  5. Python手写数字识别+GUI界面+手写板设计

    摘要 手写数字识别是模式识别中一个非常重要和活跃的研究领域,数字识别也不是一项孤立的技术,他涉及的问题是模式识别的其他领域都无法回避的:应用上,作为一种信息处理手段,字符识别有广阔的应用背景和巨大的市 ...

  6. python手写数字识别教学_python实现基于SVM手写数字识别功能

    本文实例为大家分享了SVM手写数字识别功能的具体代码,供大家参考,具体内容如下 1.SVM手写数字识别 识别步骤: (1)样本图像的准备. (2)图像尺寸标准化:将图像大小都标准化为8*8大小. (3 ...

  7. python手写数字识别实验报告_Python代码实现简单的MNIST手写数字识别(适合初学者看)...

    补充:由于很多同学找我要原数据集和代码,所以我上传到了资源里,https://download..net/download/zugexiaodui/10913834 初学机器学习,第一步是做一个简单的 ...

  8. python手写数字识别实验报告_python神经网络编程实现手写数字识别

    本文实例为大家分享了python实现手写数字识别的具体代码,供大家参考,具体内容如下 import numpy import scipy.special #import matplotlib.pypl ...

  9. 【数字识别】基于模板匹配实现OCR印刷字母+数字识别含Matlab源码

    1 简介 OCR技术是光学字符识别的缩写, 是通过扫描等光学输入方式将各种票据.报刊.书籍.文稿及其它印刷品的文字转化为图像信息, 再利用文字识别技术将图像信息转化为可以使用的计算机输入技术.由于其应 ...

  10. python手写数字识别实验报告_机器学习python实战之手写数字识别

    看了上一篇内容之后,相信对K近邻算法有了一个清晰的认识,今天的内容--手写数字识别是对上一篇内容的延续,这里也是为了自己能更熟练的掌握k-NN算法. 我们有大约2000个训练样本和1000个左右测试样 ...

最新文章

  1. iOS开发UI中懒加载的使用方法
  2. 连接时会提示oracle initialization or shutdown in progress
  3. 删除wallet里面登机牌_登机牌丢失问题
  4. vue 修改标题栏_VUE动态修改titile的三种方法
  5. 文件服务器搭建_小型企业文件存储服务器的搭建四部曲
  6. 在线分流框架下的AB Test
  7. CSP -- 运营商内容劫持(广告)的终结者
  8. 【毕业设计】基于stm32的智能温控风扇设计与实现 - 物联网 单片机
  9. Html5中,input标签所有Type类型介绍
  10. 家政服务app软件开发
  11. pikachu靶场通关指南
  12. 狗民网:狗与爱的世界
  13. 维基解密:CIA早就可以轻易入侵苹果手机和电脑
  14. 如何反制互联网精准广告定向
  15. 记录一次实战GetShell
  16. 交互设计:界面尺寸设计大全
  17. 马尔可夫链在人工智能中的应用
  18. asp.net 中的gridview 之gridview 分页
  19. 中国青年教师跌入“社会底层”?同一高校收入差距巨大
  20. Word中批量替换软回车

热门文章

  1. Epub与Kindle
  2. 数据存储的未来,磁带是赢家?!
  3. 用户界面之工具栏详解-AutoRunner自动化测试工具
  4. 数据可视化技术:python数据可视化工具库汇总(共21个)
  5. 当当卓越京东商城货物配送流程揭秘
  6. EJB是什么,什么是EJB
  7. 事业单位计算机岗位考公基吗,【事业单位】江苏统考考什么?公基、言语……题量分布!...
  8. 天猫盒子 显示电脑连接服务器失败,天猫魔盒访问电脑共享文件需要密码的解决方法...
  9. Elasticsearch 相关知识
  10. 实践小笔记(1) --- DBSCAN