zoukankan      html  css  js  c++  java
  • tesseract配置与文字识别(19)

    1. 安装tesseract

    OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。对于图形验证码来说,它们都是一些不规则的字符,这些字符确实是由字符稍加扭曲变换得到的内容。

    pip install pytesseract

    继续安装tesseract.exe

    tesseract下载地址:https://digi.bib.uni-mannheim.de/tesseract/

    2、配置环境变量

    为了在全局使用方便,比如安装路径为C:Program Files (x86)Tesseract-OCRTesseract-OCR,将该路径添加到环境变量的path中.

    3 新建tessdata文件

    4 新建系统环境变量

     

    官网 :http://tesseract.gg/

    5 图片识别

    from PIL import Image
    import pytesseract
    
    #Image去除噪点 img
    =Image.open('tim.png') text=pytesseract.image_to_string(img) print(text)

    结果

    6 基于opencv的验证码识别

    import cv2 as cv
    from PIL import Image
    import pytesseract
    
    
    
    def recognize_text(src):
        gray=cv.cvtColor(src,cv.COLOR_BGR2GRAY)
        blurer=cv.GaussianBlur(gray,(9,9),0)
        ret,binary=cv.threshold(blurer,0,255,cv.THRESH_BINARY_INV|cv.THRESH_OTSU)
        res=cv.bitwise_not(binary)
        cv.imshow('res', res)
        #开操作
        kernel=cv.getStructuringElement(cv.MORPH_RECT,(2,2))
        bin=cv.morphologyEx(binary,cv.MORPH_OPEN,kernel)
    
        bin2=cv.morphologyEx(bin,cv.MORPH_CLOSE,kernel)
        cv.imshow('bin',bin2)
    
        textImage=Image.fromarray(bin2)
        word=pytesseract.image_to_string(textImage)
        print('识别出来:',word)
    
    
    src=cv.imread('./numcode.jpg')
    cv.imshow('before',src)
    recognize_text(src)
    cv.waitKey(0)
    cv.destroyAllWindows()

    结果

    学习的素材

  • 相关阅读:
    redis命令
    linux命令行任务管理
    tomcat修改内存
    Python调用shell
    取消myeclipse自动进入workspace
    解决Myeclipse编译不生成.class文件问题
    Manacher回文串算法学习记录
    青少年如何使用 Python 开始游戏开发
    对 Linux 专家非常有用的 20 个命令
    对中级 Linux 用户非常有用的 20 个命令
  • 原文地址:https://www.cnblogs.com/angle6-liu/p/10712910.html
Copyright © 2011-2022 走看看