Coverage Report

Created: 2026-09-14 06:59

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/tesseract/src/classify/mfoutline.h
Line
Count
Source
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 class 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
27.8k
  void ClearMark() {
36
27.8k
    ExtremityMark = false;
37
27.8k
  }
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 NORM_METHOD { baseline, character };
52
53
/**----------------------------------------------------------------------------
54
          Macros
55
----------------------------------------------------------------------------**/
56
template <typename T>
57
20.1k
inline constexpr T AverageOf(T A, T B) {
58
20.1k
  return (A + B) / T{2};
59
20.1k
}
60
61
// Constant for computing the scale factor to use to normalize characters.
62
constexpr float MF_SCALE_FACTOR = 0.5f / kBlnXHeight;
63
64
// Inline functions for manipulating micro-feature outlines.
65
66
5.19k
static inline bool DegenerateOutline(MFOUTLINE Outline) {
67
5.19k
  return (Outline == NIL_LIST) || (Outline == Outline->list_rest());
68
5.19k
}
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
66
1.79k
static inline bool DegenerateOutline(MFOUTLINE Outline) {
67
1.79k
  return (Outline == NIL_LIST) || (Outline == Outline->list_rest());
68
1.79k
}
picofeat.cpp:tesseract::DegenerateOutline(tesseract::list_rec*)
Line
Count
Source
66
3.40k
static inline bool DegenerateOutline(MFOUTLINE Outline) {
67
3.40k
  return (Outline == NIL_LIST) || (Outline == Outline->list_rest());
68
3.40k
}
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*)
69
70
111k
static inline MFEDGEPT *PointAt(MFOUTLINE Outline) {
71
111k
  return reinterpret_cast<MFEDGEPT *>(Outline->first_node());
72
111k
}
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
70
30.2k
static inline MFEDGEPT *PointAt(MFOUTLINE Outline) {
71
30.2k
  return reinterpret_cast<MFEDGEPT *>(Outline->first_node());
72
30.2k
}
picofeat.cpp:tesseract::PointAt(tesseract::list_rec*)
Line
Count
Source
70
53.2k
static inline MFEDGEPT *PointAt(MFOUTLINE Outline) {
71
53.2k
  return reinterpret_cast<MFEDGEPT *>(Outline->first_node());
72
53.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
70
27.8k
static inline MFEDGEPT *PointAt(MFOUTLINE Outline) {
71
27.8k
  return reinterpret_cast<MFEDGEPT *>(Outline->first_node());
72
27.8k
}
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*)
73
74
59.0k
static inline MFOUTLINE NextPointAfter(MFOUTLINE Outline) {
75
59.0k
  return Outline->list_rest();
76
59.0k
}
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
74
10.0k
static inline MFOUTLINE NextPointAfter(MFOUTLINE Outline) {
75
10.0k
  return Outline->list_rest();
76
10.0k
}
picofeat.cpp:tesseract::NextPointAfter(tesseract::list_rec*)
Line
Count
Source
74
21.1k
static inline MFOUTLINE NextPointAfter(MFOUTLINE Outline) {
75
21.1k
  return Outline->list_rest();
76
21.1k
}
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
74
27.8k
static inline MFOUTLINE NextPointAfter(MFOUTLINE Outline) {
75
27.8k
  return Outline->list_rest();
76
27.8k
}
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*)
77
78
5.19k
static inline void MakeOutlineCircular(MFOUTLINE Outline) {
79
5.19k
  set_rest(last(Outline), Outline);
80
5.19k
}
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
78
5.19k
static inline void MakeOutlineCircular(MFOUTLINE Outline) {
79
5.19k
  set_rest(last(Outline), Outline);
80
5.19k
}
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*)
81
82
/**----------------------------------------------------------------------------
83
          Public Function Prototypes
84
----------------------------------------------------------------------------**/
85
void ComputeBlobCenter(TBLOB *Blob, TPOINT *BlobCenter);
86
87
LIST ConvertBlob(TBLOB *Blob);
88
89
MFOUTLINE ConvertOutline(TESSLINE *Outline);
90
91
void FilterEdgeNoise(MFOUTLINE Outline, float NoiseSegmentLength);
92
93
void FindDirectionChanges(MFOUTLINE Outline, float MinSlope, float MaxSlope);
94
95
void FreeMFOutline(void *agr); // MFOUTLINE Outline);
96
97
void FreeOutlines(LIST Outlines);
98
99
void MarkDirectionChanges(MFOUTLINE Outline);
100
101
MFOUTLINE NextExtremity(MFOUTLINE EdgePoint);
102
103
void NormalizeOutline(MFOUTLINE Outline, float XOrigin);
104
105
/*----------------------------------------------------------------------------
106
          Private Function Prototypes
107
-----------------------------------------------------------------------------*/
108
void ChangeDirection(MFOUTLINE Start, MFOUTLINE End, DIRECTION Direction);
109
110
// Normalizes the Outline in-place using cn_denorm's local transformation,
111
// then converts from the integer feature range [0,255] to the clusterer
112
// feature range of [-0.5, 0.5].
113
void CharNormalizeOutline(MFOUTLINE Outline, const DENORM &cn_denorm);
114
115
void ComputeDirection(MFEDGEPT *Start, MFEDGEPT *Finish, float MinSlope, float MaxSlope);
116
117
MFOUTLINE NextDirectionChange(MFOUTLINE EdgePoint);
118
119
} // namespace tesseract
120
121
#endif