Python图像(字母数字)识别

2023-05-16

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

准备工具

  • 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 EC

chromedriver_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']+26
    top = img.location['y']+10
    right = img.location['x'] + img.size['width']+53
    bottom = img.location['y'] + img.size['height']+10
    print(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 :将图像视为单个字符。

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

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

在这里插入图片描述

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

Python图像(字母数字)识别 的相关文章

  • 程序设计思维与实践 Week6 作业 A 氪金带东

    题目描述 xff1a 实验室里原先有一台电脑 编号为1 xff0c 最近氪金带师咕咕东又为实验室购置了N 1台电脑 xff0c 编号为2到N 每台电脑都用网线连接到一台先前安装的电脑上 但是咕咕东担心网速太慢 xff0c 他希望知道第i台电
  • CSS进阶-盒子与动画

    CSS进阶 盒子与动画 文章目录 CSS进阶 盒子与动画前言Chapter04 CSS3动画1 Animation动画1 1 关键帧1 2 定义关键帧1 2 1 定义示例1 2 2 效果1 2 3 完整案例 1 3 常用绑定动画属性 2 T
  • 差分构造

    题目要求 Thanks to everyone s help last week TT finally got a cute cat But what TT didn t expect is that this is a magic cat
  • week15实验

    文章目录 A题目要求代码 B题目要求代码 C题目要求代码 D题目要求代码 E题目要求代码 F题目要求代码 A 题目要求 Q 老师有 N 个学生 xff0c 每个学生都有各自独立的编号 xff0c 且编号范围在 1 N 之间 这一天 xff0
  • linux shell脚本执行错误:bad substitution

    sh test sh 出现bad substitution提示信息 与linux shell使用的是 bin sh xff0c 还是 bin bash有关系 脚本中指定使用的是 bin bash shell xff0c 在调试的时候使用的是
  • C语言算法之数组冒泡排序

    数组冒泡排序 include lt stdio h gt void main int i j t a 10 printf 34 please input 10 numbers n 34 for i 61 0 i lt 10 i 43 43
  • 使用frida获取微信EnMicroMsg.db 数据库密码

    这件事情浪费我两天时间 xff0c 期间遇到了各种坑 xff0c 记录一下 工具 xff1a python3 7 6 frida 12 8 0 mumu模拟器 adb SqlCipher 0x00 frida Frida是一款轻量级HOOK
  • Windows 下将 Nginx 设置成服务

    0 需求背景 每次启动 Nginx 都要去到 Nginx 安装目录下寻找 redis server exe 文件点击 xff0c 很是麻烦 并且要命令行启动 xff0c 一般解决方案可能是批处理文件 xff0c 但是仍要点击 假如确定服务要
  • Mac安装Anaconda后无法在终端使用conda命令 | pip install 换源命令

    解决办法 xff1a 在键入命令前先source一下 source bash profile 之后便可以正常执行conda 或 pip命令 在通过pip安装其他包时速度较慢 pip install xxx i https pypi doub
  • 程序设计思维与实践 Week13 实验

    目录 A 1 T1输入格式输出格式Sample InputSample OutputSample Input 2Sample Output 2思路代码 B 1 T2输入格式输出格式Sample InputSample Output思路代码
  • 程序设计思维与实践 Week15 实验

    目录 A Q 老师的记录册输入输出输入样例1输出样例1输入样例2输出样例2输入样例3输出样例3思路代码 B ZJM的本领输入输出样例输入1样例输出1样例输入2样例输出2思路代码 C TT 的神秘任务 XInputOutput样例输入1样例输
  • 程序设计思维与实践 Week6 模拟赛 A 掌握魔法の东东 II

    题目描述 xff1a 从瑞神家打牌回来后 xff0c 东东痛定思痛 xff0c 决定苦练牌技 xff0c 终成赌神 xff01 东东有 A B 张扑克牌 每张扑克牌有一个大小 整数 xff0c 记为a xff0c 范围区间是 0 到 A 1
  • 用java实现判断回文

    判断回文 要求代码实现 要求 编码实现 xff1a 输入一个字符串 xff0c 判断该字符串是否是回文 xff08 回文是指将该字符串含有的字符逆序排列后得到的字符串和原字符串相同的字符串 xff09 如果是回文 xff0c 则输出 Yes
  • codeblocks的多行快速注释的快捷键

    codeblocks的多行快速注释的快捷键 多行注释的快捷键 xff1a ctrl 43 shift 43 c 取消多行注释的快捷键 xff1a ctrl 43 shift 43 x
  • ubuntu错误添加了环境变量

    1 问题 今天试着安装一些东西 xff0c 错误的多添加了一些环境变量 xff0c 在虚拟环境里没有发现异样 xff0c 但从虚拟环境出来后发现在终端输入许多命令都显示未找到命令 xff0c 比如 终端输入 python 显示 bash p
  • win10摄像头灰色斜杠问题(Lenovo)

    方法一 百度 xff1a 在笔记本win10系统中 xff0c 通常都自带有摄像头功能 xff0c 但是有用户想要打开摄像头进行拍照或者视频的时候 xff0c 却遇到了不能用的情况 xff0c 一直显示一个灰色相机加一个斜杠 xff0c 没
  • SQL注入__布尔盲注和时间盲注

    SQL注入 布尔盲注和时间盲注 布尔盲注 猜测数据库 id 61 1 39 and length database 61 8 id 61 1 39 and length database gt 8 当前数据库第一位 截取数据库第一位 通过A
  • 命令执行绕过技巧

    命令执行绕过技巧 参考 xff1a https blog csdn net weixin 39190897 article details 116247765 参考 xff1a https blog csdn net solitudi ar
  • kali-信息收集简介

    kali 信息收集简介 nbtscan 这是一款用于扫描Windows网络上NetBIOS名字信息的程序 该程序对给出范围内的每一个地址发送NetBIOS状态查询 xff0c 并且以易读的表格列出接收到的信息 xff0c 对于每个响应的主机
  • 如何将图片转化为base64编码格式显示

    如何将图片转化为base64编码格式显示 base64编码 是将数据用 64 个可打印的字符进行编码的方式 xff0c 任何数据底层实现都是二进制 xff0c 所以都可以进行 base64编码 xff0c base64编码 主要用在数据传输

随机推荐

  • 利用frp工具实现内网穿透

    利用frp工具实现内网穿透 注意 xff1a 此工具依赖一个有公网 IP 的 PC 或服务器 内网穿透工具就是为了解决上述的没有公网 IP 的问题的 frp简介 项目地址 xff1a https github com fatedier fr
  • MISC相关工具下载

    写在前面 xff1a 本文包含在windows和在kali下使用的工具 xff0c win下已做标 MISC相关工具下载 图片相关 jpg f5 steganography F5隐写 xff0c 需要passwd 安装 kali中安装 xf
  • 程序设计思维与实践 Week8 作业 B 猫猫向前冲

    题目描述 xff1a 众所周知 xff0c TT 是一位重度爱猫人士 xff0c 他有一只神奇的魔法猫 有一天 xff0c TT 在 B 站上观看猫猫的比赛 一共有 N 只猫猫 xff0c 编号依次为1 xff0c 2 xff0c 3 xf
  • CobaltStrike的使用

    CobaltStrike的使用 01CobaltStrike CobaltStrike是一款渗透测试神器 xff0c 被业界人称为CS神器 CobaltStrike分为客户端与服务端 xff0c 服务端是一个 xff0c 客户端可以有多个
  • Wireshark软件使用教程

    Wireshark软件使用教程 Wireshark是非常流行的网络封包分析软件 xff0c 可以截取各种网络数据包 xff0c 并显示数据包详细信息 常用于开发测试过程各种问题定位 本文主要内容包括 xff1a 1 Wireshark软件下
  • Sublime text 3 如何下载安装汉化插件,配置python2编译环境

    Sublime text 3 如何下载安装汉化插件 xff0c 配置python2编译环境 下载地址 下载地址 xff1a http www sublimetext com download 软件汉化 首先 xff0c 需要安装Packag
  • 利用WireShark将pcap数据流还原文件

    利用WireShark将pcap数据流还原文件 使用工具 xff1a WireShark WinHex 1 打开pcap文件 2 对数据流进行筛选 利用ctrl 43 f打开或Edit 编辑查找分组 选择分组字节流 字符串 xff0c 筛选
  • 利用python脚本删除txt文件每行后4个字符,并换行

    利用python脚本删除txt文件每行后4个字符 xff0c 并换行 import os filename 61 r 34 123 txt 34 new filename 61 r 34 1234 txt 34 with open file
  • 摩斯密码解密py脚本

    摩斯密码解密py脚本 解题思路 0010 0100 01 110 1111011 11 11111 010 000 0 001101 1010 111 100 0 001101 01111 000 001101 00 10 1 0 010
  • MinGW+Sublime Text下载和安装运行C和C++程序

    MinGW 43 Sublime Text下载和安装运行 MinGW下载和安装教程 http c biancheng net view 8077 html Sublime Text运行C和C 43 43 程序 http c bianchen
  • grep 命令介绍

    grep 命令介绍 grep 查找文件里符合条件的字符串 xff0c 常与管道符 cat ps一起使用 xff1b 主要用于查找文件中符合条件的字符串 统计文件中符合条件的字符串行数 grep 不显示自身进程 grep 常用命令参数 c x
  • Kali Linux 安装slowhttptest步骤

    Kali Linux 安装slowhttptest步骤 Slowhttptest其实是一个DoS压力测试工具 xff0c 它集成有三种慢速攻击模式 slowloris slow http post slow read attack xff0
  • 在Centos中,程序运行是正常的,外部不能访问,内部可以访问问题解决

    在Centos中 xff0c 程序运行是正常的 xff0c 外部不能访问 xff0c 内部可以访问问题解决 今天遇到一个问题 xff0c 在centos中用python3搭建的一个web服务 xff0c 发现在centos内部可以访问网站
  • 程序设计思维与实践 Week9 作业 A 咕咕东的目录管理器

    题目描述 xff1a 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响 xff0c 时不时发生故障 xff0c 他受不了了 xff0c 想要写一个高效易用零bug的操作系统 这工程量太大了 xff0c 所以他定了一个小目标 xff0c
  • jsoncpp linux平台编译和arm移植

    0x00 下载 http sourceforge net projects jsoncpp 或者 http download csdn net detail chinaeran 8631141 0x01 Linux平台编译 安装 scons
  • 摩斯密码解码脚本

    摩斯密码解码脚本 解题思路 0010 0100 01 110 1111011 11 11111 010 000 0 001101 1010 111 100 0 001101 01111 000 001101 00 10 1 0 010 0
  • php匹配关键字并跳转页面

    php匹配关键字跳转页面 strstr函数搜索要从目标字符串中搜索的字符串 xff1b strstr函数仅用于检查字符串是否存在 xff1b strstr函数的用法如下 lt php b 61 39 or 39 name 61 GET 39
  • docker常见命令小结

    docker常见命令小结 常见命令 docker ps 查看正在运行的容器 docker exec it 264bb068855e bin bash 进入容器 xff0c 并作出修改 docker commit 3bd0eef03413 l
  • 前端html文件下载,同源与异源下载

    属性说明download下载的资源的名称target打开该连接的方式 self blank href资源的地址 本地 远程地址 a标签跳转 lt DOCTYPE html gt lt html gt lt head gt lt meta c
  • Python图像(字母数字)识别

    本文只针对数字或字母验证码识别 准备工具 tesseract ocr w64 setup v4 1 0 20190314 exepip install pytesseractpip install pillow中文包 tesseract o