tesseract 4.1.1
Loading...
Searching...
No Matches
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 33 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 27 of file mf.h.

27 {
30 MFCount // For array sizes.
MF_PARAM_NAME
Definition: mf.h:27
@ MFBulge2
Definition: mf.h:29
@ MFCount
Definition: mf.h:30
@ MFLength
Definition: mf.h:29
@ MFDirection
Definition: mf.h:29
@ MFXPosition
Definition: mf.h:28
@ MFBulge1
Definition: mf.h:29
@ MFYPosition
Definition: mf.h:28

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 */
#define ASSERT_HOST(x)
Definition: errcode.h:88
const FEATURE_DESC_STRUCT MicroFeatureDesc
void FreeMicroFeatures(MICROFEATURES MicroFeatures)
Definition: mfdefs.cpp:42
float * MICROFEATURE
Definition: mfdefs.h:33
#define XPOSITION
Definition: mfdefs.h:36
#define MFLENGTH
Definition: mfdefs.h:38
#define YPOSITION
Definition: mfdefs.h:37
#define ORIENTATION
Definition: mfdefs.h:39
MICROFEATURES BlobMicroFeatures(TBLOB *Blob, const DENORM &cn_denorm)
Definition: mfx.cpp:61
FEATURE NewFeature(const FEATURE_DESC_STRUCT *FeatureDesc)
Definition: ocrfeatures.cpp:78
bool AddFeature(FEATURE_SET FeatureSet, FEATURE Feature)
Definition: ocrfeatures.cpp:40
FEATURE_SET NewFeatureSet(int NumFeatures)
Definition: ocrfeatures.cpp:94
int count(LIST var_list)
Definition: oldlist.cpp:95
#define iterate(l)
Definition: oldlist.h:101
#define first_node(l)
Definition: oldlist.h:92
const FEATURE_DESC_STRUCT * Type
Definition: ocrfeatures.h:60
float Params[1]
Definition: ocrfeatures.h:61