src/classify/mfx.cpp
MICROFEATURES BlobMicroFeatures(TBLOB *Blob, const DENORM &cn_denorm) {
  MICROFEATURES MicroFeatures;
  LIST Outlines;
  LIST RemainingOutlines;

  if (Blob != nullptr) {
    Outlines = ConvertBlob(Blob);

    RemainingOutlines = Outlines;
    iterate(RemainingOutlines) {
      auto Outline = static_cast<MFOUTLINE>(RemainingOutlines->first_node());
      CharNormalizeOutline(Outline, cn_denorm);
    }

    RemainingOutlines = Outlines;
    iterate(RemainingOutlines) {
      auto Outline = static_cast<MFOUTLINE>(RemainingOutlines->first_node());
      FindDirectionChanges(Outline, classify_min_slope, classify_max_slope);
      MarkDirectionChanges(Outline);
      MicroFeatures = ConvertToMicroFeatures(Outline, MicroFeatures);
    }
    FreeOutlines(Outlines);
  }
  return MicroFeatures;
}
/**
 * This routine extracts micro-features from the specified
 * blob and returns a list of the micro-features.  All
 * micro-features are normalized according to the specified
 * line statistics.
 * @param Blob blob to extract micro-features from
 * @param cn_denorm control parameter to feature extractor
 * @return List of micro-features extracted from the blob.
 */
This routine extracts micro-features from the specified
blob and returns a list of the micro-features.  All
micro-features are normalized according to the specified
line statistics.
@param Blob blob to extract micro-features from
@param cn_denorm control parameter to feature extractor
@return List of micro-features extracted from the blob.
This routine extracts micro - features from the specified blob and returns a list of the micro - features . All micro - features are normalized according to the specified line statistics . @param Blob blob to extract micro - features from @param cn_denorm control parameter to feature extractor @return List of micro - features extracted from the blob .
MICROFEATURES BlobMicroFeatures(TBLOB *Blob, const DENORM &cn_denorm) {
  MICROFEATURES MicroFeatures;
  LIST Outlines;
  LIST RemainingOutlines;
  if (Blob != nullptr) {
    Outlines = ConvertBlob(Blob);
    RemainingOutlines = Outlines;
    iterate(RemainingOutlines) {
      auto Outline = static_cast<MFOUTLINE>(RemainingOutlines->first_node());
      CharNormalizeOutline(Outline, cn_denorm);
    }
    RemainingOutlines = Outlines;
    iterate(RemainingOutlines) {
      auto Outline = static_cast<MFOUTLINE>(RemainingOutlines->first_node());
      FindDirectionChanges(Outline, classify_min_slope, classify_max_slope);
      MarkDirectionChanges(Outline);
      MicroFeatures = ConvertToMicroFeatures(Outline, MicroFeatures);
    }
    FreeOutlines(Outlines);
  }
  return MicroFeatures;
}
MICROFEATURES BlobMicroFeatures ( TBLOB * Blob , const DENORM & cn_denorm ) { MICROFEATURES MicroFeatures ; LIST Outlines ; LIST RemainingOutlines ; if ( Blob != nullptr ) { Outlines = ConvertBlob ( Blob ) ; RemainingOutlines = Outlines ; iterate ( RemainingOutlines ) { auto Outline = static_cast < MFOUTLINE > ( RemainingOutlines -> first_node ( ) ) ; CharNormalizeOutline ( Outline , cn_denorm ) ; } RemainingOutlines = Outlines ; iterate ( RemainingOutlines ) { auto Outline = static_cast < MFOUTLINE > ( RemainingOutlines -> first_node ( ) ) ; FindDirectionChanges ( Outline , classify_min_slope , classify_max_slope ) ; MarkDirectionChanges ( Outline ) ; MicroFeatures = ConvertToMicroFeatures ( Outline , MicroFeatures ) ; } FreeOutlines ( Outlines ) ; } return MicroFeatures ; }
This routine extracts micro-features from the specified
 blob and returns a list of the micro-features.
This routine extracts micro - features from the specified blob and returns a list of the micro - features .