pytesseract识别验证码
Posted Harris-H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytesseract识别验证码相关的知识,希望对你有一定的参考价值。
pytesseract识别验证码
0.下载
https://tesseract-ocr.github.io/tessdoc/Installation.html
`
1.安装
选择添加Math 和Chinese 包
安装完成后,配置环境变量,之前我安装1201版本的会报错,
win10 64位下会报这种错误:
所以我选择20190623的
安装后配置环境变量。
2.测试
识别结果
3.使用pytesseract
安装
pip install pytesseract
找到安装路径下的pytesseract.py
修改为自己OCR的路径
https://www.cnblogs.com/xiao-apple36/p/8865387.html#_label3_3
from pytesseract import image_to_string
from PIL import Image
def depoint(image): # 像素 判断一个点周围情况 4,8邻域
"""
降噪
:param image:
:return:
"""
pixdata = image.load()
print(pixdata)
w, h = image.size
for y in range(1, h - 1):
for x in range(1, w - 1):
count = 0
if pixdata[x, y - 1] > 245:
count += 1
if pixdata[x, y + 1] > 245:
count += 1
if pixdata[x - 1, y] > 245:
count += 1
if pixdata[x + 1, y] > 245:
count += 1
if count > 3:
pixdata[x, y] = 255
return image
def binaring(image, threshold=160):
"""
对传入的图像进行灰度,二值化处理
:param image:
:param threshold:
:return:
"""
image = image.convert('L')
image.show()
pixdata = image.load()
# print(pixdata)
w, h = image.size
for y in range(h):
for x in range(w):
# print(pixdata[x,y])
if pixdata[x, y] < threshold:
pixdata[x, y] = 0
else:
pixdata[x, y] = 255
return image
if __name__ == '__main__':
# image = Image.open('img.png')
# # pix_l = []
# # image.show()
# # pix_l_set = sorted(list(set(pix_l)))
# # print(pix_l_set[:len(pix_l_set)//2]) # 求平均数的值
# image2 = binaring(image) # 二值化
# image3 = depoint(image2) # 降噪
# image3.show()
# # 识别文字
# print('code: ', image_to_string(image3, lang='eng'))
image = Image.open('test.png')
print(image_to_string(image, lang='chi_sim'))
https://www.cnblogs.com/xiao-apple36/p/8747351.html
以上是关于pytesseract识别验证码的主要内容,如果未能解决你的问题,请参考以下文章