当前位置: 首页 > news >正文

python实现中文验证码识别方法(亲测通过)


验证码截图如下:

 


# coding:utf-8
from PIL import Image,ImageEnhance
import pytesseract
#上面都是导包,只需要下面这一行就能实现图片文字识别
im = Image.open('merge_source.jpg')
#下面为增强部分
enh_con = ImageEnhance.Contrast(im)
contrast = 1.5
image_contrasted = enh_con.enhance(contrast)
#image_contrasted.show()

#增强亮度
enh_bri = ImageEnhance.Brightness(image_contrasted)
brightness = 1.5
image_brightened = enh_bri.enhance(brightness)
#image_brightened.show()
#增强对比度
enh_col = ImageEnhance.Color(image_brightened)
color = 1.5
image_colored = enh_col.enhance(color)
#image_colored.show()
#增强锐度
enh_sha = ImageEnhance.Sharpness(image_colored)
sharpness = 3.0
image_sharped = enh_sha.enhance(sharpness)
#image_sharped.show()

#灰度处理部分
im2=image_sharped.convert("L")
im2.show()
text=pytesseract.image_to_string(im2,lang='chi_sim').strip() #使用image_to_string识别验证码
print(text)
打印结果:

 

 知识扩展:

1.需要安装的库Pillow 库(PIL)和pytesseract ,安装方式直接通过pip安装

2.需要安装windows版本的TesseractOCRiOS(光学字符识别)程序,下载地址:http://xza.198424.com/tesserract.zip

   特别注意,ocr安装完成后需要配置环境变量

 ① 在安装位置时,需要在语言选择

  

    展开,找到简体中文进行勾选,如果有其他字体需要也可以勾选安装,语言会安装到安装目录下的tessdata文件夹中

  

 

 ① tesseract的环境变量 C:\Program Files (x86)\Tesseract-OCR ,根据实际安装位置填写

 ②C:\Program Files (x86)\Tesseract-OCR\tessdata

 

#打码的路上还很长

转载于:https://www.cnblogs.com/VseYoung/p/python_verifycode.html

相关文章:

  • EntityFramework Core笔记:保存数据(4)
  • ​Python 3 新特性:类型注解
  • 年会全记录 | Hi,菜鸟,五周岁生日快乐哇!
  • Swift 项目总结 06 基于控制器的全局状态栏管理
  • 织梦网站安装目录更换后,怎么更换上传网站中图片路径
  • 【Android Studio安装部署系列】二十四、Android studio中Gradle插件版本和Gradle版本关系...
  • 基于 HTML5 WebGL 的 3D 棉花加工监控系统
  • 16-client、offset、scroll系列
  • 数据结构之 二叉树
  • 【Touchinput 】指定输入方法类型(11)
  • iOS中父类readonly属性修改
  • μCOS-II系统之事件(event)的使用规则及MUTEX实例
  • 之所以一无所成,并不是我们不够努力
  • [转]Ubuntu16 压缩解压文件命令
  • 数组全部整理
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 08.Android之View事件问题
  • 2019.2.20 c++ 知识梳理
  • Angular Elements 及其运作原理
  • Asm.js的简单介绍
  • Fundebug计费标准解释:事件数是如何定义的?
  • Java 多线程编程之:notify 和 wait 用法
  • Linux链接文件
  • Netty源码解析1-Buffer
  • npx命令介绍
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • spring学习第二天
  • 对JS继承的一点思考
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 记一次用 NodeJs 实现模拟登录的思路
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 提醒我喝水chrome插件开发指南
  • 与 ConTeXt MkIV 官方文档的接驳
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • FaaS 的简单实践
  • zabbix3.2监控linux磁盘IO
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #Java第九次作业--输入输出流和文件操作
  • #控制台大学课堂点名问题_课堂随机点名
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (七)c52学习之旅-中断
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (区间dp) (经典例题) 石子合并
  • (十)c52学习之旅-定时器实验
  • (顺序)容器的好伴侣 --- 容器适配器
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • /etc/shadow字段详解
  • [].shift.call( arguments ) 和 [].slice.call( arguments )