# Tesseract (software)

Tesseract is een vrij computerprogramma voor optical character recognition. Het werd oorspronkelijk ontwikkeld tussen 1985 en 1995 in licentie door Hewlett-Packard. Na tien jaren zonder dat er enige ontwikkeling was, hebben Hewlett Packard en de University of Nevada (Las Vegas) het in 2005 vrijgegeven als open source. Tesseract wordt tegenwoordig ontwikkeld door Google en uitgegeven onder de Apache-licentie 2.0.
Tesseract wordt beschouwd als een van de meest nauwkeurige vrije OCR-softwaremachines die tegenwoordig beschikbaar zijn.

## Over de Tesseract OCR Machine

Tesseract is een kale OCR-machine. Het heeft geen analyse van de documentopmaak, geen uitvoerformattering, en geen grafische gebruikersomgeving. Het enige formaat dat het kan verwerken is een TIFF-afbeelding van een enkele tekstkolom, van waaruit het de tekst voortbrengt. TIFF-compressie is niet ondersteund tenzij libtiff is geïnstalleerd. Het kan detecteren of een lettertype proportioneel is of niet. De machine was in 1995 in de top 3 wat betreft tekennauwkeurigheid. Het kan gecompileerd en uitgevoerd worden onder Linux, MS Windows en Mac OS X, echter, door beperkte hulpmiddelen zijn alleen MS Windows en Ubuntu Linux zorgvuldig getest door ontwikkelaars.
Tesseract kan Engels, Frans, Italiaans, Duits, Spaans, Braziliaans Portugees en Nederlands verwerken, en kan geoefend worden om andere talen te herkennen.
Tesseract is geschikt om te gebruiken als een achtergrondprogramma, en kan gebruikt worden om meer ingewikkelde OCR-taken, inclusief opmaakanalyse, uit te voeren in combinatie met een gebruikersinterface zoals OCRopus. Verdere integratie met programma's zoals OCRopus, om ingewikkelde opmaak te ondersteunen, is in ontwerp.

## Geschiedenis

De Tesseractmachine is ontwikkeld bij Hewlett Packard Laboratories Bristol en bij Hewlett Packard Co, Greeley Colorado tussen 1985 en 1994, met nog enkele wijzigingen in 1996 om het geschikt te maken voor MS Windows, en een gedeeltelijke migratie van C naar C++ in 1998. Veel van de broncode is geschreven in C, en daarna is nog meer geschreven in C++. Vervolgens werd alle broncode zo geconverteerd dat deze gecompileerd kan worden met een C++-compiler.
Tegenwoordig kan Tesseract gecompileerd worden onder Linux met GCC 2.95 of hoger en onder MS Windows met Visual C++ 6. De C++-broncode maakt intensief gebruik van een systeem van lijsten die macro's aanroepen. Deze code is ouder dan de Standard Template Library (STL) van C++, en kan wel efficiënter zijn dan de STL-lijsten, maar is naar men zegt moeilijker om van fouten te zuiveren in het geval van een segmentation fault. Een ander neveneffect van de C/C++-splitsing is dat de C++-datastructuren geconverteerd worden naar C-datastructuren om de diepere C-code aan te roepen. De migratie naar C++ is een stap in de richting om deze conversie te elimineren, echter dit is nog niet voltooid.

## Gebruik

Tesseract is een OCR-machine, en het heeft geen grafische gebruikersomgeving. Het moet uitgevoerd worden vanaf de commandoregel en kan aangeroepen worden met dit commando:
Tesseract leest grafische bestanden in TIFF-formaat (met bestandsextensie .tif); andere bestandsformaten moeten eerst naar TIFF geconverteerd worden voordat ze door Tesseract gelezen kunnen worden.
Tesseract ondersteunt geen analyse van opmaak (lay-out), wat betekent dat het geen tekst in meervoudige kolommen kan interpreteren, geen afbeeldingen, noch formules, en zal in deze gevallen een verbroddelde tekst als uitvoer produceren.
Er is ook een Python wrapper (pytesseract) beschikbaar waarmee met eenvoudige python commando's in combinatie met de OCR-engine tekst gelezen kan worden.