Я начал использовать OCR от Tesseract, следуя обучающей программе Ray Wenderlich . Последний пример кода, который вы можете загрузить из учебного пособия, отлично работает для языков ENG & FRA.
Я хочу добавить хорватский язык в существующий проект. Я скачал файл hrv.traineddata и поместил его в папку tessdata, которая уже содержала файлы ENG & FRA.
Я также обновил код, определив новый язык для tesseract:
if let tesseract = G8Tesseract(language: "eng+fra+hrv") {
tesseract.engineMode = .tesseractCubeCombined
tesseract.pageSegmentationMode = .auto
tesseract.image = preprocessedImage
tesseract.recognize()
textView.text = tesseract.recognizedText
}
Проблема : Когда я определил "hrv" как язык тессеракта, я получаю ошибку при запуске приложения. Чтобы быть более точным, я получаю ошибку при выборе изображения (выполнение функции распознавания изображения).
Ошибка : actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file ../../ccutil/tessdatamanager.cpp, line 53
Среди . Файл с обученными данными , английский и английский языки также имеют файлы .cube в проекте в папке tessdata . В отличие от этих языков, на хорватском языке доступен для скачивания только файл trainingdata . Вероятно, поэтому происходит ошибка. Здесь вы можете проверить все доступные языковые данные.
Я пытался изменить режим двигателя тессеракта на тессеракт только так: tesseract.engineMode = .tesseractOnly
, но ошибка все еще там.
Вопрос: Как я могу использовать новейшие версия .traineddata файлов (v4.0.0) для любого языка? В настоящее время мне удалось работать только с самой старой версией v3.04.00.
Редактировать: Проблема в том, что версия hrv.traineddata , которую я использовал в проекте не будет работать с версией используемого Tesseract-OCR- iOS. Чтобы временно исправить ошибку для этого примера проекта, мне пришлось переключиться на старую версию hrv.traineddata .