#include "mfcpch.h"
#include "ccstruct.h"
#include "statistc.h"
#include "quadlsq.h"
#include "detlinefit.h"
#include "makerow.h"
#include "drawtord.h"
#include "oldbasel.h"
#include "textord.h"
#include "tprintf.h"
Namespaces | |
namespace | tesseract |
Defines | |
#define | EXTERN |
#define | TURNLIMIT 1 |
#define | X_HEIGHT_FRACTION 0.7 |
#define | DESCENDER_FRACTION 0.5 |
#define | MIN_ASC_FRACTION 0.20 |
#define | MIN_DESC_FRACTION 0.25 |
#define | MINASCRISE 2.0 |
#define | MAXHEIGHTVARIANCE 0.15 |
#define | MAXHEIGHT 300 |
#define | MAXOVERLAP 0.1 |
#define | MAXBADRUN 2 |
#define | HEIGHTBUCKETS 200 |
#define | DELTAHEIGHT 5.0 |
#define | GOODHEIGHT 5 |
#define | MAXLOOPS 10 |
#define | MODENUM 10 |
#define | MAXPARTS 6 |
#define | SPLINESIZE 23 |
#define | ABS(x) ((x)<0 ? (-(x)) : (x)) |
Functions | |
int | get_blob_coords (TO_ROW *row, inT32 lineheight, TBOX *blobcoords, BOOL8 &holed_line, int &outcount) |
void | make_first_baseline (TBOX blobcoords[], int blobcount, int xcoords[], int ycoords[], QSPLINE *spline, QSPLINE *baseline, float jumplimit) |
void | make_holed_baseline (TBOX blobcoords[], int blobcount, QSPLINE *spline, QSPLINE *baseline, float gradient) |
int | partition_line (TBOX blobcoords[], int blobcount, int *numparts, char partids[], int partsizes[], QSPLINE *spline, float jumplimit, float ydiffs[]) |
void | merge_oldbl_parts (TBOX blobcoords[], int blobcount, char partids[], int partsizes[], int biggestpart, float jumplimit) |
int | get_ydiffs (TBOX blobcoords[], int blobcount, QSPLINE *spline, float ydiffs[]) |
int | choose_partition (register float diff, float partdiffs[], int lastpart, float jumplimit, float *drift, float *lastdelta, int *partcount) |
int | partition_coords (TBOX blobcoords[], int blobcount, char partids[], int bestpart, int xcoords[], int ycoords[]) |
*merge_partitions(partids,partcount,blobcount,bestpart) discards funny looking | |
int | segment_spline (TBOX blobcoords[], int blobcount, int xcoords[], int ycoords[], int degree, int pointcount, int xstarts[]) |
BOOL8 | split_stepped_spline (QSPLINE *baseline, float jumplimit, int xcoords[], int xstarts[], int &segments) |
void | insert_spline_point (int xstarts[], int segment, int coord1, int coord2, int &segments) |
void | find_lesser_parts (TO_ROW *row, TBOX blobcoords[], int blobcount, char partids[], int partsizes[], int partcount, int bestpart) |
void | old_first_xheight (TO_ROW *row, TBOX blobcoords[], int initialheight, int blobcount, QSPLINE *baseline, float jumplimit) |
void | make_first_xheight (TO_ROW *row, TBOX blobcoords[], int lineheight, int init_lineheight, int blobcount, QSPLINE *baseline, float jumplimit) |
void | find_top_modes (STATS *stats, int statnum, int modelist[], int modenum) |
void | pick_x_height (TO_ROW *row, int modelist[], int lefts[], int rights[], STATS *heightstat, int mode_threshold) |
Variables | |
EXTERN bool | textord_really_old_xheight = FALSE |
EXTERN bool | textord_oldbl_debug = FALSE |
EXTERN bool | textord_debug_baselines = FALSE |
EXTERN bool | textord_oldbl_paradef = TRUE |
EXTERN bool | textord_oldbl_split_splines = TRUE |
EXTERN bool | textord_oldbl_merge_parts = TRUE |
EXTERN bool | oldbl_corrfix = TRUE |
EXTERN bool | oldbl_xhfix = FALSE |
EXTERN bool | textord_ocropus_mode = FALSE |
EXTERN double | oldbl_xhfract = 0.4 |
EXTERN int | oldbl_holed_losscount = 10 |
EXTERN double | oldbl_dot_error_size = 1.26 |
EXTERN double | textord_oldbl_jumplimit = 0.15 |
const int | kMinModeFactorOcropus = 32 |
const int | kMinModeFactor = 12 |
#define ABS | ( | x | ) | ((x)<0 ? (-(x)) : (x)) |
#define DELTAHEIGHT 5.0 |
#define DESCENDER_FRACTION 0.5 |
#define EXTERN |
#define GOODHEIGHT 5 |
#define HEIGHTBUCKETS 200 |
#define MAXBADRUN 2 |
#define MAXHEIGHT 300 |
#define MAXHEIGHTVARIANCE 0.15 |
#define MAXLOOPS 10 |
#define MAXOVERLAP 0.1 |
#define MAXPARTS 6 |
#define MIN_ASC_FRACTION 0.20 |
#define MIN_DESC_FRACTION 0.25 |
#define MINASCRISE 2.0 |
#define MODENUM 10 |
#define SPLINESIZE 23 |
#define TURNLIMIT 1 |
#define X_HEIGHT_FRACTION 0.7 |
int choose_partition | ( | register float | diff, | |
float | partdiffs[], | |||
int | lastpart, | |||
float | jumplimit, | |||
float * | drift, | |||
float * | lastdelta, | |||
int * | partcount | |||
) |
void find_lesser_parts | ( | TO_ROW * | row, | |
TBOX | blobcoords[], | |||
int | blobcount, | |||
char | partids[], | |||
int | partsizes[], | |||
int | partcount, | |||
int | bestpart | |||
) |
void find_top_modes | ( | STATS * | stats, | |
int | statnum, | |||
int | modelist[], | |||
int | modenum | |||
) |
int get_blob_coords | ( | TO_ROW * | row, | |
inT32 | lineheight, | |||
TBOX * | blobcoords, | |||
BOOL8 & | holed_line, | |||
int & | outcount | |||
) |
void insert_spline_point | ( | int | xstarts[], | |
int | segment, | |||
int | coord1, | |||
int | coord2, | |||
int & | segments | |||
) |
void make_first_baseline | ( | TBOX | blobcoords[], | |
int | blobcount, | |||
int | xcoords[], | |||
int | ycoords[], | |||
QSPLINE * | spline, | |||
QSPLINE * | baseline, | |||
float | jumplimit | |||
) |
void make_first_xheight | ( | TO_ROW * | row, | |
TBOX | blobcoords[], | |||
int | lineheight, | |||
int | init_lineheight, | |||
int | blobcount, | |||
QSPLINE * | baseline, | |||
float | jumplimit | |||
) |
void make_holed_baseline | ( | TBOX | blobcoords[], | |
int | blobcount, | |||
QSPLINE * | spline, | |||
QSPLINE * | baseline, | |||
float | gradient | |||
) |
void merge_oldbl_parts | ( | TBOX | blobcoords[], | |
int | blobcount, | |||
char | partids[], | |||
int | partsizes[], | |||
int | biggestpart, | |||
float | jumplimit | |||
) |
void old_first_xheight | ( | TO_ROW * | row, | |
TBOX | blobcoords[], | |||
int | initialheight, | |||
int | blobcount, | |||
QSPLINE * | baseline, | |||
float | jumplimit | |||
) |
int partition_coords | ( | TBOX | blobcoords[], | |
int | blobcount, | |||
char | partids[], | |||
int | bestpart, | |||
int | xcoords[], | |||
int | ycoords[] | |||
) |
*merge_partitions(partids,partcount,blobcount,bestpart) discards funny looking
int partition_line | ( | TBOX | blobcoords[], | |
int | blobcount, | |||
int * | numparts, | |||
char | partids[], | |||
int | partsizes[], | |||
QSPLINE * | spline, | |||
float | jumplimit, | |||
float | ydiffs[] | |||
) |
void pick_x_height | ( | TO_ROW * | row, | |
int | modelist[], | |||
int | lefts[], | |||
int | rights[], | |||
STATS * | heightstat, | |||
int | mode_threshold | |||
) |
int segment_spline | ( | TBOX | blobcoords[], | |
int | blobcount, | |||
int | xcoords[], | |||
int | ycoords[], | |||
int | degree, | |||
int | pointcount, | |||
int | xstarts[] | |||
) |
BOOL8 split_stepped_spline | ( | QSPLINE * | baseline, | |
float | jumplimit, | |||
int | xcoords[], | |||
int | xstarts[], | |||
int & | segments | |||
) |
const int kMinModeFactor = 12 |
const int kMinModeFactorOcropus = 32 |
EXTERN bool oldbl_corrfix = TRUE |
"Improve correlation of heights"
EXTERN double oldbl_dot_error_size = 1.26 |
"Max aspect ratio of a dot"
EXTERN int oldbl_holed_losscount = 10 |
"Max lost before fallback line used"
EXTERN bool oldbl_xhfix = FALSE |
"Fix bug in modes threshold for xheights"
EXTERN double oldbl_xhfract = 0.4 |
"Fraction of est allowed in calc"
EXTERN bool textord_debug_baselines = FALSE |
"Debug baseline generation"
EXTERN bool textord_ocropus_mode = FALSE |
"Make baselines for ocropus"
EXTERN bool textord_oldbl_debug = FALSE |
"Debug old baseline generation"
EXTERN double textord_oldbl_jumplimit = 0.15 |
"X fraction for new partition"
EXTERN bool textord_oldbl_merge_parts = TRUE |
"Merge suspect partitions"
EXTERN bool textord_oldbl_paradef = TRUE |
"Use para default mechanism"
EXTERN bool textord_oldbl_split_splines = TRUE |
"Split stepped splines"
EXTERN bool textord_really_old_xheight = FALSE |
"Use original wiseowl xheight"