原图
百度出来的一张验证码图案
结果
成功识别了验证码
环境配置
1. 安装库
首先需要安装两个package,我们利用清华大学镜像源进行下载。在命令行输入以下命令
pip3 install opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip3 install pytesseract -i https://pypi.tuna.tsinghua.edu.cn/simple/
等待片刻即可下载完毕。
2.安装tesseract-ocr
此后直接运行代码会提示:tesseract is not installed or it's not in your path。
这是因为还需下载tesseract-ocr。下载地址https://pan.baidu.com/s/1OL0g1MBzeijD23JN0UGC0Q
安装成功后,记住安装路径,例如我的路径为:E:\PyCharm\Tesseract-OCR
打开pytesseract.py文件,在该文件中找到以下代码,并且把等号中的内容改为tesseract.exe的路径
重新运行程序即可。
源码
import cv2 as cv
from PIL import Image
import pytesseract as tess
def show(img):
cv.imshow('show', img)
cv.waitKey()
cv.destroyAllWindows()
if __name__ == '__main__':
src = cv.imread( 'E:\\PyCharm\OpenCV\Yanzhengma.jpg', 0)
# show(src)
ret, binary = cv.threshold(src, 200, 255, cv.THRESH_BINARY)
kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 3)) # 生成卷积核
open = cv.morphologyEx(binary, cv.MORPH_CLOSE, kernel)
textImage = Image.fromarray(open)
# show(open)
text = tess.image_to_string(textImage)
print(text)
程序首先利用opencv对图形进行了二值化与开运算,此后利用pytesseract进行了ocr并显示了结果