Использование Tesseract-OCR в Python для получения чисел из изображений

#python #image-processing #image-recognition #text-extraction #number-recognition

Вопрос:

У меня есть тысячи изображений масштаба, которые я хотел бы извлечь из каждого изображения. Однако при использовании Тессеракта он дает неправильные значения. Я попробовал несколько процессов для изображения, но все равно столкнулся с той же проблемой. Насколько я понимаю, до сих пор после определения области интереса на изображении оно должно быть преобразовано в белый текст с черным фоном. Тем не менее, я новичок в python, я пробовал некоторые функции для этого, но все еще сталкиваюсь с той же проблемой. Буду признателен, если кто-нибудь сможет мне в этом помочь. Следующая ссылка предназначена для изображения, так как я не смог загрузить его сюда, так как оно больше 2 Мбайт: https://mega.nz/file/fZMUDRbL#tg4Tc2VmGMMdEpnZzt7blxZjVLdlhMci9jll0FLnIGI

 import cv2
import pytesseract
import matplotlib.pyplot as plt
import numpy as np
import imutils

## Reading Image File
Filename = 'C:\Users\Abdullah\Desktop\Scale Reading\'   #File Path For Images
IName = 'Disk_Test_1_09_07-00000_0.tif'   # Image Name
Image = cv2.imread(Filename   IName,0)


## Image Processing
Image_Crop = Image[1680:1890, 550:1240]   # Define Region of Interest of the image
#cv2.imshow("cropped", Image_Crop)         # Show Cropped Image
#cv2.waitKey(0)                           # Show Cropped Image
Mask = Image_Crop > 10                    # Thershold Image to Value of X
Mask = np.array(Mask, dtype=np.uint8)
plt.imshow(Mask, alpha=1) # Set Opacity (Max 1)
ret,Binary = cv2.threshold(Mask,0,255,cv2.THRESH_BINARY)
#plt.imshow(Image_Crop, cmap="gray")          # Transform Image to Gray
#plt.show()
plt.imshow(Binary,'gray',vmin=0,vmax=255)
plt.show()


## Number Recognition
pytesseract.pytesseract.tesseract_cmd = r'C:Program FilesTesseract-OCRtesseract.exe'  # Call Location of Tesseract-OCR
data = pytesseract.image_to_string(Binary, lang='eng',config='--psm 6')
print(data)
 

Вот изображение после обработки

введите описание изображения здесь

Комментарии:

1. лучше использовать черный текст на белом фоне. См. Документацию по Тессеракту: Повышение качества выходных данных. Вы также можете запустить непосредственно в консоли tesseract.exe --help , tesseract.exe --help-extra , tesseract.exe --help-psm чтобы просмотреть все параметры, которые вы можете использовать в config=

2. Я только что попытался использовать черный текст с белым фоном, но все еще сталкиваюсь с той же проблемой, когда он выдает неправильное распознавание номеров. Я обновил приведенный выше код, и номер отображается красиво, но при запуске Тессеракта он выдает случайные символы. «

3. вы можете добавить изображение вопроса после обработки. tesseract могут возникнуть проблемы, когда текст слишком мал или слишком велик, и вам, возможно, придется изменить размер изображения и/или изменить его на 300 точек на дюйм (точек на дюйм). И вы знаете, где может быть текст, тогда вы могли бы обрезать изображение.

4. Я добавил обработанное изображение к вопросу