tesseract v5.3.3.20231005
tesseract::TestableEquationDetect Class Reference
Inheritance diagram for tesseract::TestableEquationDetect:
tesseract::EquationDetect tesseract::EquationDetectBase

Public Member Functions

 TestableEquationDetect (const char *tessdata, Tesseract *lang_tesseract)
 
void AddMathDigitBlobs (const int math_blobs, const int digit_blobs, const int total_blobs, ColPartition *part)
 
void SetPixBinary (Image pix)
 
void RunIdentifySpecialText (BLOBNBOX *blob, const int height_th)
 
BlobSpecialTextType RunEstimateTypeForUnichar (const char *val)
 
EquationDetect::IndentType RunIsIndented (ColPartitionGrid *part_grid, ColPartition *part)
 
bool RunIsNearSmallNeighbor (const TBOX &seed_box, const TBOX &part_box)
 
bool RunCheckSeedBlobsCount (ColPartition *part)
 
float RunComputeForegroundDensity (const TBOX &tbox)
 
int RunCountAlignment (const std::vector< int > &sorted_vec, const int val)
 
void RunSplitCPHorLite (ColPartition *part, std::vector< TBOX > *splitted_boxes)
 
void RunSplitCPHor (ColPartition *part, std::vector< ColPartition * > *parts_splitted)
 
void TestComputeCPsSuperBBox (const TBOX &box, ColPartitionGrid *part_grid)
 
- Public Member Functions inherited from tesseract::EquationDetect
 EquationDetect (const char *equ_datapath, const char *equ_language)
 
 ~EquationDetect () override
 
void SetLangTesseract (Tesseract *lang_tesseract)
 
int LabelSpecialText (TO_BLOCK *to_block) override
 
int FindEquationParts (ColPartitionGrid *part_grid, ColPartitionSet **best_columns) override
 
void SetResolution (const int resolution)
 
- Public Member Functions inherited from tesseract::EquationDetectBase
 EquationDetectBase ()=default
 
virtual ~EquationDetectBase ()
 
virtual int LabelSpecialText (TO_BLOCK *to_block)=0
 
virtual int FindEquationParts (ColPartitionGrid *part_grid, ColPartitionSet **best_columns)=0
 

Additional Inherited Members

- Public Types inherited from tesseract::EquationDetect
enum  IndentType {
  NO_INDENT , LEFT_INDENT , RIGHT_INDENT , BOTH_INDENT ,
  INDENT_TYPE_COUNT
}
 
- Static Public Member Functions inherited from tesseract::EquationDetectBase
static void RenderSpecialText (Image pix, BLOBNBOX *blob)
 
- Protected Member Functions inherited from tesseract::EquationDetect
void IdentifySpecialText (BLOBNBOX *blob, const int height_th)
 
BlobSpecialTextType EstimateTypeForUnichar (const UNICHARSET &unicharset, const UNICHAR_ID id) const
 
void IdentifySpecialText ()
 
void IdentifyBlobsToSkip (ColPartition *part)
 
void MergePartsByLocation ()
 
void SearchByOverlap (ColPartition *seed, std::vector< ColPartition * > *parts_overlap)
 
void InsertPartAfterAbsorb (ColPartition *part)
 
void IdentifySeedParts ()
 
bool CheckSeedBlobsCount (ColPartition *part)
 
float ComputeForegroundDensity (const TBOX &tbox)
 
bool CheckForSeed2 (const std::vector< int > &indented_texts_left, const float foreground_density_th, ColPartition *part)
 
int CountAlignment (const std::vector< int > &sorted_vec, const int val) const
 
bool CheckSeedFgDensity (const float density_th, ColPartition *part)
 
void SplitCPHorLite (ColPartition *part, std::vector< TBOX > *splitted_boxes)
 
void SplitCPHor (ColPartition *part, std::vector< ColPartition * > *parts_splitted)
 
bool CheckSeedDensity (const float math_density_high, const float math_density_low, const ColPartition *part) const
 
IndentType IsIndented (ColPartition *part)
 
void IdentifyInlineParts ()
 
void ComputeCPsSuperBBox ()
 
void IdentifyInlinePartsHorizontal ()
 
int EstimateTextPartLineSpacing ()
 
void IdentifyInlinePartsVertical (const bool top_to_bottom, const int textPartsLineSpacing)
 
bool IsInline (const bool search_bottom, const int textPartsLineSpacing, ColPartition *part)
 
bool ExpandSeed (ColPartition *seed)
 
void ExpandSeedHorizontal (const bool search_left, ColPartition *seed, std::vector< ColPartition * > *parts_to_merge)
 
void ExpandSeedVertical (const bool search_bottom, ColPartition *seed, std::vector< ColPartition * > *parts_to_merge)
 
bool IsNearSmallNeighbor (const TBOX &seed_box, const TBOX &part_box) const
 
bool CheckSeedNeighborDensity (const ColPartition *part) const
 
void ProcessMathBlockSatelliteParts ()
 
bool IsMathBlockSatellite (ColPartition *part, std::vector< ColPartition * > *math_blocks)
 
ColPartitionSearchNNVertical (const bool search_bottom, const ColPartition *part)
 
bool IsNearMathNeighbor (const int y_gap, const ColPartition *neighbor) const
 
void GetOutputTiffName (const char *name, std::string &image_name) const
 
void PaintColParts (const std::string &outfile) const
 
void PaintSpecialTexts (const std::string &outfile) const
 
void PrintSpecialBlobsDensity (const ColPartition *part) const
 
- Protected Attributes inherited from tesseract::EquationDetect
Tesseract equ_tesseract_
 
Tesseractlang_tesseract_
 
ColPartitionGridpart_grid_ = nullptr
 
ColPartitionSet ** best_columns_ = nullptr
 
TBOXcps_super_bbox_
 
std::vector< ColPartition * > cp_seeds_
 
int resolution_
 
int page_count_
 

Detailed Description

Definition at line 33 of file equationdetect_test.cc.

Constructor & Destructor Documentation

◆ TestableEquationDetect()

tesseract::TestableEquationDetect::TestableEquationDetect ( const char *  tessdata,
Tesseract lang_tesseract 
)
inline

Definition at line 35 of file equationdetect_test.cc.

37 SetLangTesseract(lang_tesseract);
38 }
#define EQU_TRAINEDDATA_NAME
EquationDetect(const char *equ_datapath, const char *equ_language)
void SetLangTesseract(Tesseract *lang_tesseract)

Member Function Documentation

◆ AddMathDigitBlobs()

void tesseract::TestableEquationDetect::AddMathDigitBlobs ( const int  math_blobs,
const int  digit_blobs,
const int  total_blobs,
ColPartition part 
)
inline

Definition at line 41 of file equationdetect_test.cc.

42 {
43 CHECK(part != nullptr);
44 CHECK_LE(math_blobs + digit_blobs, total_blobs);
45 int count = 0;
46 for (int i = 0; i < math_blobs; i++, count++) {
47 auto *blob = new BLOBNBOX();
48 blob->set_special_text_type(BSTT_MATH);
49 part->AddBox(blob);
50 }
51 for (int i = 0; i < digit_blobs; i++, count++) {
52 auto *blob = new BLOBNBOX();
53 blob->set_special_text_type(BSTT_DIGIT);
54 part->AddBox(blob);
55 }
56 for (int i = count; i < total_blobs; i++) {
57 auto *blob = new BLOBNBOX();
58 blob->set_special_text_type(BSTT_NONE);
59 part->AddBox(blob);
60 }
61 }
int * count
#define CHECK(condition)
Definition: include_gunit.h:76
#define CHECK_LE(test, value)
Definition: include_gunit.h:83
@ BSTT_MATH
Definition: blobbox.h:96
@ BSTT_DIGIT
Definition: blobbox.h:95
@ BSTT_NONE
Definition: blobbox.h:93

◆ RunCheckSeedBlobsCount()

bool tesseract::TestableEquationDetect::RunCheckSeedBlobsCount ( ColPartition part)
inline

Definition at line 87 of file equationdetect_test.cc.

87 {
88 return CheckSeedBlobsCount(part);
89 }
bool CheckSeedBlobsCount(ColPartition *part)

◆ RunComputeForegroundDensity()

float tesseract::TestableEquationDetect::RunComputeForegroundDensity ( const TBOX tbox)
inline

Definition at line 91 of file equationdetect_test.cc.

91 {
92 return ComputeForegroundDensity(tbox);
93 }
float ComputeForegroundDensity(const TBOX &tbox)

◆ RunCountAlignment()

int tesseract::TestableEquationDetect::RunCountAlignment ( const std::vector< int > &  sorted_vec,
const int  val 
)
inline

Definition at line 95 of file equationdetect_test.cc.

95 {
96 return CountAlignment(sorted_vec, val);
97 }
int CountAlignment(const std::vector< int > &sorted_vec, const int val) const

◆ RunEstimateTypeForUnichar()

BlobSpecialTextType tesseract::TestableEquationDetect::RunEstimateTypeForUnichar ( const char *  val)
inline

Definition at line 73 of file equationdetect_test.cc.

73 {
74 const UNICHARSET &unicharset = lang_tesseract_->unicharset;
75 return EstimateTypeForUnichar(unicharset, unicharset.unichar_to_id(val));
76 }
BlobSpecialTextType EstimateTypeForUnichar(const UNICHARSET &unicharset, const UNICHAR_ID id) const
UNICHARSET unicharset
Definition: ccutil.h:61

◆ RunIdentifySpecialText()

void tesseract::TestableEquationDetect::RunIdentifySpecialText ( BLOBNBOX blob,
const int  height_th 
)
inline

Definition at line 69 of file equationdetect_test.cc.

69 {
70 IdentifySpecialText(blob, height_th);
71 }

◆ RunIsIndented()

EquationDetect::IndentType tesseract::TestableEquationDetect::RunIsIndented ( ColPartitionGrid part_grid,
ColPartition part 
)
inline

Definition at line 78 of file equationdetect_test.cc.

78 {
79 this->part_grid_ = part_grid;
80 return IsIndented(part);
81 }
IndentType IsIndented(ColPartition *part)
ColPartitionGrid * part_grid_

◆ RunIsNearSmallNeighbor()

bool tesseract::TestableEquationDetect::RunIsNearSmallNeighbor ( const TBOX seed_box,
const TBOX part_box 
)
inline

Definition at line 83 of file equationdetect_test.cc.

83 {
84 return IsNearSmallNeighbor(seed_box, part_box);
85 }
bool IsNearSmallNeighbor(const TBOX &seed_box, const TBOX &part_box) const

◆ RunSplitCPHor()

void tesseract::TestableEquationDetect::RunSplitCPHor ( ColPartition part,
std::vector< ColPartition * > *  parts_splitted 
)
inline

Definition at line 103 of file equationdetect_test.cc.

103 {
104 SplitCPHor(part, parts_splitted);
105 }
void SplitCPHor(ColPartition *part, std::vector< ColPartition * > *parts_splitted)

◆ RunSplitCPHorLite()

void tesseract::TestableEquationDetect::RunSplitCPHorLite ( ColPartition part,
std::vector< TBOX > *  splitted_boxes 
)
inline

Definition at line 99 of file equationdetect_test.cc.

99 {
100 SplitCPHorLite(part, splitted_boxes);
101 }
void SplitCPHorLite(ColPartition *part, std::vector< TBOX > *splitted_boxes)

◆ SetPixBinary()

void tesseract::TestableEquationDetect::SetPixBinary ( Image  pix)
inline

Definition at line 64 of file equationdetect_test.cc.

64 {
65 CHECK_EQ(1, pixGetDepth(pix));
67 }
#define CHECK_EQ(test, value)
Definition: include_gunit.h:79
Image * mutable_pix_binary()

◆ TestComputeCPsSuperBBox()

void tesseract::TestableEquationDetect::TestComputeCPsSuperBBox ( const TBOX box,
ColPartitionGrid part_grid 
)
inline

Definition at line 107 of file equationdetect_test.cc.

107 {
108 CHECK(part_grid != nullptr);
109 part_grid_ = part_grid;
112 }
#define EXPECT_TRUE(condition)
Definition: gtest.h:1982

The documentation for this class was generated from the following file: