87 *min_height =
static_cast<int32_t
>(floor(block_linesize *
textord_minxh));
91 *max_height =
static_cast<int32_t
>(ceil(block_linesize * 3.0));
103 return (test >= num * (1 - margin) && test <= num * (1 + margin));
106void fill_heights(TO_ROW *row,
float gradient,
int min_height,
int max_height, STATS *heights,
107 STATS *floating_heights);
109float make_single_row(ICOORD page_tr,
bool allow_sub_blobs, TO_BLOCK *block, TO_BLOCK_LIST *blocks);
111 TO_BLOCK_LIST *port_blocks);
187 int min_height,
int max_height,
float *xheight,
float *ascrise);
191 int xheight_blob_count,
STATS *heights);
199 float ascrise,
float descdrop);
UnicodeText::const_iterator::difference_type distance(const UnicodeText::const_iterator &first, const UnicodeText::const_iterator &last)
bool textord_old_baselines
void expand_rows(ICOORD page_tr, TO_BLOCK *block, float gradient, FCOORD rotation, int32_t block_edge, bool testing_on)
bool textord_show_final_rows
void delete_non_dropout_rows(TO_BLOCK *block, float gradient, FCOORD rotation, int32_t block_edge, bool testing_on)
void get_min_max_xheight(int block_linesize, int *min_height, int *max_height)
double textord_xheight_error_margin
void make_baseline_spline(TO_ROW *row, TO_BLOCK *block)
void fit_parallel_lms(float gradient, TO_ROW *row)
int textord_spline_minblobs
void pre_associate_blobs(ICOORD page_tr, TO_BLOCK *block, FCOORD rotation, bool testing_on)
void cleanup_rows_making(ICOORD page_tr, TO_BLOCK *block, float gradient, FCOORD rotation, int32_t block_edge, bool testing_on)
void compute_row_stats(TO_BLOCK *block, bool testing_on)
double_VAR_H(classify_min_slope)
int32_t compute_height_modes(STATS *heights, int32_t min_height, int32_t max_height, int32_t *modes, int32_t maxmodes)
double textord_chop_width
bool textord_show_initial_rows
bool textord_show_expanded_rows
double textord_ascheight_mode_fraction
double textord_spline_shift_fraction
double textord_descx_ratio_min
bool textord_debug_xheights
void adjust_row_limits(TO_BLOCK *block)
int textord_spline_medianwin
double textord_excess_blobsize
void mark_repeated_chars(TO_ROW *row)
void assign_blobs_to_rows(TO_BLOCK *block, float *gradient, int pass, bool reject_misses, bool make_new_rows, bool drawing_skew)
void fill_heights(TO_ROW *row, float gradient, int min_height, int max_height, STATS *heights, STATS *floating_heights)
bool textord_parallel_baselines
void make_initial_textrows(ICOORD page_tr, TO_BLOCK *block, FCOORD rotation, bool testing_on)
void fit_lms_line(TO_ROW *row)
double textord_min_blob_height_fraction
bool textord_show_parallel_rows
bool textord_fix_makerow_bug
void vigorous_noise_removal(TO_BLOCK *block)
void compute_page_skew(TO_BLOCK_LIST *blocks, float &page_m, float &page_err)
double textord_occupancy_threshold
double textord_underline_width
double * linear_spline_baseline(TO_ROW *row, TO_BLOCK *block, int32_t &segments, int32_t xstarts[])
int textord_lms_line_trials
double textord_ascx_ratio_max
bool within_error_margin(float test, float num, float margin)
double textord_ascx_ratio_min
TBOX deskew_block_coords(TO_BLOCK *block, float gradient)
float make_rows(ICOORD page_tr, TO_BLOCK_LIST *port_blocks)
BOOL_VAR_H(wordrec_display_splits)
float median_block_xheight(TO_BLOCK *block, float gradient)
bool textord_test_landscape
bool textord_new_initial_xheight
INT_VAR_H(editor_image_xpos)
void separate_underlines(TO_BLOCK *block, float gradient, FCOORD rotation, bool testing_on)
void fit_parallel_rows(TO_BLOCK *block, float gradient, FCOORD rotation, int32_t block_edge, bool testing_on)
double textord_linespace_iqrlimit
int compute_xheight_from_modes(STATS *heights, STATS *floating_heights, bool cap_only, int min_height, int max_height, float *xheight, float *ascrise)
double textord_min_linesize
void correct_row_xheight(TO_ROW *row, float xheight, float ascrise, float descdrop)
int textord_min_blobs_in_row
OVERLAP_STATE most_overlapping_row(TO_ROW_IT *row_it, TO_ROW *&best_row, float top, float bottom, float rowsize, bool testing_blob)
double textord_width_limit
int32_t compute_row_descdrop(TO_ROW *row, float gradient, int xheight_blob_count, STATS *asc_heights)
double textord_xheight_mode_fraction
bool textord_fix_xheight_bug
ROW_CATEGORY get_row_category(const TO_ROW *row)
int blob_x_order(const void *item1, const void *item2)
void compute_occupation_threshold(int32_t low_window, int32_t high_window, int32_t line_count, int32_t *occupation, int32_t *thresholds)
bool textord_show_final_blobs
float make_single_row(ICOORD page_tr, bool allow_sub_blobs, TO_BLOCK *block, TO_BLOCK_LIST *blocks)
void compute_dropout_distances(int32_t *occupation, int32_t *thresholds, int32_t line_count)
bool textord_straight_baselines
void compute_line_occupation(TO_BLOCK *block, float gradient, int32_t min_y, int32_t max_y, int32_t *occupation, int32_t *deltas)
bool segment_baseline(TO_ROW *row, TO_BLOCK *block, int32_t &segments, int32_t *xstarts)
double textord_descx_ratio_max
bool find_best_dropout_row(TO_ROW *row, int32_t distance, float dist_limit, int32_t line_index, TO_ROW_IT *row_it, bool testing_on)