Tesseract
3.02
|
Go to the source code of this file.
enum BlobNeighbourDir |
enum BlobRegionType |
BRT_NOISE | |
BRT_HLINE | |
BRT_VLINE | |
BRT_RECTIMAGE | |
BRT_POLYIMAGE | |
BRT_UNKNOWN | |
BRT_VERT_TEXT | |
BRT_TEXT | |
BRT_COUNT |
Definition at line 57 of file blobbox.h.
{ BRT_NOISE, // Neither text nor image. BRT_HLINE, // Horizontal separator line. BRT_VLINE, // Vertical separator line. BRT_RECTIMAGE, // Rectangular image. BRT_POLYIMAGE, // Non-rectangular image. BRT_UNKNOWN, // Not determined yet. BRT_VERT_TEXT, // Vertical alignment, not necessarily vertically oriented. BRT_TEXT, // Convincing text. BRT_COUNT // Number of possibilities. };
enum BlobSpecialTextType |
Definition at line 81 of file blobbox.h.
{ BSTT_NONE, // No special. BSTT_ITALIC, // Italic style. BSTT_DIGIT, // Digit symbols. BSTT_MATH, // Mathmatical symobls (not including digit). BSTT_UNCLEAR, // Characters with low recognition rate. BSTT_SKIP, // Characters that we skip labeling (usually too small). BSTT_COUNT };
enum BlobTextFlowType |
BTFT_NONE | |
BTFT_NONTEXT | |
BTFT_NEIGHBOURS | |
BTFT_CHAIN | |
BTFT_STRONG_CHAIN | |
BTFT_TEXT_ON_IMAGE | |
BTFT_LEADER | |
BTFT_COUNT |
Definition at line 99 of file blobbox.h.
{ BTFT_NONE, // No text flow set yet. BTFT_NONTEXT, // Flow too poor to be likely text. BTFT_NEIGHBOURS, // Neighbours support flow in this direction. BTFT_CHAIN, // There is a weak chain of text in this direction. BTFT_STRONG_CHAIN, // There is a strong chain of text in this direction. BTFT_TEXT_ON_IMAGE, // There is a strong chain of text on an image. BTFT_LEADER, // Leader dots/dashes etc. BTFT_COUNT };
enum PITCH_TYPE |
PITCH_DUNNO | |
PITCH_DEF_FIXED | |
PITCH_MAYBE_FIXED | |
PITCH_DEF_PROP | |
PITCH_MAYBE_PROP | |
PITCH_CORR_FIXED | |
PITCH_CORR_PROP |
Definition at line 29 of file blobbox.h.
{ PITCH_DUNNO, // insufficient data PITCH_DEF_FIXED, // definitely fixed PITCH_MAYBE_FIXED, // could be PITCH_DEF_PROP, PITCH_MAYBE_PROP, PITCH_CORR_FIXED, PITCH_CORR_PROP };
enum TabType |
Definition at line 44 of file blobbox.h.
{ TT_NONE, // Not a tab. TT_DELETED, // Not a tab after detailed analysis. TT_MAYBE_RAGGED, // Initial designation of a tab-stop candidate. TT_MAYBE_ALIGNED, // Initial designation of a tab-stop candidate. TT_CONFIRMED, // Aligned with neighbours. TT_VLINE // Detected as a vertical line. };
TBOX box_next | ( | BLOBNBOX_IT * | it | ) |
Definition at line 573 of file blobbox.cpp.
{ BLOBNBOX *blob; //current blob TBOX result; //total box blob = it->data (); result = blob->bounding_box (); do { it->forward (); blob = it->data (); if (blob->cblob() == NULL) //was pre-chopped result += blob->bounding_box (); } //until next real blob while ((blob->cblob() == NULL) || blob->joined_to_prev()); return result; }
TBOX box_next_pre_chopped | ( | BLOBNBOX_IT * | it | ) |
Definition at line 602 of file blobbox.cpp.
{ BLOBNBOX *blob; //current blob TBOX result; //total box blob = it->data (); result = blob->bounding_box (); do { it->forward (); blob = it->data (); } //until next real blob while (blob->joined_to_prev ()); return result; }
Definition at line 548 of file blobbox.cpp.
{ C_OUTLINE_LIST out_list; //output outlines //input outlines C_OUTLINE_IT in_it = blob->out_list (); //output outlines C_OUTLINE_IT out_it = &out_list; for (in_it.mark_cycle_pt (); !in_it.cycled_list (); in_it.forward ()) { out_it.add_after_then_move (new C_OUTLINE (in_it.data (), rotation)); } return new C_BLOB (&out_list); }
BlobNeighbourDir DirOtherWay | ( | BlobNeighbourDir | dir | ) | [inline] |
Definition at line 91 of file blobbox.h.
{ return static_cast<BlobNeighbourDir>(dir ^ 2); }
bool DominatesInMerge | ( | BlobTextFlowType | type1, |
BlobTextFlowType | type2 | ||
) | [inline] |
Definition at line 114 of file blobbox.h.
{ // LEADER always loses. if (type1 == BTFT_LEADER) return false; if (type2 == BTFT_LEADER) return true; // With those out of the way, the ordering of the enum determines the result. return type1 >= type2; }
void find_cblob_hlimits | ( | C_BLOB * | blob, |
float | bottomy, | ||
float | topy, | ||
float & | xmin, | ||
float & | xymax | ||
) |
Definition at line 513 of file blobbox.cpp.
{ inT16 stepindex; //current point ICOORD pos; //current coords ICOORD vec; //rotated step C_OUTLINE *outline; //current outline //outlines C_OUTLINE_IT out_it = blob->out_list (); xmin = (float) MAX_INT32; xmax = (float) -MAX_INT32; for (out_it.mark_cycle_pt (); !out_it.cycled_list (); out_it.forward ()) { outline = out_it.data (); pos = outline->start_pos (); //get coords for (stepindex = 0; stepindex < outline->pathlength (); stepindex++) { //inside if (pos.y () >= bottomy && pos.y () <= topy) { UpdateRange(pos.x(), &xmin, &xmax); } vec = outline->step (stepindex); pos += vec; //move to next } } }
void find_cblob_limits | ( | C_BLOB * | blob, |
float | leftx, | ||
float | rightx, | ||
FCOORD | rotation, | ||
float & | ymin, | ||
float & | ymax | ||
) |
Definition at line 436 of file blobbox.cpp.
{ inT16 stepindex; //current point ICOORD pos; //current coords ICOORD vec; //rotated step C_OUTLINE *outline; //current outline //outlines C_OUTLINE_IT out_it = blob->out_list (); ymin = (float) MAX_INT32; ymax = (float) -MAX_INT32; for (out_it.mark_cycle_pt (); !out_it.cycled_list (); out_it.forward ()) { outline = out_it.data (); pos = outline->start_pos (); //get coords pos.rotate (rotation); for (stepindex = 0; stepindex < outline->pathlength (); stepindex++) { //inside if (pos.x () >= leftx && pos.x () <= rightx) { UpdateRange(pos.y(), &ymin, &ymax); } vec = outline->step (stepindex); vec.rotate (rotation); pos += vec; //move to next } } }
void find_cblob_vlimits | ( | C_BLOB * | blob, |
float | leftx, | ||
float | rightx, | ||
float & | ymin, | ||
float & | ymax | ||
) |
Definition at line 476 of file blobbox.cpp.
{ inT16 stepindex; //current point ICOORD pos; //current coords ICOORD vec; //rotated step C_OUTLINE *outline; //current outline //outlines C_OUTLINE_IT out_it = blob->out_list (); ymin = (float) MAX_INT32; ymax = (float) -MAX_INT32; for (out_it.mark_cycle_pt (); !out_it.cycled_list (); out_it.forward ()) { outline = out_it.data (); pos = outline->start_pos (); //get coords for (stepindex = 0; stepindex < outline->pathlength (); stepindex++) { //inside if (pos.x () >= leftx && pos.x () <= rightx) { UpdateRange(pos.y(), &ymin, &ymax); } vec = outline->step (stepindex); pos += vec; //move to next } } }
void plot_blob_list | ( | ScrollView * | win, |
BLOBNBOX_LIST * | list, | ||
ScrollView::Color | body_colour, | ||
ScrollView::Color | child_colour | ||
) |
Definition at line 1002 of file blobbox.cpp.
{ // colour of child BLOBNBOX_IT it = list; for (it.mark_cycle_pt(); !it.cycled_list(); it.forward()) { it.data()->plot(win, body_colour, child_colour); } }
Definition at line 796 of file blobbox.cpp.
{ //outlines of blob C_OUTLINE_IT out_it = blob->out_list (); for (out_it.mark_cycle_pt (); !out_it.cycled_list (); out_it.forward ()) { vertical_coutline_projection (out_it.data (), stats); } }
Definition at line 816 of file blobbox.cpp.
{ ICOORD pos; //current point ICOORD step; //edge step inT32 length; //of outline inT16 stepindex; //current step C_OUTLINE_IT out_it = outline->child (); pos = outline->start_pos (); length = outline->pathlength (); for (stepindex = 0; stepindex < length; stepindex++) { step = outline->step (stepindex); if (step.x () > 0) { stats->add (pos.x (), -pos.y ()); } else if (step.x () < 0) { stats->add (pos.x () - 1, pos.y ()); } pos += step; } for (out_it.mark_cycle_pt (); !out_it.cycled_list (); out_it.forward ()) { vertical_coutline_projection (out_it.data (), stats); } }
double textord_error_weight = 3 |
"Weighting for error in believability"