Tesseract  3.02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
mfx.h File Reference
#include "params.h"

Go to the source code of this file.

Functions

CHAR_FEATURES BlobMicroFeatures (TBLOB *Blob, const DENORM &denorm)
 

Variables

double classify_min_slope = 0.414213562
 
double classify_max_slope = 2.414213562
 

Function Documentation

CHAR_FEATURES BlobMicroFeatures ( TBLOB Blob,
const DENORM denorm 
)

Public Function Prototypes


Public Code

Definition at line 62 of file mfx.cpp.

62  {
63 /*
64  ** Parameters:
65  ** Blob blob to extract micro-features from
66  ** denorm control parameter to feature extractor
67  ** Operation:
68  ** This routine extracts micro-features from the specified
69  ** blob and returns a list of the micro-features. All
70  ** micro-features are normalized according to the specified
71  ** line statistics.
72  ** Return: List of micro-features extracted from the blob.
73  ** Exceptions: none
74  ** History: 7/21/89, DSJ, Created.
75  */
76  MICROFEATURES MicroFeatures = NIL_LIST;
77  FLOAT32 XScale, YScale;
78  LIST Outlines;
79  LIST RemainingOutlines;
80  MFOUTLINE Outline;
81  INT_FEATURE_ARRAY blfeatures;
82  INT_FEATURE_ARRAY cnfeatures;
83  INT_FX_RESULT_STRUCT results;
84 
85  if (Blob != NULL) {
86  Outlines = ConvertBlob (Blob);
87  if (!ExtractIntFeat(Blob, denorm, blfeatures, cnfeatures, &results))
88  return NULL;
89  XScale = 0.2f / results.Ry;
90  YScale = 0.2f / results.Rx;
91 
92  RemainingOutlines = Outlines;
93  iterate(RemainingOutlines) {
94  Outline = (MFOUTLINE) first_node (RemainingOutlines);
95  CharNormalizeOutline (Outline,
96  results.Xmean, results.Ymean,
97  XScale, YScale);
98  }
99 
100  RemainingOutlines = Outlines;
101  iterate(RemainingOutlines) {
102  Outline = (MFOUTLINE) first_node (RemainingOutlines);
104  MarkDirectionChanges(Outline);
105  MicroFeatures = ConvertToMicroFeatures (Outline, MicroFeatures);
106  }
107  FreeOutlines(Outlines);
108  }
109  return ((CHAR_FEATURES) MicroFeatures);
110 } /* BlobMicroFeatures */
void FindDirectionChanges(MFOUTLINE Outline, FLOAT32 MinSlope, FLOAT32 MaxSlope)
Definition: mfoutline.cpp:157
void CharNormalizeOutline(MFOUTLINE Outline, FLOAT32 XCenter, FLOAT32 YCenter, FLOAT32 XScale, FLOAT32 YScale)
Definition: mfoutline.cpp:439
#define NIL_LIST
Definition: oldlist.h:126
#define NULL
Definition: host.h:144
void MarkDirectionChanges(MFOUTLINE Outline)
Definition: mfoutline.cpp:243
float FLOAT32
Definition: host.h:111
char * CHAR_FEATURES
Definition: ocrfeatures.h:79
void FreeOutlines(LIST Outlines)
Definition: mfoutline.cpp:227
double classify_max_slope
Definition: mfx.cpp:39
LIST ConvertBlob(TBLOB *blob)
Definition: mfoutline.cpp:41
INT_FEATURE_STRUCT INT_FEATURE_ARRAY[MAX_NUM_INT_FEATURES]
Definition: baseapi.h:66
int ExtractIntFeat(TBLOB *Blob, const DENORM &denorm, INT_FEATURE_ARRAY BLFeat, INT_FEATURE_ARRAY CNFeat, INT_FX_RESULT_STRUCT *Results, inT32 *FeatureOutlineArray)
Definition: intfx.cpp:143
MICROFEATURES ConvertToMicroFeatures(MFOUTLINE Outline, MICROFEATURES MicroFeatures)
Definition: mfx.cpp:149
LIST MFOUTLINE
Definition: mfoutline.h:33
double classify_min_slope
Definition: mfx.cpp:37
#define iterate(l)
Definition: oldlist.h:159
#define first_node(l)
Definition: oldlist.h:139

Variable Documentation

double classify_max_slope = 2.414213562

"Slope above which lines are called vertical"

Definition at line 39 of file mfx.cpp.

double classify_min_slope = 0.414213562

Include Files and Type Defines

Variables

"Slope below which lines are called horizontal"

Definition at line 37 of file mfx.cpp.