Tess4J to biblioteka, która umożliwia rozpoznawanie tekstu na podstawie dostarczonej grafiki. Producenci dostarczają rozmaite zbiory językowe, dzięki którym można rozpoznać tekst na dowolnej grafice.
Implementacja
Parce należy rozpocząć od pobrana samej biblioteki i umieszczenia zależności w pliku pom.xml:
<dependency> <groupId>net.sourceforge.tess4j</groupId> <artifactId>tess4j</artifactId> <version>4.3.1</version> </dependency>
Następnie należy utworzyć klasę odpowiedzialną za dodanie dokonywanie wczytywania obrazu i przekształcenie go na treść.
Przykład aplikacji może wyglądać w ten sposób:
@Service public class OcrService { @Value("${datapath}") private String datapath; public String doOCR(String url) { try { URL imageFile = new URL(url); // 1 BufferedImage bufferedImage = ImageIO.read(imageFile); // 2 ITesseract instance = new Tesseract(); // 3 instance.setDatapath(datapath); // 4 instance.setLanguage("pol"); // 5 return instance.doOCR(bufferedImage); // 6 } catch (Exception e) { // TODO Exception handler e.printStackTrace(); } return ""; } }
Krokowe przedstawienie działania programu:
- Zamiana ciągu tekstowego na URL (użytkownik podaje adres w postaci String);
- Stworzenie obiektu binarnego na podstawie dostarczonego adresu URL;
- Utworzenie instancji klasy Tesseract odpowiadającej za transkrypcje;
- Ustawienie katalogu, w którym znajdują się zbiory językowe. Można je pobrać ze strony:
https://github.com/tesseract-ocr/tesseract/wiki/Data-Files; - Ustawienie języku w ramach, którego będzie dokonywane rozpoznawana;
- Zamiana grafiki na tekst.
Przykład
Grafika, która zostanie przekazana do rozpoznania:
Przekazanie adresu do aplikacji zostało zrealizowane z wykorzystaniem Swagger UI. (Zalecam Ci artykuł – czym jest i jak skonturować Swagger UI).

Wideo
Wideo, w trakcie którego pokazuje jak zrealizować takie rozwiązanie znajdziesz na moim kanale YouTube. W jego opisie link do kodu na GitHub.