2017-09-11 3 views
0

tesseractが間違って認識した画像をいくつか見つけてください。Tesseract - おそらく簡単な画像が間違った番号に変わる

47

47は、 "4]" として認識されます。

55

55は、 "S55" として認識されています。

90

90は、 "IQ" として認識されています。

私は画像がかなり良いと思っていて、Tesseractが認識しやすいはずです。しかし結果は間違っていることが分かります。私が使用したコードを以下に示します。

import cv2 
import pytesseract 
from PIL import Image 
import glob 

for i in glob.glob('*.png'): 
    img = cv2.imread(i, 0) 
    tessdata_dir_config = '--tessdata-dir "C:\Program Files (x86)\Tesseract-OCR\" --psm 10' 
    result = pytesseract.image_to_string(Image.fromarray(img), config=tessdata_dir_config) 
    print result 

何が起こっているのか、パフォーマンスを改善する方法は誰にも分かりますか?

答えて

0

さて、私は私の質問に対する答えを見つけました。 Tesseractは大胆な文字を好まないので、文字の黒い部分を少し侵食する必要があります。しかし、cv2.erodeは文字の白い部分を侵食するので、目的を達成するためにはcv2.dilateを使用する必要があります。

for i in ['47-4].png', '55-S55.png', '90-IQ.png']: 
    img = cv2.imread(i, 0) 

    ### After apply dilation using 3X3 kernal. The recognition results are improved.## 
    kernel = np.ones((3, 3), np.uint8) 
    img = cv2.dilate(img, kernel, iterations=2) 

    cv2.imwrite("./output/" + i[:-4]+'_dilate.png', img) 
    tessdata_dir_config = '--tessdata-dir "D:\Program Files\Tesseract-ocr\" --psm 10' 
    result = pytesseract.image_to_string(Image.fromarray(img), config=tessdata_dir_config) 
    print result 

私は、この質問に対するより良い分析があるかどうかを見たいと思います。だから私はそれをしばらく開いて、最高の答えを選ぶでしょう。

関連する問題