Tesseract  3.02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
publictypes.h
Go to the documentation of this file.
1 
2 // File: publictypes.h
3 // Description: Types used in both the API and internally
4 // Author: Ray Smith
5 // Created: Wed Mar 03 09:22:53 PST 2010
6 //
7 // (C) Copyright 2010, Google Inc.
8 // Licensed under the Apache License, Version 2.0 (the "License");
9 // you may not use this file except in compliance with the License.
10 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
12 // Unless required by applicable law or agreed to in writing, software
13 // distributed under the License is distributed on an "AS IS" BASIS,
14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 // See the License for the specific language governing permissions and
16 // limitations under the License.
17 //
19 
20 #ifndef TESSERACT_CCSTRUCT_PUBLICTYPES_H__
21 #define TESSERACT_CCSTRUCT_PUBLICTYPES_H__
22 
23 // This file contains types that are used both by the API and internally
24 // to Tesseract. In order to decouple the API from Tesseract and prevent cyclic
25 // dependencies, THIS FILE SHOULD NOT DEPEND ON ANY OTHER PART OF TESSERACT.
26 // Restated: It is OK for low-level Tesseract files to include publictypes.h,
27 // but not for the low-level tesseract code to include top-level API code.
28 // This file should not use other Tesseract types, as that would drag
29 // their includes into the API-level.
30 // API-level code should include apitypes.h in preference to this file.
31 
33 const int kPointsPerInch = 72;
34 
42  PT_UNKNOWN, // Type is not yet known. Keep as the first element.
43  PT_FLOWING_TEXT, // Text that lives inside a column.
44  PT_HEADING_TEXT, // Text that spans more than one column.
45  PT_PULLOUT_TEXT, // Text that is in a cross-column pull-out region.
46  PT_EQUATION, // Partition belonging to an equation region.
47  PT_INLINE_EQUATION, // Partition has inline equation.
48  PT_TABLE, // Partition belonging to a table region.
49  PT_VERTICAL_TEXT, // Text-line runs vertically.
50  PT_CAPTION_TEXT, // Text that belongs to an image.
51  PT_FLOWING_IMAGE, // Image that lives inside a column.
52  PT_HEADING_IMAGE, // Image that spans more than one column.
53  PT_PULLOUT_IMAGE, // Image that is in a cross-column pull-out region.
54  PT_HORZ_LINE, // Horizontal Line.
55  PT_VERT_LINE, // Vertical Line.
56  PT_NOISE, // Lies outside of any column.
58 };
59 
61 inline bool PTIsLineType(PolyBlockType type) {
62  return type == PT_HORZ_LINE || type == PT_VERT_LINE;
63 }
65 inline bool PTIsImageType(PolyBlockType type) {
66  return type == PT_FLOWING_IMAGE || type == PT_HEADING_IMAGE ||
67  type == PT_PULLOUT_IMAGE;
68 }
70 inline bool PTIsTextType(PolyBlockType type) {
71  return type == PT_FLOWING_TEXT || type == PT_HEADING_TEXT ||
72  type == PT_PULLOUT_TEXT || type == PT_TABLE ||
73  type == PT_VERTICAL_TEXT || type == PT_CAPTION_TEXT ||
74  type == PT_INLINE_EQUATION;
75 }
76 
78 extern const char* kPolyBlockNames[];
79 
80 namespace tesseract {
109 };
110 
123 };
124 
140 };
141 
150 
155 
161 
163 };
164 
170 #define PSM_OSD_ENABLED(pageseg_mode) ((pageseg_mode) <= PSM_AUTO_OSD)
171 #define PSM_COL_FIND_ENABLED(pageseg_mode) \
172  ((pageseg_mode) >= PSM_AUTO_OSD && (pageseg_mode) <= PSM_AUTO)
173 #define PSM_BLOCK_FIND_ENABLED(pageseg_mode) \
174  ((pageseg_mode) >= PSM_AUTO_OSD && (pageseg_mode) <= PSM_SINGLE_COLUMN)
175 #define PSM_LINE_FIND_ENABLED(pageseg_mode) \
176  ((pageseg_mode) >= PSM_AUTO_OSD && (pageseg_mode) <= PSM_SINGLE_BLOCK)
177 #define PSM_WORD_FIND_ENABLED(pageseg_mode) \
178  ((pageseg_mode) >= PSM_AUTO_OSD && (pageseg_mode) <= PSM_SINGLE_LINE)
179 
186  RIL_BLOCK, // Block of text/image/separator line.
187  RIL_PARA, // Paragraph within a block.
188  RIL_TEXTLINE, // Line within a paragraph.
189  RIL_WORD, // Word within a textline.
190  RIL_SYMBOL // Symbol/character within a word.
191 };
192 
222 };
223 
235  OEM_TESSERACT_ONLY, // Run Tesseract only - fastest
236  OEM_CUBE_ONLY, // Run Cube only - better accuracy, but slower
237  OEM_TESSERACT_CUBE_COMBINED, // Run both and combine results - best accuracy
238  OEM_DEFAULT // Specify this mode when calling init_*(),
239  // to indicate that any of the above modes
240  // should be automatically inferred from the
241  // variables in the language-specific config,
242  // command-line configs, or if not specified
243  // in any of the above should be set to the
244  // default OEM_TESSERACT_ONLY.
245 };
246 
247 } // namespace tesseract.
248 
249 #endif // TESSERACT_CCSTRUCT_PUBLICTYPES_H__