我想ocr两位数的图像后,删除正确的数字为良好的准确性。 示例)Original,Modified
图像为PNG文件(52*26px),背景色为(192255),每个数字的颜色不同。你知道吗
但令人惊讶的是,在删除了正确的数字后,tesseract无法识别这个数字。你知道吗
结果:
original:60
left:
from PIL import Image
from pytesseract.pytesseract import *
im=Image.open('NA2WK.png')
#calculate far left xpos of color
color={}
for i in range(52):
for j in range(26):
if im.load()[i,j]!=(192,192,192,255):
if color.get(im.load()[i,j])==None:
color[im.load()[i,j]]=9999
if i<color[im.load()[i,j]]:
color[im.load()[i,j]]=i
#get color of left character
if color.values()[0]<color.values()[1]:
left=color.keys()[0]
right=color.keys()[1]
else:
left=color.keys()[1]
right=color.keys()[0]
#left processing
imleft=Image.open('test.png')
pix=imleft.load()
for i in range(52):
for j in range(26):
if pix[i,j]==(192,192,192,255) or pix[i,j]==right:
pix[i,j]=(255,255,255,255)
else:
pix[i,j]=(0,0,0,255)
print('original:'+image_to_string(im))
print('left:'+image_to_string(imleft))
Tesseract在内部执行连接组件分析。它确实尝试将文本块分组在一起,并且可能会由于页面中缺少太多字符而导致问题。有一种页面分割模式,您可以要求tesseract将图像视为单个字符。尝试这种方法,它可能会给你所需的结果。你知道吗
相关问题 更多 >
编程相关推荐