|
Tesseract
3.02
|
#include "ocrfeatures.h"Go to the source code of this file.
| #define ILLEGAL_SHORT_NAME 2000 |
Definition at line 34 of file featdefs.h.
| #define NUM_FEATURE_TYPES 4 |
---------------------------------------------------------------------------- Include Files and Type Defines ----------------------------------------------------------------------------
Definition at line 27 of file featdefs.h.
| typedef CHAR_DESC_STRUCT* CHAR_DESC |
Definition at line 46 of file featdefs.h.
| typedef FEATURE_DEFS_STRUCT* FEATURE_DEFS |
Definition at line 54 of file featdefs.h.
| void FreeCharDescription | ( | CHAR_DESC | CharDesc | ) |
Release the memory consumed by the specified character description and all of the features in that description.
| CharDesc | character description to be deallocated |
Globals:
Definition at line 141 of file featdefs.cpp.
{
int i;
if (CharDesc) {
for (i = 0; i < CharDesc->NumFeatureSets; i++)
FreeFeatureSet (CharDesc->FeatureSets[i]);
Efree(CharDesc);
}
} /* FreeCharDescription */
| void InitFeatureDefs | ( | FEATURE_DEFS_STRUCT * | featuredefs | ) |
Definition at line 121 of file featdefs.cpp.
{
featuredefs->NumFeatureTypes = NUM_FEATURE_TYPES;
for (int i = 0; i < NUM_FEATURE_TYPES; ++i) {
featuredefs->FeatureDesc[i] = DescDefs[i];
}
}
| CHAR_DESC NewCharDescription | ( | const FEATURE_DEFS_STRUCT & | FeatureDefs | ) |
Allocate a new character description, initialize its feature sets to be empty, and return it.
Globals:
Definition at line 164 of file featdefs.cpp.
{
CHAR_DESC CharDesc;
int i;
CharDesc = (CHAR_DESC) Emalloc (sizeof (CHAR_DESC_STRUCT));
CharDesc->NumFeatureSets = FeatureDefs.NumFeatureTypes;
for (i = 0; i < CharDesc->NumFeatureSets; i++)
CharDesc->FeatureSets[i] = NULL;
return (CharDesc);
} /* NewCharDescription */
| CHAR_DESC ReadCharDescription | ( | const FEATURE_DEFS_STRUCT & | FeatureDefs, |
| FILE * | File | ||
| ) |
Read a character description from File, and return a data structure containing this information. The data is formatted as follows:
NumberOfSets
ShortNameForSet1 Set1
ShortNameForSet2 Set2
...
Globals:
| FeatureDefs | definitions of feature types/extractors |
| File | open text file to read character description from |
Definition at line 261 of file featdefs.cpp.
{
int NumSetsToRead;
char ShortName[FEAT_NAME_SIZE];
CHAR_DESC CharDesc;
int Type;
if (fscanf (File, "%d", &NumSetsToRead) != 1 ||
NumSetsToRead < 0 || NumSetsToRead > FeatureDefs.NumFeatureTypes)
DoError (ILLEGAL_NUM_SETS, "Illegal number of feature sets");
CharDesc = NewCharDescription(FeatureDefs);
for (; NumSetsToRead > 0; NumSetsToRead--) {
fscanf (File, "%s", ShortName);
Type = ShortNameToFeatureType(FeatureDefs, ShortName);
CharDesc->FeatureSets[Type] =
ReadFeatureSet (File, FeatureDefs.FeatureDesc[Type]);
}
return (CharDesc);
} // ReadCharDescription
| int ShortNameToFeatureType | ( | const FEATURE_DEFS_STRUCT & | FeatureDefs, |
| const char * | ShortName | ||
| ) |
Search thru all features currently defined and return the feature type for the feature with the specified short name. Trap an error if the specified name is not found.
Globals:
| FeatureDefs | definitions of feature types/extractors |
| ShortName | short name of a feature type |
Definition at line 300 of file featdefs.cpp.
{
int i;
for (i = 0; i < FeatureDefs.NumFeatureTypes; i++)
if (!strcmp ((FeatureDefs.FeatureDesc[i]->ShortName), ShortName))
return (i);
DoError (ILLEGAL_SHORT_NAME, "Illegal short name for a feature");
return 0;
} // ShortNameToFeatureType
| bool ValidCharDescription | ( | const FEATURE_DEFS_STRUCT & | FeatureDefs, |
| CHAR_DESC | CharDesc | ||
| ) |
Definition at line 219 of file featdefs.cpp.
{
bool anything_written = false;
bool well_formed = true;
for (int Type = 0; Type < CharDesc->NumFeatureSets; Type++) {
if (CharDesc->FeatureSets[Type]) {
for (int i = 0; i < CharDesc->FeatureSets[Type]->NumFeatures; i++) {
FEATURE feat = CharDesc->FeatureSets[Type]->Features[i];
for (int p = 0; p < feat->Type->NumParams; p++) {
if (isnan(feat->Params[p]) || isinf(feat->Params[p]))
well_formed = false;
else
anything_written = true;
}
}
}
}
return anything_written && well_formed;
} /* ValidCharDescription */
| void WriteCharDescription | ( | const FEATURE_DEFS_STRUCT & | FeatureDefs, |
| FILE * | File, | ||
| CHAR_DESC | CharDesc | ||
| ) |
Write a textual representation of CharDesc to File. The format used is to write out the number of feature sets which will be written followed by a representation of each feature set.
Each set starts with the short name for that feature followed by a description of the feature set. Feature sets which are not present are not written.
Globals:
| FeatureDefs | definitions of feature types/extractors |
| File | open text file to write CharDesc to |
| CharDesc | character description to write to File |
Definition at line 200 of file featdefs.cpp.
{
int Type;
int NumSetsToWrite = 0;
for (Type = 0; Type < CharDesc->NumFeatureSets; Type++)
if (CharDesc->FeatureSets[Type])
NumSetsToWrite++;
fprintf (File, " %d\n", NumSetsToWrite);
for (Type = 0; Type < CharDesc->NumFeatureSets; Type++)
if (CharDesc->FeatureSets[Type]) {
fprintf (File, "%s ", (FeatureDefs.FeatureDesc[Type])->ShortName);
WriteFeatureSet (File, CharDesc->FeatureSets[Type]);
}
} /* WriteCharDescription */
| const char* kCNFeatureType |
Definition at line 42 of file featdefs.cpp.
| const char* kGeoFeatureType |
Definition at line 44 of file featdefs.cpp.
| const char* kIntFeatureType |
Definition at line 43 of file featdefs.cpp.
| const char* kMicroFeatureType |
Definition at line 41 of file featdefs.cpp.
---------------------------------------------------------------------------- Global Data Definitions and Declarations ----------------------------------------------------------------------------