All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
tesseract::AlignedBlobParams Struct Reference

#include <alignedblob.h>

Public Member Functions

 AlignedBlobParams (int vertical_x, int vertical_y, int height, int v_gap_multiple, int min_gutter_width, int resolution, TabAlignment alignment0)
 
 AlignedBlobParams (int vertical_x, int vertical_y, int width)
 
void set_vertical (int vertical_x, int vertical_y)
 

Public Attributes

double gutter_fraction
 
bool right_tab
 
bool ragged
 
TabAlignment alignment
 
TabType confirmed_type
 
int max_v_gap
 
int min_gutter
 
int l_align_tolerance
 
int r_align_tolerance
 
int min_points
 
int min_length
 
ICOORD vertical
 

Detailed Description

Definition at line 44 of file alignedblob.h.

Constructor & Destructor Documentation

tesseract::AlignedBlobParams::AlignedBlobParams ( int  vertical_x,
int  vertical_y,
int  height,
int  v_gap_multiple,
int  min_gutter_width,
int  resolution,
TabAlignment  alignment0 
)

Definition at line 93 of file alignedblob.cpp.

97  : right_tab(align0 == TA_RIGHT_RAGGED || align0 == TA_RIGHT_ALIGNED),
98  ragged(align0 == TA_LEFT_RAGGED || align0 == TA_RIGHT_RAGGED),
99  alignment(align0),
101  min_length(0) {
102  // Set the tolerances according to the type of line sought.
103  // For tab search, these are based on the image resolution for most, or
104  // the height of the starting blob for the maximum vertical gap.
105  max_v_gap = height * v_gap_multiple;
106  if (ragged) {
107  // In the case of a ragged edge, we are much more generous with the
108  // inside alignment fraction, but also require a much bigger gutter.
110  if (alignment == TA_RIGHT_RAGGED) {
111  l_align_tolerance = static_cast<int>(resolution * kRaggedFraction + 0.5);
112  r_align_tolerance = static_cast<int>(resolution * kAlignedFraction + 0.5);
113  } else {
114  l_align_tolerance = static_cast<int>(resolution * kAlignedFraction + 0.5);
115  r_align_tolerance = static_cast<int>(resolution * kRaggedFraction + 0.5);
116  }
118  } else {
120  l_align_tolerance = static_cast<int>(resolution * kAlignedFraction + 0.5);
121  r_align_tolerance = static_cast<int>(resolution * kAlignedFraction + 0.5);
123  }
124  min_gutter = static_cast<int>(height * gutter_fraction + 0.5);
125  if (min_gutter < min_gutter_width)
126  min_gutter = min_gutter_width;
127  // Fit the vertical vector into an ICOORD, which is 16 bit.
128  set_vertical(vertical_x, vertical_y);
129 }
const double kRaggedGapFraction
Definition: alignedblob.cpp:45
const double kAlignedFraction
Definition: alignedblob.cpp:39
const double kRaggedFraction
Definition: alignedblob.cpp:41
const int kMinAlignedTabs
Definition: alignedblob.cpp:55
const double kAlignedGapFraction
Definition: alignedblob.cpp:43
const int kMinRaggedTabs
Definition: alignedblob.cpp:53
void set_vertical(int vertical_x, int vertical_y)
tesseract::AlignedBlobParams::AlignedBlobParams ( int  vertical_x,
int  vertical_y,
int  width 
)

Definition at line 134 of file alignedblob.cpp.

136  : gutter_fraction(0.0),
137  right_tab(false),
138  ragged(false),
143  min_points(1),
145  // Compute threshold for left and right alignment.
148 
149  // Fit the vertical vector into an ICOORD, which is 16 bit.
150  set_vertical(vertical_x, vertical_y);
151 }
#define MAX(x, y)
Definition: ndminx.h:24
const int kVLineSearchSize
Definition: alignedblob.cpp:51
const int kVLineMinLength
Definition: alignedblob.cpp:57
const int kVLineAlignment
Definition: alignedblob.cpp:47
const int kVLineGutter
Definition: alignedblob.cpp:49
void set_vertical(int vertical_x, int vertical_y)

Member Function Documentation

void tesseract::AlignedBlobParams::set_vertical ( int  vertical_x,
int  vertical_y 
)

Definition at line 154 of file alignedblob.cpp.

154  {
155  int factor = 1;
156  if (vertical_y > MAX_INT16)
157  factor = vertical_y / MAX_INT16 + 1;
158  vertical.set_x(vertical_x / factor);
159  vertical.set_y(vertical_y / factor);
160 }
void set_x(inT16 xin)
rewrite function
Definition: points.h:61
void set_y(inT16 yin)
rewrite function
Definition: points.h:65
#define MAX_INT16
Definition: host.h:119

Member Data Documentation

TabAlignment tesseract::AlignedBlobParams::alignment

Definition at line 66 of file alignedblob.h.

TabType tesseract::AlignedBlobParams::confirmed_type

Definition at line 67 of file alignedblob.h.

double tesseract::AlignedBlobParams::gutter_fraction

Definition at line 63 of file alignedblob.h.

int tesseract::AlignedBlobParams::l_align_tolerance

Definition at line 71 of file alignedblob.h.

int tesseract::AlignedBlobParams::max_v_gap

Definition at line 68 of file alignedblob.h.

int tesseract::AlignedBlobParams::min_gutter

Definition at line 69 of file alignedblob.h.

int tesseract::AlignedBlobParams::min_length

Definition at line 75 of file alignedblob.h.

int tesseract::AlignedBlobParams::min_points

Definition at line 74 of file alignedblob.h.

int tesseract::AlignedBlobParams::r_align_tolerance

Definition at line 72 of file alignedblob.h.

bool tesseract::AlignedBlobParams::ragged

Definition at line 65 of file alignedblob.h.

bool tesseract::AlignedBlobParams::right_tab

Definition at line 64 of file alignedblob.h.

ICOORD tesseract::AlignedBlobParams::vertical

Definition at line 77 of file alignedblob.h.


The documentation for this struct was generated from the following files: