2016-12-13 26 views
16

Próbuję użyć Tesseract-OCR-iOS w nowym projekcie Swift 3.0. Używam Xcode w wersji 8.1 (8B62). CocoaPods to wersja 1.1.1.Tesseract trainingdata nie działa w projekcie Swift 3.0 przy użyciu wersji 4.0

Gdy próbuję użyć tesseract.recognize() moi awarii aplikacji i pojawia się następujący komunikat w konsoli:

actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file tessdatamanager.cpp, line 53 

znalazłem this post, który brzmi Używam złą wersję traineddata. Ściągnąłem tessdata z the tesseract-ocr/tessdata repo, więc jestem zaskoczony, dlaczego będę miał niezgodność na numery wersji.

Wszelkie sugestie dotyczące sposobu pracy z Tesseract są mile widziane. Poniżej znajdują się dodatkowe informacje dotyczące: mojej konfiguracji.

Oto co moja Podfile wygląda następująco:

# 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 

mam przeciągnięty folder tessdata zawierający eng.traineddata do katalogu głównego mojego projektu poza Xcode i przeciągnięty odniesienie z Findera do Xcode Project Navigator.

Wszystko działa dobrze do tego momentu. Brak błędów kompilator, linker marudzenie, itd. W UIViewController jestem importowania TesseratOCR i nazywając go tak:

// 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 
    } 
} 

Aktualizacja znalazłem link do repo of traineddata files for version 4.0. Zniszczyłem stary plik eng.traineddata i zastąpiłem go plikiem z repozytorium 4.0. Otrzymuję ten sam błąd, odnoszący się do tej samej linii.

+0

Witaj, jesteśmy w stanie znaleźć właściwy plik .traineddata? – Lazy

+0

używana wersja 4.0, ale nadal ma ten sam błąd w tej samej linii – fans3210

Odpowiedz

22

Obecna wersja eng.traineddata połączona powyżej na GitHub nie będzie działać z bieżącą wersją Tesseract-OCR-iOS.

Instrukcje instalacji opublikowane na GitHub działają doskonale, jeśli masz odpowiedni plik <language>.traineddata.

Odkryłem to po przeciągnięciu eng.traineddata z Lyndsey Scott's brilliant Tesseract tutorial on Ray Wenderlich.

This repo zawiera plik eng.traineddata potrzebny do pracy Tesseract. Nie jestem pewien, czy to dotyczy wszystkich języków.

+1

Działa również z chorwackim, więc zakładam, że będzie działać również z innymi językami. Dzięki, Adrian! – user3739902

+0

czy możemy zainstalować tessdata z pod? –

+0

To jest niesamowite! – Reem