00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef INTMATCHER_H
00019 #define INTMATCHER_H
00020
00021 #include "varable.h"
00022
00023
00024
00025
00026
00027 extern BOOL_VAR_H(disable_character_fragments, FALSE,
00028 "Do not include character fragments in the"
00029 " results of the classifier");
00030
00031 extern INT_VAR_H(classify_integer_matcher_multiplier, 14,
00032 "Integer Matcher Multiplier 0-255: ");
00033
00034
00038 #include "intproto.h"
00039 #include "cutoffs.h"
00040
00041 typedef struct
00042 {
00043 FLOAT32 Rating;
00044 uinT8 Config;
00045 uinT8 Config2;
00046 uinT16 FeatureMisses;
00047 }
00048
00049
00050 INT_RESULT_STRUCT, *INT_RESULT;
00051
00052 typedef struct
00053 {
00054 FLOAT32 Rating;
00055 INT_RESULT_STRUCT IMResult;
00056 CLASS_ID Class;
00057 }
00058
00059
00060 CP_RESULT_STRUCT;
00061
00062
00063 typedef CP_RESULT_STRUCT CLASS_PRUNER_RESULTS[MAX_NUM_CLASSES];
00064
00065 typedef uinT8 CLASS_NORMALIZATION_ARRAY[MAX_NUM_CLASSES];
00066
00067
00068
00069
00070
00071 extern INT_VAR_H(classify_adapt_proto_thresh, 230,
00072 "Threshold for good protos during adaptive 0-255: ");
00073
00074 extern INT_VAR_H(classify_adapt_feature_thresh, 230,
00075 "Threshold for good features during adaptive 0-255: ");
00076
00081 void IntegerMatcher(INT_CLASS ClassTemplate,
00082 BIT_VECTOR ProtoMask,
00083 BIT_VECTOR ConfigMask,
00084 uinT16 BlobLength,
00085 inT16 NumFeatures,
00086 INT_FEATURE_ARRAY Features,
00087 uinT8 NormalizationFactor,
00088 INT_RESULT Result,
00089 int Debug);
00090
00091 int FindGoodProtos(INT_CLASS ClassTemplate,
00092 BIT_VECTOR ProtoMask,
00093 BIT_VECTOR ConfigMask,
00094 uinT16 BlobLength,
00095 inT16 NumFeatures,
00096 INT_FEATURE_ARRAY Features,
00097 PROTO_ID *ProtoArray,
00098 int Debug);
00099
00100 int FindBadFeatures(INT_CLASS ClassTemplate,
00101 BIT_VECTOR ProtoMask,
00102 BIT_VECTOR ConfigMask,
00103 uinT16 BlobLength,
00104 inT16 NumFeatures,
00105 INT_FEATURE_ARRAY Features,
00106 FEATURE_ID *FeatureArray,
00107 int Debug);
00108
00109 void InitIntegerMatcher();
00110
00111 void PrintIntMatcherStats(FILE *f);
00112
00113 void SetProtoThresh(FLOAT32 Threshold);
00114
00115 void SetFeatureThresh(FLOAT32 Threshold);
00116
00117 void SetBaseLineMatch();
00118
00119 void SetCharNormMatch();
00120
00124 void IMClearTables (INT_CLASS ClassTemplate,
00125 int SumOfFeatureEvidence[MAX_NUM_CONFIGS],
00126 uinT8 ProtoEvidence[MAX_NUM_PROTOS][MAX_PROTO_INDEX]);
00127
00128 void IMClearFeatureEvidenceTable (uinT8 FeatureEvidence[MAX_NUM_CONFIGS],
00129 int NumConfigs);
00130
00131 void IMDebugConfiguration(INT_FEATURE FeatureNum,
00132 uinT16 ActualProtoNum,
00133 uinT8 Evidence,
00134 BIT_VECTOR ConfigMask,
00135 uinT32 ConfigWord);
00136
00137 void IMDebugConfigurationSum(INT_FEATURE FeatureNum,
00138 uinT8 *FeatureEvidence,
00139 inT32 ConfigCount);
00140
00141 int IMUpdateTablesForFeature (INT_CLASS ClassTemplate,
00142 BIT_VECTOR ProtoMask,
00143 BIT_VECTOR ConfigMask,
00144 int FeatureNum,
00145 INT_FEATURE Feature,
00146 uinT8 FeatureEvidence[MAX_NUM_CONFIGS],
00147 int SumOfFeatureEvidence[MAX_NUM_CONFIGS],
00148 uinT8
00149 ProtoEvidence[MAX_NUM_PROTOS][MAX_PROTO_INDEX],
00150 int Debug);
00151
00152 #ifndef GRAPHICS_DISABLED
00153 void IMDebugFeatureProtoError (INT_CLASS ClassTemplate,
00154 BIT_VECTOR ProtoMask,
00155 BIT_VECTOR ConfigMask,
00156 int SumOfFeatureEvidence[MAX_NUM_CONFIGS],
00157 uinT8
00158 ProtoEvidence[MAX_NUM_PROTOS][MAX_PROTO_INDEX],
00159 inT16 NumFeatures, int Debug);
00160
00161 void IMDisplayProtoDebugInfo (INT_CLASS ClassTemplate,
00162 BIT_VECTOR ProtoMask,
00163 BIT_VECTOR ConfigMask,
00164 uinT8
00165 ProtoEvidence[MAX_NUM_PROTOS][MAX_PROTO_INDEX],
00166 int Debug);
00167
00168 void IMDisplayFeatureDebugInfo(INT_CLASS ClassTemplate,
00169 BIT_VECTOR ProtoMask,
00170 BIT_VECTOR ConfigMask,
00171 inT16 NumFeatures,
00172 INT_FEATURE_ARRAY Features,
00173 int Debug);
00174 #endif
00175
00176 void IMUpdateSumOfProtoEvidences (INT_CLASS ClassTemplate,
00177 BIT_VECTOR ConfigMask,
00178 int SumOfFeatureEvidence[MAX_NUM_CONFIGS],
00179 uinT8
00180 ProtoEvidence[MAX_NUM_PROTOS]
00181 [MAX_PROTO_INDEX], inT16 NumFeatures);
00182
00183 void IMNormalizeSumOfEvidences (INT_CLASS ClassTemplate,
00184 int SumOfFeatureEvidence[MAX_NUM_CONFIGS],
00185 inT16 NumFeatures, inT32 used_features);
00186
00187 int IMFindBestMatch (INT_CLASS ClassTemplate,
00188 int SumOfFeatureEvidence[MAX_NUM_CONFIGS],
00189 uinT16 BlobLength,
00190 uinT8 NormalizationFactor, INT_RESULT Result);
00191
00192 #ifndef GRAPHICS_DISABLED
00193 void IMDebugBestMatch(int BestMatch,
00194 INT_RESULT Result,
00195 uinT16 BlobLength,
00196 uinT8 NormalizationFactor);
00197 #endif
00198
00199 void HeapSort (int n, register int ra[], register int rb[]);
00200
00204 extern uinT32 EvidenceMultMask;
00205 #endif