|
tesseract
3.03
|
Go to the source code of this file.
Functions | |
| void | reject_blanks (WERD_RES *word) |
| void | reject_poor_matches (WERD_RES *word) |
| float | compute_reject_threshold (WERD_CHOICE *word) |
| BOOL8 | word_contains_non_1_digit (const char *word, const char *word_lengths) |
| void | dont_allow_1Il (WERD_RES *word) |
| void | flip_hyphens (WERD_RES *word) |
| void | flip_0O (WERD_RES *word) |
| BOOL8 | non_0_digit (const char *str, int length) |
| float compute_reject_threshold | ( | WERD_CHOICE * | word | ) |
Definition at line 229 of file reject.cpp.
{
float threshold; // rejection threshold
float bestgap = 0.0f; // biggest gap
float gapstart; // bottom of gap
// super iterator
BLOB_CHOICE_IT choice_it; // real iterator
int blob_count = word->length();
GenericVector<float> ratings;
ratings.init_to_size(blob_count, 0.0f);
for (int i = 0; i < blob_count; ++i) {
ratings[i] = word->certainty(i);
}
ratings.sort();
gapstart = ratings[0] - 1; // all reject if none better
if (blob_count >= 3) {
for (int index = 0; index < blob_count - 1; index++) {
if (ratings[index + 1] - ratings[index] > bestgap) {
bestgap = ratings[index + 1] - ratings[index];
// find biggest
gapstart = ratings[index];
}
}
}
threshold = gapstart + bestgap / 2;
return threshold;
}
| void dont_allow_1Il | ( | WERD_RES * | word | ) |
| void flip_hyphens | ( | WERD_RES * | word | ) |
| BOOL8 non_0_digit | ( | const char * | str, |
| int | length | ||
| ) |
| void reject_blanks | ( | WERD_RES * | word | ) |
Definition at line 181 of file reject.cpp.
{
inT16 i;
inT16 offset;
for (i = 0, offset = 0; word->best_choice->unichar_string()[offset] != '\0';
offset += word->best_choice->unichar_lengths()[i], i += 1) {
if (word->best_choice->unichar_string()[offset] == ' ')
//rej unrecognised blobs
word->reject_map[i].setrej_tess_failure ();
}
}
| void reject_poor_matches | ( | WERD_RES * | word | ) |
Definition at line 210 of file reject.cpp.
{
float threshold = compute_reject_threshold(word->best_choice);
for (int i = 0; i < word->best_choice->length(); ++i) {
if (word->best_choice->unichar_id(i) == UNICHAR_SPACE)
word->reject_map[i].setrej_tess_failure();
else if (word->best_choice->certainty(i) < threshold)
word->reject_map[i].setrej_poor_match();
}
}
| BOOL8 word_contains_non_1_digit | ( | const char * | word, |
| const char * | word_lengths | ||
| ) |