python - Pytesseract OCR 未在验证码图像上返回正确结果
问题描述
我正在使用 tesseract 4.0.0-beta.1
我有以下图片
我已经使用 opencv 转换了这个图像
img = cv2.imread(image, cv2.IMREAD_GRAYSCALE)
img = cv2.resize(img, None, fx=5, fy=5, interpolation=cv2.INTER_LINEAR)
img = cv2.medianBlur(img, 9)
_, img = cv2.threshold(img, 185, 255, cv2.THRESH_BINARY)
我的 tesseract 表扬
tesseract image.png stdout -l eng-best --oem 1 --psm 7
得到结果:NVRG nk
但结果应该是:nvRGnk
解决方案
nvRGnk
import cv2
import pytesseract
pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
image = cv2.imread('2.png',0)
image = 255 - image
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3,3))
close = cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel, iterations=2)
dilate_kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (2,2))
dilate = cv2.dilate(close, dilate_kernel, iterations=1)
result = 255 - dilate
data = pytesseract.image_to_string(result, lang='eng',config='--psm 13')
print(data)
cv2.imshow('result', result)
cv2.waitKey()
推荐阅读
- sql - 从嵌套的 XML PostgreSQL 中提取数据
- python - Seaborn Lineplot 显示索引错误,pandas 绘图正常
- unix - 如果该值存在于 txt 文件中,则替换该值
- javascript - 运算符在 React JS 中的行为异常
- android - 模拟 ApolloClient 的查询(调用)以进行测试
- javascript - 在循环中显示数据,而不是全部循环,每个数据都会中断
- r - 如何从ggplot2中的列中绘制某些值的条形图?将从数据框中自动选择值
- vue.js - 错误:vue-loader 要求 @vue/compiler-sfc 存在于依赖树中
- sql - 在 SQL Server 中使用 Like 语句搜索 FirstName 和 LastName
- c++ - 使用 windeployqt 在构建后事件中复制 Qt dll 不起作用