简书教程:https://www.jianshu.com/p/41127bf90ca9

博客园教程(较详细):https://www.cnblogs.com/qqandfqr/p/7866650.html

个人总结:如上面两位大哥所属基本思路都是一样的

即:

1、图片降噪

灰度以及二值化

2、图片切割(也可以整体识别)

3、识别后图像文本输出


import cv2 as cv
from PIL import Image
import pytesseract as tess def open_demo(image):
# 灰度图操作
#image = cv.resize(img, (300, 200), interpolation=cv.INTER_AREA)
gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
cv.imshow("huidu",gray)
# 二值化操作
ret,binary = cv.threshold(gray,0,255,cv.THRESH_BINARY_INV | cv.THRESH_OTSU) #cv.THRESH_TRIANGLE
cv.imshow("binary",binary)
# 矩形元素
kernel = cv.getStructuringElement(cv.MORPH_RECT, (2,2)) # 未赋值,所以只是一个操作。
# 形态学操作
bin1 = cv.morphologyEx(binary, cv.MORPH_OPEN, kernel) # 开操作
cv.imshow("",bin1)
#kernel = cv.getStructuringElement(cv.MORPH_RECT, (1, 5))
# 形态学操作
#open_out = cv.morphologyEx(bin1, cv.MORPH_OPEN, kernel)
#cv.imshow("xingtai", open_out)
cv.bitwise_not(bin1,bin1)
textimage = Image.fromarray(bin1)
print(textimage)
text = tess.image_to_string(textimage)
print(text) src = cv.imread("E:/opencv_pictures/yanzhengma/yanzhengma.jpg")
#cv.namedWindow("test", cv.WINDOW_AUTOSIZE)
#cv.imshow("test", src)
open_demo(src)
cv.waitKey(0)
cv.destroyAllWindows() """
http://blog.csdn.net/u011028345/article/details/77278467
bitwise_and是对二进制数据进行“与”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“与”操作,1&1=1,1&0=0,0&1=0,0&0=0
bitwise_or是对二进制数据进行“或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“或”操作,1|1=1,1|0=0,0|1=0,0|0=0
bitwise_xor是对二进制数据进行“异或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“异或”操作,1^1=0,1^0=1,0^1=1,0^0=0
bitwise_not是对二进制数据进行“非”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“非”操作,~1=0,~0=1
"""

opencv识别验证码的教程和资料的更多相关文章

  1. Python爬虫入门教程 60-100 python识别验证码,阿里、腾讯、百度、聚合数据等大公司都这么干

    常见验证码 之前的博客中已经解决了一些常见验证码的问题,但是验证码是层出不穷的,目前解决验证码除了通过常规手段解决以外,还可以通过人工智能领域的深度学习去解决 深度学习?! 无疑对爬虫coder提高了 ...

  2. 使用Python基于OpenCV的验证码识别

    Blog:https://blog.csdn.net/qq_40962368/article/details/89312429(Verification_Code_Identification) 步骤 ...

  3. C#识别验证码技术-Tesseract

    相信大家在开发一些程序会有识别图片上文字(即所谓的OCR)的需求,比如识别车牌.识别图片格式的商品价格.识别图片格式的邮箱地址等等,当然需求最多的还是识别验证码.如果要完成这些OCR的工作,需要你掌握 ...

  4. Python Tensorflow CNN 识别验证码

    Python+Tensorflow的CNN技术快速识别验证码 文章来源于: https://www.jianshu.com/p/26ff7b9075a1 验证码处理的流程是:验证码分析和处理—— te ...

  5. Python3 识别验证码(opencv-python)

    Python3 识别验证码(opencv-python) 一.准备工作 使用opencv做图像处理,所以需要安装下面两个库: pip3 install opencv-python pip3 insta ...

  6. 基于opencv 识别、定位二维码 (c++版)

    前言 因工作需要,需要定位图片中的二维码:我遂查阅了相关资料,也学习了opencv开源库.通过一番努力,终于很好的实现了二维码定位.本文将讲解如何使用opencv定位二维码. 定位二维码不仅仅是为了识 ...

  7. nodeJS实现识别验证码(tesseract-ocr+GraphicsMagick)

    背景 最近在写一个爬虫的小工具,卡在登录这里. 想爬的网站需要登录才能获取数据,登录又需要输入验证码. 好在验证码是简单的验证码,还可以自己识别试试. 需求分析 1.保存验证码图片 2.识别验证码 3 ...

  8. 【入门必备】最佳的 Node.js 学习教程和资料书籍

    Web 开发人员对 Node.js 的关注日益增多,更多的公司和开发者开始尝试使用 Node.js 来实现一些对实时性要求高,I/O密集型的业务.这篇文章中,我们整理了一批优秀的资源,你可以得到所有你 ...

  9. 【转载】loadrunner使用system()函数调用Tesseract-OCR识别验证码遇到的问题

    俗话说前人栽树,后人乘凉,此话一点不假,结合云层的一遍文章:http://bbs.51testing.com/thread-533920-1-1.html,知道还有一个Tesseract-OCR可以用 ...

随机推荐

  1. epoll 的accept , read, write

    http://www.ccvita.com/515.html 在一个非阻塞(fcntl)的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就 ...

  2. Symantec Backup Exec部署手册

    转载  http://xiaxiaoguo.blog.51cto.com/858884/402810 Symantec Backup Exec部署手册 目录 1.Backup Exec 12.5安装. ...

  3. SSH-struts2的异常处理

    在学习j2se的时候学习过利用java的exception类去处理异常.在struts2框架中也提供了对于异常的处理.简单说就是当Action发生异常时.能够在struts2.xml文件里进行配置,将 ...

  4. 一张图告诉你是须要 SQL 还是 Hadoop

    译序 非常多朋友问时下如火如荼的 Hadoop 是否适合引进我们自己的项目,什么时候用 SQL.什么时候用 Hadoop,它们之间怎样取舍?Aaron Cordova 用一张图来回答你这个问题,对于不 ...

  5. iOS开发——高级篇——iOS 强制退出程序APP代码

    1.先po代码 UIAlertView* alert = [[UIAlertView alloc] initWithTitle:self.exitapplication message:@" ...

  6. unigui组件中client javascript delphi组件之间的操作

    UniLabel组件: function OnClick(sender, e){ MainForm.UniLabel1.setText('Click!');} function Onmousemove ...

  7. 利用 C# dynamic 减少创建模型类

    C# 的 dynamic 关键字可以是C#可以像 javascript 这种弱类型语言一样具有随时可以添加属性的能力.C# 是一种强类型语言,dynamic 要摆脱类型的限制,自然是有代价的.这里不讨 ...

  8. luogu 3375 【模板】KMP字符串匹配

    我太菜了 今天才学会kmp #include<iostream> #include<cstdio> #include<algorithm> #include< ...

  9. [luogu2620]虫洞

    https://www.zybuluo.com/ysner/note/1284536 题面 给一个一维坐标系,出发点为\(0\),目标点为\(w\). 每\(1\)秒可以往后移不超过\(s\)个单位距 ...

  10. 第十三周 Leetcode 363. Max Sum of Rectangle No Larger Than K(HARD)

    Leetcode363 思路: 一种naive的算法就是枚举每个矩形块, 时间复杂度为O((mn)^2), 可以做少许优化时间复杂度可以降低到O(mnnlogm), 其中m为行数, n为列数. 先求出 ...