Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00021 #include "protos.h"
00022 #include "cluster.h"
00023 #include "ocrfeatures.h"
00024 #include "callcpp.h"
00025 #include "picofeat.h"
00026
00027
00028 #define WORST_MATCH_ALLOWED (0.9)
00029 #define WORST_EVIDENCE (1.0)
00030 #define MAX_LENGTH_MISMATCH (2.0 * GetPicoFeatureLength ())
00031
00032
00033 #define PROTO_SUFFIX ".mf.p"
00034 #define CONFIG_SUFFIX ".cl"
00035 #define NO_PROTO (-1)
00036 #define XPOSITION 0
00037 #define YPOSITION 1
00038 #define MFLENGTH 2
00039 #define ORIENTATION 3
00040
00041 typedef struct
00042 {
00043 FLOAT32 MinX, MaxX, MinY, MaxY;
00044 } FRECT;
00045
00049 #define CenterX(M) ( (M)[XPOSITION] )
00050 #define CenterY(M) ( (M)[YPOSITION] )
00051 #define LengthOf(M) ( (M)[MFLENGTH] )
00052 #define OrientationOf(M) ( (M)[ORIENTATION] )
00053
00057 FLOAT32 CompareProtos (
00058 PROTO p1,
00059 PROTO p2);
00060
00061 void ComputeMergedProto (
00062 PROTO p1,
00063 PROTO p2,
00064 FLOAT32 w1,
00065 FLOAT32 w2,
00066 PROTO MergedProto);
00067
00068 int FindClosestExistingProto (
00069 CLASS_TYPE Class,
00070 int NumMerged[],
00071 PROTOTYPE *Prototype);
00072
00073 void MakeNewFromOld (
00074 PROTO New,
00075 PROTOTYPE *Old);
00076
00077 FLOAT32 SubfeatureEvidence (
00078 FEATURE Feature,
00079 PROTO Proto);
00080
00081 double EvidenceOf (
00082 register double Similarity);
00083
00084 BOOL8 DummyFastMatch (
00085 FEATURE Feature,
00086 PROTO Proto);
00087
00088 void ComputePaddedBoundingBox (
00089 PROTO Proto,
00090 FLOAT32 TangentPad,
00091 FLOAT32 OrthogonalPad,
00092 FRECT *BoundingBox);
00093
00094 BOOL8 PointInside (
00095 FRECT *Rectangle,
00096 FLOAT32 X,
00097 FLOAT32 Y);