Próbuję utworzyć przykładową aplikację w języku Java, która odczyta plik obrazu i po prostu wyprowadza tekst wyodrębniony z obrazu. Znalazłem projekt Tesseract, który wydaje się obiecujący, jednak w wersji C++. Aby go użyć, powinienem po prostu uruchomić go jako wiersz poleceń z mojej aplikacji java Runtime.exec(...)
? Czy istnieje lepsze rozwiązanie, może JAR? Co więcej, jest to tylko przykładowa aplikacja, czy uruchomienie jej jako aplikacji z wiersza poleceń stanowi problem z perspektywy skalowalności?Korzystanie z Tesseract z java
Odpowiedz
Czy próbowałeś tess4j: http://tess4j.sourceforge.net/.
Jest to opakowanie JNI tesseract do okien.
Tess4j wygląda świetnie, ale nie ma wersji 64-bitowej – manu
@manu [jtesseract] (https://github.com/tesseract4java/jtesseract) zawiera również [64-bitowe biblioteki DLL dla Tesseract 3.03] (https://github.com/tesseract4java/jtesseract/releases/tag/tesseract-v3.03).[edytuj: link naprawiony] – pvorb
Użyłem projektu tesseract w moim kodzie java. Wszystko, co musisz zrobić, to:
- Zdobądź opakowanie tess4j jni dla tesseract.
- Otwórz tess4j proj w swoim ide i dodaj pakiety źródłowe i biblioteki do własnego projektu
. - Napisz kod tworzący instancję klasy tesseract, a następnie użyj jej do wykonania
podczas wykonywania OCR.
Proszę spojrzeć na ten http://tphangout.com/?p=18
To daje instrukcje dotyczące sposobu budowania projektu Java do odczytu obrazu i przekształcić go w tekście za pomocą Tesseract OCR API.
ładny wpis na blogu. – shyos
Teraz tesseract jest dostarczany przez projekt javacv, jest to znacznie lepsza opcja niż użycie Tess4J, ponieważ wszystko, co jest wymagane, dodaje pojedynczą zależność do pliku pom, macierzyste biblioteki dla twojej platformy zostaną następnie pobrane i automatycznie powiązane dla ciebie przez wersję tesseract javacv.
Utworzyłem projekt przykład maven tutaj - https://github.com/piersy/BasicTesseractExample
a także przykład Gradle projekt tutaj - https://github.com/piersy/BasicTesseractExampleGradle
aby to działało na moim komputerze ubuntu mi potrzebne zaktualizować instalację libstdC++ 6
Osiągnąłem to, uruchamiając następujące czynności, chociaż instalacja biblioteki libstdC++ 6 może działać.
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install libstdc++6
Uwaga projekt Gradle nie wykonuje automatyczne zainstalowanie ale jest to nadal cholernie dużo prostszy niż przy użyciu Tess4J
Projekt javacv jest tutaj - https://github.com/bytedeco/javacpp-presets/tree/master/tesseract
Wielkie rekwizyty do javacv faceci, tylko żałuję, że nie znalazłem tego wcześniej, ponieważ zaoszczędziłoby mi to tydzień, aby tess4j działał na wielu platformach!
tnx dla próbki, ale pojawia się błąd "java.lang.UnsatisfiedLinkError: no jnilept w java.library.path", kiedy mam "mvn clean install" na moim Macu, jakieś pomysły? – Spring
szczegółowy błąd "Biblioteka nie została załadowana: /Users/saudet/projects/bytedeco/javacpp-presets/leptonica/cppbuild/macosx-x86_64/lib/liblept.4.dylib" – Spring
Próbowałem też zainstalować libstdC++ 6 na macu, ale nie mógł znaleźć żadnych informacji, co zainstalować i jak – Spring
- 1. Popraw wyniki OCR Tesseract z rozmytym tekstem
- 2. poprawić wydajność Tesseract z OpenCV na Androidzie
- 3. Bezpieczne korzystanie z glMapBufferRange() na Android/Java
- 4. Korzystanie z "||" w instrukcjach przełączania w java
- 5. Korzystanie z ogólnych klas Java w Matlab
- 6. uzyskać dokładną pozycję tekstu z obrazu w tesseract
- 7. Korzystanie z buforów protokołu Google z Java NIO?
- 8. Przygotowanie obrazu z OpenCV przed wykonaniem rozpoznawania znaków (tesseract)
- 9. Korzystanie z EclipseLink
- 10. ElasticSearch - Korzystanie z FilterBuilders
- 11. Tesseract Wyszkolone dane
- 12. Tesseract myli dwa numery
- 13. Używanie tesseract na Androidzie
- 14. iOS Tesseract: złe wyniki
- 15. Błąd uruchamiania Tesseract
- 16. Niestandardowy słownik dla Tesseract
- 17. Korzystanie z Prism z Ninject
- 18. Korzystanie z Backspace z ncurses
- 19. Korzystanie z LINQ z NHibernate
- 20. Korzystanie z UTC z Sequel?
- 21. Korzystanie z ".." z pętlą for
- 22. Korzystanie z Sonarqube z Xcode
- 23. Korzystanie z ServletContextListener z Jetty
- 24. Korzystanie z układu z dzianinami
- 25. Korzystanie z System.Speech z Kinectem
- 26. Korzystanie z Jython z Django?
- 27. Tesseract: Określanie regionów tekstu
- 28. Wzory użytkownika Tesseract
- 29. Wzorce użytkownika OCR Tesseract
- 30. Korzystanie curl polecenie java
http://tess4j.sourceforge.net/, nigdy jednak tego nie próbowałem. – miku
Dobre znalezisko, @miku. Używa JNA, która byłaby odpowiedzią na żądanie (to lub JNI), ale nie trzeba wymyślać koła ... – PhiLho