tesseract 4.1.1
Loading...
Searching...
No Matches
wordrec.cpp
Go to the documentation of this file.
1
2// File: wordrec.cpp
3// Description: wordrec class.
4// Author: Samuel Charron
5//
6// (C) Copyright 2006, Google Inc.
7// Licensed under the Apache License, Version 2.0 (the "License");
8// you may not use this file except in compliance with the License.
9// You may obtain a copy of the License at
10// http://www.apache.org/licenses/LICENSE-2.0
11// Unless required by applicable law or agreed to in writing, software
12// distributed under the License is distributed on an "AS IS" BASIS,
13// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14// See the License for the specific language governing permissions and
15// limitations under the License.
16//
18
19#include "wordrec.h"
20
21#ifdef DISABLED_LEGACY_ENGINE
22
23#include "params.h"
24
25
26namespace tesseract {
28 // control parameters
29
30 BOOL_MEMBER(wordrec_debug_blamer, false,
31 "Print blamer debug messages", params()),
32
33 BOOL_MEMBER(wordrec_run_blamer, false,
34 "Try to set the blame for errors", params()) {
35 prev_word_best_choice_ = nullptr;
36}
37
38} // namespace tesseract
39
40#else // DISABLED_LEGACY_ENGINE not defined
41
42#include "language_model.h"
43#include "params.h"
44
45
46namespace tesseract {
48 // control parameters
49 BOOL_MEMBER(merge_fragments_in_matrix, true,
50 "Merge the fragments in the ratings matrix and delete them"
51 " after merging", params()),
52 BOOL_MEMBER(wordrec_enable_assoc, true, "Associator Enable",
53 params()),
54 BOOL_MEMBER(force_word_assoc, false,
55 "force associator to run regardless of what enable_assoc is."
56 " This is used for CJK where component grouping is necessary.",
57 CCUtil::params()),
58 INT_MEMBER(repair_unchopped_blobs, 1, "Fix blobs that aren't chopped",
59 params()),
60 double_MEMBER(tessedit_certainty_threshold, -2.25, "Good blob limit",
61 params()),
62 INT_MEMBER(chop_debug, 0, "Chop debug",
63 params()),
64 BOOL_MEMBER(chop_enable, 1, "Chop enable",
65 params()),
66 BOOL_MEMBER(chop_vertical_creep, 0, "Vertical creep",
67 params()),
68 INT_MEMBER(chop_split_length, 10000, "Split Length",
69 params()),
70 INT_MEMBER(chop_same_distance, 2, "Same distance",
71 params()),
72 INT_MEMBER(chop_min_outline_points, 6, "Min Number of Points on Outline",
73 params()),
74 INT_MEMBER(chop_seam_pile_size, 150, "Max number of seams in seam_pile",
75 params()),
76 BOOL_MEMBER(chop_new_seam_pile, 1, "Use new seam_pile", params()),
77 INT_MEMBER(chop_inside_angle, -50, "Min Inside Angle Bend",
78 params()),
79 INT_MEMBER(chop_min_outline_area, 2000, "Min Outline Area",
80 params()),
81 double_MEMBER(chop_split_dist_knob, 0.5, "Split length adjustment",
82 params()),
83 double_MEMBER(chop_overlap_knob, 0.9, "Split overlap adjustment",
84 params()),
85 double_MEMBER(chop_center_knob, 0.15, "Split center adjustment",
86 params()),
87 INT_MEMBER(chop_centered_maxwidth, 90, "Width of (smaller) chopped blobs "
88 "above which we don't care that a chop is not near the center.",
89 params()),
90 double_MEMBER(chop_sharpness_knob, 0.06, "Split sharpness adjustment",
91 params()),
92 double_MEMBER(chop_width_change_knob, 5.0, "Width change adjustment",
93 params()),
94 double_MEMBER(chop_ok_split, 100.0, "OK split limit",
95 params()),
96 double_MEMBER(chop_good_split, 50.0, "Good split limit",
97 params()),
98 INT_MEMBER(chop_x_y_weight, 3, "X / Y length weight",
99 params()),
100 BOOL_MEMBER(assume_fixed_pitch_char_segment, false,
101 "include fixed-pitch heuristics in char segmentation",
102 params()),
103 INT_MEMBER(wordrec_debug_level, 0,
104 "Debug level for wordrec", params()),
105 INT_MEMBER(wordrec_max_join_chunks, 4,
106 "Max number of broken pieces to associate", params()),
107 BOOL_MEMBER(wordrec_skip_no_truth_words, false,
108 "Only run OCR for words that had truth recorded in BlamerBundle",
109 params()),
110 BOOL_MEMBER(wordrec_debug_blamer, false,
111 "Print blamer debug messages", params()),
112 BOOL_MEMBER(wordrec_run_blamer, false,
113 "Try to set the blame for errors", params()),
114 INT_MEMBER(segsearch_debug_level, 0,
115 "SegSearch debug level", params()),
116 INT_MEMBER(segsearch_max_pain_points, 2000,
117 "Maximum number of pain points stored in the queue",
118 params()),
119 INT_MEMBER(segsearch_max_futile_classifications, 20,
120 "Maximum number of pain point classifications per chunk that"
121 " did not result in finding a better word choice.",
122 params()),
123 double_MEMBER(segsearch_max_char_wh_ratio, 2.0,
124 "Maximum character width-to-height ratio", params()),
125 BOOL_MEMBER(save_alt_choices, true,
126 "Save alternative paths found during chopping"
127 " and segmentation search",
128 params()),
129 pass2_ok_split(0.0f) {
130 prev_word_best_choice_ = nullptr;
132 &(getDict())));
133 fill_lattice_ = nullptr;
134}
135
136} // namespace tesseract
137
138#endif // DISABLED_LEGACY_ENGINE
#define INT_MEMBER(name, val, comment, vec)
Definition: params.h:315
#define double_MEMBER(name, val, comment, vec)
Definition: params.h:324
#define BOOL_MEMBER(name, val, comment, vec)
Definition: params.h:318
UnicityTable< FontInfo > & get_fontinfo_table()
Definition: classify.h:386
virtual Dict & getDict()
Definition: classify.h:107
void(Wordrec::* fill_lattice_)(const MATRIX &ratings, const WERD_CHOICE_LIST &best_choices, const UNICHARSET &unicharset, BlamerBundle *blamer_bundle)
Definition: wordrec.h:480
WERD_CHOICE * prev_word_best_choice_
Definition: wordrec.h:476
std::unique_ptr< LanguageModel > language_model_
Definition: wordrec.h:471