#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. Я добавил обработанное изображение к вопросу