Python+OpenCV(十八)——数字/字母验证码识别

Python+OpenCV(十八)——数字/字母验证码识别

学习视频:python+opencv3.3视频教学 基础入门
其他学习记录:
Python+OpenCV(一)——基础操作
Python+OpenCV(二)——Numpy模块
Python+OpenCV(三)——色彩空间
Python+OpenCV(四)——像素运算
Python+OpenCV(五)——ROI和泛洪填充
Python+OpenCV(六)——均值/中值/自定义/高斯模糊、高斯噪声处理、高斯双边滤波
Python+OpenCV(七)——直方图及其应用
Python+OpenCV(八)——图像二值化
Python+OpenCV(九)——图像金字塔、图像梯度
Python+OpenCV(十)——Canny边缘提取
Python+OpenCV(十一)——直线检测、圆检测
Python+OpenCV(十二)——轮廓发现
Python+OpenCV(十三)——对象测量
Python+OpenCV(十四)——膨胀与腐蚀
Python+OpenCV(十五)——开闭操作
Python+OpenCV(十六)——顶帽、黑帽
Python+OpenCV(十七)——人脸识别
源码如下:

# -*- coding = utf-8 -*-
# @Time : 2021/8/5 10:09
# @Author : 西兰花
# @File : OpenCV18.py
# @Software : PyCharm


"""
案例实战-数字/字母验证码识别
OpenCVH + Tesserct-OCR
OpenCV预处理
Tesserct-OCR验证码识别

预处理–去除干扰线与点
不同的结构元素中选择
Image与numpy array相互转化
识别与输出
"""


import cv2 as cv    # 引入OpenCV模块
import pytesseract as tess
from PIL import Image


def recognzie_text():
    gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
    ret, binary = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV | cv.THRESH_OTSU)
    kernel = cv.getStructuringElement(cv.MORPH_RECT, (1, 2))
    bin1 = cv.morphologyEx(binary, cv.MORPH_OPEN, kernel)
    kernel = cv.getStructuringElement(cv.MORPH_RECT, (2, 1))
    open_out = cv.morphologyEx(bin1, cv.MORPH_OPEN, kernel)
    cv.imshow("binary_image", open_out)

    cv.bitwise_not(open_out, open_out)
    textImage = Image.fromarray(open_out)
    text = tess.image_to_string(textImage)
    print("识别结果: %s" % text)


print("------ Hello OpenCV ------")
src = cv.imread("C:/Users/Administrator/Pictures/PS/yzm4.png")     # 读取图像
cv.imshow("input image", src)    # 显示图像

recognzie_text()

cv.waitKey(0)

cv.destroyAllWindows()  # 销毁/关闭所有窗口


输出结果:
(Tesserct安装失败,暂无调试结果)

你可能感兴趣的:(python+OpenCV,python,opencv,计算机视觉)