blob: 702a36b222ee3b69675bde8dc8e2a5514bdb6eb5 [file] [log] [blame]
/******************************************************************************
** Filename: fxdefs.c
** Purpose: Utility functions to be used by feature extractors.
** Author: Dan Johnson
** History: Sun Jan 21 15:29:02 1990, DSJ, Created.
**
** (c) Copyright Hewlett-Packard Company, 1988.
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
** http://www.apache.org/licenses/LICENSE-2.0
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
******************************************************************************/
#include "fxdefs.h"
#include "featdefs.h"
#include "mf.h"
#include "outfeat.h"
#include "picofeat.h"
#include "normfeat.h"
/**----------------------------------------------------------------------------
Global Data Definitions and Declarations
----------------------------------------------------------------------------**/
/* flag to control learn mode vs. classify mode */
int ExtractMode;
// Definitions of extractors separated from feature definitions.
DefineFeatureExt (MicroFeatureExt, ExtractMicros)
DefineFeatureExt (PicoFeatExt, NULL)
DefineFeatureExt (CharNormExt, ExtractCharNormFeatures)
DefineFeatureExt (OutlineFeatExt, NULL)
FEATURE_EXT_STRUCT* ExtractorDefs[NUM_FEATURE_TYPES] = {
&MicroFeatureExt,
&PicoFeatExt,
&OutlineFeatExt,
&CharNormExt
};
/**----------------------------------------------------------------------------
Public Code
----------------------------------------------------------------------------**/
/*---------------------------------------------------------------------------*/
void SetupExtractors() {
for (int i = 0; i < NUM_FEATURE_TYPES; ++i)
FeatureDefs.FeatureExtractors[i] = ExtractorDefs[i];
}
void GetLineStatsFromRow(TEXTROW *Row, LINE_STATS *LineStats) {
/*
** Parameters:
** Row text row to get line statistics from
** LineStats place to put line statistics
** Globals: none
** Operation: This routine copies the relavent fields from the
** Row struct to the LineStats struct.
** Return: none (results are returned in LineStats)
** Exceptions: none
** History: Mon Mar 11 10:38:43 1991, DSJ, Created.
*/
LineStats->Baseline = &(Row->baseline);
LineStats->XHeightLine = &(Row->xheight);
LineStats->xheight = Row->lineheight;
LineStats->AscRise = Row->ascrise;
LineStats->DescDrop = Row->descdrop;
LineStats->TextRow = Row; /* kludge - only needed by fx for */
/* fast matcher - remove later */
} /* GetLineStatsFromRow */