tesseract/classify/fxdefs.cpp
2010-07-27 13:23:23 +00:00

76 lines
2.8 KiB
C++

/******************************************************************************
** 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];
}
/**
* This routine copies the relavent fields from the
* Row struct to the LineStats struct.
*
* Globals:
* - none
*
* @param Row text row to get line statistics from
* @param[out] LineStats place to put line statistics
*
* @note History: Mon Mar 11 10:38:43 1991, DSJ, Created.
*/
void GetLineStatsFromRow(TEXTROW *Row, LINE_STATS *LineStats) {
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 */