Tesseract Open Source OCR Engine (main repository)
Go to file
Stefan Weil fb863c97a9 UNICHARSET: Add missing initialization
The member variable default_sid_ was used without being initialized.

Valgrind report for `tesseract --oem 1 hello.png hello`:

    Conditional jump or move depends on uninitialised value(s)
       at 0x14352E: BITS16::set_bit(unsigned char, unsigned char) (bits16.h:50)
       by 0x143E27: WERD::set_flag(WERD_FLAGS, unsigned char) (werd.h:129)
       by 0x27D053: WERD_RES::SetupWordScript(UNICHARSET const&) (pageres.cpp:381)
       by 0x27CAFD: WERD_RES::SetupForRecognition(UNICHARSET const&, tesseract::Tesseract*, Pix*, int, TBOX const*, bool, bool, bool, ROW*, BLOCK const*) (pageres.cpp:316)
       by 0x145903: tesseract::Tesseract::SetupWordPassN(int, tesseract::WordData*) (control.cpp:182)
       by 0x145780: tesseract::Tesseract::SetupAllWordsPassN(int, TBOX const*, char const*, PAGE_RES*, GenericVector<tesseract::WordData>*) (control.cpp:168)
       by 0x146293: tesseract::Tesseract::recog_all_words(PAGE_RES*, ETEXT_DESC*, TBOX const*, char const*, int) (control.cpp:336)
       by 0x12F356: tesseract::TessBaseAPI::Recognize(ETEXT_DESC*) (baseapi.cpp:878)
       by 0x13036D: tesseract::TessBaseAPI::ProcessPage(Pix*, int, char const*, char const*, int, tesseract::TessResultRenderer*) (baseapi.cpp:1184)
       by 0x13014A: tesseract::TessBaseAPI::ProcessPagesInternal(char const*, char const*, int, tesseract::TessResultRenderer*) (baseapi.cpp:1140)
       by 0x12FBCE: tesseract::TessBaseAPI::ProcessPages(char const*, char const*, int, tesseract::TessResultRenderer*) (baseapi.cpp:1040)
       by 0x12C3DF: main (tesseractmain.cpp:515)
     Uninitialised value was created by a heap allocation
       at 0x4C2C21F: operator new(unsigned long) (vg_replace_malloc.c:334)
       by 0x12D88B: tesseract::TessBaseAPI::Init(char const*, int, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool, bool (*)(STRING const&, GenericVector<char>*)) (baseapi.cpp:320)
       by 0x12D6DA: tesseract::TessBaseAPI::Init(char const*, char const*, tesseract::OcrEngineMode, char**, int, GenericVector<STRING> const*, GenericVector<STRING> const*, bool) (baseapi.cpp:284)
       by 0x12C088: main (tesseractmain.cpp:440)

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2017-05-19 20:57:39 +02:00
android Update Android.mk 2016-12-15 12:08:10 +02:00
api Merge pull request #918 from rfschtkt/issue529 2017-05-13 19:33:46 +02:00
arch arch: Replace Tesseract data types by POSIX data types 2017-05-02 18:21:44 +02:00
ccmain EquationDetect: Remove unneeded new / delete operations 2017-05-18 07:39:36 +02:00
ccstruct Optimize code by replacing init_to_size with resize_no_init 2017-05-12 14:34:55 +02:00
ccutil UNICHARSET: Add missing initialization 2017-05-19 20:57:39 +02:00
classify Fewer g++ -Wsign-compare warnings 2017-05-11 23:14:52 +02:00
cmake Update SourceGroups.cmake 2016-12-15 14:11:47 +03:00
contrib helper script to generate dawg input files from text 2016-10-17 19:04:29 +01:00
cutil Remove undefined macro MAC_OR_DOS 2017-05-01 18:17:33 +02:00
dict Issue #529: cleanup 2017-05-13 18:01:45 +02:00
doc doc: Fix use of MAINTAINER_MODE 2017-05-02 07:37:18 +02:00
java automake: Enable all warnings and fix a warning 2017-05-15 20:08:54 +02:00
lstm Optimize code by replacing init_to_size with resize_no_init 2017-05-12 14:34:55 +02:00
opencl opencl: Remove more unused code 2017-05-19 10:11:14 +02:00
snap Add the packaging metadata to build the tesseract snap 2017-02-03 06:37:39 +00:00
tessdata Update Makefile.am (add 'lstm.train') 2017-04-02 17:06:12 +09:00
testing testing: Fix warnings from shellcheck 2017-04-11 18:23:47 +02:00
textord Fewer g++ -Wmaybe-uninitialized warnings 2017-05-11 23:14:52 +02:00
training Fewer g++ -Wunused-variable warnings 2017-05-11 23:36:05 +02:00
viewer Reviewed uses of reinterpret_cast 2017-05-11 01:58:40 +02:00
vs2010 Remove support for VS2010 2016-12-16 08:31:56 +01:00
wordrec Reviewed uses of reinterpret_cast 2017-05-11 01:58:40 +02:00
.gitignore doc: Remove generated files and add rules to build manpages 2017-04-30 11:27:17 +02:00
.travis.yml shouldn't rely on different install 2017-05-12 14:14:08 -07:00
appveyor.yml Update appveyor.yml 2017-05-06 14:47:04 +03:00
AUTHORS AUTHORS: Add more contributors 2016-11-27 00:04:05 +02:00
autogen.sh automake: Enable all warnings and fix a warning 2017-05-15 20:08:54 +02:00
ChangeLog Fix ChangeLog for Leptonica 1.74 2017-04-22 18:33:37 +02:00
CMakeLists.txt Update CMakeLists.txt 2017-05-06 14:46:46 +03:00
configure.ac Remove most libtiff dependencies 2017-05-12 10:15:35 +02:00
CONTRIBUTING.md Fix typos 2017-01-29 13:12:24 +01:00
COPYING Result of clang tidy on recent merge 2016-11-07 10:46:33 -08:00
cppan.yml Turn on building of text2image. 2017-05-07 20:05:12 +03:00
docker-compose.yml Dockerifying using travis build script 2016-03-18 00:32:35 -04:00
Dockerfile Fix and improve Dockerfile 2017-05-18 21:35:53 +02:00
INSTALL Fix typos 2017-01-29 13:12:24 +01:00
INSTALL.GIT.md Update INSTALL.GIT.md 2016-12-26 18:03:07 +01:00
LICENSE Added missing license headers 2016-11-18 15:53:11 -08:00
Makefile.am Merge pull request #576 from stweil/shellcheck 2016-12-15 08:30:30 +01:00
NEWS top-skimming import from sf.net 2007-03-07 20:03:40 +00:00
README.md Update README.md 2017-05-19 17:10:52 +03:00
tesseract.pc.cmake Cmake install 2017-04-20 14:50:53 +03:00
tesseract.pc.in improve tesseract.pc.in - fixes #241 2016-03-04 22:25:40 +01:00

Tesseract OCR

For the latest online version of the README.md see:

https://github.com/tesseract-ocr/tesseract/blob/master/README.md

Build

Build Status Build status

Other

Coverity Scan Build Status Insight.io

About

This package contains an OCR engine - libtesseract and a command line program - tesseract.

The lead developer is Ray Smith. The maintainer is Zdenko Podobny. For a list of contributors see AUTHORS and GitHub's log of contributors.

Tesseract has unicode (UTF-8) support, and can recognize more than 100 languages "out of the box". It can be trained to recognize other languages. See Tesseract Training for more information.

Tesseract supports various output formats: plain-text, hocr(html), pdf.

This project does not include a GUI application. If you need one, please see the 3rdParty wiki page.

You should note that in many cases, in order to get better OCR results, you'll need to improve the quality of the image you are giving Tesseract.

The latest stable version is 3.05.00, released in February 2017.

Brief history

Tesseract was originally developed at Hewlett-Packard Laboratories Bristol and at Hewlett-Packard Co, Greeley Colorado between 1985 and 1994, with some more changes made in 1996 to port to Windows, and some C++izing in 1998.

In 2005 Tesseract was open sourced by HP. Since 2006 it is developed by Google.

Release Notes

For developers

Developers can use libtesseract C or C++ API to build their own application. If you need bindings to libtesseract for other programming languages, please see the wrapper section on AddOns wiki page.

Documentation of Tesseract generated from source code by doxygen can be found on tesseract-ocr.github.io.

License

The code in this repository is licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

NOTE: This software depends on other packages that may be licensed under different open source licenses.

Installing Tesseract

You can either Install Tesseract via pre-built binary package or build it from source.

Supported Compilers

  • GCC 4.8 and above
  • Clang 3.4 and above
  • MSVC 2015, 2017

Other compilers might work, but are not officially supported.

Running Tesseract

Basic command line usage:

tesseract imagename outputbase [-l lang] [--psm pagesegmode] [configfiles...]

For more information about the various command line options use tesseract --help or man tesseract.

Support

Mailing-lists:

Please read the FAQ before asking any question in the mailing-list or reporting an issue.