Я пытаюсь использовать Tesseract-OCR-iOS в новом проекте Swift 3.0. Я использую Xcode Version 8.1 (8B62). CocoaPods - версия 1.1.1.
Когда я пытаюсь использовать tesseract.recognize()
, мое приложение падает, и я получаю следующий вывод в консоли:
actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file tessdatamanager.cpp, line 53
Я нашел этот пост, который звучит, я использую неправильную версию traineddata
. Я загрузил tessdata
из tessdata
-ocr/tessdata repo, поэтому я не понимаю, почему у меня будет несоответствие номеров версий.
Любые предложения о том, как получить работу Tesseract, очень ценятся. Ниже приведена дополнительная информация: моя настройка.
Вот как выглядит мой Podfile
:
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
target 'TesseractDemo' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for TesseractDemo
pod 'TesseractOCRiOS', '4.0.0'
end
Я перетащил папку tessdata
содержащую eng.traineddata
в корневую директорию моего проекта за пределами Xcode и перетащил ссылку из Finder в Xcode Project Navigator.
До сих пор все работает нормально. Никаких ошибок компилятора, нытье в линкере и т.д. В UIViewController
я импортирую TesseratOCR
и TesseratOCR
его так:
// MARK: - OCR Methods
func scanImage(image: UIImage) {
if let tesseract = G8Tesseract(language: "eng") {
tesseract.delegate = self
tesseract.image = imageToScan?.g8_blackAndWhite()
tesseract.recognize()
textView.text = tesseract.recognizedText
}
}
Обновление. Я нашел ссылку на репо обучаемых файлов данных для версии 4.0. Я обнародовал свой старый файл eng.traineddata и заменил его на репозиторий 4.0. Я получаю ту же ошибку, ссылаясь на одну и ту же строку.