comparison mupdf-source/thirdparty/tesseract/src/classify/intfx.h @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
comparison
equal deleted inserted replaced
1:1d09e1dec1d9 2:b50eed0cc0ef
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
27 namespace tesseract {
28
29 class DENORM;
30
31 class TrainingSample;
32
33 struct INT_FX_RESULT_STRUCT {
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
44 const double kStandardFeatureLength = 64.0 / 5;
45
46 /**----------------------------------------------------------------------------
47 Public Function Prototypes
48 ----------------------------------------------------------------------------**/
49 TESS_API
50 void InitIntegerFX();
51
52 // Returns a vector representing the direction of a feature with the given
53 // theta direction in an INT_FEATURE_STRUCT.
54 TESS_API
55 FCOORD 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.
62 TrainingSample *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