void Tesseract::fix_fuzzy_space_list(WERD_RES_LIST &best_perm, ROW *row, BLOCK* block) { inT16 best_score; WERD_RES_LIST current_perm; inT16 current_score; BOOL8 improved = FALSE; best_score = eval_word_spacing(best_perm); // default score dump_words(best_perm, best_score, 1, improved); if (best_score != PERFECT_WERDS) initialise_search(best_perm, current_perm); while ((best_score != PERFECT_WERDS) && !current_perm.empty()) { match_current_words(current_perm, row, block); current_score = eval_word_spacing(current_perm); dump_words(current_perm, current_score, 2, improved); if (current_score > best_score) { best_perm.clear(); best_perm.deep_copy(¤t_perm, &WERD_RES::deep_copy); best_score = current_score; improved = TRUE; } if (current_score < PERFECT_WERDS) transform_to_next_perm(current_perm); } dump_words(best_perm, best_score, 3, improved); }
void fix_noisy_space_list(WERD_RES_LIST &best_perm, ROW *row) { inT16 best_score; WERD_RES_IT best_perm_it(&best_perm); WERD_RES_LIST current_perm; WERD_RES_IT current_perm_it(¤t_perm); WERD_RES *old_word_res; WERD_RES *new_word_res; inT16 current_score; BOOL8 improved = FALSE; //default score best_score = fp_eval_word_spacing (best_perm); dump_words (best_perm, best_score, 1, improved); new_word_res = new WERD_RES; old_word_res = best_perm_it.data (); //Kludge to force deep copy old_word_res->combination = TRUE; *new_word_res = *old_word_res; //deep copy //Undo kludge old_word_res->combination = FALSE; //Undo kludge new_word_res->combination = FALSE; current_perm_it.add_to_end (new_word_res); break_noisiest_blob_word(current_perm); while ((best_score != PERFECT_WERDS) && !current_perm.empty ()) { match_current_words(current_perm, row); current_score = fp_eval_word_spacing (current_perm); dump_words (current_perm, current_score, 2, improved); if (current_score > best_score) { best_perm.clear(); best_perm.deep_copy(¤t_perm, &WERD_RES::deep_copy); best_score = current_score; improved = TRUE; } if (current_score < PERFECT_WERDS) break_noisiest_blob_word(current_perm); } dump_words (best_perm, best_score, 3, improved); }