Rozpoznawanie tekstu na zdjęciach za pomocą tesseract

tesseract to jeden z najlepszych silników OCR - do rozpoznawania tekstu na grafikach. Po instalacji dostajemy konsolową aplikację, która przyjmuje ścieżkę do pliku graficznego i zapisuje wynik w pliku tekstowym. Silnik obsługuje też różne języki przy rozpoznawaniu tekstu, w tym język polski.

W przypadku dystrybucji Linuksa tesseract powinien być dostępny w pakietach. Oprócz bazowego pakietu instalujemy też pakiet językowy (np. "tesseract-ocr-pol"). Użycie silnika wyglądałoby tak:

tesseract ŚCIEŻKA/DO/pliku.jpg NAZWA_PLIKU_NA_WYNIK -l pol

tesseract stworzy plik tekstowy o podanej nazwie (nie podajemy rozszerzenia). W pliku tym znajdziemy tekst jaki silnik rozpoznał na zdjęciu (jeżeli w ogóle).

W przypadku Pythona mamy dostępną nakładkę, którą możemy stosować jak aplikację lub importować funkcję w kodzie naszej aplikacji.

import Image
from tesseract import image_to_string

print image_to_string(Image.open('plik.jpg'), lang='pol')

Nakładka wykorzystuje PIL. Przed przekazaniem pliku możemy go zmodyfikować. z PIL.ImageOps możemy użyć "grayscale" by otrzymać grafikę w odcieniach szarości - to zwiększa efektywność silnika dla niektórych zdjęć/grafik. Dla tekstu na zdjęciach połączenie "grayscale" i "equalize" może okazać się nieco lepsze.

RkBlog

Podstawy Pythona, 31 December 2012

Comment article
Comment article RkBlog main page Search RSS Contact