66 LIST RemainingOutlines;
74 RemainingOutlines = Outlines;
122 Delta.
x =
XDelta (*Start, *End) / NumFeatures;
123 Delta.
y =
YDelta (*Start, *End) / NumFeatures;
126 Center.
x = Start->
x + Delta.
x / 2.0;
127 Center.
y = Start->
y + Delta.
y / 2.0;
130 for (i = 0; i < NumFeatures; i++) {
175 &(
PointAt(Next)->Point), FeatureSet);
180 while (Current != First);
224 blob,
false, &local_fx_info, &bl_features);
225 if (
sample ==
nullptr)
return nullptr;
227 uint32_t num_features =
sample->num_features();
230 for (uint32_t f = 0; f < num_features; ++f) {
254 blob,
false, &local_fx_info, &bl_features);
255 if (
sample ==
nullptr)
return nullptr;
TrainingSample * BlobToTrainingSample(const TBLOB &blob, bool nonlinear_norm, INT_FX_RESULT_STRUCT *fx_info, GenericVector< INT_FEATURE_STRUCT > *bl_features)
void NormalizeOutlines(LIST Outlines, float *XScale, float *YScale)
FEATURE_SET ExtractIntCNFeatures(const TBLOB &blob, const INT_FX_RESULT_STRUCT &fx_info)
FEATURE_SET ExtractIntGeoFeatures(const TBLOB &blob, const INT_FX_RESULT_STRUCT &fx_info)
FEATURE_SET NewFeatureSet(int NumFeatures)
void FreeOutlines(LIST Outlines)
#define DegenerateOutline(O)
#define double_VAR(name, val, comment)
float DistanceBetween(FPOINT A, FPOINT B)
float NormalizedAngleFrom(FPOINT *Point1, FPOINT *Point2, float FullScale)
const FEATURE_DESC_STRUCT IntFeatDesc
#define MAX_PICO_FEATURES
double classify_pico_feature_length
LIST ConvertBlob(TBLOB *blob)
void ConvertSegmentToPicoFeat(FPOINT *Start, FPOINT *End, FEATURE_SET FeatureSet)
void ConvertToPicoFeatures2(MFOUTLINE Outline, FEATURE_SET FeatureSet)
void NormalizePicoX(FEATURE_SET FeatureSet)
FEATURE NewFeature(const FEATURE_DESC_STRUCT *FeatureDesc)
#define NextPointAfter(E)
TESS_API const FEATURE_DESC_STRUCT PicoFeatDesc
bool AddFeature(FEATURE_SET FeatureSet, FEATURE Feature)
FEATURE_SET ExtractPicoFeatures(TBLOB *Blob)