tesseract-doxygen/classify/intproto.cpp File Reference

#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

ScrollViewIntMatchWindow = NULL
ScrollViewFeatureDisplayWindow = NULL
ScrollViewProtoDisplayWindow = 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 Documentation

#define AS   ANGLE_SHIFT
#define CircularIncrement ( i,
 )     (((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,
 )     (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
#define PROTO_PRUNER_SCALE   (4.0)
#define XS   X_SHIFT
#define YS   Y_SHIFT

Enumeration Type Documentation

Enumerator:
StartSwitch 
EndSwitch 
LastSwitch 

Function Documentation

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 
)
void AddProtoToProtoPruner ( PROTO  Proto,
int  ProtoId,
INT_CLASS  Class 
)
FLOAT32 BucketEnd ( int  Bucket,
FLOAT32  Offset,
int  NumBuckets 
)
int BucketFor ( FLOAT32  Param,
FLOAT32  Offset,
int  NumBuckets 
)
FLOAT32 BucketStart ( int  Bucket,
FLOAT32  Offset,
int  NumBuckets 
)

---------------------------------------------------------------------------- Private Code ----------------------------------------------------------------------------

int CircBucketFor ( FLOAT32  Param,
FLOAT32  Offset,
int  NumBuckets 
)
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 
)
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 GetCPPadsForLevel ( int  Level,
FLOAT32 EndPad,
FLOAT32 SidePad,
FLOAT32 AnglePad 
)
C_COL GetMatchColorFor ( FLOAT32  Evidence  ) 
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 RenderIntProto ( void *  window,
INT_CLASS  Class,
PROTO_ID  ProtoId,
C_COL  Color 
)
void ShowMatchDisplay (  ) 
int TruncateParam ( FLOAT32  Param,
int  Min,
int  Max,
char *  Id 
)
void UpdateMatchDisplay (  ) 

Variable Documentation

"Class Pruner Angle Pad Loose"

"Class Pruner Angle Pad Medium"

"CLass Pruner Angle Pad Tight"

"Class Pruner End Pad Loose"

"Class Pruner End Pad Medium"

"Class Pruner End Pad Tight"

"Class Pruner Side Pad Loose"

"Class Pruner Side Pad Medium"

"Class Pruner Side Pad Tight"

---------------------------------------------------------------------------- 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"

---------------------------------------------------------------------------- Global Data Definitions and Declarations ----------------------------------------------------------------------------

Generated on Sun Jul 18 17:10:50 2010 for Tesseract by  doxygen 1.6.3