操作系统:Windows
Python:3.5
欢迎加入学习交流QQ群:657341423


上节讲到验证码的简单识别

但对于一些复杂的验证码,我们需要做一些简单的图片处理才能识别。

例如,我要识别这些验证码:

设计思路:首先将图片变灰,然后转为RGBA,即四个通道,每个通道代表每种颜色,这个涉及到图片处理的一些基础知识。这个可以研究一下opencv。这个比较有意义。然后判断通道的颜色来转换成黑白色彩。便于OCR识别。

from PIL import Image
from PIL import ImageEnhance
from PIL import ImageFilter
import sys
import os
import pytesseract
from pyocr import tesseract
import timedef eachFile(filepath):pathDir =  os.listdir(filepath)for allDir in pathDir:child = os.path.join('%s%s' % (filepath, allDir))if "jpg" in child:jpgList.append(child)def OutCode(code):file=open(SettingFile+"data.txt",'w')file.write(code)file.close()print (code)# 黑白反色,白色替换
# 此处N直接为255
# 小于N的 被替换成黑色
# 大于等于N的 被替换成白色,255代表白色,0代表黑色
if __name__=='__main__':while 1:SettingFile="D:\\"jpgList=[]eachFile(SettingFile)for i in jpgList:try:im = Image.open(i)im=im.convert('L')#图片转换为灰色图像im=im.convert('RGBA')#图片转换成RGBA模式pixdata = im.load()for y in range(im.size[1]):for x in range(im.size[0]):#循环图像里的每一个像素。每个像素为一个长度为4的列表。因为图片转换成RGBA模式,所以列表长度为4,A就是透明度if pixdata[x,y][0]>170 and pixdata[x,y][1]>170 and pixdata[x,y][2]>170 and pixdata[x,y][3]>170:pixdata[x,y]=(255, 255, 255, 0)else:  pixdata[x,y]=(0, 0, 0, 0)im.save("asa.png")#下面code与注释的code实现的功能一样#code=pytesseract.image_to_string(im)code=tesseract.image_to_string(im)OutCode(code)os.remove(i)except Exception as e:code="Unrecognized"OutCode(code)os.remove(i)time.sleep(5)

这里我设计一个死循环,每隔五秒检测d盘下的jpg文件,然后输出识别后的结果。测试结果:

如图所示:asa.png为处理后的图片。然后给OCR识别。
(建议将图片改为png格式)
当然,这个OCR识别永远都是有一定的准确率。这个是无法改变的。

Python OCR识别图片验证码(二)相关推荐

  1. python—简单数据抓取四(利用超级鹰的ocr识别图片验证码模拟登录超级鹰网站、利用百度云的ocr识别自如租房网价格图片获取到自如网的价格)

    学习目标: python学习二十四 -简单数据抓取四 学习内容: 1.利用超级鹰的ocr识别图片验证码模拟登录超级鹰网站 2.利用百度云的ocr识别自如租房网的价格图片,获取到自如网的价格数据 1.利 ...

  2. 百度云 OCR 识别图片验证码

    操作系统:Mac OS Python版本:3.7.2 OCR:百度云 遇到的问题: API测试过程中,遇到API Resopnse 为图片验证码的情况,需要对图片进行识别得到text code,进行断 ...

  3. 用Python模拟识别图片验证码并发送手机验证码

    1.导语 大家好,好久不见.又到每日分享Python小技能的时候了.最近因为疫情影响,所以更新内容比较慢-今天周一,就来更新一波,心血来潮,是时候上线经营了.其实也没想到有啥好分享的,不如分享一些干货 ...

  4. python实现OCR识别图片验证码

    用cv2模块读取和显示模块 #导包cv2拓展模块 import cv2#先给窗体起名字 cv2.namedWindow("ShowImage1") cv2.namedWindow( ...

  5. python怎么识别图片验证码_python爬虫20 | 小帅b教你如何使用python识别图片验证码...

    当你在爬取某些网站的时候 对于你的一些频繁请求 对方会阻碍你 常见的方式就是使用验证码 验证码的主要功能 就是区分你是人还是鬼(机器人) 人 想法设法的搞一些手段来对付技术 而 技术又能对付人们的想法 ...

  6. Python之ocr识别图片并转为excel文件

    环境准备 1.开通腾讯文字识别服务         按照官网步骤进行开通:https://cloud.tencent.com/product/generalocr/getting-started 开通 ...

  7. python 制定识别图片的某些区域_python批量识别图片指定区域文字内容

    Python批量识别图片指定区域文字内容,供大家参考,具体内容如下 简介 对于一张图片,需求识别指定区域的内容 1.截取原始图上的指定图片当做模板 2.根据模板相似度去再原始图片上识别准确坐标 3.根 ...

  8. Python - WebDriver 识别登录验证码

    Python - WebDriver 识别登录验证码 没什么可说的直接上代码! #-*-coding:utf-8-*- # Time:2017/9/29 7:16 # Author:YangYangJ ...

  9. Python+Tesseract-OCR识别图片文字并保存到word文档

    目录 使用Python+Tesseract-OCR识别图片文字并保存到word文档 安装Tesseract-OCR 配置Tesseract-OCR 通过CMD验证Tesseract-OCR工作 安装p ...

最新文章

  1. Linux那些事儿 之 戏说USB(29)驱动的生命线(一)
  2. 算法设计:双相机高斯建模算法优化
  3. 《战狼2》中人脸识别无人机表现不俗,军、警用果真如此高能?
  4. 训练网络loss出现Nan的原因总结记录
  5. 搜索引擎学习(六)Query的子类查询
  6. js事件处理、事件对象
  7. 计算机科学与技术班级口号八字,班级的八字口号
  8. 【华为云技术分享】使用sqoop导入mysql数据到hive中
  9. 使用d3.v5实现折线图与面积图
  10. pip install 报错 Error: Cannot uninstall ‘pyparsing‘ 的解决方法
  11. 【Android开发】之编译脚本Makefile编写
  12. LeetCode(561)——数组拆分 I(JavaScript)
  13. luogu2680 运输计划
  14. 狼来了!第一批90后测试员已经开始经历测试行业求职危机……
  15. WinFrom 中 label背景透明
  16. LeetCode[791] 自定义字符串排序
  17. 能力提升综合题单Part 8.9.3 费用流
  18. c#明华rf读卡器_明华URF-R330读卡器C#代码示例
  19. 声临其境,轻松几步教你把音频变成3D环绕音
  20. 最全的身份证校验规则

热门文章

  1. [nlp] 小傻学数据预处理
  2. 《首席执行官》观后感
  3. Java制造业MES生产管理ERP系统源码 MES系统源码
  4. Cypress 本身启动过程的调试
  5. 网络变压器工厂:了解POE POE+ 网络变压器(网络隔离滤波器)
  6. 影视列表(20211117更新)
  7. 【全栈开发实战小草看书之开篇】
  8. 如何正确有效清除jwgkvsq.vmx病毒
  9. 实战6:基于OpenCV的人脸口罩识别检测详细教程
  10. linux Hadoop环境变量安装及应用