Coverage Report

Created: 2025-06-13 07:15

/src/tesseract/src/classify/mfoutline.h
Line
Count
Source (jump to first uncovered line)
1
/******************************************************************************
2
 ** Filename:    mfoutline.h
3
 ** Purpose:     Interface spec for fx outline structures
4
 ** Author:      Dan Johnson
5
 **
6
 ** (c) Copyright Hewlett-Packard Company, 1988.
7
 ** Licensed under the Apache License, Version 2.0 (the "License");
8
 ** you may not use this file except in compliance with the License.
9
 ** You may obtain a copy of the License at
10
 ** http://www.apache.org/licenses/LICENSE-2.0
11
 ** Unless required by applicable law or agreed to in writing, software
12
 ** distributed under the License is distributed on an "AS IS" BASIS,
13
 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 ** See the License for the specific language governing permissions and
15
 ** limitations under the License.
16
 ******************************************************************************/
17
18
#ifndef MFOUTLINE_H
19
#define MFOUTLINE_H
20
21
#include "blobs.h"
22
#include "fpoint.h"
23
#include "oldlist.h"
24
#include "params.h"
25
26
namespace tesseract {
27
28
using MFOUTLINE = LIST;
29
30
enum DIRECTION : uint8_t { north, south, east, west, northeast, northwest, southeast, southwest };
31
32
struct MFEDGEPT {
33
  // Inline functions for manipulating micro-feature outline edge points.
34
35
34.4k
  void ClearMark() {
36
34.4k
    ExtremityMark = false;
37
34.4k
  }
38
39
0
  void MarkPoint() {
40
0
    ExtremityMark = true;
41
0
  }
42
43
  FPOINT Point;
44
  float Slope;
45
  bool Hidden;
46
  bool ExtremityMark;
47
  DIRECTION Direction;
48
  DIRECTION PreviousDirection;
49
};
50
51
enum OUTLINETYPE { outer, hole };
52
53
enum NORM_METHOD { baseline, character };
54
55
/**----------------------------------------------------------------------------
56
          Macros
57
----------------------------------------------------------------------------**/
58
21.3k
#define AverageOf(A, B) (((A) + (B)) / 2)
59
60
// Constant for computing the scale factor to use to normalize characters.
61
const float MF_SCALE_FACTOR = 0.5f / kBlnXHeight;
62
63
// Inline functions for manipulating micro-feature outlines.
64
65
6.77k
static inline bool DegenerateOutline(MFOUTLINE Outline) {
66
6.77k
  return (Outline == NIL_LIST) || (Outline == Outline->list_rest());
67
6.77k
}
Unexecuted instantiation: baseapi.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: applybox.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: control.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: linerec.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: ltrresultiterator.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: output.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: pageiterator.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: pagesegmain.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: reject.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: resultiterator.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: tessedit.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: tesseractclass.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: adaptions.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: docqual.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: equationdetect.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: fixspace.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: fixxht.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: osdetect.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: par_control.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: recogtraining.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: superscript.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: tessbox.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: tfacepp.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: classify.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: adaptmatch.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: blobclass.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: cutoffs.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: float2int.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: intfx.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: intmatcher.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: intproto.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: mfx.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: normfeat.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: normmatch.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
outfeat.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Line
Count
Source
65
1.85k
static inline bool DegenerateOutline(MFOUTLINE Outline) {
66
1.85k
  return (Outline == NIL_LIST) || (Outline == Outline->list_rest());
67
1.85k
}
picofeat.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Line
Count
Source
65
4.92k
static inline bool DegenerateOutline(MFOUTLINE Outline) {
66
4.92k
  return (Outline == NIL_LIST) || (Outline == Outline->list_rest());
67
4.92k
}
Unexecuted instantiation: protos.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: shapetable.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: tessclassifier.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: trainingsample.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: tface.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: wordrec.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: chopper.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: findseam.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: gradechop.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: pieces.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: segsearch.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: wordclass.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: adaptive.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: intfeaturespace.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: mfoutline.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: shapeclassifier.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: chop.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Unexecuted instantiation: outlines.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
68
69
137k
static inline MFEDGEPT *PointAt(MFOUTLINE Outline) {
70
137k
  return reinterpret_cast<MFEDGEPT *>(Outline->first_node());
71
137k
}
Unexecuted instantiation: baseapi.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: applybox.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: control.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: linerec.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: ltrresultiterator.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: output.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: pageiterator.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: pagesegmain.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: reject.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: resultiterator.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: tessedit.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: tesseractclass.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: adaptions.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: docqual.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: equationdetect.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: fixspace.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: fixxht.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: osdetect.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: par_control.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: recogtraining.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: superscript.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: tessbox.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: tfacepp.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: classify.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: adaptmatch.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: blobclass.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: cutoffs.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: float2int.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: intfx.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: intmatcher.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: intproto.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: mfx.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: normfeat.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: normmatch.cpp:tesseract::PointAt(tesseract::list_rec*)
outfeat.cpp:tesseract::PointAt(tesseract::list_rec*)
Line
Count
Source
69
32.0k
static inline MFEDGEPT *PointAt(MFOUTLINE Outline) {
70
32.0k
  return reinterpret_cast<MFEDGEPT *>(Outline->first_node());
71
32.0k
}
picofeat.cpp:tesseract::PointAt(tesseract::list_rec*)
Line
Count
Source
69
71.2k
static inline MFEDGEPT *PointAt(MFOUTLINE Outline) {
70
71.2k
  return reinterpret_cast<MFEDGEPT *>(Outline->first_node());
71
71.2k
}
Unexecuted instantiation: protos.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: shapetable.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: tessclassifier.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: trainingsample.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: tface.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: wordrec.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: chopper.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: findseam.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: gradechop.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: pieces.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: segsearch.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: wordclass.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: adaptive.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: intfeaturespace.cpp:tesseract::PointAt(tesseract::list_rec*)
mfoutline.cpp:tesseract::PointAt(tesseract::list_rec*)
Line
Count
Source
69
34.4k
static inline MFEDGEPT *PointAt(MFOUTLINE Outline) {
70
34.4k
  return reinterpret_cast<MFEDGEPT *>(Outline->first_node());
71
34.4k
}
Unexecuted instantiation: shapeclassifier.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: chop.cpp:tesseract::PointAt(tesseract::list_rec*)
Unexecuted instantiation: outlines.cpp:tesseract::PointAt(tesseract::list_rec*)
72
73
73.7k
static inline MFOUTLINE NextPointAfter(MFOUTLINE Outline) {
74
73.7k
  return Outline->list_rest();
75
73.7k
}
Unexecuted instantiation: baseapi.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: applybox.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: control.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: linerec.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: ltrresultiterator.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: output.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: pageiterator.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: pagesegmain.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: reject.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: resultiterator.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: tessedit.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: tesseractclass.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: adaptions.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: docqual.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: equationdetect.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: fixspace.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: fixxht.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: osdetect.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: par_control.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: recogtraining.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: superscript.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: tessbox.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: tfacepp.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: classify.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: adaptmatch.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: blobclass.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: cutoffs.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: float2int.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: intfx.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: intmatcher.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: intproto.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: mfx.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: normfeat.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: normmatch.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
outfeat.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Line
Count
Source
73
10.6k
static inline MFOUTLINE NextPointAfter(MFOUTLINE Outline) {
74
10.6k
  return Outline->list_rest();
75
10.6k
}
picofeat.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Line
Count
Source
73
28.6k
static inline MFOUTLINE NextPointAfter(MFOUTLINE Outline) {
74
28.6k
  return Outline->list_rest();
75
28.6k
}
Unexecuted instantiation: protos.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: shapetable.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: tessclassifier.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: trainingsample.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: tface.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: wordrec.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: chopper.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: findseam.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: gradechop.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: pieces.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: segsearch.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: wordclass.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: adaptive.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: intfeaturespace.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
mfoutline.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Line
Count
Source
73
34.4k
static inline MFOUTLINE NextPointAfter(MFOUTLINE Outline) {
74
34.4k
  return Outline->list_rest();
75
34.4k
}
Unexecuted instantiation: shapeclassifier.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: chop.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Unexecuted instantiation: outlines.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
76
77
6.77k
static inline void MakeOutlineCircular(MFOUTLINE Outline) {
78
6.77k
  set_rest(last(Outline), Outline);
79
6.77k
}
Unexecuted instantiation: baseapi.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: applybox.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: control.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: linerec.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: ltrresultiterator.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: output.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: pageiterator.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: pagesegmain.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: reject.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: resultiterator.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: tessedit.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: tesseractclass.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: adaptions.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: docqual.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: equationdetect.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: fixspace.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: fixxht.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: osdetect.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: par_control.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: recogtraining.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: superscript.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: tessbox.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: tfacepp.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: classify.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: adaptmatch.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: blobclass.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: cutoffs.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: float2int.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: intfx.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: intmatcher.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: intproto.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: mfx.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: normfeat.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: normmatch.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: outfeat.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: picofeat.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: protos.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: shapetable.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: tessclassifier.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: trainingsample.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: tface.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: wordrec.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: chopper.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: findseam.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: gradechop.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: pieces.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: segsearch.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: wordclass.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: adaptive.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: intfeaturespace.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
mfoutline.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Line
Count
Source
77
6.77k
static inline void MakeOutlineCircular(MFOUTLINE Outline) {
78
6.77k
  set_rest(last(Outline), Outline);
79
6.77k
}
Unexecuted instantiation: shapeclassifier.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: chop.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
Unexecuted instantiation: outlines.cpp:tesseract::MakeOutlineCircular(tesseract::list_rec*)
80
81
/**----------------------------------------------------------------------------
82
          Public Function Prototypes
83
----------------------------------------------------------------------------**/
84
void ComputeBlobCenter(TBLOB *Blob, TPOINT *BlobCenter);
85
86
LIST ConvertBlob(TBLOB *Blob);
87
88
MFOUTLINE ConvertOutline(TESSLINE *Outline);
89
90
LIST ConvertOutlines(TESSLINE *Outline, LIST ConvertedOutlines, OUTLINETYPE OutlineType);
91
92
void FilterEdgeNoise(MFOUTLINE Outline, float NoiseSegmentLength);
93
94
void FindDirectionChanges(MFOUTLINE Outline, float MinSlope, float MaxSlope);
95
96
void FreeMFOutline(void *agr); // MFOUTLINE Outline);
97
98
void FreeOutlines(LIST Outlines);
99
100
void MarkDirectionChanges(MFOUTLINE Outline);
101
102
MFOUTLINE NextExtremity(MFOUTLINE EdgePoint);
103
104
void NormalizeOutline(MFOUTLINE Outline, float XOrigin);
105
106
/*----------------------------------------------------------------------------
107
          Private Function Prototypes
108
-----------------------------------------------------------------------------*/
109
void ChangeDirection(MFOUTLINE Start, MFOUTLINE End, DIRECTION Direction);
110
111
// Normalizes the Outline in-place using cn_denorm's local transformation,
112
// then converts from the integer feature range [0,255] to the clusterer
113
// feature range of [-0.5, 0.5].
114
void CharNormalizeOutline(MFOUTLINE Outline, const DENORM &cn_denorm);
115
116
void ComputeDirection(MFEDGEPT *Start, MFEDGEPT *Finish, float MinSlope, float MaxSlope);
117
118
MFOUTLINE NextDirectionChange(MFOUTLINE EdgePoint);
119
120
} // namespace tesseract
121
122
#endif