目录

业务需求

需求分析

代码一

结果分析

代码二

代码模块

结果分析

总结经验

参考文献


业务需求

识别验证码图片中的数字信息,用python的图形表示出来了

需求分析

使用Cv2模块、pytesseract模块进行操作。CV2是计算机建模识别的库,用来给图像进行灰度处理,降噪处理,形态学分析。pytesseract模块将智能识别图片字体数字,用于打印出来。

代码一

# -*- conding:utf-8 -*-
#二维码识别,呈现不同效果。
#导入计算机学习开源数据库
import cv2 as cv
#导入计算机识别模块
import pytesseract
#导入图像模块,形成图像
from PIL import Image
#定义函数,导入图像
def recognize_text(image):#边缘保留滤波,去除噪dst = cv.pyrMeanShiftFiltering(image,sp=10,sr=150)#灰度图像gray = cv.cvtColor(dst,cv.COLOR_BGR2GRAY)#图像二值化ret,binary = cv.threshold(gray,0,225,cv.THRESH_BINARY_INV | cv.THRESH_OTSU)#形态学操作 ,腐蚀,膨胀erode = cv.erode(binary,None,iterations=2)dilate = cv.dilate(erode,None,iterations=1)#逻辑运算,背景设置为白色,字体为黑色,便于识别cv.imshow('dilate',dilate)cv.bitwise_not(dilate,dilate)cv.imshow('binary-image',dilate)#识别图像test_message = Image.fromarray(dilate)text = pytesseract.image_to_string(test_message)print(f'define result:{text}')
#导入图像
src = cv.imread(r'./image.png')
#显示图像名字为input image,第二个是导入的图像。
cv.imshow('input image',src)
#调取函数导入图像
recognize_text(src)
cv.waitKey(0)
cv.destroyWindow()

结果分析

导入的原图image的图片情况

编译结果呈现:先用cv方法解析生成几种类型的图片,在用pytesseract识别图片中的文字了。

代码二

验证码图片Image5.png:

代码模块

import cv2 as cv
import pytesseract
from PIL import Imagedef recognize_text(image):# 边缘保留滤波  去噪blur = cv.pyrMeanShiftFiltering(image, sp=8, sr=60)cv.imshow('dst', blur)# 灰度图像gray = cv.cvtColor(blur, cv.COLOR_BGR2GRAY)# 二值化ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)print(f'二值化自适应阈值:{ret}')cv.imshow('binary', binary)# 形态学操作  获取结构元素  开操作kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 2))bin1 = cv.morphologyEx(binary, cv.MORPH_OPEN, kernel)cv.imshow('bin1', bin1)kernel = cv.getStructuringElement(cv.MORPH_OPEN, (2, 3))bin2 = cv.morphologyEx(bin1, cv.MORPH_OPEN, kernel)cv.imshow('bin2', bin2)# 逻辑运算  让背景为白色  字体为黑  便于识别cv.bitwise_not(bin2, bin2)cv.imshow('binary-image', bin2)# 识别test_message = Image.fromarray(bin2)text = pytesseract.image_to_string(test_message)print(f'识别结果:{text}')src = cv.imread(r'./image5.png')
cv.imshow('input image', src)
recognize_text(src)
cv.waitKey(0)
cv.destroyAllWindows()

结果呈现

总结经验

cv2,pytesseract的使用不复杂了,按照官方操作手册来使用即可。安装时候记得更换一下源的地址,有一些官方的源不容易搜索到CV2和pytesseract模块了,要更换地址源才可以用。不过代码模块只能识别图片中的数字,对图片中的中文还没有识别出来。可能需要重新写代码。

参考文献

使用Python中的pytesseract模块实现抓取图片中文字_业里村牛欢喜的博客-CSDN博客_利用pytesseract模块

Py之cv2:cv2(OpenCV,opencv-python)库的简介、安装、使用方法(常见函数、图像基本运算等)最强详细攻略_一个处女座的程序猿的博客-CSDN博客_cv2

anaconda安装open cv_小夭。的博客-CSDN博客_conda安装cv

Python代码实现验证码识别_我行我素,向往自由的博客-CSDN博客_python 识别验证码

Python使用Cv2模块识别验证码相关推荐

  1. Python 使用cv2模块 进入视觉识别的报错,报错信息为AttributeError: module ‘cv2.cv2‘ has no attribute ‘bgsegm

    Python 使用cv2模块 进入视觉识别的报错,报错信息为AttributeError: module 'cv2.cv2' has no attribute 'bgsegm 问题描述--cv2模块 ...

  2. Python用imghdr模块识别图片格式

    Python用imghdr模块识别图片格式 imghdr.what(img_file) img_end = {'jpg', 'bmp', 'png', 'jpeg', 'rgb', 'tif', 't ...

  3. Python 利用百度文字识别验证码、文字、图片并提取图片中文字或数字

    Python 利用百度文字识别验证码.文字.图片并提取图片中文字或数字 Python 利用百度文字识别验证码.文字.图片并提取图片中文字或数字 以下是代码实现, Python 利用百度文字识别验证码. ...

  4. python安装cv2模块的方法_Python opencv模块cv2安装和部分函数使用

    Python opencv模块cv2安装和部分函数使用 前几天做了一下验证码识别,在这里分享一下用到的opencv模块cv2部分函数的使用方法,也是给自己加深一下记忆. 一.cv2模块安装 在这里提醒 ...

  5. layui图片src 指定后没显示_2种方法用python调用cv2模块给图片打马赛克

    1 说明: ===== 1.1 因各种需要,给图片打马赛克,当然本人着重介绍python用cv2的方法,主要讲解python和cv2的相关编程知识. 1.2 cv2模块:是OpenCV的python调 ...

  6. cv2 python 多线程调用摄像头_2种方法用python调用cv2模块给图片打马赛克

    1 说明: ===== 1.1 因各种需要,给图片打马赛克,当然本人着重介绍python用cv2的方法,主要讲解python和cv2的相关编程知识. 1.2 cv2模块:是OpenCV的python调 ...

  7. Python:利用cv2模块识别手势

    简介:OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库, 可以运行在Linux, Windows, Android和Mac-OS操作系统上. 它轻量级而且高效--由一系列 C 函数和少 ...

  8. python几行代码识别验证码_Python有多强?文字识别(验证码识别)只需三行代码!...

    不要说这都是在借用其它语言的代码,其实这些东西真的无关紧要.何为Python高级语言,黑猫白猫能捉到老鼠的就是好猫!如果真的有那么高冷,那么任何程序你都要敲代码而不用任何模块? 再开个玩笑,要不用0和 ...

  9. python安装cv2模块_pythonimportcv2importError:DLLloadfailed:找不到指定模块

    1.安装 (1)pip install opencv-python import cv2报错 解决方法:卸载原始版本,安装新的版本. pip uninstall opencv-python (2)在官 ...

最新文章

  1. 在Eclipse中打开Hadoop工程
  2. k3s安装和卸载:轻量级K8S
  3. C# 中的只读结构体(readonly struct)
  4. 微信pc群发器,支持小程序、视频号、名片、图片、文字等
  5. 敏捷开发人员结构_开发人员可以在敏捷外观方面发表意见的4种方法
  6. mysql double 存储_关于MYSQL中FLOAT和DOUBLE类型的存储-阿里云开发者社区
  7. 当年如果有这个,语文就不会不及格了
  8. 汉字与多字节编码的转换 - 回复 不知道 的问题
  9. C语言程序设计-基础
  10. 解决无法删除文件:无法读取源文件或磁盘
  11. Win32 改变鼠标的光标图片
  12. kingroot android 8.1,360一键root手机版
  13. 2017年全国大学生电子设计竞赛 单相用电器分析监测装置(K题)
  14. c语言怎么用setw输出每行6个,setw和setfill控制输出间隔
  15. 高红梅:第二章 海明威个人身份的探寻 第一节 性别身份意识与代际关系书写
  16. T a(v);和T a = v;的区别
  17. 微信小程序如何支持分享给朋友和分享到朋友圈?如何解决分享朋友圈灰色问题
  18. 修改mc服务器名字,好听的mc服务器名字
  19. 7-4 最短路径之Dijkstra(朴素dijkstra打印路径)
  20. rabbitMQ实例(java)

热门文章

  1. CS229part3广义线性模型
  2. 香港公司开户多少钱选个哪个银行比较好
  3. Android SDK环境变量配置及连接真机
  4. Apollo学习笔记(24)基于采样的路径规划算法
  5. 什么是DDos攻击,如何有效缓解DDos攻击?
  6. 微宝自动更新影视源码全解
  7. oracle宕机,startup报错ora03113
  8. MS8006单片机开发IR红外遥控解码原理与程序实现(NEC)
  9. CSS3综合练习,导航菜单的制作
  10. 今天偶遇win10的CTRL+c和CTRL+v,失灵。不知道为什么,也试验了各种帖子什么clip不行。发现有一个简单粗暴的方法