tesseract
5.0.0-alpha-619-ge9db
|
#include <tesseract/genericvector.h>
#include "matchdefs.h"
#include "mfoutline.h"
#include "protos.h"
#include "scrollview.h"
#include "unicharset.h"
Go to the source code of this file.
Classes | |
struct | CLASS_PRUNER_STRUCT |
struct | INT_PROTO_STRUCT |
struct | PROTO_SET_STRUCT |
struct | INT_CLASS_STRUCT |
struct | INT_TEMPLATES_STRUCT |
struct | INT_FEATURE_STRUCT |
Namespaces | |
tesseract | |
Typedefs | |
typedef struct INT_PROTO_STRUCT * | INT_PROTO |
typedef uint32_t | PROTO_PRUNER[NUM_PP_PARAMS][NUM_PP_BUCKETS][WERDS_PER_PP_VECTOR] |
typedef struct PROTO_SET_STRUCT * | PROTO_SET |
typedef uint32_t | CONFIG_PRUNER[NUM_PP_PARAMS][NUM_PP_BUCKETS][4] |
typedef struct INT_CLASS_STRUCT * | INT_CLASS |
typedef struct INT_TEMPLATES_STRUCT * | INT_TEMPLATES |
using | INT_FEATURE = INT_FEATURE_STRUCT * |
typedef INT_FEATURE_STRUCT | INT_FEATURE_ARRAY[MAX_NUM_INT_FEATURES] |
Enumerations | |
enum | IntmatcherDebugAction { IDA_ADAPTIVE, IDA_STATIC, IDA_SHAPE_INDEX, IDA_BOTH } |
Functions | |
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, bool debug) |
uint8_t | Bucket8For (float param, float offset, int num_buckets) |
uint16_t | Bucket16For (float param, float offset, int num_buckets) |
uint8_t | CircBucketFor (float param, float offset, int num_buckets) |
void | UpdateMatchDisplay () |
void | ConvertConfig (BIT_VECTOR Config, int ConfigId, INT_CLASS Class) |
void | DisplayIntFeature (const INT_FEATURE_STRUCT *Feature, float Evidence) |
void | DisplayIntProto (INT_CLASS Class, PROTO_ID ProtoId, float Evidence) |
INT_CLASS | NewIntClass (int MaxNumProtos, int MaxNumConfigs) |
INT_TEMPLATES | NewIntTemplates () |
void | free_int_templates (INT_TEMPLATES templates) |
void | ShowMatchDisplay () |
void | tesseract::ClearFeatureSpaceWindow (NORM_METHOD norm_method, ScrollView *window) |
void | RenderIntFeature (ScrollView *window, const INT_FEATURE_STRUCT *Feature, ScrollView::Color color) |
void | InitIntMatchWindowIfReqd () |
void | InitProtoDisplayWindowIfReqd () |
void | InitFeatureDisplayWindowIfReqd () |
ScrollView * | CreateFeatureSpaceWindow (const char *name, int xpos, int ypos) |
#define ANGLE_SHIFT (0.0) |
Definition at line 39 of file intproto.h.
#define BITS_PER_CP_VECTOR (CLASSES_PER_CP * NUM_BITS_PER_CLASS) |
Definition at line 58 of file intproto.h.
#define BITS_PER_WERD static_cast<int>(8 * sizeof(uint32_t)) |
Definition at line 44 of file intproto.h.
#define CLASS_PRUNER_CLASS_MASK (~(~0u << NUM_BITS_PER_CLASS)) |
Definition at line 55 of file intproto.h.
#define CLASSES_PER_CP 32 |
Definition at line 53 of file intproto.h.
#define CLASSES_PER_CP_WERD (CLASSES_PER_CP / NUM_BITS_PER_CLASS) |
Definition at line 56 of file intproto.h.
#define ClassForClassId | ( | T, | |
c | |||
) | ((T)->Class[c]) |
Definition at line 177 of file intproto.h.
#define ClassPrunersFor | ( | T | ) | ((T)->ClassPruner) |
Definition at line 178 of file intproto.h.
#define CLIP_MATCH_EVIDENCE 0x020 |
Definition at line 192 of file intproto.h.
#define ClipMatchEvidenceOn | ( | D | ) | ((D)&CLIP_MATCH_EVIDENCE) |
Definition at line 200 of file intproto.h.
#define CPrunerBitIndexFor | ( | c | ) | (((c) % CLASSES_PER_CP) % CLASSES_PER_CP_WERD) |
Definition at line 182 of file intproto.h.
#define CPrunerFor | ( | T, | |
c | |||
) | ((T)->ClassPruners[CPrunerIdFor(c)]) |
Definition at line 180 of file intproto.h.
#define CPrunerIdFor | ( | c | ) | ((c) / CLASSES_PER_CP) |
Definition at line 179 of file intproto.h.
#define CPrunerMaskFor | ( | L, | |
c | |||
) | (((L) + 1) << CPrunerBitIndexFor(c) * NUM_BITS_PER_CLASS) |
Definition at line 183 of file intproto.h.
#define CPrunerWordIndexFor | ( | c | ) | (((c) % CLASSES_PER_CP) / CLASSES_PER_CP_WERD) |
Definition at line 181 of file intproto.h.
#define DISPLAY_FEATURE_MATCHES 0x002 |
Definition at line 188 of file intproto.h.
#define DISPLAY_PROTO_MATCHES 0x004 |
Definition at line 189 of file intproto.h.
#define DisplayFeatureMatchesOn | ( | D | ) | ((D)&DISPLAY_FEATURE_MATCHES) |
Definition at line 196 of file intproto.h.
#define DisplayProtoMatchesOn | ( | D | ) | ((D)&DISPLAY_PROTO_MATCHES) |
Definition at line 197 of file intproto.h.
#define IndexForProto | ( | P | ) | (P % PROTOS_PER_PROTO_SET) |
Definition at line 166 of file intproto.h.
#define INT_CHAR_NORM_RANGE 256 |
Definition at line 129 of file intproto.h.
#define LegalClassId | ( | c | ) | ((c) >= 0 && (c) <= MAX_CLASS_ID) |
Definition at line 175 of file intproto.h.
#define MatchDebuggingOn | ( | D | ) | (D) |
Definition at line 194 of file intproto.h.
#define MAX_NUM_CLASS_PRUNERS ((MAX_NUM_CLASSES + CLASSES_PER_CP - 1) / CLASSES_PER_CP) |
Definition at line 59 of file intproto.h.
#define MAX_NUM_CONFIGS 64 |
Definition at line 46 of file intproto.h.
#define MAX_NUM_INT_FEATURES 512 |
Definition at line 128 of file intproto.h.
#define MAX_NUM_PROTO_SETS (MAX_NUM_PROTOS / PROTOS_PER_PROTO_SET) |
Definition at line 49 of file intproto.h.
#define MAX_NUM_PROTOS 512 |
Definition at line 47 of file intproto.h.
#define MAX_PROTO_INDEX 24 |
Definition at line 43 of file intproto.h.
#define MaxNumClassesIn | ( | T | ) | (T->NumClassPruners * CLASSES_PER_CP) |
Definition at line 174 of file intproto.h.
#define MaxNumIntProtosIn | ( | C | ) | (C->NumProtoSets * PROTOS_PER_PROTO_SET) |
#define NUM_BITS_PER_CLASS 2 |
Definition at line 54 of file intproto.h.
#define NUM_CP_BUCKETS 24 |
Definition at line 52 of file intproto.h.
#define NUM_PP_BUCKETS 64 |
Definition at line 51 of file intproto.h.
#define NUM_PP_PARAMS 3 |
Definition at line 50 of file intproto.h.
#define PPrunerBitIndexFor | ( | I | ) | ((I) % PROTOS_PER_PP_WERD) |
Definition at line 171 of file intproto.h.
#define PPrunerMaskFor | ( | I | ) | (1 << PPrunerBitIndexFor(I)) |
Definition at line 172 of file intproto.h.
#define PPrunerWordIndexFor | ( | I | ) | (((I) % PROTOS_PER_PROTO_SET) / PROTOS_PER_PP_WERD) |
Definition at line 169 of file intproto.h.
#define PRINT_FEATURE_MATCHES 0x008 |
Definition at line 190 of file intproto.h.
#define PRINT_MATCH_SUMMARY 0x001 |
Definition at line 187 of file intproto.h.
#define PRINT_PROTO_MATCHES 0x010 |
Definition at line 191 of file intproto.h.
#define PrintFeatureMatchesOn | ( | D | ) | ((D)&PRINT_FEATURE_MATCHES) |
Definition at line 198 of file intproto.h.
#define PrintMatchSummaryOn | ( | D | ) | ((D)&PRINT_MATCH_SUMMARY) |
Definition at line 195 of file intproto.h.
#define PrintProtoMatchesOn | ( | D | ) | ((D)&PRINT_PROTO_MATCHES) |
Definition at line 199 of file intproto.h.
#define ProtoForProtoId | ( | C, | |
P | |||
) | (&((C->ProtoSets[SetForProto(P)])->Protos[IndexForProto(P)])) |
Definition at line 167 of file intproto.h.
#define PROTOS_PER_PP_WERD BITS_PER_WERD |
Definition at line 57 of file intproto.h.
#define PROTOS_PER_PROTO_SET 64 |
Definition at line 48 of file intproto.h.
#define PRUNER_ANGLE 2 |
Definition at line 36 of file intproto.h.
#define PRUNER_X 0 |
Definition at line 34 of file intproto.h.
#define PRUNER_Y 1 |
Definition at line 35 of file intproto.h.
#define SetForProto | ( | P | ) | (P / PROTOS_PER_PROTO_SET) |
Definition at line 165 of file intproto.h.
#define UnusedClassIdIn | ( | T, | |
c | |||
) | ((T)->Class[c] == nullptr) |
Definition at line 176 of file intproto.h.
#define WERDS_PER_CONFIG_VEC ((MAX_NUM_CONFIGS + BITS_PER_WERD - 1) / BITS_PER_WERD) |
Definition at line 67 of file intproto.h.
#define WERDS_PER_CP (NUM_CP_BUCKETS * NUM_CP_BUCKETS * NUM_CP_BUCKETS * WERDS_PER_CP_VECTOR) |
Definition at line 65 of file intproto.h.
#define WERDS_PER_CP_VECTOR (BITS_PER_CP_VECTOR / BITS_PER_WERD) |
Definition at line 61 of file intproto.h.
#define WERDS_PER_PP (NUM_PP_PARAMS * NUM_PP_BUCKETS * WERDS_PER_PP_VECTOR) |
Definition at line 64 of file intproto.h.
#define WERDS_PER_PP_VECTOR ((PROTOS_PER_PROTO_SET + BITS_PER_WERD - 1) / BITS_PER_WERD) |
Definition at line 62 of file intproto.h.
#define X_SHIFT (0.5) |
Definition at line 40 of file intproto.h.
#define Y_SHIFT (0.5) |
Definition at line 41 of file intproto.h.
typedef uint32_t CONFIG_PRUNER[NUM_PP_PARAMS][NUM_PP_BUCKETS][4] |
Definition at line 102 of file intproto.h.
typedef struct INT_CLASS_STRUCT * INT_CLASS |
using INT_FEATURE = INT_FEATURE_STRUCT* |
Definition at line 149 of file intproto.h.
typedef INT_FEATURE_STRUCT INT_FEATURE_ARRAY[MAX_NUM_INT_FEATURES] |
Definition at line 151 of file intproto.h.
typedef struct INT_PROTO_STRUCT * INT_PROTO |
typedef struct INT_TEMPLATES_STRUCT * INT_TEMPLATES |
typedef uint32_t PROTO_PRUNER[NUM_PP_PARAMS][NUM_PP_BUCKETS][WERDS_PER_PP_VECTOR] |
Definition at line 92 of file intproto.h.
typedef struct PROTO_SET_STRUCT * PROTO_SET |
Enumerator | |
---|---|
IDA_ADAPTIVE | |
IDA_STATIC | |
IDA_SHAPE_INDEX | |
IDA_BOTH |
Definition at line 153 of file intproto.h.
void AddIntClass | ( | INT_TEMPLATES | Templates, |
CLASS_ID | ClassId, | ||
INT_CLASS | Class | ||
) |
This routine adds a new class structure to a set of templates. Classes have to be added to Templates in the order of increasing ClassIds.
Templates | templates to add new class to |
ClassId | class id to associate new class with |
Class | class data structure to add to templates |
Globals: none
Definition at line 230 of file intproto.cpp.
int AddIntConfig | ( | INT_CLASS | Class | ) |
This routine returns the index of the next free config in Class.
Class | class to add new configuration to |
Globals: none
Definition at line 260 of file intproto.cpp.
int AddIntProto | ( | INT_CLASS | Class | ) |
This routine allocates the next free proto in Class and returns its index.
Class | class to add new proto to |
Globals: none
Definition at line 281 of file intproto.cpp.
void AddProtoToClassPruner | ( | PROTO | Proto, |
CLASS_ID | ClassId, | ||
INT_TEMPLATES | Templates | ||
) |
This routine adds Proto to the class pruning tables for the specified class in Templates.
Globals:
Proto | floating-pt proto to add to class pruner |
ClassId | class id corresponding to Proto |
Templates | set of templates containing class pruner |
Definition at line 327 of file intproto.cpp.
This routine updates the proto pruner lookup tables for Class to include a new proto identified by ProtoId and described by Proto.
Proto | floating-pt proto to be added to proto pruner |
ProtoId | id of proto |
Class | integer class that contains desired proto pruner |
debug | debug flag |
Definition at line 366 of file intproto.cpp.
uint16_t Bucket16For | ( | float | param, |
float | offset, | ||
int | num_buckets | ||
) |
Definition at line 421 of file intproto.cpp.
uint8_t Bucket8For | ( | float | param, |
float | offset, | ||
int | num_buckets | ||
) |
Returns a quantized bucket for the given param shifted by offset, notionally (param + offset) * num_buckets, but clipped and casted to the appropriate type.
Definition at line 417 of file intproto.cpp.
uint8_t CircBucketFor | ( | float | param, |
float | offset, | ||
int | num_buckets | ||
) |
Returns a quantized bucket for the given circular param shifted by offset, notionally (param + offset) * num_buckets, but modded and casted to the appropriate type.
Definition at line 431 of file intproto.cpp.
void ConvertConfig | ( | BIT_VECTOR | Config, |
int | ConfigId, | ||
INT_CLASS | Class | ||
) |
This operation updates the config vectors of all protos in Class to indicate that the protos with 1's in Config belong to a new configuration identified by ConfigId. It is assumed that the length of the Config bit vector is equal to the number of protos in Class.
Config | config to be added to class |
ConfigId | id to be used for new config |
Class | class to add new config to |
Definition at line 462 of file intproto.cpp.
ScrollView* CreateFeatureSpaceWindow | ( | const char * | name, |
int | xpos, | ||
int | ypos | ||
) |
Creates a window of the appropriate size for displaying elements in feature space.
Definition at line 1764 of file intproto.cpp.
void DisplayIntFeature | ( | const INT_FEATURE_STRUCT * | Feature, |
float | Evidence | ||
) |
This routine renders the specified feature into a global display list.
Globals:
Feature | pico-feature to be displayed |
Evidence | best evidence for this feature (0-1) |
Definition at line 589 of file intproto.cpp.
This routine renders the specified proto into a global display list.
Globals:
Class | class to take proto from |
ProtoId | id of proto in Class to be displayed |
Evidence | total evidence for proto (0-1) |
Definition at line 607 of file intproto.cpp.
void free_int_templates | ( | INT_TEMPLATES | templates | ) |
Definition at line 697 of file intproto.cpp.
void InitFeatureDisplayWindowIfReqd | ( | ) |
Initializes the feature display window if it is not already initialized.
Definition at line 1755 of file intproto.cpp.
void InitIntMatchWindowIfReqd | ( | ) |
Initializes the int matcher window if it is not already initialized.
Definition at line 1723 of file intproto.cpp.
void InitProtoDisplayWindowIfReqd | ( | ) |
Initializes the proto display window if it is not already initialized.
Definition at line 1744 of file intproto.cpp.
INT_CLASS NewIntClass | ( | int | MaxNumProtos, |
int | MaxNumConfigs | ||
) |
This routine creates a new integer class data structure and returns it. Sufficient space is allocated to handle the specified number of protos and configs.
MaxNumProtos | number of protos to allocate space for |
MaxNumConfigs | number of configs to allocate space for |
Definition at line 625 of file intproto.cpp.
INT_TEMPLATES NewIntTemplates | ( | ) |
This routine allocates a new set of integer templates initialized to hold 0 classes.
Definition at line 681 of file intproto.cpp.
void RenderIntFeature | ( | ScrollView * | window, |
const INT_FEATURE_STRUCT * | Feature, | ||
ScrollView::Color | color | ||
) |
This routine renders the specified feature into ShapeList.
window | to add feature rendering to |
Feature | feature to be rendered |
color | color to use for feature rendering |
Definition at line 1603 of file intproto.cpp.
void ShowMatchDisplay | ( | ) |
void UpdateMatchDisplay | ( | ) |
This routine clears the global feature and proto display lists.
Globals:
Definition at line 446 of file intproto.cpp.