/home/rays/src/opensrc/tesseract-ocr/classify/mfoutline.h File Reference

#include "host.h"
#include "oldlist.h"
#include "fpoint.h"
#include "baseline.h"
#include "params.h"

Go to the source code of this file.

Classes

struct  MFEDGEPT
struct  OUTLINE_STATS

Defines

#define NORMAL_X_HEIGHT   (0.5)
#define NORMAL_BASELINE   (0.0)
#define AverageOf(A, B)   (((A) + (B)) / 2)
#define MF_SCALE_FACTOR   (NORMAL_X_HEIGHT / BASELINE_SCALE)
#define DegenerateOutline(O)   (((O) == NIL_LIST) || ((O) == list_rest(O)))
#define PointAt(O)   ((MFEDGEPT *) first_node (O))
#define NextPointAfter(E)   (list_rest (E))
#define MakeOutlineCircular(O)   (set_rest (last (O), (O)))
#define ClearMark(P)   ((P)->ExtremityMark = FALSE)
#define MarkPoint(P)   ((P)->ExtremityMark = TRUE)

Typedefs

typedef LIST MFOUTLINE

Enumerations

enum  DIRECTION {
  north, south, east, west,
  northeast, northwest, southeast, southwest
}
enum  OUTLINETYPE { outer, hole }
enum  NORM_METHOD { baseline, character }

Functions

void ComputeBlobCenter (TBLOB *Blob, TPOINT *BlobCenter)
LIST ConvertBlob (TBLOB *Blob)
MFOUTLINE ConvertOutline (TESSLINE *Outline)
LIST ConvertOutlines (TESSLINE *Outline, LIST ConvertedOutlines, OUTLINETYPE OutlineType)
void ComputeOutlineStats (LIST Outlines, OUTLINE_STATS *OutlineStats)
void FilterEdgeNoise (MFOUTLINE Outline, FLOAT32 NoiseSegmentLength)
void FindDirectionChanges (MFOUTLINE Outline, FLOAT32 MinSlope, FLOAT32 MaxSlope)
void FreeMFOutline (void *agr)
void FreeOutlines (LIST Outlines)
void MarkDirectionChanges (MFOUTLINE Outline)
MFEDGEPTNewEdgePoint ()
MFOUTLINE NextExtremity (MFOUTLINE EdgePoint)
void NormalizeOutline (MFOUTLINE Outline, FLOAT32 XOrigin)
void ChangeDirection (MFOUTLINE Start, MFOUTLINE End, DIRECTION Direction)
void CharNormalizeOutline (MFOUTLINE Outline, FLOAT32 XCenter, FLOAT32 YCenter, FLOAT32 XScale, FLOAT32 YScale)
void ComputeDirection (MFEDGEPT *Start, MFEDGEPT *Finish, FLOAT32 MinSlope, FLOAT32 MaxSlope)
void FinishOutlineStats (register OUTLINE_STATS *OutlineStats)
void InitOutlineStats (OUTLINE_STATS *OutlineStats)
MFOUTLINE NextDirectionChange (MFOUTLINE EdgePoint)
void UpdateOutlineStats (register OUTLINE_STATS *OutlineStats, register FLOAT32 x1, register FLOAT32 x2, register FLOAT32 y1, register FLOAT32 y2)

Define Documentation

#define AverageOf ( A,
 )     (((A) + (B)) / 2)

---------------------------------------------------------------------------- Macros ----------------------------------------------------------------------------

#define ClearMark (  )     ((P)->ExtremityMark = FALSE)
#define DegenerateOutline (  )     (((O) == NIL_LIST) || ((O) == list_rest(O)))
#define MakeOutlineCircular (  )     (set_rest (last (O), (O)))
#define MarkPoint (  )     ((P)->ExtremityMark = TRUE)
#define MF_SCALE_FACTOR   (NORMAL_X_HEIGHT / BASELINE_SCALE)
#define NextPointAfter (  )     (list_rest (E))
#define NORMAL_BASELINE   (0.0)
#define NORMAL_X_HEIGHT   (0.5)

---------------------------------------------------------------------------- Include Files and Type Defines ----------------------------------------------------------------------------

#define PointAt (  )     ((MFEDGEPT *) first_node (O))

Typedef Documentation

typedef LIST MFOUTLINE

Enumeration Type Documentation

enum DIRECTION
Enumerator:
north 
south 
east 
west 
northeast 
northwest 
southeast 
southwest 
Enumerator:
baseline 
character 
Enumerator:
outer 
hole 

Function Documentation

void ChangeDirection ( MFOUTLINE  Start,
MFOUTLINE  End,
DIRECTION  Direction 
)

---------------------------------------------------------------------------- Private Code ----------------------------------------------------------------------------

void CharNormalizeOutline ( MFOUTLINE  Outline,
FLOAT32  XCenter,
FLOAT32  YCenter,
FLOAT32  XScale,
FLOAT32  YScale 
)
void ComputeBlobCenter ( TBLOB Blob,
TPOINT BlobCenter 
)

---------------------------------------------------------------------------- Public Function Prototypes ----------------------------------------------------------------------------

void ComputeDirection ( MFEDGEPT Start,
MFEDGEPT Finish,
FLOAT32  MinSlope,
FLOAT32  MaxSlope 
)
void ComputeOutlineStats ( LIST  Outlines,
OUTLINE_STATS OutlineStats 
)
LIST ConvertBlob ( TBLOB Blob  ) 
MFOUTLINE ConvertOutline ( TESSLINE Outline  ) 
LIST ConvertOutlines ( TESSLINE Outline,
LIST  ConvertedOutlines,
OUTLINETYPE  OutlineType 
)
void FilterEdgeNoise ( MFOUTLINE  Outline,
FLOAT32  NoiseSegmentLength 
)
void FindDirectionChanges ( MFOUTLINE  Outline,
FLOAT32  MinSlope,
FLOAT32  MaxSlope 
)
void FinishOutlineStats ( register OUTLINE_STATS OutlineStats  ) 
void FreeMFOutline ( void *  agr  ) 
void FreeOutlines ( LIST  Outlines  ) 
void InitOutlineStats ( OUTLINE_STATS OutlineStats  ) 
void MarkDirectionChanges ( MFOUTLINE  Outline  ) 
MFEDGEPT* NewEdgePoint (  ) 
MFOUTLINE NextDirectionChange ( MFOUTLINE  EdgePoint  ) 
MFOUTLINE NextExtremity ( MFOUTLINE  EdgePoint  ) 
void NormalizeOutline ( MFOUTLINE  Outline,
FLOAT32  XOrigin 
)
void UpdateOutlineStats ( register OUTLINE_STATS OutlineStats,
register FLOAT32  x1,
register FLOAT32  x2,
register FLOAT32  y1,
register FLOAT32  y2 
)
Generated on Thu Feb 2 08:19:22 2012 for Tesseract by  doxygen 1.6.3