2016-02-22 220 views
0

我想在擦除正确的数字后出现两位数的图像以获得良好的准确性。 例)OriginalModifiedTesseract无法识别图像后无法识别图像

图片PNG文件(52 * 26px)和背景颜色是(192192192255)和每个数字的颜色是不同的。

但是,在erasig正确的号码后,令人惊讶的是,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)) 

回答

0

超正方体内部执行一个连通分量分析。它尝试将文本块分组在一起,并可能由于页面中缺少太多字符而导致问题。有分页模式,您可以要求tesseract将图像视为单个字符。尝试这种方法它可能会给你所需的结果。