#include "helpers.h"
#include "intproto.h"
#include "picofeat.h"
#include "mfoutline.h"
#include "emalloc.h"
#include "const.h"
#include "ndminx.h"
#include "svmnode.h"
#include "adaptmatch.h"
#include "globals.h"
#include "classify.h"
#include "genericvector.h"
#include <math.h>
#include <stdio.h>
#include <assert.h>
Classes | |
struct | FILL_SWITCH |
struct | TABLE_FILLER |
struct | FILL_SPEC |
Namespaces | |
namespace | tesseract |
Defines | |
#define | DISPLAY_OFFSET (0.5 * INT_CHAR_NORM_RANGE) |
#define | PROTO_PRUNER_SCALE (4.0) |
#define | INT_DESCENDER (0.0 * INT_CHAR_NORM_RANGE - DISPLAY_OFFSET) |
#define | INT_BASELINE (0.25 * INT_CHAR_NORM_RANGE - DISPLAY_OFFSET) |
#define | INT_XHEIGHT (0.75 * INT_CHAR_NORM_RANGE - DISPLAY_OFFSET) |
#define | INT_CAPHEIGHT (1.0 * INT_CHAR_NORM_RANGE - DISPLAY_OFFSET) |
#define | INT_XCENTER (0.5 * INT_CHAR_NORM_RANGE - DISPLAY_OFFSET) |
#define | INT_YCENTER (0.5 * INT_CHAR_NORM_RANGE - DISPLAY_OFFSET) |
#define | INT_XRADIUS (0.2 * INT_CHAR_NORM_RANGE) |
#define | INT_YRADIUS (0.2 * INT_CHAR_NORM_RANGE) |
#define | INT_MIN_X (- DISPLAY_OFFSET) |
#define | INT_MIN_Y (- DISPLAY_OFFSET) |
#define | INT_MAX_X ( DISPLAY_OFFSET) |
#define | INT_MAX_Y ( DISPLAY_OFFSET) |
#define | DOUBLE_OFFSET 0.095 |
#define | HV_TOLERANCE (0.0025) |
#define | MAX_NUM_SWITCHES 3 |
#define | OLD_MAX_NUM_CONFIGS 32 |
#define | OLD_WERDS_PER_CONFIG_VEC |
#define | CircularIncrement(i, r) (((i) < (r) - 1)?((i)++):((i) = 0)) |
#define | MapParam(P, O, N) (floor (((P) + (O)) * (N))) |
#define | MAX_LEVEL 2 |
#define | XS X_SHIFT |
#define | YS Y_SHIFT |
#define | AS ANGLE_SHIFT |
#define | NB NUM_CP_BUCKETS |
Enumerations | |
enum | SWITCH_TYPE { StartSwitch, EndSwitch, LastSwitch } |
Functions | |
FLOAT32 | BucketStart (int Bucket, FLOAT32 Offset, int NumBuckets) |
FLOAT32 | BucketEnd (int Bucket, FLOAT32 Offset, int NumBuckets) |
void | DoFill (FILL_SPEC *FillSpec, CLASS_PRUNER Pruner, register uinT32 ClassMask, register uinT32 ClassCount, register uinT32 WordIndex) |
BOOL8 | FillerDone (TABLE_FILLER *Filler) |
void | FillPPCircularBits (uinT32 ParamTable[NUM_PP_BUCKETS][WERDS_PER_PP_VECTOR], int Bit, FLOAT32 Center, FLOAT32 Spread) |
void | FillPPLinearBits (uinT32 ParamTable[NUM_PP_BUCKETS][WERDS_PER_PP_VECTOR], int Bit, FLOAT32 Center, FLOAT32 Spread) |
CLASS_ID | GetClassToDebug (const char *Prompt) |
void | GetCPPadsForLevel (int Level, FLOAT32 *EndPad, FLOAT32 *SidePad, FLOAT32 *AnglePad) |
C_COL | GetMatchColorFor (FLOAT32 Evidence) |
void | GetNextFill (TABLE_FILLER *Filler, FILL_SPEC *Fill) |
void | InitTableFiller (FLOAT32 EndPad, FLOAT32 SidePad, FLOAT32 AnglePad, PROTO Proto, TABLE_FILLER *Filler) |
void | RenderIntFeature (void *window, INT_FEATURE Feature, C_COL Color) |
void | RenderIntProto (void *window, INT_CLASS Class, PROTO_ID ProtoId, C_COL Color) |
int | TruncateParam (FLOAT32 Param, int Min, int Max, char *Id) |
void | AddIntClass (INT_TEMPLATES Templates, CLASS_ID ClassId, INT_CLASS Class) |
int | AddIntConfig (INT_CLASS Class) |
int | AddIntProto (INT_CLASS Class) |
void | AddProtoToClassPruner (PROTO Proto, CLASS_ID ClassId, INT_TEMPLATES Templates) |
void | AddProtoToProtoPruner (PROTO Proto, int ProtoId, INT_CLASS Class) |
int | BucketFor (FLOAT32 Param, FLOAT32 Offset, int NumBuckets) |
int | CircBucketFor (FLOAT32 Param, FLOAT32 Offset, int NumBuckets) |
void | UpdateMatchDisplay () |
void | ConvertConfig (BIT_VECTOR Config, int ConfigId, INT_CLASS Class) |
void | ConvertProto (PROTO Proto, int ProtoId, INT_CLASS Class) |
void | DisplayIntFeature (INT_FEATURE Feature, FLOAT32 Evidence) |
void | DisplayIntProto (INT_CLASS Class, PROTO_ID ProtoId, FLOAT32 Evidence) |
INT_CLASS | NewIntClass (int MaxNumProtos, int MaxNumConfigs) |
void | free_int_class (INT_CLASS int_class) |
INT_TEMPLATES | NewIntTemplates () |
void | free_int_templates (INT_TEMPLATES templates) |
void | ShowMatchDisplay () |
void | InitIntMatchWindowIfReqd () |
void | InitProtoDisplayWindowIfReqd () |
void | InitFeatureDisplayWindowIfReqd () |
Variables | |
ScrollView * | IntMatchWindow = NULL |
ScrollView * | FeatureDisplayWindow = NULL |
ScrollView * | ProtoDisplayWindow = NULL |
int | classify_num_cp_levels = 3 |
double | classify_cp_angle_pad_loose = 45.0 |
double | classify_cp_angle_pad_medium = 20.0 |
double | classify_cp_angle_pad_tight = 10.0 |
double | classify_cp_end_pad_loose = 0.5 |
double | classify_cp_end_pad_medium = 0.5 |
double | classify_cp_end_pad_tight = 0.5 |
double | classify_cp_side_pad_loose = 2.5 |
double | classify_cp_side_pad_medium = 1.2 |
double | classify_cp_side_pad_tight = 0.6 |
double | classify_pp_angle_pad = 45.0 |
double | classify_pp_end_pad = 0.5 |
double | classify_pp_side_pad = 2.5 |
#define AS ANGLE_SHIFT |
#define CircularIncrement | ( | i, | |||
r | ) | (((i) < (r) - 1)?((i)++):((i) = 0)) |
---------------------------------------------------------------------------- Macros ----------------------------------------------------------------------------
#define DISPLAY_OFFSET (0.5 * INT_CHAR_NORM_RANGE) |
---------------------------------------------------------------------------- Include Files and Type Defines ----------------------------------------------------------------------------
#define DOUBLE_OFFSET 0.095 |
#define HV_TOLERANCE (0.0025) |
#define INT_BASELINE (0.25 * INT_CHAR_NORM_RANGE - DISPLAY_OFFSET) |
#define INT_CAPHEIGHT (1.0 * INT_CHAR_NORM_RANGE - DISPLAY_OFFSET) |
#define INT_DESCENDER (0.0 * INT_CHAR_NORM_RANGE - DISPLAY_OFFSET) |
#define INT_MAX_X ( DISPLAY_OFFSET) |
#define INT_MAX_Y ( DISPLAY_OFFSET) |
#define INT_MIN_X (- DISPLAY_OFFSET) |
#define INT_MIN_Y (- DISPLAY_OFFSET) |
#define INT_XCENTER (0.5 * INT_CHAR_NORM_RANGE - DISPLAY_OFFSET) |
#define INT_XHEIGHT (0.75 * INT_CHAR_NORM_RANGE - DISPLAY_OFFSET) |
#define INT_XRADIUS (0.2 * INT_CHAR_NORM_RANGE) |
#define INT_YCENTER (0.5 * INT_CHAR_NORM_RANGE - DISPLAY_OFFSET) |
#define INT_YRADIUS (0.2 * INT_CHAR_NORM_RANGE) |
#define MapParam | ( | P, | |||
O, | |||||
N | ) | (floor (((P) + (O)) * (N))) |
#define MAX_LEVEL 2 |
#define MAX_NUM_SWITCHES 3 |
#define NB NUM_CP_BUCKETS |
#define OLD_MAX_NUM_CONFIGS 32 |
#define OLD_WERDS_PER_CONFIG_VEC |
((OLD_MAX_NUM_CONFIGS + BITS_PER_WERD - 1) /\ BITS_PER_WERD)
#define PROTO_PRUNER_SCALE (4.0) |
#define XS X_SHIFT |
#define YS Y_SHIFT |
enum SWITCH_TYPE |
void AddIntClass | ( | INT_TEMPLATES | Templates, | |
CLASS_ID | ClassId, | |||
INT_CLASS | Class | |||
) |
---------------------------------------------------------------------------- Public Code ----------------------------------------------------------------------------
int AddIntConfig | ( | INT_CLASS | Class | ) |
int AddIntProto | ( | INT_CLASS | Class | ) |
void AddProtoToClassPruner | ( | PROTO | Proto, | |
CLASS_ID | ClassId, | |||
INT_TEMPLATES | Templates | |||
) |
---------------------------------------------------------------------------- Private Code ----------------------------------------------------------------------------
void ConvertConfig | ( | BIT_VECTOR | Config, | |
int | ConfigId, | |||
INT_CLASS | Class | |||
) |
void DisplayIntFeature | ( | INT_FEATURE | Feature, | |
FLOAT32 | Evidence | |||
) |
void DoFill | ( | FILL_SPEC * | FillSpec, | |
CLASS_PRUNER | Pruner, | |||
register uinT32 | ClassMask, | |||
register uinT32 | ClassCount, | |||
register uinT32 | WordIndex | |||
) |
BOOL8 FillerDone | ( | TABLE_FILLER * | Filler | ) |
void FillPPCircularBits | ( | uinT32 | ParamTable[NUM_PP_BUCKETS][WERDS_PER_PP_VECTOR], | |
int | Bit, | |||
FLOAT32 | Center, | |||
FLOAT32 | Spread | |||
) |
void FillPPLinearBits | ( | uinT32 | ParamTable[NUM_PP_BUCKETS][WERDS_PER_PP_VECTOR], | |
int | Bit, | |||
FLOAT32 | Center, | |||
FLOAT32 | Spread | |||
) |
void free_int_class | ( | INT_CLASS | int_class | ) |
void free_int_templates | ( | INT_TEMPLATES | templates | ) |
CLASS_ID GetClassToDebug | ( | const char * | Prompt | ) |
void GetNextFill | ( | TABLE_FILLER * | Filler, | |
FILL_SPEC * | Fill | |||
) |
void InitFeatureDisplayWindowIfReqd | ( | ) |
void InitIntMatchWindowIfReqd | ( | ) |
void InitProtoDisplayWindowIfReqd | ( | ) |
void InitTableFiller | ( | FLOAT32 | EndPad, | |
FLOAT32 | SidePad, | |||
FLOAT32 | AnglePad, | |||
PROTO | Proto, | |||
TABLE_FILLER * | Filler | |||
) |
INT_CLASS NewIntClass | ( | int | MaxNumProtos, | |
int | MaxNumConfigs | |||
) |
INT_TEMPLATES NewIntTemplates | ( | ) |
void RenderIntFeature | ( | void * | window, | |
INT_FEATURE | Feature, | |||
C_COL | Color | |||
) |
void ShowMatchDisplay | ( | ) |
int TruncateParam | ( | FLOAT32 | Param, | |
int | Min, | |||
int | Max, | |||
char * | Id | |||
) |
void UpdateMatchDisplay | ( | ) |
double classify_cp_angle_pad_loose = 45.0 |
"Class Pruner Angle Pad Loose"
double classify_cp_angle_pad_medium = 20.0 |
"Class Pruner Angle Pad Medium"
double classify_cp_angle_pad_tight = 10.0 |
"CLass Pruner Angle Pad Tight"
double classify_cp_end_pad_loose = 0.5 |
"Class Pruner End Pad Loose"
double classify_cp_end_pad_medium = 0.5 |
"Class Pruner End Pad Medium"
double classify_cp_end_pad_tight = 0.5 |
"Class Pruner End Pad Tight"
double classify_cp_side_pad_loose = 2.5 |
"Class Pruner Side Pad Loose"
double classify_cp_side_pad_medium = 1.2 |
"Class Pruner Side Pad Medium"
double classify_cp_side_pad_tight = 0.6 |
"Class Pruner Side Pad Tight"
int classify_num_cp_levels = 3 |
---------------------------------------------------------------------------- Variables ---------------------------------------------------------------------------- "Number of Class Pruner Levels"
double classify_pp_angle_pad = 45.0 |
"Proto Pruner Angle Pad"
double classify_pp_end_pad = 0.5 |
"Proto Prune End Pad"
double classify_pp_side_pad = 2.5 |
"Proto Pruner Side Pad"
ScrollView* FeatureDisplayWindow = NULL |
ScrollView* IntMatchWindow = NULL |
---------------------------------------------------------------------------- Global Data Definitions and Declarations ----------------------------------------------------------------------------
ScrollView* ProtoDisplayWindow = NULL |