Mam problem z uruchomieniem silnika tesseract-ocr na Linuksie. Pobrałem dane języka RUS i umieściłem je w katalogu tessdata (/ usr / local / share / tessdata). Kiedy próbuję uruchomić tesseract za pomocą polecenia tesseract blob.jpg out -l rus
, wyświetla błąd:
Error opening data file /usr/local/share/tessdata/eng.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.
Failed loading language eng
Tesseract couldn't load any languages!
Could not initialize tesseract.
Według opracowującym przewodnika użyłem export TESSDATA_PREFIX='/usr/local/share/'
wskazać mój katalog tessdata. Może powinienem edytować jakieś pliki konfiguracyjne? Tesseract próbuje załadować pliki danych „eng” zamiast „rus”.
Zrzut ekranu: http://i.stack.imgur.com/I0Guc.png
/usr/share/tesseract-ocr/tessdata/
Najprostszym sposobem jest zainstalowanie potrzebnego pakietu:
Jak widać, otwiera drogę do innych języków (np. Tesseract-ocr-fra).
źródło
tesseract --list-langs
aby zobaczyć wszystkie dostępne języki. Możesz również użyćsudo apt-get install tesseract-ocr-*
do zainstalowania ich wszystkichtesseract-data-eng
itp.Miałem również ten błąd na komputerze z systemem Windows.
Moje rozwiązanie.
1) Pobierz pliki językowe ze strony https://github.com/tesseract-ocr/tessdata/tree/3.04.00
Na przykład dla eng pobrałem wszystkie pliki z przedrostkiem eng.
2) Umieść je w katalogu tessdata w jakimś folderze. Dodaj ten folder do zmiennych ścieżki systemowej jako TESSDATA_PREFIX .
Rezultatem będzie System env var: TESSDATA_PREFIX = D: / Java / OCR A folder OCR zawiera tessdata z plikami językowymi.
To jest zrzut ekranu katalogu:
źródło
Żadne poprzednie rozwiązanie nie działało dla mnie.
Zainstalowałem zarówno przez, jak
apt-get
i ręcznie pobierając tessdata, przenosząc się/usr
i tak dalej, i nikt nie działał, nawet jeśli wyeksportowałem zmienną tysiące razy.Wreszcie, przy ostatniej próbie przed rozpoczęciem płaczu, próbowałem przekazać ścieżkę bezpośrednio do instancji Tesseract ().
W Pythonie:
tr = Tesseract("/usr/local/share/tesseract-ocr/")
i teraz działa. Aby wyjaśnić, używamtesserwrap
modułu.źródło
W moim przypadku błędy, które popełniłem lub próby, które nie zakończyły się sukcesem.
TESSDATA_PREFIX
z powyższymi ścieżkamiPierwsze 2 próby nie zadziałały, ponieważ pliki z
git clone
nie działały z powodów, których nie znam. Nie jestem pewien, dlaczego próba nr 3 zadziałała dla mnie.Wreszcie,
wget
--tessdata-dir
z nazwą kataloguDla mnie na wynos jest dobra nauka narzędzia i korzystanie z niego , zamiast polegania na instalacji i katalogach menedżera pakietów
źródło
Możesz wywołać funkcję API tesseract z kodu C:
I zbuduj ten kod:
(potrzebuję FreeImage do ładowania zdjęć)
źródło
Używam programu Visual Studio 2017 Community Edition.
Rozwiązałem ten problem, tworząc katalog o nazwie tessdata w katalogu Debug mojego projektu. Następnie umieściłem plik eng.traineddata we wspomnianym katalogu.
źródło
Używam systemu operacyjnego Windows, wypróbowałem wszystkie powyższe rozwiązania i żadne z nich nie działa.
Wreszcie instaluję Tesseract-OCR na dysku D (skąd uruchamiam mój skrypt Pythona) zamiast dysku C i działa.
Tak więc, jeśli używasz systemu Windows, uruchom skrypt Pythona na tym samym dysku, co Tesseract-OCR.
źródło
Programista C # pracujący w systemie Windows tutaj. U mnie działa po prostu pobranie pliku eng.traineddata z następującego adresu URL:
https://github.com/tesseract-ocr/tessdata/blob/master/eng.traineddata
i skopiuj go do następującego katalogu w moim projekcie aplikacji konsoli:
[Katalog projektu] \ bin \ Debug \ tessdata
Ręcznie utworzyłem powyższy folder tessdata .
źródło
Użytkownicy systemu Windows:
W Zmienne środowiskowe dodaj nową zmienną do zmiennej systemowej o nazwie „TESSDATA_PREFIX” i wartości „C: \ Program Files (x86) \ Tesseract-OCR \ tessdata”
źródło
źródło