tesseract
5.0.0-alpha-619-ge9db
|
#include <pageres.h>
|
| WERD_RES ()=default |
|
| WERD_RES (WERD *the_word) |
|
| WERD_RES (const WERD_RES &source) |
|
| ~WERD_RES () |
|
const char * | BestUTF8 (int blob_index, bool in_rtl_context) const |
|
const char * | RawUTF8 (int blob_index) const |
|
UNICHARSET::Direction | SymbolDirection (int blob_index) const |
|
bool | AnyRtlCharsInWord () const |
|
bool | AnyLtrCharsInWord () const |
|
bool | UnicharsInReadingOrder () const |
|
void | Clear () |
|
void | ClearResults () |
|
void | ClearWordChoices () |
|
void | ClearRatings () |
|
WERD_RES & | operator= (const WERD_RES &source) |
|
void | CopySimpleFields (const WERD_RES &source) |
|
void | InitForRetryRecognition (const WERD_RES &source) |
|
bool | SetupForRecognition (const UNICHARSET &unicharset_in, tesseract::Tesseract *tesseract, Pix *pix, int norm_mode, const TBOX *norm_box, bool numeric_mode, bool use_body_size, bool allow_detailed_fx, ROW *row, const BLOCK *block) |
|
void | SetupBasicsFromChoppedWord (const UNICHARSET &unicharset_in) |
|
void | SetupFake (const UNICHARSET &uch) |
|
void | SetupWordScript (const UNICHARSET &unicharset_in) |
|
void | SetupBlamerBundle () |
|
void | SetupBlobWidthsAndGaps () |
|
void | InsertSeam (int blob_number, SEAM *seam) |
|
bool | AlternativeChoiceAdjustmentsWorseThan (float threshold) const |
|
bool | IsAmbiguous () |
|
bool | StatesAllValid () |
|
void | DebugWordChoices (bool debug, const char *word_to_debug) |
|
void | DebugTopChoice (const char *msg) const |
|
void | FilterWordChoices (int debug_level) |
|
void | ComputeAdaptionThresholds (float certainty_scale, float min_rating, float max_rating, float rating_margin, float *thresholds) |
|
bool | LogNewRawChoice (WERD_CHOICE *word_choice) |
|
bool | LogNewCookedChoice (int max_num_choices, bool debug, WERD_CHOICE *word_choice) |
|
void | PrintBestChoices () const |
|
int | GetBlobsWidth (int start_blob, int last_blob) |
|
int | GetBlobsGap (int blob_index) |
|
BLOB_CHOICE * | GetBlobChoice (int index) const |
|
BLOB_CHOICE_LIST * | GetBlobChoices (int index) const |
|
void | ConsumeWordResults (WERD_RES *word) |
|
void | ReplaceBestChoice (WERD_CHOICE *choice) |
|
void | RebuildBestState () |
|
void | CloneChoppedToRebuild () |
|
void | SetupBoxWord () |
|
void | SetScriptPositions () |
|
void | SetAllScriptPositions (tesseract::ScriptPos position) |
|
void | FakeClassifyWord (int blob_count, BLOB_CHOICE **choices) |
|
void | FakeWordFromRatings (PermuterType permuter) |
|
void | BestChoiceToCorrectText () |
|
bool | ConditionalBlobMerge (std::function< UNICHAR_ID(UNICHAR_ID, UNICHAR_ID)> class_cb, std::function< bool(const TBOX &, const TBOX &)> box_cb) |
|
void | MergeAdjacentBlobs (int index) |
|
UNICHAR_ID | BothQuotes (UNICHAR_ID id1, UNICHAR_ID id2) |
|
void | fix_quotes () |
|
UNICHAR_ID | BothHyphens (UNICHAR_ID id1, UNICHAR_ID id2) |
|
bool | HyphenBoxesOverlap (const TBOX &box1, const TBOX &box2) |
|
void | fix_hyphens () |
|
UNICHAR_ID | BothSpaces (UNICHAR_ID id1, UNICHAR_ID id2) |
|
void | merge_tess_fails () |
|
void | copy_on (WERD_RES *word_res) |
|
bool | PiecesAllNatural (int start, int count) const |
|
| ELIST_LINK () |
|
| ELIST_LINK (const ELIST_LINK &) |
|
void | operator= (const ELIST_LINK &) |
|
Definition at line 160 of file pageres.h.
◆ WERD_RES() [1/3]
◆ WERD_RES() [2/3]
WERD_RES::WERD_RES |
( |
WERD * |
the_word | ) |
|
|
inline |
◆ WERD_RES() [3/3]
WERD_RES::WERD_RES |
( |
const WERD_RES & |
source | ) |
|
|
inline |
◆ ~WERD_RES()
◆ AlternativeChoiceAdjustmentsWorseThan()
bool WERD_RES::AlternativeChoiceAdjustmentsWorseThan |
( |
float |
threshold | ) |
const |
Definition at line 435 of file pageres.cpp.
440 WERD_CHOICE_IT wc_it(const_cast<WERD_CHOICE_LIST*>(&
best_choices));
441 for (wc_it.forward(); !wc_it.at_first(); wc_it.forward()) {
◆ AnyLtrCharsInWord()
bool WERD_RES::AnyLtrCharsInWord |
( |
| ) |
const |
|
inline |
◆ AnyRtlCharsInWord()
bool WERD_RES::AnyRtlCharsInWord |
( |
| ) |
const |
|
inline |
◆ BestChoiceToCorrectText()
void WERD_RES::BestChoiceToCorrectText |
( |
| ) |
|
◆ BestUTF8()
const char* WERD_RES::BestUTF8 |
( |
int |
blob_index, |
|
|
bool |
in_rtl_context |
|
) |
| const |
|
inline |
◆ BothHyphens()
Definition at line 1025 of file pageres.cpp.
1031 if (strlen(ch) == 1 && strlen(next_ch) == 1 &&
1032 (*ch ==
'-' || *ch ==
'~') && (*next_ch ==
'-' || *next_ch ==
'~'))
◆ BothQuotes()
Definition at line 1003 of file pageres.cpp.
1009 if (is_simple_quote(ch, strlen(ch)) &&
1010 is_simple_quote(next_ch, strlen(next_ch)))
◆ BothSpaces()
◆ Clear()
◆ ClearRatings()
void WERD_RES::ClearRatings |
( |
| ) |
|
◆ ClearResults()
void WERD_RES::ClearResults |
( |
| ) |
|
◆ ClearWordChoices()
void WERD_RES::ClearWordChoices |
( |
| ) |
|
◆ CloneChoppedToRebuild()
void WERD_RES::CloneChoppedToRebuild |
( |
| ) |
|
Definition at line 831 of file pageres.cpp.
841 for (
int i = 0; i < word_len; ++i) {
◆ ComputeAdaptionThresholds()
void WERD_RES::ComputeAdaptionThresholds |
( |
float |
certainty_scale, |
|
|
float |
min_rating, |
|
|
float |
max_rating, |
|
|
float |
rating_margin, |
|
|
float * |
thresholds |
|
) |
| |
Definition at line 557 of file pageres.cpp.
570 float avg_rating = 0.0f;
571 int num_error_chunks = 0;
574 while (chunk < end_chunk) {
575 if (chunk >= end_raw_chunk) {
587 if (num_error_chunks > 0) {
588 avg_rating /= num_error_chunks;
589 *thresholds = (avg_rating / -certainty_scale) * (1.0 - rating_margin);
591 *thresholds = max_rating;
594 if (*thresholds > max_rating)
595 *thresholds = max_rating;
596 if (*thresholds < min_rating)
◆ ConditionalBlobMerge()
Definition at line 935 of file pageres.cpp.
942 bool modified =
false;
946 if (new_id != INVALID_UNICHAR_ID &&
962 BLOB_CHOICE_IT bc_it(blob_choices);
963 bc_it.add_before_then_move(blob_choice);
◆ ConsumeWordResults()
void WERD_RES::ConsumeWordResults |
( |
WERD_RES * |
word | ) |
|
Definition at line 761 of file pageres.cpp.
772 word->seam_array.clear();
783 wc_it.add_list_after(&
word->best_choices);
785 if (
word->blamer_bundle !=
nullptr) {
◆ copy_on()
void WERD_RES::copy_on |
( |
WERD_RES * |
word_res | ) |
|
|
inline |
◆ CopySimpleFields()
void WERD_RES::CopySimpleFields |
( |
const WERD_RES & |
source | ) |
|
◆ DebugTopChoice()
void WERD_RES::DebugTopChoice |
( |
const char * |
msg | ) |
const |
Definition at line 495 of file pageres.cpp.
499 tprintf(
"Best choice: accepted=%d, adaptable=%d, done=%d : ",
◆ DebugWordChoices()
void WERD_RES::DebugWordChoices |
( |
bool |
debug, |
|
|
const char * |
word_to_debug |
|
) |
| |
Definition at line 476 of file pageres.cpp.
481 (word_to_debug !=
nullptr && *word_to_debug !=
'\0' &&
best_choice !=
nullptr &&
488 for (it.mark_cycle_pt(); !it.cycled_list(); it.forward(), ++index) {
◆ deep_copy()
◆ FakeClassifyWord()
void WERD_RES::FakeClassifyWord |
( |
int |
blob_count, |
|
|
BLOB_CHOICE ** |
choices |
|
) |
| |
Definition at line 873 of file pageres.cpp.
883 for (
int c = 0; c < blob_count; ++c) {
884 auto* choice_list =
new BLOB_CHOICE_LIST;
885 BLOB_CHOICE_IT choice_it(choice_list);
886 choice_it.add_after_then_move(choices[c]);
◆ FakeWordFromRatings()
Definition at line 894 of file pageres.cpp.
900 word_choice->set_permuter(permuter);
901 for (
int b = 0; b < num_blobs; ++b) {
905 float certainty = -FLT_MAX;
906 BLOB_CHOICE_LIST* choices =
ratings->
get(b, b);
907 if (choices !=
nullptr && !choices->empty()) {
908 BLOB_CHOICE_IT bc_it(choices);
911 rating = choice->
rating();
914 word_choice->append_unichar_id_space_allocated(unichar_id, 1, rating,
◆ FilterWordChoices()
void WERD_RES::FilterWordChoices |
( |
int |
debug_level | ) |
|
Definition at line 509 of file pageres.cpp.
516 if (debug_level >= 2)
520 for (it.forward(); !it.at_first(); it.forward(), ++index) {
529 int i = 0, j = 0, chunk = 0;
535 while (i < choice->length() && j < best_choice->length()) {
538 if (debug_level >= 2) {
539 choice->
print(
"WorstCertaintyDiffWorseThan");
541 "i %d j %d Choice->Blob[i].Certainty %.4g"
542 " WorstOtherChoiceCertainty %g Threshold %g\n",
544 tprintf(
"Discarding bad choice #%d\n", index);
551 while (choice_chunk < chunk && ++i < choice->length())
552 choice_chunk += choice->
state(i);
554 while (best_chunk < chunk && ++j < best_choice->length())
◆ fix_hyphens()
void WERD_RES::fix_hyphens |
( |
| ) |
|
Definition at line 1042 of file pageres.cpp.
1050 using namespace std::placeholders;
◆ fix_quotes()
void WERD_RES::fix_quotes |
( |
| ) |
|
Definition at line 1013 of file pageres.cpp.
1021 using namespace std::placeholders;
◆ GetBlobChoice()
BLOB_CHOICE * WERD_RES::GetBlobChoice |
( |
int |
index | ) |
const |
◆ GetBlobChoices()
BLOB_CHOICE_LIST * WERD_RES::GetBlobChoices |
( |
int |
index | ) |
const |
◆ GetBlobsGap()
int WERD_RES::GetBlobsGap |
( |
int |
blob_index | ) |
|
◆ GetBlobsWidth()
int WERD_RES::GetBlobsWidth |
( |
int |
start_blob, |
|
|
int |
last_blob |
|
) |
| |
Definition at line 726 of file pageres.cpp.
731 for (
int b = start_blob; b <= last_blob; ++b) {
◆ HyphenBoxesOverlap()
bool WERD_RES::HyphenBoxesOverlap |
( |
const TBOX & |
box1, |
|
|
const TBOX & |
box2 |
|
) |
| |
◆ InitForRetryRecognition()
void WERD_RES::InitForRetryRecognition |
( |
const WERD_RES & |
source | ) |
|
◆ InsertSeam()
void WERD_RES::InsertSeam |
( |
int |
blob_number, |
|
|
SEAM * |
seam |
|
) |
| |
Definition at line 414 of file pageres.cpp.
428 for (wc_it.mark_cycle_pt(); !wc_it.cycled_list(); wc_it.forward()) {
◆ IsAmbiguous()
bool WERD_RES::IsAmbiguous |
( |
| ) |
|
◆ LogNewCookedChoice()
bool WERD_RES::LogNewCookedChoice |
( |
int |
max_num_choices, |
|
|
bool |
debug, |
|
|
WERD_CHOICE * |
word_choice |
|
) |
| |
Definition at line 616 of file pageres.cpp.
627 float max_certainty_delta =
630 if (max_certainty_delta > -kStopperAmbiguityThresholdOffset)
631 max_certainty_delta = -kStopperAmbiguityThresholdOffset;
633 max_certainty_delta) {
637 tprintf(
"Discarding choice \"%s\" with an overly low certainty"
638 " %.3f vs best choice certainty %.3f (Threshold: %.3f)\n",
652 bool inserted =
false;
657 if (choice->
rating() > word_choice->
rating() && !inserted) {
659 it.add_before_stay_put(word_choice);
661 if (num_choices == 0)
672 tprintf(
"Discarding duplicate choice \"%s\", rating %g vs %g\n",
680 if (num_choices > max_num_choices)
684 }
while (!it.at_first());
686 if (!inserted && num_choices < max_num_choices) {
687 it.add_to_end(word_choice);
689 if (num_choices == 0)
697 word_choice->
print(
" Word Choice");
◆ LogNewRawChoice()
bool WERD_RES::LogNewRawChoice |
( |
WERD_CHOICE * |
word_choice | ) |
|
◆ merge_tess_fails()
void WERD_RES::merge_tess_fails |
( |
| ) |
|
Definition at line 1062 of file pageres.cpp.
1066 using namespace std::placeholders;
1068 this, _1, _2),
nullptr)) {
◆ MergeAdjacentBlobs()
void WERD_RES::MergeAdjacentBlobs |
( |
int |
index | ) |
|
◆ operator=()
Definition at line 184 of file pageres.cpp.
215 WERD_CHOICE_IT wc_it(const_cast<WERD_CHOICE_LIST*>(&source.
best_choices));
217 for (wc_it.mark_cycle_pt(); !wc_it.cycled_list(); wc_it.forward()) {
219 wc_dest_it.add_after_then_move(
new WERD_CHOICE(*choice));
221 if (!wc_dest_it.empty()) {
222 wc_dest_it.move_to_first();
◆ PiecesAllNatural()
bool WERD_RES::PiecesAllNatural |
( |
int |
start, |
|
|
int |
count |
|
) |
| const |
Definition at line 1074 of file pageres.cpp.
1079 for (
int index = start; index < start +
count - 1; ++index) {
1082 if (seam !=
nullptr && seam->
HasAnySplits())
return false;
◆ PrintBestChoices()
void WERD_RES::PrintBestChoices |
( |
| ) |
const |
Definition at line 713 of file pageres.cpp.
718 WERD_CHOICE_IT it(const_cast<WERD_CHOICE_LIST*>(&
best_choices));
719 for (it.mark_cycle_pt(); !it.cycled_list(); it.forward()) {
720 if (!it.at_first()) alternates_str +=
"\", \"";
721 alternates_str += it.data()->unichar_string();
◆ RawUTF8()
const char* WERD_RES::RawUTF8 |
( |
int |
blob_index | ) |
const |
|
inline |
◆ RebuildBestState()
void WERD_RES::RebuildBestState |
( |
| ) |
|
◆ ReplaceBestChoice()
void WERD_RES::ReplaceBestChoice |
( |
WERD_CHOICE * |
choice | ) |
|
◆ SetAllScriptPositions()
◆ SetScriptPositions()
void WERD_RES::SetScriptPositions |
( |
| ) |
|
◆ SetupBasicsFromChoppedWord()
void WERD_RES::SetupBasicsFromChoppedWord |
( |
const UNICHARSET & |
unicharset_in | ) |
|
◆ SetupBlamerBundle()
void WERD_RES::SetupBlamerBundle |
( |
| ) |
|
◆ SetupBlobWidthsAndGaps()
void WERD_RES::SetupBlobWidthsAndGaps |
( |
| ) |
|
Definition at line 396 of file pageres.cpp.
403 for (
int b = 0; b < num_blobs; ++b) {
407 if (b + 1 < num_blobs) {
◆ SetupBoxWord()
void WERD_RES::SetupBoxWord |
( |
| ) |
|
◆ SetupFake()
void WERD_RES::SetupFake |
( |
const UNICHARSET & |
uch | ) |
|
Definition at line 348 of file pageres.cpp.
359 if (blob_count > 0) {
360 auto** fake_choices =
new BLOB_CHOICE*[blob_count];
365 for (b_it.mark_cycle_pt(); !b_it.cycled_list(); b_it.forward()) {
366 TBOX box = b_it.data()->bounding_box();
371 delete [] fake_choices;
◆ SetupForRecognition()
bool WERD_RES::SetupForRecognition |
( |
const UNICHARSET & |
unicharset_in, |
|
|
tesseract::Tesseract * |
tesseract, |
|
|
Pix * |
pix, |
|
|
int |
norm_mode, |
|
|
const TBOX * |
norm_box, |
|
|
bool |
numeric_mode, |
|
|
bool |
use_body_size, |
|
|
bool |
allow_detailed_fx, |
|
|
ROW * |
row, |
|
|
const BLOCK * |
block |
|
) |
| |
Definition at line 298 of file pageres.cpp.
309 auto norm_mode_hint =
310 static_cast<tesseract::OcrEngineMode>(norm_mode);
315 (pb !=
nullptr && !pb->
IsText())) {
325 float word_xheight = use_body_size && row !=
nullptr && row->
body_size() > 0.0f
329 norm_mode_hint, norm_box, &
denorm);
◆ SetupWordScript()
void WERD_RES::SetupWordScript |
( |
const UNICHARSET & |
unicharset_in | ) |
|
◆ StatesAllValid()
bool WERD_RES::StatesAllValid |
( |
| ) |
|
Definition at line 454 of file pageres.cpp.
460 tprintf(
"raw_choice has total of states = %d vs ratings dim of %d\n",
466 for (it.mark_cycle_pt(); !it.cycled_list(); it.forward(), ++index) {
469 tprintf(
"Cooked #%d has total of states = %d vs ratings dim of %d\n",
◆ SymbolDirection()
◆ UnicharsInReadingOrder()
bool WERD_RES::UnicharsInReadingOrder |
( |
| ) |
const |
|
inline |
◆ baseline_shift
float WERD_RES::baseline_shift = 0.0f |
◆ best_choice
◆ best_choices
WERD_CHOICE_LIST WERD_RES::best_choices |
◆ best_state
◆ blamer_bundle
◆ bln_boxes
◆ blob_gaps
◆ blob_row
ROW* WERD_RES::blob_row = nullptr |
◆ blob_widths
◆ box_word
◆ caps_height
float WERD_RES::caps_height = 0.0f |
◆ chopped_word
TWERD* WERD_RES::chopped_word = nullptr |
◆ combination
bool WERD_RES::combination = false |
◆ correct_text
◆ CTC_symbol_choices
std::vector<std::vector<std::pair<const char*, float> > > WERD_RES::CTC_symbol_choices |
◆ denorm
◆ done
bool WERD_RES::done = false |
◆ end
◆ ep_choice
◆ fontinfo
const FontInfo* WERD_RES::fontinfo = nullptr |
◆ fontinfo2
const FontInfo* WERD_RES::fontinfo2 = nullptr |
◆ fontinfo_id2_count
int8_t WERD_RES::fontinfo_id2_count = 0 |
◆ fontinfo_id_count
int8_t WERD_RES::fontinfo_id_count = 0 |
◆ guessed_caps_ht
bool WERD_RES::guessed_caps_ht = true |
◆ guessed_x_ht
bool WERD_RES::guessed_x_ht = true |
◆ leading_space
bool WERD_RES::leading_space = false |
◆ odd_size
bool WERD_RES::odd_size = false |
◆ part_of_combo
bool WERD_RES::part_of_combo = false |
◆ ratings
MATRIX* WERD_RES::ratings = nullptr |
◆ raw_choice
◆ rebuild_word
TWERD* WERD_RES::rebuild_word = nullptr |
◆ reject_map
◆ reject_spaces
bool WERD_RES::reject_spaces = false |
◆ seam_array
◆ segmented_timesteps
std::vector<std::vector<std::vector< std::pair<const char*, float> > > > WERD_RES::segmented_timesteps |
◆ small_caps
bool WERD_RES::small_caps = false |
◆ space_certainty
float WERD_RES::space_certainty = 0.0f |
◆ tess_accepted
bool WERD_RES::tess_accepted = false |
◆ tess_failed
bool WERD_RES::tess_failed = false |
◆ tess_would_adapt
bool WERD_RES::tess_would_adapt = false |
◆ tesseract
◆ timesteps
std::vector<std::vector<std::pair<const char*, float> > > WERD_RES::timesteps |
◆ uch_set
◆ unlv_crunch_mode
◆ word
WERD* WERD_RES::word = nullptr |
◆ x_height
float WERD_RES::x_height = 0.0f |
The documentation for this class was generated from the following files:
Direction get_direction(UNICHAR_ID unichar_id) const
const STRING & unichar_string() const
void delete_data_pointers()
void FakeWordFromRatings(PermuterType permuter)
void MergeBlobs(int start, int end)
MATRIX * ConsumeAndMakeBigger(int ind)
tesseract::BoxWord * box_word
GenericVector< int > blob_widths
void add_str_int(const char *str, int number)
bool flag(WERD_FLAGS mask) const
void set_script_id(int id)
UNICHAR_ID unichar_id(int index) const
void initialise(int16_t length)
static BoxWord * CopyFromNormalized(TWERD *tessword)
bool LogNewRawChoice(WERD_CHOICE *word_choice)
tesseract::BoxWord * bln_boxes
void insert(const T &t, int index)
BLOB_CHOICE_LIST * GetBlobChoices(int index) const
int TotalOfStates() const
UNICHAR_ID BothSpaces(UNICHAR_ID id1, UNICHAR_ID id2)
bool ConditionalBlobMerge(std::function< UNICHAR_ID(UNICHAR_ID, UNICHAR_ID)> class_cb, std::function< bool(const TBOX &, const TBOX &)> box_cb)
BLOB_CHOICE * FindMatchingChoice(UNICHAR_ID char_id, BLOB_CHOICE_LIST *bc_list)
CRUNCH_MODE unlv_crunch_mode
bool Valid(const MATRIX &m) const
const FontInfo * fontinfo
void IncreaseBandSize(int bandwidth)
GenericVector< int > best_state
static const float kBadRating
int state(int index) const
UNICHAR_ID unichar_id() const
void ComputeBoundingBoxes()
void SetupBasicsFromChoppedWord(const UNICHARSET &unicharset_in)
void move(GenericVector< T > *from)
const UNICHARSET * uch_set
C_BLOB_LIST * cblob_list()
void delete_matrix_pointers()
BlamerBundle * blamer_bundle
void string_and_lengths(STRING *word_str, STRING *word_lengths_str) const
void remove_pos(int16_t pos)
const int kWordrecMaxNumJoinChunks
PDBLK pdblk
Page Description Block.
void set_unichar_id(UNICHAR_ID unichar_id, int index)
bool HasAnySplits() const
const TBOX & BlobBox(int index) const
WERD_CHOICE * best_choice
bool LogNewCookedChoice(int max_num_choices, bool debug, WERD_CHOICE *word_choice)
const char * c_str() const
bool get_enabled(UNICHAR_ID unichar_id) const
bool PrepareToInsertSeam(const GenericVector< SEAM * > &seams, const GenericVector< TBLOB * > &blobs, int insert_index, bool modify)
POLY_BLOCK * poly_block() const
MATRIX_COORD MatrixCoord(int index) const
const FontInfo * fontinfo2
void set_flag(WERD_FLAGS mask, bool value)
UNICHAR_ID unichar_to_id(const char *const unichar_repr) const
GenericVector< TBLOB * > blobs
float adjust_factor() const
void UpdateStateForSplit(int blob_position)
static TWERD * PolygonalCopy(bool allow_detailed_fx, WERD *src)
void start_seam_list(TWERD *word, GenericVector< SEAM * > *seam_array)
static void BreakPieces(const GenericVector< SEAM * > &seams, const GenericVector< TBLOB * > &blobs, int first, int last)
void BLNormalize(const BLOCK *block, const ROW *row, Pix *pix, bool inverse, float x_height, float baseline_shift, bool numeric_mode, tesseract::OcrEngineMode hint, const TBOX *norm_box, DENORM *word_denorm)
void CopySimpleFields(const WERD_RES &source)
void operator=(const ELIST_LINK &)
WERD_CHOICE_LIST best_choices
GenericVector< SEAM * > seam_array
TBOX bounding_box() const
void InsertBox(int index, const TBOX &box)
void SetupWordScript(const UNICHARSET &unicharset_in)
void SetupFake(const UNICHARSET &uch)
void SetAllScriptPositions(tesseract::ScriptPos position)
bool contains_unichar(const char *const unichar_repr) const
void FakeClassifyWord(int blob_count, BLOB_CHOICE **choices)
int8_t fontinfo_id2_count
void CopyResults(const BlamerBundle &other)
GenericVector< STRING > correct_text
void put(ICOORD pos, const T &thing)
DLLSYM void tprintf(const char *format,...)
GenericVector< int > blob_gaps
static void JoinPieces(const GenericVector< SEAM * > &seams, const GenericVector< TBLOB * > &blobs, int first, int last)
void MergeAdjacentBlobs(int index)
void remove_unichar_id(int index)
const char * id_to_unichar(UNICHAR_ID id) const
void MergeBoxes(int start, int end)
void set_permuter(uint8_t perm)
void set_unichar_id(UNICHAR_ID newunichar_id)