只是疲倦地使用您的小型和放大(x4)圖像餵養Tesseract 4.0.0a。即使調整了Tesseract參數,小的輸出也沒有輸出。在所有三種測試案例中,升級版本都能夠進行OCR - 無需進一步處理,灰度化和進一步增強。
使用的Tesseract集成到OpenCV 3.2.0。以下是代碼。
import cv2
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
def show(img):
plt.imshow(img, cmap="gray")
plt.show()
def ocr(img):
# Tesseract mode settings:
# Page Segmentation mode (PSmode) = 3 (defualt = 3)
# OCR Enginer Mode (OEM) = 3 (defualt = 3)
tesser = cv2.text.OCRTesseract_create('C:/Program Files/Tesseract 4.0.0/tessdata/','eng','',3,3)
retval = tesser.run(img, 0) # return string type
print 'OCR Output: ' + retval
# Directly feed image to Tesseact
img = cv2.imread('./imagesStackoverflow/SmallDigits-x4.png')
ocr(img)
# Load image as gray scale
img = cv2.imread('./imagesStackoverflow/SmallDigits-x4.png',0);
show(img)
ocr(img)
# Enhance image and get same positive result
ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
kernel = np.ones((3,3),np.uint8)
img = cv2.erode(thresh,kernel,iterations = 1)
show(img)
ocr(img)
輸入圖像和OCR結果在這裏。
嘛imgur網站給出了重試的放大後的圖像死長頸鹿,然後503,所以我真的不能故障正方體爲沒有得到這一點。與此同時 - 由於缺乏對圖像預處理的有用反饋,您可以考慮爲Tesseract生成培訓文件並使用該文件(這裏有幾個免費編輯器)。另外:你有沒有確保你通過Tesseract灰度圖像格式(不是RGB或BGR)? – user268396
至少看起來你是正確的,你的預處理工作很好。我用免費的[OCR.space online ocr](https://ocr.space)測試了你的圖片。雖然原來的一個仍然有一些錯誤的數字,但是升級後的版本效果很好。 OCR鏈接:https://api.ocr.space/parse/imageurl?apikey=helloworld&url=https://i.stack.imgur.com/0y70V.png&language=kor – Tienkamp