23#ifndef TESSERACT_WORDREC_PAIN_POINTS_H_
24#define TESSERACT_WORDREC_PAIN_POINTS_H_
35struct ViterbiStateEntry;
50static 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_;
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 RemapForSplit(int index)
bool HasPainPoints(LMPainPointsType pp_type) const
LMPainPoints(int max, float rat, bool fp, const Dict *d, int deb)
void GenerateInitial(WERD_RES *word_res)
bool GenerateForBlamer(double max_char_wh_ratio, WERD_RES *word_res, int col, int row)
void GenerateFromPath(float rating_cert_scale, ViterbiStateEntry *vse, WERD_RES *word_res)
static const float kLooseMaxCharWhRatio
static const float kDefaultPainPointPriorityAdjustment
static const char * PainPointDescription(LMPainPointsType type)
void GenerateFromAmbigs(const DANGERR &fixpt, ViterbiStateEntry *vse, WERD_RES *word_res)
LMPainPointsType Deque(MATRIX_COORD *pp, float *priority)