65 LIST RemainingOutlines;
73 RemainingOutlines = Outlines;
121 Delta.
x =
XDelta (*Start, *End) / NumFeatures;
122 Delta.
y =
YDelta (*Start, *End) / NumFeatures;
125 Center.
x = Start->
x + Delta.
x / 2.0;
126 Center.
y = Start->
y + Delta.
y / 2.0;
129 for (i = 0; i < NumFeatures; i++) {
174 &(
PointAt(Next)->Point), FeatureSet);
179 while (Current != First);
222 blob,
false, &local_fx_info, &bl_features);
223 if (sample ==
nullptr)
return nullptr;
228 for (uint32_t f = 0; f < num_features; ++f) {
252 blob,
false, &local_fx_info, &bl_features);
253 if (sample ==
nullptr)
return nullptr;
float NormalizedAngleFrom(FPOINT *Point1, FPOINT *Point2, float FullScale)
const FEATURE_DESC_STRUCT IntFeatDesc
FEATURE_SET NewFeatureSet(int NumFeatures)
void FreeOutlines(LIST Outlines)
const INT_FEATURE_STRUCT * features() const
#define MAX_PICO_FEATURES
int geo_feature(int index) const
#define double_VAR(name, val, comment)
FEATURE NewFeature(const FEATURE_DESC_STRUCT *FeatureDesc)
#define DegenerateOutline(O)
FEATURE_SET ExtractIntGeoFeatures(const TBLOB &blob, const INT_FX_RESULT_STRUCT &fx_info)
void NormalizeOutlines(LIST Outlines, float *XScale, float *YScale)
float DistanceBetween(FPOINT A, FPOINT B)
void ConvertToPicoFeatures2(MFOUTLINE Outline, FEATURE_SET FeatureSet)
bool AddFeature(FEATURE_SET FeatureSet, FEATURE Feature)
FEATURE_SET ExtractPicoFeatures(TBLOB *Blob)
void ConvertSegmentToPicoFeat(FPOINT *Start, FPOINT *End, FEATURE_SET FeatureSet)
TESS_API const FEATURE_DESC_STRUCT PicoFeatDesc
uint32_t num_features() const
#define NextPointAfter(E)
FEATURE_SET ExtractIntCNFeatures(const TBLOB &blob, const INT_FX_RESULT_STRUCT &fx_info)
TrainingSample * BlobToTrainingSample(const TBLOB &blob, bool nonlinear_norm, INT_FX_RESULT_STRUCT *fx_info, GenericVector< INT_FEATURE_STRUCT > *bl_features)
void NormalizePicoX(FEATURE_SET FeatureSet)
double classify_pico_feature_length
LIST ConvertBlob(TBLOB *blob)