-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy patha00104_source.html
126 lines (124 loc) · 45.4 KB
/
a00104_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
<!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/ltrresultiterator.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('a00104_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">ltrresultiterator.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="a00104.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: ltrresultiterator.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// Description: Iterator for tesseract results in strict left-to-right</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">// order that avoids using tesseract internal data structures.</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Author: Ray Smith</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">// Created: Fri Feb 26 11:01:06 PST 2010</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">//</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// (C) Copyright 2010, Google Inc.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// Licensed under the Apache License, Version 2.0 (the "License");</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// you may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// You may obtain a copy of the License at</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">// http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// Unless required by applicable law or agreed to in writing, software</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// distributed under the License is distributed on an "AS IS" BASIS,</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// See the License for the specific language governing permissions and</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">// limitations under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">//</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment"></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#ifndef TESSERACT_CCMAIN_LTR_RESULT_ITERATOR_H_</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#define TESSERACT_CCMAIN_LTR_RESULT_ITERATOR_H_</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include "<a class="code" href="a00128.html">pageiterator.h</a>"</span> <span class="comment">// for PageIterator</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include "<a class="code" href="a00560.html">platform.h</a>"</span> <span class="comment">// for TESS_API</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="a00380.html">publictypes.h</a>"</span> <span class="comment">// for PageIteratorLevel</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 StrongScriptDirection</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>BLOB_CHOICE_IT;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">class </span><a class="code" href="a02530.html">PAGE_RES</a>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">class </span><a class="code" href="a02542.html">WERD_RES</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">namespace </span><a class="code" href="a01629.html">tesseract</a> {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">class </span>Tesseract;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment">// Class to iterate over tesseract results, providing access to all levels</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment">// of the page hierarchy, without including any tesseract headers or having</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// to handle any tesseract structures.</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">// WARNING! This class points to data held within the TessBaseAPI class, and</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">// therefore can only be used while the TessBaseAPI class still exists and</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="comment">// has not been subjected to a call of Init, SetImage, Recognize, Clear, End</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="comment">// DetectOS, or anything else that changes the internal PAGE_RES.</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="comment">// See apitypes.h for the definition of PageIteratorLevel.</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="comment">// See also base class PageIterator, which contains the bulk of the interface.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="comment">// LTRResultIterator adds text-specific methods for access to OCR output.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="a02250.html"> 48</a></span> <span class="keyword">class </span><a class="code" href="a00560.html#a86e51270628c53ce7e2c23b1c2b4490e">TESS_API</a> <a class="code" href="a02250.html">LTRResultIterator</a> : <span class="keyword">public</span> <a class="code" href="a02278.html">PageIterator</a> {</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="a02250.html#a70bfabaaec14a25c7abef6984759c8db"> 49</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="a02254.html">ChoiceIterator</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="comment">// page_res and tesseract come directly from the BaseAPI.</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="comment">// The rectangle parameters are copied indirectly from the Thresholder,</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="comment">// via the BaseAPI. They represent the coordinates of some rectangle in an</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="comment">// original image (in top-left-origin coordinates) and therefore the top-left</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// needs to be added to any output boxes in order to specify coordinates</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="comment">// in the original image. See TessBaseAPI::SetRectangle.</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="comment">// The scale and scaled_yres are in case the Thresholder scaled the image</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="comment">// rectangle prior to thresholding. Any coordinates in tesseract's image</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="comment">// must be divided by scale before adding (rect_left, rect_top).</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <span class="comment">// The scaled_yres indicates the effective resolution of the binary image</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// that tesseract has been given by the Thresholder.</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// After the constructor, Begin has already been called.</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="a02250.html">LTRResultIterator</a>(<a class="code" href="a02530.html">PAGE_RES</a>* page_res, <a class="code" href="a02358.html">Tesseract</a>* <a class="code" href="a01629.html">tesseract</a>,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="keywordtype">int</span> scale, <span class="keywordtype">int</span> scaled_yres,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordtype">int</span> rect_left, <span class="keywordtype">int</span> rect_top,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordtype">int</span> rect_width, <span class="keywordtype">int</span> rect_height);</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="keyword">virtual</span> ~<a class="code" href="a02250.html">LTRResultIterator</a>();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// LTRResultIterators may be copied! This makes it possible to iterate over</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="comment">// all the objects at a lower level, while maintaining an iterator to</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="comment">// objects at a higher level. These constructors DO NOT CALL Begin, so</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <span class="comment">// iterations will continue from the location of src.</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="comment">// TODO: For now the copy constructor and operator= only need the base class</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">// versions, but if new data members are added, don't forget to add them!</span></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">// ============= Moving around within the page ============.</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="comment">// See PageIterator.</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">// ============= Accessing data ==============.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="comment">// Returns the null terminated UTF-8 encoded text string for the current</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">// object at the given level. Use delete [] to free after use.</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">char</span>* GetUTF8Text(<a class="code" href="a01629.html#aa26c22b65cc9765a0e747120f4287fd7">PageIteratorLevel</a> level) <span class="keyword">const</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="comment">// Set the string inserted at the end of each text line. "\n" by default.</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordtype">void</span> SetLineSeparator(<span class="keyword">const</span> <span class="keywordtype">char</span> *new_line);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">// Set the string inserted at the end of each paragraph. "\n" by default.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordtype">void</span> SetParagraphSeparator(<span class="keyword">const</span> <span class="keywordtype">char</span> *new_para);</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">// Returns the mean confidence of the current object at the given level.</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// The number should be interpreted as a percent probability. (0.0f-100.0f)</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordtype">float</span> Confidence(<a class="code" href="a01629.html#aa26c22b65cc9765a0e747120f4287fd7">PageIteratorLevel</a> level) <span class="keyword">const</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="comment">// Returns the attributes of the current row.</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordtype">void</span> RowAttributes(<span class="keywordtype">float</span>* row_height, <span class="keywordtype">float</span>* descenders,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <span class="keywordtype">float</span>* ascenders) <span class="keyword">const</span>;</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">// ============= Functions that refer to words only ============.</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span> </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="comment">// Returns the font attributes of the current word. If iterating at a higher</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="comment">// level object than words, eg textlines, then this will return the</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="comment">// attributes of the first word in that textline.</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="comment">// The actual return value is a string representing a font name. It points</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="comment">// to an internal table and SHOULD NOT BE DELETED. Lifespan is the same as</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// the iterator itself, ie rendered invalid by various members of</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="comment">// TessBaseAPI, including Init, SetImage, End or deleting the TessBaseAPI.</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="comment">// Pointsize is returned in printers points (1/72 inch.)</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* WordFontAttributes(<span class="keywordtype">bool</span>* is_bold,</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordtype">bool</span>* is_italic,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordtype">bool</span>* is_underlined,</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordtype">bool</span>* is_monospace,</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordtype">bool</span>* is_serif,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordtype">bool</span>* is_smallcaps,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <span class="keywordtype">int</span>* pointsize,</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <span class="keywordtype">int</span>* font_id) <span class="keyword">const</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="comment">// Return the name of the language used to recognize this word.</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="comment">// On error, nullptr. Do not delete this pointer.</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* WordRecognitionLanguage() <span class="keyword">const</span>;</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">// Return the overall directionality of this word.</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="a00605.html#abc3119a959ecd5cffc1d9b9d57479dba">StrongScriptDirection</a> WordDirection() <span class="keyword">const</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">// Returns true if the current word was found in a dictionary.</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordtype">bool</span> WordIsFromDictionary() <span class="keyword">const</span>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="comment">// Returns the number of blanks before the current word.</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keywordtype">int</span> BlanksBeforeWord() <span class="keyword">const</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="comment">// Returns true if the current word is numeric.</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordtype">bool</span> WordIsNumeric() <span class="keyword">const</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <span class="comment">// Returns true if the word contains blamer information.</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordtype">bool</span> HasBlamerInfo() <span class="keyword">const</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="comment">// Returns the pointer to ParamsTrainingBundle stored in the BlamerBundle</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="comment">// of the current word.</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">const</span> <span class="keywordtype">void</span> *GetParamsTrainingBundle() <span class="keyword">const</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="comment">// Returns a pointer to the string with blamer information for this word.</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="comment">// Assumes that the word's blamer_bundle is not nullptr.</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *GetBlamerDebug() <span class="keyword">const</span>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="comment">// Returns a pointer to the string with misadaption information for this word.</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">// Assumes that the word's blamer_bundle is not nullptr.</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *GetBlamerMisadaptionDebug() <span class="keyword">const</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="comment">// Returns true if a truth string was recorded for the current word.</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="keywordtype">bool</span> HasTruthString() <span class="keyword">const</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span> </div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="comment">// Returns true if the given string is equivalent to the truth string for</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">// the current word.</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordtype">bool</span> EquivalentToTruth(<span class="keyword">const</span> <span class="keywordtype">char</span> *str) <span class="keyword">const</span>;</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">// Returns a null terminated UTF-8 encoded truth string for the current word.</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="comment">// Use delete [] to free after use.</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordtype">char</span>* WordTruthUTF8Text() <span class="keyword">const</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span> </div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="comment">// Returns a null terminated UTF-8 encoded normalized OCR string for the</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="comment">// current word. Use delete [] to free after use.</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordtype">char</span>* WordNormedUTF8Text() <span class="keyword">const</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span> </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="comment">// Returns a pointer to serialized choice lattice.</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="comment">// Fills lattice_size with the number of bytes in lattice data.</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *WordLattice(<span class="keywordtype">int</span> *lattice_size) <span class="keyword">const</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> </div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">// ============= Functions that refer to symbols only ============.</span></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">// Returns true if the current symbol is a superscript.</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="comment">// If iterating at a higher level object than symbols, eg words, then</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="comment">// this will return the attributes of the first symbol in that word.</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keywordtype">bool</span> SymbolIsSuperscript() <span class="keyword">const</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="comment">// Returns true if the current symbol is a subscript.</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="comment">// If iterating at a higher level object than symbols, eg words, then</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="comment">// this will return the attributes of the first symbol in that word.</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordtype">bool</span> SymbolIsSubscript() <span class="keyword">const</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="comment">// Returns true if the current symbol is a dropcap.</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="comment">// If iterating at a higher level object than symbols, eg words, then</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="comment">// this will return the attributes of the first symbol in that word.</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordtype">bool</span> SymbolIsDropcap() <span class="keyword">const</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">protected</span>:</div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="a02250.html#ae1b5b360d5bf55c0cd0eb336de37ea8b"> 186</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="a02250.html#ae1b5b360d5bf55c0cd0eb336de37ea8b">line_separator_</a>;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="a02250.html#a1c6e431ccea8aaad26d9e8d6b9ca2f60"> 187</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="a02250.html#a1c6e431ccea8aaad26d9e8d6b9ca2f60">paragraph_separator_</a>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> };</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> </div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="comment">// Class to iterate over the classifier choices for a single RIL_SYMBOL.</span></div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="a02254.html"> 191</a></span> <span class="keyword">class </span><a class="code" href="a02254.html">ChoiceIterator</a> {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="comment">// Construction is from a LTRResultIterator that points to the symbol of</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="comment">// interest. The ChoiceIterator allows a one-shot iteration over the</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="comment">// choices for this symbol and after that is is useless.</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keyword">explicit</span> <a class="code" href="a02254.html#a47a2f2fdad78720b4c1a0ccf09e802c1">ChoiceIterator</a>(<span class="keyword">const</span> <a class="code" href="a02250.html">LTRResultIterator</a>& result_it);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <a class="code" href="a02254.html#a67e30da1e05da880234e347787181898">~ChoiceIterator</a>();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="comment">// Moves to the next choice for the symbol and returns false if there</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="comment">// are none left.</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordtype">bool</span> <a class="code" href="a02254.html#a1038c9116c30e5dc1c85fa2e93d45259">Next</a>();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span> </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="comment">// ============= Accessing data ==============.</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span> </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="comment">// Returns the null terminated UTF-8 encoded text string for the current</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="comment">// choice.</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="comment">// NOTE: Unlike LTRResultIterator::GetUTF8Text, the return points to an</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="comment">// internal structure and should NOT be delete[]ed to free after use.</span></div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="a02254.html#a20e1745221e932cda71d5b8994aee2eb">GetUTF8Text</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="comment">// Returns the confidence of the current choice.</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="comment">// The number should be interpreted as a percent probability. (0.0f-100.0f)</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordtype">float</span> <a class="code" href="a02254.html#ae36a0f152f0755df2c0af377fe639094">Confidence</a>() <span class="keyword">const</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="comment">// Pointer to the WERD_RES object owned by the API.</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="a02542.html">WERD_RES</a>* word_res_;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  <span class="comment">// Iterator over the blob choices.</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  BLOB_CHOICE_IT* choice_it_;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> };</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> } <span class="comment">// namespace tesseract.</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="preprocessor">#endif // TESSERACT_CCMAIN_LTR_RESULT_ITERATOR_H_</span></div><div class="ttc" id="a02250_html_a1c6e431ccea8aaad26d9e8d6b9ca2f60"><div class="ttname"><a href="a02250.html#a1c6e431ccea8aaad26d9e8d6b9ca2f60">tesseract::LTRResultIterator::paragraph_separator_</a></div><div class="ttdeci">const char * paragraph_separator_</div><div class="ttdef"><b>Definition:</b> <a href="a00104_source.html#l00187">ltrresultiterator.h:187</a></div></div>
<div class="ttc" id="a00560_html_a86e51270628c53ce7e2c23b1c2b4490e"><div class="ttname"><a href="a00560.html#a86e51270628c53ce7e2c23b1c2b4490e">TESS_API</a></div><div class="ttdeci">#define TESS_API</div><div class="ttdef"><b>Definition:</b> <a href="a00560_source.html#l00074">platform.h:74</a></div></div>
<div class="ttc" id="a02250_html_ae1b5b360d5bf55c0cd0eb336de37ea8b"><div class="ttname"><a href="a02250.html#ae1b5b360d5bf55c0cd0eb336de37ea8b">tesseract::LTRResultIterator::line_separator_</a></div><div class="ttdeci">const char * line_separator_</div><div class="ttdef"><b>Definition:</b> <a href="a00104_source.html#l00186">ltrresultiterator.h:186</a></div></div>
<div class="ttc" id="a02254_html_a1038c9116c30e5dc1c85fa2e93d45259"><div class="ttname"><a href="a02254.html#a1038c9116c30e5dc1c85fa2e93d45259">tesseract::ChoiceIterator::Next</a></div><div class="ttdeci">bool Next()</div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00367">ltrresultiterator.cpp:367</a></div></div>
<div class="ttc" id="a00605_html_abc3119a959ecd5cffc1d9b9d57479dba"><div class="ttname"><a href="a00605.html#abc3119a959ecd5cffc1d9b9d57479dba">StrongScriptDirection</a></div><div class="ttdeci">StrongScriptDirection</div><div class="ttdef"><b>Definition:</b> <a href="a00605_source.html#l00042">unichar.h:42</a></div></div>
<div class="ttc" id="a02542_html"><div class="ttname"><a href="a02542.html">WERD_RES</a></div><div class="ttdef"><b>Definition:</b> <a href="a00344_source.html#l00169">pageres.h:169</a></div></div>
<div class="ttc" id="a02530_html"><div class="ttname"><a href="a02530.html">PAGE_RES</a></div><div class="ttdef"><b>Definition:</b> <a href="a00344_source.html#l00077">pageres.h:77</a></div></div>
<div class="ttc" id="a02254_html_a47a2f2fdad78720b4c1a0ccf09e802c1"><div class="ttname"><a href="a02254.html#a47a2f2fdad78720b4c1a0ccf09e802c1">tesseract::ChoiceIterator::ChoiceIterator</a></div><div class="ttdeci">ChoiceIterator(const LTRResultIterator &result_it)</div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00347">ltrresultiterator.cpp:347</a></div></div>
<div class="ttc" id="a02250_html"><div class="ttname"><a href="a02250.html">tesseract::LTRResultIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="a00104_source.html#l00048">ltrresultiterator.h:48</a></div></div>
<div class="ttc" id="a02254_html_a67e30da1e05da880234e347787181898"><div class="ttname"><a href="a02254.html#a67e30da1e05da880234e347787181898">tesseract::ChoiceIterator::~ChoiceIterator</a></div><div class="ttdeci">~ChoiceIterator()</div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00361">ltrresultiterator.cpp:361</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="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="a01629_html_aa26c22b65cc9765a0e747120f4287fd7"><div class="ttname"><a href="a01629.html#aa26c22b65cc9765a0e747120f4287fd7">tesseract::PageIteratorLevel</a></div><div class="ttdeci">PageIteratorLevel</div><div class="ttdef"><b>Definition:</b> <a href="a00380_source.html#l00219">publictypes.h:219</a></div></div>
<div class="ttc" id="a02254_html_a20e1745221e932cda71d5b8994aee2eb"><div class="ttname"><a href="a02254.html#a20e1745221e932cda71d5b8994aee2eb">tesseract::ChoiceIterator::GetUTF8Text</a></div><div class="ttdeci">const char * GetUTF8Text() const</div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00376">ltrresultiterator.cpp:376</a></div></div>
<div class="ttc" id="a02254_html_ae36a0f152f0755df2c0af377fe639094"><div class="ttname"><a href="a02254.html#ae36a0f152f0755df2c0af377fe639094">tesseract::ChoiceIterator::Confidence</a></div><div class="ttdeci">float Confidence() const</div><div class="ttdef"><b>Definition:</b> <a href="a00101_source.html#l00385">ltrresultiterator.cpp:385</a></div></div>
<div class="ttc" id="a02278_html"><div class="ttname"><a href="a02278.html">tesseract::PageIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="a00128_source.html#l00052">pageiterator.h:52</a></div></div>
<div class="ttc" id="a00560_html"><div class="ttname"><a href="a00560.html">platform.h</a></div></div>
<div class="ttc" id="a02254_html"><div class="ttname"><a href="a02254.html">tesseract::ChoiceIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="a00104_source.html#l00191">ltrresultiterator.h:191</a></div></div>
<div class="ttc" id="a00128_html"><div class="ttname"><a href="a00128.html">pageiterator.h</a></div></div>
<div class="ttc" id="a00380_html"><div class="ttname"><a href="a00380.html">publictypes.h</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="a00104.html">ltrresultiterator.h</a></li>
<li class="footer">Generated on Mon Oct 29 2018 11:03:43 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>