tesseract  5.0.0-alpha-619-ge9db
mf.h File Reference
#include "ocrfeatures.h"
#include "blobs.h"

Go to the source code of this file.

Typedefs

typedef float MicroFeature[MFCount]
 

Enumerations

enum  MF_PARAM_NAME {
  MFXPosition, MFYPosition, MFLength, MFDirection,
  MFBulge1, MFBulge2, MFCount
}
 

Functions

FEATURE_SET ExtractMicros (TBLOB *Blob, const DENORM &cn_denorm)
 

Typedef Documentation

◆ MicroFeature

typedef float MicroFeature[MFCount]

Definition at line 32 of file mf.h.

Enumeration Type Documentation

◆ MF_PARAM_NAME


Include Files and Type Defines

Enumerator
MFXPosition 
MFYPosition 
MFLength 
MFDirection 
MFBulge1 
MFBulge2 
MFCount 

Definition at line 26 of file mf.h.

27  {
30  MFCount // For array sizes.

Function Documentation

◆ ExtractMicros()

FEATURE_SET ExtractMicros ( TBLOB Blob,
const DENORM cn_denorm 
)

Call the old micro-feature extractor and then copy the features into the new format. Then deallocate the old micro-features.

Parameters
Blobblob to extract micro-features from
cn_denormcontrol parameter to feature extractor.
Returns
Micro-features for Blob.

Definition at line 43 of file mf.cpp.

43  {
44  int NumFeatures;
45  MICROFEATURES Features, OldFeatures;
46  FEATURE_SET FeatureSet;
47  FEATURE Feature;
48  MICROFEATURE OldFeature;
49 
50  OldFeatures = BlobMicroFeatures(Blob, cn_denorm);
51  if (OldFeatures == nullptr)
52  return nullptr;
53  NumFeatures = count (OldFeatures);
54  FeatureSet = NewFeatureSet (NumFeatures);
55 
56  Features = OldFeatures;
57  iterate(Features) {
58  OldFeature = reinterpret_cast<MICROFEATURE>first_node (Features);
59  Feature = NewFeature (&MicroFeatureDesc);
60  Feature->Params[MFDirection] = OldFeature[ORIENTATION];
61  Feature->Params[MFXPosition] = OldFeature[XPOSITION];
62  Feature->Params[MFYPosition] = OldFeature[YPOSITION];
63  Feature->Params[MFLength] = OldFeature[MFLENGTH];
64 
65  // Bulge features are deprecated and should not be used. Set to 0.
66  Feature->Params[MFBulge1] = 0.0f;
67  Feature->Params[MFBulge2] = 0.0f;
68 
69 #ifndef _WIN32
70  // Assert that feature parameters are well defined.
71  int i;
72  for (i = 0; i < Feature->Type->NumParams; i++) {
73  ASSERT_HOST(!std::isnan(Feature->Params[i]));
74  }
75 #endif
76 
77  AddFeature(FeatureSet, Feature);
78  }
79  FreeMicroFeatures(OldFeatures);
80  return FeatureSet;
81 } /* ExtractMicros */
MFCount
Definition: mf.h:43
MFBulge1
Definition: mf.h:42
AddFeature
bool AddFeature(FEATURE_SET FeatureSet, FEATURE Feature)
Definition: ocrfeatures.cpp:39
first_node
#define first_node(l)
Definition: oldlist.h:84
ASSERT_HOST
#define ASSERT_HOST(x)
Definition: errcode.h:87
list_rec
Definition: oldlist.h:73
FreeMicroFeatures
void FreeMicroFeatures(MICROFEATURES MicroFeatures)
Definition: mfdefs.cpp:41
FEATURE_STRUCT
Definition: ocrfeatures.h:58
XPOSITION
#define XPOSITION
Definition: mfdefs.h:35
MFXPosition
Definition: mf.h:41
ORIENTATION
#define ORIENTATION
Definition: mfdefs.h:38
FEATURE_DESC_STRUCT::NumParams
uint16_t NumParams
Definition: ocrfeatures.h:52
MFBulge2
Definition: mf.h:42
MFLength
Definition: mf.h:42
FEATURE_STRUCT::Params
float Params[1]
Definition: ocrfeatures.h:60
FEATURE_STRUCT::Type
const FEATURE_DESC_STRUCT * Type
Definition: ocrfeatures.h:59
MicroFeatureDesc
const FEATURE_DESC_STRUCT MicroFeatureDesc
NewFeature
FEATURE NewFeature(const FEATURE_DESC_STRUCT *FeatureDesc)
Definition: ocrfeatures.cpp:77
FEATURE_SET_STRUCT
Definition: ocrfeatures.h:64
YPOSITION
#define YPOSITION
Definition: mfdefs.h:36
NewFeatureSet
FEATURE_SET NewFeatureSet(int NumFeatures)
Definition: ocrfeatures.cpp:93
count
int count(LIST var_list)
Definition: oldlist.cpp:79
iterate
#define iterate(l)
Definition: oldlist.h:92
BlobMicroFeatures
MICROFEATURES BlobMicroFeatures(TBLOB *Blob, const DENORM &cn_denorm)
Definition: mfx.cpp:60
MFDirection
Definition: mf.h:42
MFYPosition
Definition: mf.h:41
MFLENGTH
#define MFLENGTH
Definition: mfdefs.h:37
MICROFEATURE
float * MICROFEATURE
Definition: mfdefs.h:32