Tesseract 3 jest w stanie przeprowadzić analizę układu strony. Jednak nie mogłem znaleźć żadnego przykładowego kodu ani dokumentacji, jak korzystać z biblioteki do takich celów. Mam nadzieję, że ktoś tutaj może wyjaśnić, jak przeprowadzić analizę układu na obrazie i jak przeanalizować uzyskane dane.Analiza układu strony za pomocą Tesseract?
9
A
Odpowiedz
8
Tesserakt można podawać parametr trybu strony (-psm
), który może przyjmować następujące wartości:
0
= Orientacja i wykrywanie Script (OSD) tylko.1
= Automatyczna segmentacja stron z OSD.2
= automatyczna segmentacja strona, ale nie OSD lub OCR3
= Całkowicie automatyczna segmentacja strona, ale nie OSD. (Domyślnie)4
= Przyjmij pojedynczą kolumnę tekstu o różnych rozmiarach.5
= Przyjmij pojedynczy jednolity blok tekstu wyrównanego pionowo.6
= Załóż jeden jednolity blok tekstu.7
= Traktuj obraz jako pojedynczą linię tekstu.8
= Traktuj obraz jako pojedyncze słowo.9
= Traktuj obraz jako jedno słowo w kółku.10
= Traktuj obraz jako pojedynczą postać.
Przykład:
tesseract image.tif image.txt -l eng -psm 0
Jednak nie jestem pewien, że można korzystać z analizy układu w trybie autonomicznym.
5
Najpierw zainicjalizuj instancję TessBaseAPI
. Możesz użyć Init()
(jeśli chcesz wykonać dalsze rozpoznawanie tekstu) lub InitForAnalysePage()
(jeśli jesteś zainteresowany tylko w polach tekstowych).
Po drugie, ustaw obraz za pomocą SetImage()
.
Na koniec zadzwoń pod numer AnalyseLayout()
, aby uzyskać PageIterator
, która zawiera pola tekstowe.
tesseract::TessBaseAPI tessApi;
tessApi.InitForAnalysePage();
// tessApi.SetImage(...);
tesseract::PageIterator *iter = tessApi.AnalyseLayout();
// Instead of RIL_WORD you can use any other PageSegMode
while (iter->Next(tesseract::RIL_WORD)) {
int left, top, right, bottom;
iter->BoundingBox(
tesseract::RIL_WORD,
&left, &top, &right, &bottom
);
}
Pytanie dotyczy "sposobu korzystania z biblioteki", a nie samodzielnego pliku wykonywalnego. –