-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy patha00086_source.html
180 lines (178 loc) · 77.2 KB
/
a00086_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>tesseract: /usr/src/tesseract-ocr.master/src/ccmain/equationdetect.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">tesseract
 <span id="projectnumber">4.0.0-1-g2a2b</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a00086_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">equationdetect.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00086.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">// File: equationdetect.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// Description: The equation detection class that inherits equationdetectbase.</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// Author: Zongyi (Joe) Liu ([email protected])</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Created: Fri Aug 31 11:13:01 PST 2011</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">// (C) Copyright 2011, Google Inc.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">//</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment"></span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#ifndef TESSERACT_CCMAIN_EQUATIONDETECT_H_</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#define TESSERACT_CCMAIN_EQUATIONDETECT_H_</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "<a class="code" href="a00224.html">blobbox.h</a>"</span> <span class="comment">// for BLOBNBOX (ptr only), BlobSpecialText...</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="a01175.html">equationdetectbase.h</a>"</span> <span class="comment">// for EquationDetectBase</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="a00518.html">genericvector.h</a>"</span> <span class="comment">// for GenericVector</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="a00191.html">tesseractclass.h</a>"</span> <span class="comment">// for Tesseract</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="a00605.html">unichar.h</a>"</span> <span class="comment">// for UNICHAR_ID</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">class </span><a class="code" href="a02610.html">TBOX</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">class </span><a class="code" href="a03950.html">UNICHARSET</a>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">namespace </span><a class="code" href="a01629.html">tesseract</a> {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">class </span>Tesseract;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">class </span>ColPartition;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">class </span>ColPartitionGrid;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">class </span>ColPartitionSet;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="a02246.html"> 39</a></span> <span class="keyword">class </span><a class="code" href="a02246.html">EquationDetect</a> : <span class="keyword">public</span> <a class="code" href="a04594.html">EquationDetectBase</a> {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="a02246.html#a0867ba3cb66855f3c625537b6b570447">EquationDetect</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* equ_datapath,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* equ_language);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="a02246.html#a09236e0cf2e96fd341927a9dbb822f95">~EquationDetect</a>();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> </div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="a02246.html#a8af35d2174dc3814a0e895115b4b4223"> 45</a></span>  <span class="keyword">enum</span> <a class="code" href="a02246.html#a8af35d2174dc3814a0e895115b4b4223">IndentType</a> {</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a02246.html#a8af35d2174dc3814a0e895115b4b4223a0b833974e34cfce11e7bb182afd5c43c"> 46</a></span>  <a class="code" href="a02246.html#a8af35d2174dc3814a0e895115b4b4223a0b833974e34cfce11e7bb182afd5c43c">NO_INDENT</a>,</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="a02246.html#a8af35d2174dc3814a0e895115b4b4223aab75a5b0799710a14abdda1687c1ae0e"> 47</a></span>  <a class="code" href="a02246.html#a8af35d2174dc3814a0e895115b4b4223aab75a5b0799710a14abdda1687c1ae0e">LEFT_INDENT</a>,</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="a02246.html#a8af35d2174dc3814a0e895115b4b4223a8b060953ddfce6e934e4346ba630606b"> 48</a></span>  <a class="code" href="a02246.html#a8af35d2174dc3814a0e895115b4b4223a8b060953ddfce6e934e4346ba630606b">RIGHT_INDENT</a>,</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="a02246.html#a8af35d2174dc3814a0e895115b4b4223a4c2d65f544868a206cf72cd4928c8d06"> 49</a></span>  <a class="code" href="a02246.html#a8af35d2174dc3814a0e895115b4b4223a4c2d65f544868a206cf72cd4928c8d06">BOTH_INDENT</a>,</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="a02246.html#a8af35d2174dc3814a0e895115b4b4223ab662e3c6542168f17a908c82ce4017a0"> 50</a></span>  <a class="code" href="a02246.html#a8af35d2174dc3814a0e895115b4b4223ab662e3c6542168f17a908c82ce4017a0">INDENT_TYPE_COUNT</a></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  };</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// Reset the lang_tesseract_ pointer. This function should be called before we</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// do any detector work.</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#aded5530c6cdae80194a4ec70104d9889">SetLangTesseract</a>(<a class="code" href="a02358.html">Tesseract</a>* lang_tesseract);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="comment">// Iterate over the blobs inside to_block, and set the blobs that we want to</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="comment">// process to BSTT_NONE. (By default, they should be BSTT_SKIP). The function</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// returns 0 upon success.</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="keywordtype">int</span> <a class="code" href="a02246.html#af6d40cc16252ebeba9458c3d5946b5f9">LabelSpecialText</a>(<a class="code" href="a02382.html">TO_BLOCK</a>* to_block);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// Find possible equation partitions from part_grid. Should be called</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="comment">// after the special_text_type of blobs are set.</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="comment">// It returns 0 upon success.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordtype">int</span> <a class="code" href="a02246.html#a800a94628a99a8f3e054619e170d7fbb">FindEquationParts</a>(<a class="code" href="a04574.html">ColPartitionGrid</a>* part_grid,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="a04578.html">ColPartitionSet</a>** best_columns);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="comment">// Reset the resolution of the processing image. TEST only function.</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#a1e62860539cd17573c8f8d8aaf4a07e2">SetResolution</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> resolution);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keyword">protected</span>:</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">// Identify the special text type for one blob, and update its field. When</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">// height_th is set (> 0), we will label the blob as BSTT_NONE if its height</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="comment">// is less than height_th.</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#ae00172a9d9483ef7a204f2316e4d7f96">IdentifySpecialText</a>(<a class="code" href="a02374.html">BLOBNBOX</a> *blob, <span class="keyword">const</span> <span class="keywordtype">int</span> height_th);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">// Estimate the type for one unichar.</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <a class="code" href="a00224.html#a75b089d27e1df813fed544e0c131df8c">BlobSpecialTextType</a> <a class="code" href="a02246.html#a488adea749ff34ca6f2efc000c82001d">EstimateTypeForUnichar</a>(</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keyword">const</span> <a class="code" href="a03950.html">UNICHARSET</a>& unicharset, <span class="keyword">const</span> <a class="code" href="a00605.html#afedceee7ea132dae3d224db2cf8b5618">UNICHAR_ID</a> <span class="keywordtype">id</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="comment">// Compute special text type for each blobs in part_grid_.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#ae00172a9d9483ef7a204f2316e4d7f96">IdentifySpecialText</a>();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">// Identify blobs that we want to skip during special blob type</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="comment">// classification.</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#ab4f5bf2daf3f1ab5332c879ef98e5008">IdentifyBlobsToSkip</a>(<a class="code" href="a04570.html">ColPartition</a>* part);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="comment">// The ColPartitions in part_grid_ maybe over-segmented, particularly in the</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="comment">// block equation regions. So we like to identify these partitions and merge</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// them before we do the searching.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#ad26e2adac7587d71b2a9394a4b8897a6">MergePartsByLocation</a>();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="comment">// Staring from the seed center, we do radius search. And for partitions that</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// have large overlaps with seed, we remove them from part_grid_ and add into</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="comment">// parts_overlap. Note: this function may update the part_grid_, so if the</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="comment">// caller is also running ColPartitionGridSearch, use the RepositionIterator</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// to continue.</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#ace94a05a89afb074b106c444584254d6">SearchByOverlap</a>(<a class="code" href="a04570.html">ColPartition</a>* seed,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="a02182.html">GenericVector<ColPartition*></a>* parts_overlap);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="comment">// Insert part back into part_grid_, after it absorbs some other parts.</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#a5f75b1dad656abfdb1a10eddeb8e65de">InsertPartAfterAbsorb</a>(<a class="code" href="a04570.html">ColPartition</a>* part);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="comment">// Identify the colparitions in part_grid_, label them as PT_EQUATION, and</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="comment">// save them into cp_seeds_.</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#a39c1397a958168add27d1a4bbc3ff916">IdentifySeedParts</a>();</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// Check the blobs count for a seed region candidate.</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordtype">bool</span> <a class="code" href="a02246.html#a14f4d2d35ed292b40ce57b028d7e124a">CheckSeedBlobsCount</a>(<a class="code" href="a04570.html">ColPartition</a>* part);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="comment">// Compute the foreground pixel density for a tbox area.</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordtype">float</span> <a class="code" href="a02246.html#a4aa9c0126e15827ea9c66319558d2fb9">ComputeForegroundDensity</a>(<span class="keyword">const</span> <a class="code" href="a02610.html">TBOX</a>& tbox);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="comment">// Check if part from seed2 label: with low math density and left indented. We</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="comment">// are using two checks:</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="comment">// 1. If its left is aligned with any coordinates in indented_texts_left,</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="comment">// which we assume have been sorted.</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="comment">// 2. If its foreground density is over foreground_density_th.</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordtype">bool</span> <a class="code" href="a02246.html#a2a1d7cd57ac4ed59a38ffd3b476dd2bf">CheckForSeed2</a>(</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keyword">const</span> <a class="code" href="a02182.html">GenericVector<int></a>& indented_texts_left,</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> foreground_density_th,</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="a04570.html">ColPartition</a>* part);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="comment">// Count the number of values in sorted_vec that is close to val, used to</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="comment">// check if a partition is aligned with text partitions.</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordtype">int</span> <a class="code" href="a02246.html#a8348581de747f0ddedd47c852b36a4ae">CountAlignment</a>(</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keyword">const</span> <a class="code" href="a02182.html">GenericVector<int></a>& sorted_vec, <span class="keyword">const</span> <span class="keywordtype">int</span> val) <span class="keyword">const</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span> </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="comment">// Check for a seed candidate using the foreground pixel density. And we</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="comment">// return true if the density is below a certain threshold, because characters</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="comment">// in equation regions usually are apart with more white spaces.</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordtype">bool</span> <a class="code" href="a02246.html#aac03fc4552265dd3e79fae673fa63b88">CheckSeedFgDensity</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> density_th, <a class="code" href="a04570.html">ColPartition</a>* part);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="comment">// A light version of SplitCPHor: instead of really doing the part split, we</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="comment">// simply compute the union bounding box of each split part.</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#a1ec8cc3dc57f53854d2190f112c00c85">SplitCPHorLite</a>(<a class="code" href="a04570.html">ColPartition</a>* part, <a class="code" href="a02182.html">GenericVector<TBOX></a>* splitted_boxes);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="comment">// Split the part (horizontally), and save the split result into</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">// parts_splitted. Note that it is caller's responsibility to release the</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="comment">// memory owns by parts_splitted. On the other hand, the part is unchanged</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// during this process and still owns the blobs, so do NOT call DeleteBoxes</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="comment">// when freeing the colpartitions in parts_splitted.</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#ad9ff76cd1e7f4e25c37da5b9eb04b94c">SplitCPHor</a>(<a class="code" href="a04570.html">ColPartition</a>* part,</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="a02182.html">GenericVector<ColPartition*></a>* parts_splitted);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">// Check the density for a seed candidate (part) using its math density and</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="comment">// italic density, returns true if the check passed.</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="keywordtype">bool</span> <a class="code" href="a02246.html#a056b756d6ebd931501b3488b2b526336">CheckSeedDensity</a>(<span class="keyword">const</span> <span class="keywordtype">float</span> math_density_high,</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">const</span> <span class="keywordtype">float</span> math_density_low,</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">const</span> <a class="code" href="a04570.html">ColPartition</a>* part) <span class="keyword">const</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="comment">// Check if part is indented.</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="a02246.html#a8af35d2174dc3814a0e895115b4b4223">IndentType</a> <a class="code" href="a02246.html#a35912b69ed5ffa28d88ed53ba9f060d3">IsIndented</a>(<a class="code" href="a04570.html">ColPartition</a>* part);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">// Identify inline partitions from cp_seeds_, and re-label them.</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#a89b2d841680f6f6207fc4f10b8d7839f">IdentifyInlineParts</a>();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="comment">// Compute the super bounding box for all colpartitions inside part_grid_.</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#a8de69a1f250877609333539286e6914a">ComputeCPsSuperBBox</a>();</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="comment">// Identify inline partitions from cp_seeds_ using the horizontal search.</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#ae246fb4897d7e5181ff727874a9eb140">IdentifyInlinePartsHorizontal</a>();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="comment">// Estimate the line spacing between two text partitions. Returns -1 if not</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="comment">// enough data.</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordtype">int</span> <a class="code" href="a02246.html#a096b2bb7f8f59484ec2043d92c3f1eec">EstimateTextPartLineSpacing</a>();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="comment">// Identify inline partitions from cp_seeds_ using vertical search.</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#a657f367e87724bfab6359c42f10fad66">IdentifyInlinePartsVertical</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> top_to_bottom,</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> textPartsLineSpacing);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="comment">// Check if part is an inline equation zone. This should be called after we</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="comment">// identified the seed regions.</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordtype">bool</span> <a class="code" href="a02246.html#a9f0be32790e5915d579cd1898530fb6b">IsInline</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> search_bottom,</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> textPartsLineSpacing,</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="a04570.html">ColPartition</a>* part);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="comment">// For a given seed partition, we search the part_grid_ and see if there is</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="comment">// any partition can be merged with it. It returns true if the seed has been</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="comment">// expanded.</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordtype">bool</span> <a class="code" href="a02246.html#a76bc8a18a94fc5f89f6d4d073ba0c9bf">ExpandSeed</a>(<a class="code" href="a04570.html">ColPartition</a>* seed);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> </div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="comment">// Starting from the seed position, we search the part_grid_</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="comment">// horizontally/vertically, find all parititions that can be</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="comment">// merged with seed, remove them from part_grid_, and put them into</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="comment">// parts_to_merge.</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#aa01a56f6dae2e52de475be85ac4eabfd">ExpandSeedHorizontal</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> search_left,</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <a class="code" href="a04570.html">ColPartition</a>* seed,</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="a02182.html">GenericVector<ColPartition*></a>* parts_to_merge);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#ab65b124e364901a9d93869afc923255f">ExpandSeedVertical</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> search_bottom,</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <a class="code" href="a04570.html">ColPartition</a>* seed,</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="a02182.html">GenericVector<ColPartition*></a>* parts_to_merge);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">// Check if a part_box is the small neighbor of seed_box.</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordtype">bool</span> <a class="code" href="a02246.html#a612dd0f3c9191b1614d62e2c6f758cda">IsNearSmallNeighbor</a>(<span class="keyword">const</span> <a class="code" href="a02610.html">TBOX</a>& seed_box,</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keyword">const</span> <a class="code" href="a02610.html">TBOX</a>& part_box) <span class="keyword">const</span>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="comment">// Perform the density check for part, which we assume is nearing a seed</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="comment">// partition. It returns true if the check passed.</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keywordtype">bool</span> <a class="code" href="a02246.html#a2a4aa2332c4dcd111ab373696d6e0558">CheckSeedNeighborDensity</a>(<span class="keyword">const</span> <a class="code" href="a04570.html">ColPartition</a>* part) <span class="keyword">const</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="comment">// After identify the math blocks, we do one more scanning on all text</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="comment">// partitions, and check if any of them is the satellite of:</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <span class="comment">// math blocks: here a p is the satellite of q if:</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="comment">// 1. q is the nearest vertical neighbor of p, and</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="comment">// 2. y_gap(p, q) is less than a threshold, and</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="comment">// 3. x_overlap(p, q) is over a threshold.</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="comment">// Note that p can be the satellites of two blocks: its top neighbor and</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="comment">// bottom neighbor.</span></div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#a0bb5b44fbab44c93cb338eed35b4ef4a">ProcessMathBlockSatelliteParts</a>();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span> </div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="comment">// Check if part is the satellite of one/two math blocks. If it is, we return</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="comment">// true, and save the blocks into math_blocks.</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordtype">bool</span> <a class="code" href="a02246.html#a1c99268537c018c0622559c2d988b600">IsMathBlockSatellite</a>(</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="a04570.html">ColPartition</a>* part, <a class="code" href="a02182.html">GenericVector<ColPartition*></a>* math_blocks);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="comment">// Search the nearest neighbor of part in one vertical direction as defined in</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="comment">// search_bottom. It returns the neighbor found that major x overlap with it,</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="comment">// or nullptr when not found.</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="a04570.html">ColPartition</a>* <a class="code" href="a02246.html#a60bd749e3e2b016058ba4ece1e1dc80c">SearchNNVertical</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> search_bottom,</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keyword">const</span> <a class="code" href="a04570.html">ColPartition</a>* part);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="comment">// Check if the neighbor with vertical distance of y_gap is a near and math</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="comment">// block partition.</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keywordtype">bool</span> <a class="code" href="a02246.html#a2e0946b3dfee7b6dee5c38c591e34270">IsNearMathNeighbor</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> y_gap, <span class="keyword">const</span> <a class="code" href="a04570.html">ColPartition</a> *neighbor) <span class="keyword">const</span>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="comment">// Generate the tiff file name for output/debug file.</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#a0c05543fe14374e0ecbbcd40568ef318">GetOutputTiffName</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <a class="code" href="a02834.html">STRING</a>* image_name) <span class="keyword">const</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="comment">// Debugger function that renders ColPartitions on the input image, where:</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="comment">// parts labeled as PT_EQUATION will be painted in red, PT_INLINE_EQUATION</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="comment">// will be painted in green, and other parts will be painted in blue.</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#ada4df5ef0eee657cfeb7524205ce878a">PaintColParts</a>(<span class="keyword">const</span> <a class="code" href="a02834.html">STRING</a>& outfile) <span class="keyword">const</span>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span> </div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="comment">// Debugger function that renders the blobs in part_grid_ over the input</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="comment">// image.</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#a56443e2bab5cd7a0376dbd8e05fe7bdd">PaintSpecialTexts</a>(<span class="keyword">const</span> <a class="code" href="a02834.html">STRING</a>& outfile) <span class="keyword">const</span>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="comment">// Debugger function that print the math blobs density values for a</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <span class="comment">// ColPartition object.</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordtype">void</span> <a class="code" href="a02246.html#ad7ae4f58197c854689b69df45e77352d">PrintSpecialBlobsDensity</a>(<span class="keyword">const</span> <a class="code" href="a04570.html">ColPartition</a>* part) <span class="keyword">const</span>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="comment">// The tesseract engine initialized from equation training data.</span></div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="a02246.html#a4a19110ed5696ad383849388f1d7cb6f"> 244</a></span>  <a class="code" href="a02358.html">Tesseract</a> <a class="code" href="a02246.html#a4a19110ed5696ad383849388f1d7cb6f">equ_tesseract_</a>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="comment">// The tesseract engine used for OCR. This pointer is passed in by the caller,</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="comment">// so do NOT destroy it in this class.</span></div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="a02246.html#ac9825c046385d42504424a69d3b56177"> 248</a></span>  <a class="code" href="a02358.html">Tesseract</a>* <a class="code" href="a02246.html#ac9825c046385d42504424a69d3b56177">lang_tesseract_</a>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span> </div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="comment">// The ColPartitionGrid that we are processing. This pointer is passed in from</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="comment">// the caller, so do NOT destroy it in the class.</span></div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="a02246.html#a4798ba96020b3ce55050b66dd3c72fe0"> 252</a></span>  <a class="code" href="a04574.html">ColPartitionGrid</a>* <a class="code" href="a02246.html#a4798ba96020b3ce55050b66dd3c72fe0">part_grid_</a>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="comment">// A simple array of pointers to the best assigned column division at</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="comment">// each grid y coordinate. This pointer is passed in from the caller, so do</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="comment">// NOT destroy it in the class.</span></div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="a02246.html#a56fe80b060d60fd1d833b3054f44abdf"> 257</a></span>  <a class="code" href="a04578.html">ColPartitionSet</a>** <a class="code" href="a02246.html#a56fe80b060d60fd1d833b3054f44abdf">best_columns_</a>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="comment">// The super bounding box of all cps in the part_grid_.</span></div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="a02246.html#aa6dfc694549236e0be87efd3d2c8d17f"> 260</a></span>  <a class="code" href="a02610.html">TBOX</a>* <a class="code" href="a02246.html#aa6dfc694549236e0be87efd3d2c8d17f">cps_super_bbox_</a>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="comment">// The seed ColPartition for equation region.</span></div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="a02246.html#ad41af69ecd3e0227bbe5b4714c429666"> 263</a></span>  <a class="code" href="a02182.html">GenericVector<ColPartition*></a> <a class="code" href="a02246.html#ad41af69ecd3e0227bbe5b4714c429666">cp_seeds_</a>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span> </div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="comment">// The resolution (dpi) of the processing image.</span></div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="a02246.html#ae97d45cf4e1e79c132831151d66fb662"> 266</a></span>  <span class="keywordtype">int</span> <a class="code" href="a02246.html#ae97d45cf4e1e79c132831151d66fb662">resolution_</a>;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span> </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="comment">// The number of pages we have processed.</span></div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="a02246.html#aec76c4ef860f40ec042c65ea1340fc31"> 269</a></span>  <span class="keywordtype">int</span> <a class="code" href="a02246.html#aec76c4ef860f40ec042c65ea1340fc31">page_count_</a>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> };</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> } <span class="comment">// namespace tesseract</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> <span class="preprocessor">#endif // TESSERACT_CCMAIN_EQUATIONDETECT_H_</span></div><div class="ttc" id="a00224_html"><div class="ttname"><a href="a00224.html">blobbox.h</a></div></div>
<div class="ttc" id="a02246_html_a8348581de747f0ddedd47c852b36a4ae"><div class="ttname"><a href="a02246.html#a8348581de747f0ddedd47c852b36a4ae">tesseract::EquationDetect::CountAlignment</a></div><div class="ttdeci">int CountAlignment(const GenericVector< int > &sorted_vec, const int val) const</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00760">equationdetect.cpp:760</a></div></div>
<div class="ttc" id="a02246_html_ad9ff76cd1e7f4e25c37da5b9eb04b94c"><div class="ttname"><a href="a02246.html#ad9ff76cd1e7f4e25c37da5b9eb04b94c">tesseract::EquationDetect::SplitCPHor</a></div><div class="ttdeci">void SplitCPHor(ColPartition *part, GenericVector< ColPartition *> *parts_splitted)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00648">equationdetect.cpp:648</a></div></div>
<div class="ttc" id="a00605_html_afedceee7ea132dae3d224db2cf8b5618"><div class="ttname"><a href="a00605.html#afedceee7ea132dae3d224db2cf8b5618">UNICHAR_ID</a></div><div class="ttdeci">int UNICHAR_ID</div><div class="ttdef"><b>Definition:</b> <a href="a00605_source.html#l00035">unichar.h:35</a></div></div>
<div class="ttc" id="a02246_html_a89b2d841680f6f6207fc4f10b8d7839f"><div class="ttname"><a href="a02246.html#a89b2d841680f6f6207fc4f10b8d7839f">tesseract::EquationDetect::IdentifyInlineParts</a></div><div class="ttdeci">void IdentifyInlineParts()</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00784">equationdetect.cpp:784</a></div></div>
<div class="ttc" id="a02246_html_a0c05543fe14374e0ecbbcd40568ef318"><div class="ttname"><a href="a02246.html#a0c05543fe14374e0ecbbcd40568ef318">tesseract::EquationDetect::GetOutputTiffName</a></div><div class="ttdeci">void GetOutputTiffName(const char *name, STRING *image_name) const</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01457">equationdetect.cpp:1457</a></div></div>
<div class="ttc" id="a00191_html"><div class="ttname"><a href="a00191.html">tesseractclass.h</a></div></div>
<div class="ttc" id="a02246_html_ab4f5bf2daf3f1ab5332c879ef98e5008"><div class="ttname"><a href="a02246.html#ab4f5bf2daf3f1ab5332c879ef98e5008">tesseract::EquationDetect::IdentifyBlobsToSkip</a></div><div class="ttdeci">void IdentifyBlobsToSkip(ColPartition *part)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00311">equationdetect.cpp:311</a></div></div>
<div class="ttc" id="a02246_html_a4aa9c0126e15827ea9c66319558d2fb9"><div class="ttname"><a href="a02246.html#a4aa9c0126e15827ea9c66319558d2fb9">tesseract::EquationDetect::ComputeForegroundDensity</a></div><div class="ttdeci">float ComputeForegroundDensity(const TBOX &tbox)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00612">equationdetect.cpp:612</a></div></div>
<div class="ttc" id="a02246_html_a8af35d2174dc3814a0e895115b4b4223a4c2d65f544868a206cf72cd4928c8d06"><div class="ttname"><a href="a02246.html#a8af35d2174dc3814a0e895115b4b4223a4c2d65f544868a206cf72cd4928c8d06">tesseract::EquationDetect::BOTH_INDENT</a></div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00049">equationdetect.h:49</a></div></div>
<div class="ttc" id="a02246_html_af6d40cc16252ebeba9458c3d5946b5f9"><div class="ttname"><a href="a02246.html#af6d40cc16252ebeba9458c3d5946b5f9">tesseract::EquationDetect::LabelSpecialText</a></div><div class="ttdeci">int LabelSpecialText(TO_BLOCK *to_block)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00132">equationdetect.cpp:132</a></div></div>
<div class="ttc" id="a02246_html_aded5530c6cdae80194a4ec70104d9889"><div class="ttname"><a href="a02246.html#aded5530c6cdae80194a4ec70104d9889">tesseract::EquationDetect::SetLangTesseract</a></div><div class="ttdeci">void SetLangTesseract(Tesseract *lang_tesseract)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00124">equationdetect.cpp:124</a></div></div>
<div class="ttc" id="a02246_html_a9f0be32790e5915d579cd1898530fb6b"><div class="ttname"><a href="a02246.html#a9f0be32790e5915d579cd1898530fb6b">tesseract::EquationDetect::IsInline</a></div><div class="ttdeci">bool IsInline(const bool search_bottom, const int textPartsLineSpacing, ColPartition *part)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00937">equationdetect.cpp:937</a></div></div>
<div class="ttc" id="a02610_html"><div class="ttname"><a href="a02610.html">TBOX</a></div><div class="ttdef"><b>Definition:</b> <a href="a00407_source.html#l00034">rect.h:34</a></div></div>
<div class="ttc" id="a02246_html_ac9825c046385d42504424a69d3b56177"><div class="ttname"><a href="a02246.html#ac9825c046385d42504424a69d3b56177">tesseract::EquationDetect::lang_tesseract_</a></div><div class="ttdeci">Tesseract * lang_tesseract_</div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00248">equationdetect.h:248</a></div></div>
<div class="ttc" id="a02246_html_a2a1d7cd57ac4ed59a38ffd3b476dd2bf"><div class="ttname"><a href="a02246.html#a2a1d7cd57ac4ed59a38ffd3b476dd2bf">tesseract::EquationDetect::CheckForSeed2</a></div><div class="ttdeci">bool CheckForSeed2(const GenericVector< int > &indented_texts_left, const float foreground_density_th, ColPartition *part)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00738">equationdetect.cpp:738</a></div></div>
<div class="ttc" id="a02246_html_a0bb5b44fbab44c93cb338eed35b4ef4a"><div class="ttname"><a href="a02246.html#a0bb5b44fbab44c93cb338eed35b4ef4a">tesseract::EquationDetect::ProcessMathBlockSatelliteParts</a></div><div class="ttdeci">void ProcessMathBlockSatelliteParts()</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01310">equationdetect.cpp:1310</a></div></div>
<div class="ttc" id="a02246_html_ae97d45cf4e1e79c132831151d66fb662"><div class="ttname"><a href="a02246.html#ae97d45cf4e1e79c132831151d66fb662">tesseract::EquationDetect::resolution_</a></div><div class="ttdeci">int resolution_</div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00266">equationdetect.h:266</a></div></div>
<div class="ttc" id="a00224_html_a75b089d27e1df813fed544e0c131df8c"><div class="ttname"><a href="a00224.html#a75b089d27e1df813fed544e0c131df8c">BlobSpecialTextType</a></div><div class="ttdeci">BlobSpecialTextType</div><div class="ttdef"><b>Definition:</b> <a href="a00224_source.html#l00097">blobbox.h:97</a></div></div>
<div class="ttc" id="a02246_html_a8af35d2174dc3814a0e895115b4b4223aab75a5b0799710a14abdda1687c1ae0e"><div class="ttname"><a href="a02246.html#a8af35d2174dc3814a0e895115b4b4223aab75a5b0799710a14abdda1687c1ae0e">tesseract::EquationDetect::LEFT_INDENT</a></div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00047">equationdetect.h:47</a></div></div>
<div class="ttc" id="a02246_html_a2e0946b3dfee7b6dee5c38c591e34270"><div class="ttname"><a href="a02246.html#a2e0946b3dfee7b6dee5c38c591e34270">tesseract::EquationDetect::IsNearMathNeighbor</a></div><div class="ttdeci">bool IsNearMathNeighbor(const int y_gap, const ColPartition *neighbor) const</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01448">equationdetect.cpp:1448</a></div></div>
<div class="ttc" id="a02246_html_ace94a05a89afb074b106c444584254d6"><div class="ttname"><a href="a02246.html#ace94a05a89afb074b106c444584254d6">tesseract::EquationDetect::SearchByOverlap</a></div><div class="ttdeci">void SearchByOverlap(ColPartition *seed, GenericVector< ColPartition *> *parts_overlap)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00464">equationdetect.cpp:464</a></div></div>
<div class="ttc" id="a02246_html_a1e62860539cd17573c8f8d8aaf4a07e2"><div class="ttname"><a href="a02246.html#a1e62860539cd17573c8f8d8aaf4a07e2">tesseract::EquationDetect::SetResolution</a></div><div class="ttdeci">void SetResolution(const int resolution)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00128">equationdetect.cpp:128</a></div></div>
<div class="ttc" id="a02246_html_a60bd749e3e2b016058ba4ece1e1dc80c"><div class="ttname"><a href="a02246.html#a60bd749e3e2b016058ba4ece1e1dc80c">tesseract::EquationDetect::SearchNNVertical</a></div><div class="ttdeci">ColPartition * SearchNNVertical(const bool search_bottom, const ColPartition *part)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01413">equationdetect.cpp:1413</a></div></div>
<div class="ttc" id="a02246_html_a8de69a1f250877609333539286e6914a"><div class="ttname"><a href="a02246.html#a8de69a1f250877609333539286e6914a">tesseract::EquationDetect::ComputeCPsSuperBBox</a></div><div class="ttdeci">void ComputeCPsSuperBBox()</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00792">equationdetect.cpp:792</a></div></div>
<div class="ttc" id="a00518_html"><div class="ttname"><a href="a00518.html">genericvector.h</a></div></div>
<div class="ttc" id="a03950_html"><div class="ttname"><a href="a03950.html">UNICHARSET</a></div><div class="ttdef"><b>Definition:</b> <a href="a00623_source.html#l00146">unicharset.h:146</a></div></div>
<div class="ttc" id="a02246_html_aec76c4ef860f40ec042c65ea1340fc31"><div class="ttname"><a href="a02246.html#aec76c4ef860f40ec042c65ea1340fc31">tesseract::EquationDetect::page_count_</a></div><div class="ttdeci">int page_count_</div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00269">equationdetect.h:269</a></div></div>
<div class="ttc" id="a02246_html_a35912b69ed5ffa28d88ed53ba9f060d3"><div class="ttname"><a href="a02246.html#a35912b69ed5ffa28d88ed53ba9f060d3">tesseract::EquationDetect::IsIndented</a></div><div class="ttdeci">IndentType IsIndented(ColPartition *part)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01021">equationdetect.cpp:1021</a></div></div>
<div class="ttc" id="a02246_html_a39c1397a958168add27d1a4bbc3ff916"><div class="ttname"><a href="a02246.html#a39c1397a958168add27d1a4bbc3ff916">tesseract::EquationDetect::IdentifySeedParts</a></div><div class="ttdeci">void IdentifySeedParts()</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00540">equationdetect.cpp:540</a></div></div>
<div class="ttc" id="a02246_html_a488adea749ff34ca6f2efc000c82001d"><div class="ttname"><a href="a02246.html#a488adea749ff34ca6f2efc000c82001d">tesseract::EquationDetect::EstimateTypeForUnichar</a></div><div class="ttdeci">BlobSpecialTextType EstimateTypeForUnichar(const UNICHARSET &unicharset, const UNICHAR_ID id) const</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00225">equationdetect.cpp:225</a></div></div>
<div class="ttc" id="a04570_html"><div class="ttname"><a href="a04570.html">tesseract::ColPartition</a></div><div class="ttdef"><b>Definition:</b> <a href="a01127_source.html#l00068">colpartition.h:68</a></div></div>
<div class="ttc" id="a02382_html"><div class="ttname"><a href="a02382.html">TO_BLOCK</a></div><div class="ttdef"><b>Definition:</b> <a href="a00224_source.html#l00705">blobbox.h:705</a></div></div>
<div class="ttc" id="a02182_html"><div class="ttname"><a href="a02182.html">GenericVector</a></div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00037">baseapi.h:37</a></div></div>
<div class="ttc" id="a02246_html_a657f367e87724bfab6359c42f10fad66"><div class="ttname"><a href="a02246.html#a657f367e87724bfab6359c42f10fad66">tesseract::EquationDetect::IdentifyInlinePartsVertical</a></div><div class="ttdeci">void IdentifyInlinePartsVertical(const bool top_to_bottom, const int textPartsLineSpacing)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00908">equationdetect.cpp:908</a></div></div>
<div class="ttc" id="a02246_html_a4a19110ed5696ad383849388f1d7cb6f"><div class="ttname"><a href="a02246.html#a4a19110ed5696ad383849388f1d7cb6f">tesseract::EquationDetect::equ_tesseract_</a></div><div class="ttdeci">Tesseract equ_tesseract_</div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00244">equationdetect.h:244</a></div></div>
<div class="ttc" id="a02246_html_ada4df5ef0eee657cfeb7524205ce878a"><div class="ttname"><a href="a02246.html#ada4df5ef0eee657cfeb7524205ce878a">tesseract::EquationDetect::PaintColParts</a></div><div class="ttdeci">void PaintColParts(const STRING &outfile) const</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01482">equationdetect.cpp:1482</a></div></div>
<div class="ttc" id="a02246_html_aac03fc4552265dd3e79fae673fa63b88"><div class="ttname"><a href="a02246.html#aac03fc4552265dd3e79fae673fa63b88">tesseract::EquationDetect::CheckSeedFgDensity</a></div><div class="ttdeci">bool CheckSeedFgDensity(const float density_th, ColPartition *part)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00626">equationdetect.cpp:626</a></div></div>
<div class="ttc" id="a01175_html"><div class="ttname"><a href="a01175.html">equationdetectbase.h</a></div></div>
<div class="ttc" id="a02246_html_ae246fb4897d7e5181ff727874a9eb140"><div class="ttname"><a href="a02246.html#ae246fb4897d7e5181ff727874a9eb140">tesseract::EquationDetect::IdentifyInlinePartsHorizontal</a></div><div class="ttdeci">void IdentifyInlinePartsHorizontal()</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00803">equationdetect.cpp:803</a></div></div>
<div class="ttc" id="a02246_html_aa6dfc694549236e0be87efd3d2c8d17f"><div class="ttname"><a href="a02246.html#aa6dfc694549236e0be87efd3d2c8d17f">tesseract::EquationDetect::cps_super_bbox_</a></div><div class="ttdeci">TBOX * cps_super_bbox_</div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00260">equationdetect.h:260</a></div></div>
<div class="ttc" id="a00605_html"><div class="ttname"><a href="a00605.html">unichar.h</a></div></div>
<div class="ttc" id="a02246_html_a800a94628a99a8f3e054619e170d7fbb"><div class="ttname"><a href="a02246.html#a800a94628a99a8f3e054619e170d7fbb">tesseract::EquationDetect::FindEquationParts</a></div><div class="ttdeci">int FindEquationParts(ColPartitionGrid *part_grid, ColPartitionSet **best_columns)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00359">equationdetect.cpp:359</a></div></div>
<div class="ttc" id="a02246_html_a76bc8a18a94fc5f89f6d4d073ba0c9bf"><div class="ttname"><a href="a02246.html#a76bc8a18a94fc5f89f6d4d073ba0c9bf">tesseract::EquationDetect::ExpandSeed</a></div><div class="ttdeci">bool ExpandSeed(ColPartition *seed)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01085">equationdetect.cpp:1085</a></div></div>
<div class="ttc" id="a02246_html_a5f75b1dad656abfdb1a10eddeb8e65de"><div class="ttname"><a href="a02246.html#a5f75b1dad656abfdb1a10eddeb8e65de">tesseract::EquationDetect::InsertPartAfterAbsorb</a></div><div class="ttdeci">void InsertPartAfterAbsorb(ColPartition *part)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00513">equationdetect.cpp:513</a></div></div>
<div class="ttc" id="a02246_html_a4798ba96020b3ce55050b66dd3c72fe0"><div class="ttname"><a href="a02246.html#a4798ba96020b3ce55050b66dd3c72fe0">tesseract::EquationDetect::part_grid_</a></div><div class="ttdeci">ColPartitionGrid * part_grid_</div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00252">equationdetect.h:252</a></div></div>
<div class="ttc" id="a01629_html"><div class="ttname"><a href="a01629.html">tesseract</a></div><div class="ttdef"><b>Definition:</b> <a href="a00005_source.html#l00094">baseapi.cpp:94</a></div></div>
<div class="ttc" id="a02358_html"><div class="ttname"><a href="a02358.html">tesseract::Tesseract</a></div><div class="ttdef"><b>Definition:</b> <a href="a00191_source.html#l00173">tesseractclass.h:173</a></div></div>
<div class="ttc" id="a02246_html_ad41af69ecd3e0227bbe5b4714c429666"><div class="ttname"><a href="a02246.html#ad41af69ecd3e0227bbe5b4714c429666">tesseract::EquationDetect::cp_seeds_</a></div><div class="ttdeci">GenericVector< ColPartition * > cp_seeds_</div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00263">equationdetect.h:263</a></div></div>
<div class="ttc" id="a02246_html_a8af35d2174dc3814a0e895115b4b4223ab662e3c6542168f17a908c82ce4017a0"><div class="ttname"><a href="a02246.html#a8af35d2174dc3814a0e895115b4b4223ab662e3c6542168f17a908c82ce4017a0">tesseract::EquationDetect::INDENT_TYPE_COUNT</a></div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00050">equationdetect.h:50</a></div></div>
<div class="ttc" id="a02246_html"><div class="ttname"><a href="a02246.html">tesseract::EquationDetect</a></div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00039">equationdetect.h:39</a></div></div>
<div class="ttc" id="a02834_html"><div class="ttname"><a href="a02834.html">STRING</a></div><div class="ttdef"><b>Definition:</b> <a href="a00584_source.html#l00045">strngs.h:45</a></div></div>
<div class="ttc" id="a04578_html"><div class="ttname"><a href="a04578.html">tesseract::ColPartitionSet</a></div><div class="ttdef"><b>Definition:</b> <a href="a01139_source.html#l00040">colpartitionset.h:40</a></div></div>
<div class="ttc" id="a02246_html_ad26e2adac7587d71b2a9394a4b8897a6"><div class="ttname"><a href="a02246.html#ad26e2adac7587d71b2a9394a4b8897a6">tesseract::EquationDetect::MergePartsByLocation</a></div><div class="ttdeci">void MergePartsByLocation()</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00425">equationdetect.cpp:425</a></div></div>
<div class="ttc" id="a02246_html_a8af35d2174dc3814a0e895115b4b4223a8b060953ddfce6e934e4346ba630606b"><div class="ttname"><a href="a02246.html#a8af35d2174dc3814a0e895115b4b4223a8b060953ddfce6e934e4346ba630606b">tesseract::EquationDetect::RIGHT_INDENT</a></div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00048">equationdetect.h:48</a></div></div>
<div class="ttc" id="a02246_html_a14f4d2d35ed292b40ce57b028d7e124a"><div class="ttname"><a href="a02246.html#a14f4d2d35ed292b40ce57b028d7e124a">tesseract::EquationDetect::CheckSeedBlobsCount</a></div><div class="ttdeci">bool CheckSeedBlobsCount(ColPartition *part)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00984">equationdetect.cpp:984</a></div></div>
<div class="ttc" id="a02246_html_a1c99268537c018c0622559c2d988b600"><div class="ttname"><a href="a02246.html#a1c99268537c018c0622559c2d988b600">tesseract::EquationDetect::IsMathBlockSatellite</a></div><div class="ttdeci">bool IsMathBlockSatellite(ColPartition *part, GenericVector< ColPartition *> *math_blocks)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01359">equationdetect.cpp:1359</a></div></div>
<div class="ttc" id="a02246_html_ab65b124e364901a9d93869afc923255f"><div class="ttname"><a href="a02246.html#ab65b124e364901a9d93869afc923255f">tesseract::EquationDetect::ExpandSeedVertical</a></div><div class="ttdeci">void ExpandSeedVertical(const bool search_bottom, ColPartition *seed, GenericVector< ColPartition *> *parts_to_merge)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01184">equationdetect.cpp:1184</a></div></div>
<div class="ttc" id="a02246_html_a09236e0cf2e96fd341927a9dbb822f95"><div class="ttname"><a href="a02246.html#a09236e0cf2e96fd341927a9dbb822f95">tesseract::EquationDetect::~EquationDetect</a></div><div class="ttdeci">~EquationDetect()</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00122">equationdetect.cpp:122</a></div></div>
<div class="ttc" id="a02246_html_a2a4aa2332c4dcd111ab373696d6e0558"><div class="ttname"><a href="a02246.html#a2a4aa2332c4dcd111ab373696d6e0558">tesseract::EquationDetect::CheckSeedNeighborDensity</a></div><div class="ttdeci">bool CheckSeedNeighborDensity(const ColPartition *part) const</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01293">equationdetect.cpp:1293</a></div></div>
<div class="ttc" id="a02246_html_a1ec8cc3dc57f53854d2190f112c00c85"><div class="ttname"><a href="a02246.html#a1ec8cc3dc57f53854d2190f112c00c85">tesseract::EquationDetect::SplitCPHorLite</a></div><div class="ttdeci">void SplitCPHorLite(ColPartition *part, GenericVector< TBOX > *splitted_boxes)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00698">equationdetect.cpp:698</a></div></div>
<div class="ttc" id="a02246_html_a056b756d6ebd931501b3488b2b526336"><div class="ttname"><a href="a02246.html#a056b756d6ebd931501b3488b2b526336">tesseract::EquationDetect::CheckSeedDensity</a></div><div class="ttdeci">bool CheckSeedDensity(const float math_density_high, const float math_density_low, const ColPartition *part) const</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01002">equationdetect.cpp:1002</a></div></div>
<div class="ttc" id="a02246_html_ae00172a9d9483ef7a204f2316e4d7f96"><div class="ttname"><a href="a02246.html#ae00172a9d9483ef7a204f2316e4d7f96">tesseract::EquationDetect::IdentifySpecialText</a></div><div class="ttdeci">void IdentifySpecialText()</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00259">equationdetect.cpp:259</a></div></div>
<div class="ttc" id="a02246_html_a56443e2bab5cd7a0376dbd8e05fe7bdd"><div class="ttname"><a href="a02246.html#a56443e2bab5cd7a0376dbd8e05fe7bdd">tesseract::EquationDetect::PaintSpecialTexts</a></div><div class="ttdeci">void PaintSpecialTexts(const STRING &outfile) const</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01465">equationdetect.cpp:1465</a></div></div>
<div class="ttc" id="a04574_html"><div class="ttname"><a href="a04574.html">tesseract::ColPartitionGrid</a></div><div class="ttdef"><b>Definition:</b> <a href="a01133_source.html#l00033">colpartitiongrid.h:33</a></div></div>
<div class="ttc" id="a02246_html_a56fe80b060d60fd1d833b3054f44abdf"><div class="ttname"><a href="a02246.html#a56fe80b060d60fd1d833b3054f44abdf">tesseract::EquationDetect::best_columns_</a></div><div class="ttdeci">ColPartitionSet ** best_columns_</div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00257">equationdetect.h:257</a></div></div>
<div class="ttc" id="a02246_html_a0867ba3cb66855f3c625537b6b570447"><div class="ttname"><a href="a02246.html#a0867ba3cb66855f3c625537b6b570447">tesseract::EquationDetect::EquationDetect</a></div><div class="ttdeci">EquationDetect(const char *equ_datapath, const char *equ_language)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00103">equationdetect.cpp:103</a></div></div>
<div class="ttc" id="a02246_html_a612dd0f3c9191b1614d62e2c6f758cda"><div class="ttname"><a href="a02246.html#a612dd0f3c9191b1614d62e2c6f758cda">tesseract::EquationDetect::IsNearSmallNeighbor</a></div><div class="ttdeci">bool IsNearSmallNeighbor(const TBOX &seed_box, const TBOX &part_box) const</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01271">equationdetect.cpp:1271</a></div></div>
<div class="ttc" id="a02374_html"><div class="ttname"><a href="a02374.html">BLOBNBOX</a></div><div class="ttdef"><b>Definition:</b> <a href="a00224_source.html#l00144">blobbox.h:144</a></div></div>
<div class="ttc" id="a02246_html_a8af35d2174dc3814a0e895115b4b4223a0b833974e34cfce11e7bb182afd5c43c"><div class="ttname"><a href="a02246.html#a8af35d2174dc3814a0e895115b4b4223a0b833974e34cfce11e7bb182afd5c43c">tesseract::EquationDetect::NO_INDENT</a></div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00046">equationdetect.h:46</a></div></div>
<div class="ttc" id="a02246_html_aa01a56f6dae2e52de475be85ac4eabfd"><div class="ttname"><a href="a02246.html#aa01a56f6dae2e52de475be85ac4eabfd">tesseract::EquationDetect::ExpandSeedHorizontal</a></div><div class="ttdeci">void ExpandSeedHorizontal(const bool search_left, ColPartition *seed, GenericVector< ColPartition *> *parts_to_merge)</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01128">equationdetect.cpp:1128</a></div></div>
<div class="ttc" id="a02246_html_a096b2bb7f8f59484ec2043d92c3f1eec"><div class="ttname"><a href="a02246.html#a096b2bb7f8f59484ec2043d92c3f1eec">tesseract::EquationDetect::EstimateTextPartLineSpacing</a></div><div class="ttdeci">int EstimateTextPartLineSpacing()</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l00868">equationdetect.cpp:868</a></div></div>
<div class="ttc" id="a02246_html_ad7ae4f58197c854689b69df45e77352d"><div class="ttname"><a href="a02246.html#ad7ae4f58197c854689b69df45e77352d">tesseract::EquationDetect::PrintSpecialBlobsDensity</a></div><div class="ttdeci">void PrintSpecialBlobsDensity(const ColPartition *part) const</div><div class="ttdef"><b>Definition:</b> <a href="a00083_source.html#l01505">equationdetect.cpp:1505</a></div></div>
<div class="ttc" id="a04594_html"><div class="ttname"><a href="a04594.html">tesseract::EquationDetectBase</a></div><div class="ttdef"><b>Definition:</b> <a href="a01175_source.html#l00032">equationdetectbase.h:32</a></div></div>
<div class="ttc" id="a02246_html_a8af35d2174dc3814a0e895115b4b4223"><div class="ttname"><a href="a02246.html#a8af35d2174dc3814a0e895115b4b4223">tesseract::EquationDetect::IndentType</a></div><div class="ttdeci">IndentType</div><div class="ttdef"><b>Definition:</b> <a href="a00086_source.html#l00045">equationdetect.h:45</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_fce9a394c0d2c636e610a0a34fe30580.html">tesseract-ocr.master</a></li><li class="navelem"><a class="el" href="dir_fd2783e80b2d56815818e17a68fc4d98.html">src</a></li><li class="navelem"><a class="el" href="dir_f676e76c9a53ee7edd5046de803da784.html">ccmain</a></li><li class="navelem"><a class="el" href="a00086.html">equationdetect.h</a></li>
<li class="footer">Generated on Mon Oct 29 2018 11:03:42 for tesseract by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
</ul>
</div>
</body>
</html>