Go to the documentation of this file.
23 #ifndef TESSERACT_WORDREC_PAIN_POINTS_H_
24 #define TESSERACT_WORDREC_PAIN_POINTS_H_
35 struct ViterbiStateEntry;
50 static const char *
const LMPainPointsTypeName[] = {
67 return LMPainPointsTypeName[
type];
71 max_heap_size_(max), max_char_wh_ratio_(rat), fixed_pitch_(fp),
72 dict_(d), debug_level_(deb) {}
77 return !pain_points_heaps_[pp_type].
empty();
87 for (
auto & pain_points_heap : pain_points_heaps_) pain_points_heap.clear();
106 max_char_wh_ratio, word_res);
115 float special_priority,
bool ok_to_extend,
116 float max_char_wh_ratio,
131 float max_char_wh_ratio_;
142 #endif // TESSERACT_WORDREC_PAIN_POINTS_H_
bool GeneratePainPoint(int col, int row, LMPainPointsType pp_type, float special_priority, bool ok_to_extend, float max_char_wh_ratio, WERD_RES *word_res)
void GenerateFromPath(float rating_cert_scale, ViterbiStateEntry *vse, WERD_RES *word_res)
LMPainPoints(int max, float rat, bool fp, const Dict *d, int deb)
static const float kDefaultPainPointPriorityAdjustment
bool GenerateForBlamer(double max_char_wh_ratio, WERD_RES *word_res, int col, int row)
static const char * PainPointDescription(LMPainPointsType type)
static const float kLooseMaxCharWhRatio
void RemapForSplit(int index)
bool HasPainPoints(LMPainPointsType pp_type) const
void GenerateFromAmbigs(const DANGERR &fixpt, ViterbiStateEntry *vse, WERD_RES *word_res)
LMPainPointsType Deque(MATRIX_COORD *pp, float *priority)
void GenerateInitial(WERD_RES *word_res)