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

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

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

即:

1、图片降噪

灰度以及二值化

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

3、识别后图像文本输出


  1. import cv2 as cv
  2. from PIL import Image
  3. import pytesseract as tess
  4.  
  5. def open_demo(image):
  6. # 灰度图操作
  7. #image = cv.resize(img, (300, 200), interpolation=cv.INTER_AREA)
  8. gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY)
  9. cv.imshow("huidu",gray)
  10. # 二值化操作
  11. ret,binary = cv.threshold(gray,0,255,cv.THRESH_BINARY_INV | cv.THRESH_OTSU) #cv.THRESH_TRIANGLE
  12. cv.imshow("binary",binary)
  13. # 矩形元素
  14. kernel = cv.getStructuringElement(cv.MORPH_RECT, (2,2)) # 未赋值,所以只是一个操作。
  15. # 形态学操作
  16. bin1 = cv.morphologyEx(binary, cv.MORPH_OPEN, kernel) # 开操作
  17. cv.imshow("",bin1)
  18. #kernel = cv.getStructuringElement(cv.MORPH_RECT, (1, 5))
  19. # 形态学操作
  20. #open_out = cv.morphologyEx(bin1, cv.MORPH_OPEN, kernel)
  21. #cv.imshow("xingtai", open_out)
  22. cv.bitwise_not(bin1,bin1)
  23. textimage = Image.fromarray(bin1)
  24. print(textimage)
  25. text = tess.image_to_string(textimage)
  26. print(text)
  27.  
  28. src = cv.imread("E:/opencv_pictures/yanzhengma/yanzhengma.jpg")
  29. #cv.namedWindow("test", cv.WINDOW_AUTOSIZE)
  30. #cv.imshow("test", src)
  31. open_demo(src)
  32. cv.waitKey(0)
  33. cv.destroyAllWindows()
  34.  
  35. """
  36. http://blog.csdn.net/u011028345/article/details/77278467
  37. bitwise_and是对二进制数据进行“与”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“与”操作,1&1=1,1&0=0,0&1=0,0&0=0
  38. bitwise_or是对二进制数据进行“或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“或”操作,1|1=1,1|0=0,0|1=0,0|0=0
  39. bitwise_xor是对二进制数据进行“异或”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“异或”操作,1^1=0,1^0=1,0^1=1,0^0=0
  40. bitwise_not是对二进制数据进行“非”操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制“非”操作,~1=0,~0=1
  41. """

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. Visual studio 2008 的语法高亮插件 WordLight

    前段时间一直在使用matlab,今天需要使用vs2008,而用惯了matlab,习惯了其中一项选中变量高亮的设置,突然回来使用VS,感到各种不适应,顿时想到了一个词:矫情 呵呵,于是在网上找各种插件, ...

  2. python函数值传递还是引用传递

    c/c++中有值传递引用传递的区别.但是python中是值传递还是引用传递呢?首先看python中对变量的定义 "python中变量是指向某个内存的, 而内存中的内容是不可变的." ...

  3. html上传图片类型

    <html>  <head>  <meta charset="utf-8">  <title>上传图片</title> ...

  4. cmd-net命令详解

    NET ViewNET UserNET UseNET TimeNet Start Net PauseNet ContinueNET StopNet StatisticsNet Share Net Se ...

  5. linux驱动之中断方式获取键值

    linux驱动之中断方式获取键值 ----------------------------------------------------------------------------------- ...

  6. Python - 两个列表(list)组成字典(dict)

    使用zip函数, 把key和value的list组合在一起, 再转成字典(dict). 代码: # -*- coding: utf-8 -*- keys = ['a', 'b', 'c'] value ...

  7. 从Linux内核升级的必要性说开去

    Linux内核更新超级频繁,可是有必要时刻升级吗?个人感觉没有必要,可是你要时刻关注新特性列表,然后把自己的内核升级到离最新版本号差一两个月公布的版本号而不是最新版本号.以保证稳定性,由于一两个月的时 ...

  8. Javascript基本概念梳理

    javascript里的数据类型: 原始类型:数字,字符串.布尔值.(原始值:null,undefined) 对象类型:键值对,数组,function,全局对象(MATH,JSON) 保留字: abs ...

  9. npm won't install packages “npm ERR! network tunneling socket could not be established, cause=Parse Error”

    昨天在使用npm安装react-native的时候一直报网络不能connection,可是在浏览器中直接访问时是成功,搜索百度无果,最后在google中找到了这个解决方案:http://stackov ...

  10. Robot Framework 初学者上手资料

    首先要声明一下这是从http://www.cnblogs.com/yufeihlf/p/5949984.html拷贝的. 在这里只是自己的一个笔记,方便日后添加.修改内容. 总结下Robot Fram ...