21 #ifdef DISABLED_LEGACY_ENGINE 29 INT_MEMBER(classify_debug_level, 0,
"Classify debug level",
33 "Assume the input is numbers [0-9].", this->params()),
36 "Veto ratio between classifier ratings", this->params()),
39 "Veto difference between classifier certainties",
48 #else // DISABLED_LEGACY_ENGINE not defined 64 "Prioritize blob division over chopping", this->
params()),
72 "Character Normalization Range ...", this->
params()),
76 "Max char x-norm scale ...",
81 "Max char y-norm scale ...",
84 "Veto ratio between classifier ratings", this->
params()),
86 "Veto difference between classifier certainties",
93 "Enable adaptive classifier", this->
params()),
95 "Use pre-adapted classifier templates", this->
params()),
97 "Save adapted templates to a file", this->
params()),
101 "Non-linear stroke-density normalization", this->
params()),
121 "Reliable Config Threshold", this->
params()),
123 "Enable adaption even if the ambiguities have not been seen",
126 "Maximum angle delta for prototype clustering",
129 "Penalty to apply when a non-alnum is vertically out of " 130 "its expected textline position",
136 "Scale factor for features not used", this->
params()),
139 "Prune poor adapted results this much worse than best result",
142 "Threshold at which classify_adapted_pruning_factor starts",
145 "Threshold for good protos during adaptive 0-255",
148 "Threshold for good features during adaptive 0-255",
151 "Do not include character fragments in the" 152 " results of the classifier",
156 "Exclude fragments that do not look like whole" 157 " characters from training and adaption",
160 "Bring up graphical debugging windows for fragments training",
163 "Use two different windows for debugging the matching: " 164 "One for the protos and one for the features.",
169 "Class Pruner Threshold 0-255", this->
params()),
171 "Class Pruner Multiplier 0-255: ", this->
params()),
173 "Class Pruner CutoffStrength: ", this->
params()),
175 "Integer Matcher Multiplier 0-255: ", this->
params()),
178 "Don't adapt to i/I at beginning of word", this->
params()),
180 "Assume the input is numbers [0-9].", this->
params()),
184 "Penalty to add to worst rating for noise", this->
params()),
188 static_classifier_(nullptr) {
206 NumAdaptationsFailed = 0;
208 learn_debug_win_ =
nullptr;
209 learn_fragmented_word_debug_win_ =
nullptr;
210 learn_fragments_debug_win_ =
nullptr;
215 delete learn_debug_win_;
216 delete learn_fragmented_word_debug_win_;
217 delete learn_fragments_debug_win_;
224 delete static_classifier_;
225 static_classifier_ = static_classifier;
232 BLOB_CHOICE_IT bc_it(choices);
237 if (!choices->empty() && blob_length > 0) {
238 bc_it.move_to_last();
248 -1, 0.0f, FLT_MAX, 0,
250 bc_it.add_to_end(blob_choice);
257 return bbox.
width() < speckle_size && bbox.
height() < speckle_size;
262 #endif // def DISABLED_LEGACY_ENGINE
int matcher_permanent_classes_min
bool classify_save_adapted_templates
bool classify_enable_learning
bool classify_enable_adaptive_matcher
UnicityTable< FontInfo > fontinfo_table_
double matcher_bad_match_pad
#define double_MEMBER(name, val, comment, vec)
double speckle_rating_penalty
#define BOOL_MEMBER(name, val, comment, vec)
ADAPT_TEMPLATES BackupAdaptedTemplates
ADAPT_TEMPLATES AdaptedTemplates
TBOX bounding_box() const
double matcher_rating_margin
int matcher_min_examples_for_prototyping
double classify_max_norm_scale_x
double classify_max_norm_scale_y
#define INT_MEMBER(name, val, comment, vec)
bool classify_nonlinear_norm
void AddLargeSpeckleTo(int blob_length, BLOB_CHOICE_LIST *choices)
UnicityTable< FontSet > fontset_table_
char * classify_learn_debug_str
double matcher_good_threshold
void SetStaticClassifier(ShapeClassifier *static_classifier)
ShapeTable * shape_table_
int classify_integer_matcher_multiplier
bool classify_enable_adaptive_debugger
int matcher_sufficient_examples_for_prototyping
double classify_min_norm_scale_y
double classify_misfit_junk_penalty
double classify_adapted_pruning_threshold
void FontSetDeleteCallback(FontSet fs)
bool LargeSpeckle(const TBLOB &blob)
double classify_character_fragments_garbage_certainty_threshold
bool CompareFontInfo(const FontInfo &fi1, const FontInfo &fi2)
bool classify_use_pre_adapted_templates
double speckle_large_max_size
double matcher_avg_noise_size
double matcher_clustering_max_angle_delta
bool matcher_debug_separate_windows
double classify_max_certainty_margin
void FontInfoDeleteCallback(FontInfo f)
int classify_adapt_feature_threshold
double matcher_perfect_threshold
void EndAdaptiveClassifier()
bool CompareFontSet(const FontSet &fs1, const FontSet &fs2)
INT_TEMPLATES PreTrainedTemplates
bool disable_character_fragments
#define STRING_MEMBER(name, val, comment, vec)
int classify_cp_cutoff_strength
double classify_min_norm_scale_x
int classify_class_pruner_threshold
_ConstTessMemberResultCallback_5_0< false, R, T1, P1, P2, P3, P4, P5 >::base * NewPermanentTessCallback(const T1 *obj, R(T2::*member)(P1, P2, P3, P4, P5) const, typename Identity< P1 >::type p1, typename Identity< P2 >::type p2, typename Identity< P3 >::type p3, typename Identity< P4 >::type p4, typename Identity< P5 >::type p5)
double classify_max_rating_ratio
int classify_class_pruner_multiplier
int classify_learning_debug_level
double classify_char_norm_range
double tessedit_class_miss_scale
double matcher_reliable_adaptive_result
double classify_adapted_pruning_factor
bool classify_bln_numeric_mode
bool classify_debug_character_fragments
int classify_adapt_proto_threshold