Я работаю над программой, позволяющей брать карты Magic: The Gathering и читать их названия. До сих пор я обрезал заголовок и получил довольно хорошее обработанное изображение для tesseract, чтобы прочитать заголовок.
Однако, когда я бегу
print(pytesseract.image_to_string(new_imgT))
, где new_imgT — изображение выше. Вместо того, чтобы возвращать «Командный маяк» или что-то подобное, он возвращает ♀. Это проблема с OCR или моим кодом? Благодарю вас!
Редактировать:
Вот полная функция, отвечающая за чтение образа из своего каталога и приведение его в это состояние
def readCard(path):
imgG = cv2.imread(path, 0) # 0 means grayscale
imgT = cv2.resize( imgG, (745, 1040))[55:100, 55:680]
new_imgT = (imgT >= 165)*255 # 230 is the threshold, change as desired
cv2.imwrite(r"C:\Users\tpixe\Documents\PYTESSERACT test\mask.png",new_imgT)
text = pytesseract.image_to_string(new_imgT)
print(text)
Изменить 2: Я думаю, что проблема может быть в повреждении или изменении типа данных. Вызов cv2.imshow на new_imgT дает ошибку
cv2.error: OpenCV(4.5.3) C:/Users/runneradmin/AppData/Local/Temp/pip-req-build-sn_xpupm/opencv/modules/highgui/src/precomp.hpp:155: error: (-215:Assertion failed) src_depth != CV_16F && src_depth != CV_32S in function 'convertToShow'
Что, судя по тому, что я видел в результатах поиска Google, означает, что файл имеет неподходящий формат или поврежден. Тем не менее, изображение будет сохранено в формате png. Как исправить что-то подобное?
Привет, ты пробовал это и на других изображениях? Результат меняется?
@BedirYilmaz Я протестировал свой тессеракт, используя это изображение: jeroen.github.io/images/testocr.png . Он работает просто отлично, как ни странно, все еще имеет ♀ в конце строки на новой строке. Тем более, что читается отлично