mirror of
https://github.com/tesseract-ocr/tesseract.git
synced 2024-12-23 23:17:49 +08:00
94 lines
3.7 KiB
C
94 lines
3.7 KiB
C
|
/******************************************************************************
|
||
|
** Filename: fxdefs.h
|
||
|
** Purpose: Generic interface definitions for feature extractors
|
||
|
** Author: Dan Johnson
|
||
|
** History: Fri Jan 19 09:04:14 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.
|
||
|
******************************************************************************/
|
||
|
#ifndef FXDEFS_H
|
||
|
#define FXDEFS_H
|
||
|
|
||
|
/**----------------------------------------------------------------------------
|
||
|
Include Files and Type Defines
|
||
|
----------------------------------------------------------------------------**/
|
||
|
#include "tessclas.h"
|
||
|
#include "general.h"
|
||
|
|
||
|
/* define different modes for feature extractor - learning vs. classifying */
|
||
|
#define LEARN_MODE 0
|
||
|
#define CLASSIFY_MODE 1
|
||
|
|
||
|
/* define a data structure to hold line statistics. These line statistics
|
||
|
are used to normalize character outlines to a standard size and position
|
||
|
relative to the baseline of the text. */
|
||
|
typedef struct
|
||
|
{
|
||
|
SPLINE_SPEC *Baseline; /* collection of splines describing baseline */
|
||
|
SPLINE_SPEC *XHeightLine; /* collection of splines describing x-height */
|
||
|
FLOAT32 xheight; /* avg. distance from x-height to baseline */
|
||
|
FLOAT32 AscRise; /* avg. distance from ascenders to x-height */
|
||
|
FLOAT32 DescDrop; /* avg. distance from baseline to descenders */
|
||
|
/* always a negative number */
|
||
|
TEXTROW *TextRow; /* kludge - only needed by fx for fast matcher */
|
||
|
/* should be removed later */
|
||
|
}
|
||
|
|
||
|
|
||
|
LINE_STATS;
|
||
|
|
||
|
/* define a generic character description as a char pointer. In reality,
|
||
|
it will be a pointer to some data structure. Paired feature
|
||
|
extractors/matchers need to agree on the data structure to be used,
|
||
|
however, the high level classifier does not need to know the details
|
||
|
of this data structure. */
|
||
|
typedef char *CHAR_FEATURES;
|
||
|
|
||
|
/**----------------------------------------------------------------------------
|
||
|
Macros
|
||
|
----------------------------------------------------------------------------**/
|
||
|
/* macro to change and monitor the mode of the feature extractor.
|
||
|
In general, learn mode smears features which would otherwise be discrete
|
||
|
in nature; classify mode does not.*/
|
||
|
#define SetExtractMode(M) (ExtractMode = (M))
|
||
|
#define EnterLearnMode (SetExtractMode (LEARN_MODE))
|
||
|
#define EnterClassifyMode (SetExtractMode (CLASSIFY_MODE))
|
||
|
|
||
|
/*----------------------------------------------------------------------------
|
||
|
Public Function Prototypes
|
||
|
-----------------------------------------------------------------------------*/
|
||
|
void SetupExtractors();
|
||
|
|
||
|
void GetLineStatsFromRow(TEXTROW *Row, LINE_STATS *LineStats);
|
||
|
|
||
|
/*
|
||
|
#if defined(__STDC__) || defined(__cplusplus)
|
||
|
# define _ARGS(s) s
|
||
|
#else
|
||
|
# define _ARGS(s) ()
|
||
|
#endif*/
|
||
|
|
||
|
/* fxdefs.c
|
||
|
void GetLineStatsFromRow
|
||
|
_ARGS((TEXTROW *Row,
|
||
|
LINE_STATS *LineStats));
|
||
|
|
||
|
#undef _ARGS
|
||
|
*/
|
||
|
|
||
|
/**----------------------------------------------------------------------------
|
||
|
Global Data Definitions and Declarations
|
||
|
----------------------------------------------------------------------------**/
|
||
|
/* flag to control learn mode vs. classify mode */
|
||
|
extern int ExtractMode;
|
||
|
#endif
|