如何解决即使使用配置,tesseract也根本不准确
我的代码⠀
for index,img in enumerate(data): # data is list of base64 decoded strings
b64 = base64.b64decode(bytes(img[22:],encoding='utf-8'))
raw = BytesIO(b64)
im = Image.open(raw).convert('LA')
pixels = im.load()
width,height = im.size
for x in range(width):
for y in range(height):
if pixels[x,y][0] > 100: pixels[x,y] = (255,255)
else: pixels[x,y] = (0,255)
print(pytesseract.image_to_string(im,config='tessedit_char_whitelist=1234567890plus?'))
⠀
输出:
⠀
Te Ys
⠀
我可以做些什么来做得更好,我尝试在配置密钥⠀p
⠀
解决方法
您需要反转图像。这样就可以了。
import pytesseract
import cv2
pytesseract.pytesseract.tesseract_cmd = 'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
image = cv2.imread('addition.png',0)
image = 255 - image
for psm in range(6,13+1):
config = '--oem 3 --psm %d' % psm
txt = pytesseract.image_to_string(image,config = config,lang='eng')
print('psm ',psm,':',txt)
在所有psm值上都能获得良好结果
psm 6 : 18 plus 16?
psm 7 : 18 plus 16?
psm 8 : 18 plus 16?
psm 9 : 18 plus 16?
psm 10 : 18 plus 16?
psm 11 : 18 plus 16?
psm 12 : 18 plus 16?
psm 13 : 18 plus 16?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。