tesseract v5.3.3.20231005
intfx.h
Go to the documentation of this file.
1/******************************************************************************
2 ** Filename: intfx.h
3 ** Purpose: Interface to high level integer feature extractor.
4 ** Author: Robert Moss
5 ** History: Tue May 21 15:51:57 MDT 1991, RWM, Created.
6 **
7 ** (c) Copyright Hewlett-Packard Company, 1988.
8 ** Licensed under the Apache License, Version 2.0 (the "License");
9 ** you may not use this file except in compliance with the License.
10 ** You may obtain a copy of the License at
11 ** http://www.apache.org/licenses/LICENSE-2.0
12 ** Unless required by applicable law or agreed to in writing, software
13 ** distributed under the License is distributed on an "AS IS" BASIS,
14 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 ** See the License for the specific language governing permissions and
16 ** limitations under the License.
17 ******************************************************************************/
18#ifndef INTFX_H
19#define INTFX_H
20
21#include "blobs.h"
22#include "intproto.h"
23#include "normalis.h"
24
25#include <cmath>
26
27namespace tesseract {
28
29class DENORM;
30
31class TrainingSample;
32
34 int32_t Length; // total length of all outlines
35 int16_t Xmean, Ymean; // center of mass of all outlines
36 int16_t Rx, Ry; // radius of gyration
37 int16_t NumBL, NumCN; // number of features extracted
38 int16_t Width; // Width of blob in BLN coords.
39 uint8_t YBottom; // Bottom of blob in BLN coords.
40 uint8_t YTop; // Top of blob in BLN coords.
41};
42
43// The standard feature length
44const double kStandardFeatureLength = 64.0 / 5;
45
50void InitIntegerFX();
51
52// Returns a vector representing the direction of a feature with the given
53// theta direction in an INT_FEATURE_STRUCT.
55FCOORD FeatureDirection(uint8_t theta);
56
57// Generates a TrainingSample from a TBLOB. Extracts features and sets
58// the bounding box, so classifiers that operate on the image can work.
59// TODO(rays) BlobToTrainingSample must remain a global function until
60// the FlexFx and FeatureDescription code can be removed and LearnBlob
61// made a member of Classify.
62TrainingSample *BlobToTrainingSample(const TBLOB &blob, bool nonlinear_norm,
63 INT_FX_RESULT_STRUCT *fx_info,
64 std::vector<INT_FEATURE_STRUCT> *bl_features);
65
66} // namespace tesseract
67
68#endif
const double kStandardFeatureLength
Definition: intfx.h:44
FCOORD FeatureDirection(uint8_t theta)
Definition: intfx.cpp:70
TrainingSample * BlobToTrainingSample(const TBLOB &blob, bool nonlinear_norm, INT_FX_RESULT_STRUCT *fx_info, std::vector< INT_FEATURE_STRUCT > *bl_features)
Definition: intfx.cpp:79
void InitIntegerFX()
Definition: intfx.cpp:54
#define TESS_API
Definition: export.h:32