发布于2019-11-07 10:52 阅读(1207) 评论(0) 点赞(11) 收藏(2)
因课程作业有字符识别相关题目,所以使用tesseract库试试效果
Python3.6
Pycharm
Opencv-python
pillow
Pytesseract
Tesseract-OCR
python、opencv的安装配置
pil、tesseract的安装配置
识别的二维码:
1.验证码图片(滤波)灰度化
2.二值化(使用自适应阈值的方法)
3.形态学操作(膨胀腐蚀开闭…)
得到白色背景较干净的图片
可以检测一些规则字体的图片,试一试其他的稍微难点的验证码,效果不是那么好,特别是一下字体。手写字体效果也不好。可以对Tesseract重新训练一些样本进行相对应图片的识别。
Tesseract的训练
代码:
import cv2 as cv
import numpy as np
from PIL import Image
import pytesseract as tess
def recognize_text():
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
cv.imshow("gray", gray)
# 固定阈值二值化
ret, binary = cv.threshold(gray, 150, 255, cv.THRESH_BINARY)
# 自适应二值化
# binary = cv.adaptiveThreshold(gray, 255, cv.ADAPTIVE_THRESH_MEAN_C, cv.THRESH_BINARY, 25, 10)
cv.imshow("binary", binary)
# 形态学的处理,滤除噪点
kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 1))
dilate_image = cv.dilate(binary, kernel)
kernel = cv.getStructuringElement(cv.MORPH_RECT, (3, 3))
erode_image = cv.erode(dilate_image, kernel)
cv.imshow("erode_image", erode_image)
# 将dilate_image转为Image
textImage = Image.fromarray(erode_image)
# 识别
txt = tess.image_to_string(textImage)
print("识别结果为:", txt)
print("验证码识别:")
src = cv.imread("G:\\Python\\verification\\4.png")
cv.imshow("src", src)
recognize_text()
cv.waitKey(0)
cv.destroyAllWindows()
作者:听爸爸的话
链接:https://www.pythonheidong.com/blog/article/148243/f6573885229d9cb6ff8a/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!