【Opencv实战】 识别验证码

红太狼 2022-03-26 02:54 513阅读 0赞

环境说明

opencv-python 3.4.4.19

pytesseract 0.2.6

tesseract 0.1.3

安装

第一步:安装Tesseract-OCR,下载地址:tesseract-ocr,请记住自己的安装位置,一会儿要用。

第二步:安装tesseract,直接在cmd,命令行输入

  1. pip install tesseract

进行进行自动安装,由于网络问题,这里下载的速度会非常慢,这里给出下载链接。点这里哦

第三步:安装pytesseract,在命令行模式输入:

  1. pip install pytesseract

这个安装的很快。之后通过

  1. pip list

查看是否安装成功

测试

  1. import cv2 as cv
  2. from PIL import Image
  3. import pytesseract
  4. def recognize_text():
  5. gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
  6. ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
  7. kernel = cv.getStructuringElement(cv.MORPH_RECT, (1, 6))
  8. binl = cv.morphologyEx(binary, cv.MORPH_OPEN, kernel)
  9. kernel = cv.getStructuringElement(cv.MORPH_RECT, (5, 1))
  10. open_out = cv.morphologyEx(binl, cv.MORPH_OPEN, kernel)
  11. cv.bitwise_not(open_out, open_out) # 背景变为白色
  12. cv.imshow("dstImage", open_out)
  13. textImage = Image.fromarray(open_out)
  14. text = pytesseract.image_to_string(textImage)
  15. print("Result:%s"%text)
  16. src = cv.imread("yzm.jpg")
  17. cv.imshow("srcImage", src)
  18. recognize_text()
  19. cv.waitKey(0)
  20. cv.destroyAllWindows()

若出现:TesseractNotFoundError: tesseract is not installed or it’s not in your path,报错

请将路径:“C:\Program Files\Python36\Lib\site-packages\pytesseract”下的pytesseract.py进行修改:

  1. # CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
  2. tesseract_cmd = 'tesseract'

请替换为

  1. # CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
  2. tesseract_cmd = r'D:\Program Files (x86)\Tesseract-OCR\tesseract.exe'

因为这里要更换为自己路径。就是第一步安装Tesseract-OCR的路径。

测试效果

测试图片

20190115145003499.jpg

结果:

20190115145115349.png

20190115145058445.png

20190115145043278.png


★finished by songpl,2019.1.15

发表评论

表情:
评论列表 (有 0 条评论,513人围观)

还没有评论,来说两句吧...

相关阅读

    相关 验证识别

    验证码识别 识别功能 识别功能是调用,网上的接口的,而且是付费的,但是平均几分钱一条 平台:云打码 注册一个普通用户,充值1块钱就行 然后下载python的d

    相关 keras的验证识别实战

    keras的验证码图像识别 一、简介 接触过机器学习的都应该知道,TensorFlow和keras的一个经典的入门例子就是MNIST的手写图片识别,具体内容是根据手写的0-