<!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: ocropus add-ons</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">3.05.02</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('a01735.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="summary"> <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">ocropus add-ons</div> </div> </div><!--header--> <div class="contents"> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:gaf62a3be9f3b8ca4f8260ec2cc1628ecc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00566.html#aefcd819eeed9085ef0eeeff0f4cac64f">TESS_LOCAL</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="a01735.html#gaf62a3be9f3b8ca4f8260ec2cc1628ecc">tesseract::TessBaseAPI::AdaptToCharacter</a> (const char *unichar_repr, int length, float <a class="el" href="a00770.html#a2a4b69f9a2827dc98bc4cbc233118865a83297de004f4e58b9be2108c6cd08a23">baseline</a>, float xheight, float descender, float ascender)</td></tr> <tr class="separator:gaf62a3be9f3b8ca4f8260ec2cc1628ecc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0384f67e497ea3e81436d09da0ad7270"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00566.html#aefcd819eeed9085ef0eeeff0f4cac64f">TESS_LOCAL</a> <a class="el" href="a02633.html">PAGE_RES</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a01735.html#ga0384f67e497ea3e81436d09da0ad7270">tesseract::TessBaseAPI::RecognitionPass1</a> (BLOCK_LIST *block_list)</td></tr> <tr class="separator:ga0384f67e497ea3e81436d09da0ad7270"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga158cc2af7170f3efa8cb140f2745d9b8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00566.html#aefcd819eeed9085ef0eeeff0f4cac64f">TESS_LOCAL</a> <a class="el" href="a02633.html">PAGE_RES</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a01735.html#ga158cc2af7170f3efa8cb140f2745d9b8">tesseract::TessBaseAPI::RecognitionPass2</a> (BLOCK_LIST *block_list, <a class="el" href="a02633.html">PAGE_RES</a> *pass1_result)</td></tr> <tr class="separator:ga158cc2af7170f3efa8cb140f2745d9b8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga33cf8d85c3714857bc8753fef035ea95"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00566.html#aefcd819eeed9085ef0eeeff0f4cac64f">TESS_LOCAL</a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="a01735.html#ga33cf8d85c3714857bc8753fef035ea95">tesseract::TessBaseAPI::DetectParagraphs</a> (bool after_text_recognition)</td></tr> <tr class="separator:ga33cf8d85c3714857bc8753fef035ea95"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga554e33b4a8fa10ccd2200698ded6753d"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a00566.html#aefcd819eeed9085ef0eeeff0f4cac64f">TESS_LOCAL</a> int </td><td class="memItemRight" valign="bottom"><a class="el" href="a01735.html#ga554e33b4a8fa10ccd2200698ded6753d">tesseract::TessBaseAPI::TesseractExtractResult</a> (char **text, int **lengths, float **costs, int **x0, int **y0, int **x1, int **y1, <a class="el" href="a02633.html">PAGE_RES</a> *page_res)</td></tr> <tr class="separator:ga554e33b4a8fa10ccd2200698ded6753d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga01df6300434b0f792dcc9d257e0ca0b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00566.html#aefcd819eeed9085ef0eeeff0f4cac64f">TESS_LOCAL</a> const <a class="el" href="a02633.html">PAGE_RES</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a01735.html#ga01df6300434b0f792dcc9d257e0ca0b5">tesseract::TessBaseAPI::GetPageRes</a> () const</td></tr> <tr class="separator:ga01df6300434b0f792dcc9d257e0ca0b5"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <h2 class="groupheader">Function Documentation</h2> <a id="gaf62a3be9f3b8ca4f8260ec2cc1628ecc"></a> <h2 class="memtitle"><span class="permalink"><a href="#gaf62a3be9f3b8ca4f8260ec2cc1628ecc">◆ </a></span>AdaptToCharacter()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void tesseract::TessBaseAPI::AdaptToCharacter </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>unichar_repr</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>length</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>baseline</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>xheight</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>descender</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float </td> <td class="paramname"><em>ascender</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Adapt to recognize the current image as the given character. The image must be preloaded and be just an image of a single character.</p> <p>Adapt to recognize the current image as the given character. The image must be preloaded into pix_binary_ and be just an image of a single character. </p> <p class="definition">Definition at line <a class="el" href="a00005_source.html#l02553">2553</a> of file <a class="el" href="a00005_source.html">baseapi.cpp</a>.</p> <div class="fragment"><div class="line"><a name="l02558"></a><span class="lineno"> 2558</span>  {</div><div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>  <a class="code" href="a00614.html#a8578b19fa1ff5ca75080db1a18ecc32e">UNICHAR_ID</a> <span class="keywordtype">id</span> = <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-><a class="code" href="a02769.html#a69c5179ac5f10a24f3f97e16ca09460f">unicharset</a>.<a class="code" href="a04041.html#aeb2253dcb5f01c81fcba5f4af417eadf">unichar_to_id</a>(unichar_repr, length);</div><div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>  <a class="code" href="a02505.html">TBLOB</a> *blob = <a class="code" href="a01738.html#a920259f2171a834a4e379e8a6a8460c5">make_tesseract_blob</a>(<a class="code" href="a00770.html#a2a4b69f9a2827dc98bc4cbc233118865a83297de004f4e58b9be2108c6cd08a23">baseline</a>, xheight, descender, ascender,</div><div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>  <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-><a class="code" href="a04089.html#a57e449d38b255fe82e61d88ded8b0020">classify_bln_numeric_mode</a>,</div><div class="line"><a name="l02562"></a><span class="lineno"> 2562</span>  <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-><a class="code" href="a02469.html#ae6daf71366bf37ae460f95c5d9cad11b">pix_binary</a>());</div><div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>  <span class="keywordtype">float</span> threshold;</div><div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>  <span class="keywordtype">float</span> best_rating = -100;</div><div class="line"><a name="l02565"></a><span class="lineno"> 2565</span> </div><div class="line"><a name="l02566"></a><span class="lineno"> 2566</span> </div><div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>  <span class="comment">// Classify to get a raw choice.</span></div><div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>  BLOB_CHOICE_LIST choices;</div><div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>  <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-><a class="code" href="a04089.html#ab39a42222f621c9a5f1bd1b31db3a930">AdaptiveClassifier</a>(blob, &choices);</div><div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>  BLOB_CHOICE_IT choice_it;</div><div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>  choice_it.set_to_list(&choices);</div><div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>  <span class="keywordflow">for</span> (choice_it.mark_cycle_pt(); !choice_it.cycled_list();</div><div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>  choice_it.forward()) {</div><div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>  <span class="keywordflow">if</span> (choice_it.data()->rating() > best_rating) {</div><div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>  best_rating = choice_it.data()->rating();</div><div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>  }</div><div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>  }</div><div class="line"><a name="l02578"></a><span class="lineno"> 2578</span> </div><div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>  threshold = <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-><a class="code" href="a04089.html#adc3a809a1a219f741a9e45a32e0d11bc">matcher_good_threshold</a>;</div><div class="line"><a name="l02580"></a><span class="lineno"> 2580</span> </div><div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>  <span class="keywordflow">if</span> (blob-><a class="code" href="a02505.html#a3c9282cad4102157d214bcc6311cda07">outlines</a>)</div><div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>  <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-><a class="code" href="a04089.html#a54212a417ae117baf3f1613b72ef2951">AdaptToChar</a>(blob, <span class="keywordtype">id</span>, kUnknownFontinfoId, threshold,</div><div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>  <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-><a class="code" href="a04089.html#a49c2bec2694a12cb6518001d8193d58d">AdaptedTemplates</a>);</div><div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>  <span class="keyword">delete</span> blob;</div><div class="line"><a name="l02585"></a><span class="lineno"> 2585</span> }</div><div class="ttc" id="a04089_html_adc3a809a1a219f741a9e45a32e0d11bc"><div class="ttname"><a href="a04089.html#adc3a809a1a219f741a9e45a32e0d11bc">tesseract::Classify::matcher_good_threshold</a></div><div class="ttdeci">double matcher_good_threshold</div><div class="ttdef"><b>Definition:</b> <a href="a00662_source.html#l00420">classify.h:420</a></div></div> <div class="ttc" id="a04089_html_a49c2bec2694a12cb6518001d8193d58d"><div class="ttname"><a href="a04089.html#a49c2bec2694a12cb6518001d8193d58d">tesseract::Classify::AdaptedTemplates</a></div><div class="ttdeci">ADAPT_TEMPLATES AdaptedTemplates</div><div class="ttdef"><b>Definition:</b> <a href="a00662_source.html#l00473">classify.h:473</a></div></div> <div class="ttc" id="a01738_html_a920259f2171a834a4e379e8a6a8460c5"><div class="ttname"><a href="a01738.html#a920259f2171a834a4e379e8a6a8460c5">tesseract::make_tesseract_blob</a></div><div class="ttdeci">TBLOB * make_tesseract_blob(float baseline, float xheight, float descender, float ascender, bool numeric_mode, Pix *pix)</div><div class="ttdef"><b>Definition:</b> <a href="a00005_source.html#l02535">baseapi.cpp:2535</a></div></div> <div class="ttc" id="a00770_html_a2a4b69f9a2827dc98bc4cbc233118865a83297de004f4e58b9be2108c6cd08a23"><div class="ttname"><a href="a00770.html#a2a4b69f9a2827dc98bc4cbc233118865a83297de004f4e58b9be2108c6cd08a23">baseline</a></div><div class="ttdef"><b>Definition:</b> <a href="a00770_source.html#l00054">mfoutline.h:54</a></div></div> <div class="ttc" id="a02469_html_ae6daf71366bf37ae460f95c5d9cad11b"><div class="ttname"><a href="a02469.html#ae6daf71366bf37ae460f95c5d9cad11b">tesseract::Tesseract::pix_binary</a></div><div class="ttdeci">Pix * pix_binary() const</div><div class="ttdef"><b>Definition:</b> <a href="a00173_source.html#l00195">tesseractclass.h:195</a></div></div> <div class="ttc" id="a04089_html_ab39a42222f621c9a5f1bd1b31db3a930"><div class="ttname"><a href="a04089.html#ab39a42222f621c9a5f1bd1b31db3a930">tesseract::Classify::AdaptiveClassifier</a></div><div class="ttdeci">void AdaptiveClassifier(TBLOB *Blob, BLOB_CHOICE_LIST *Choices)</div><div class="ttdef"><b>Definition:</b> <a href="a00650_source.html#l00185">adaptmatch.cpp:185</a></div></div> <div class="ttc" id="a04041_html_aeb2253dcb5f01c81fcba5f4af417eadf"><div class="ttname"><a href="a04041.html#aeb2253dcb5f01c81fcba5f4af417eadf">UNICHARSET::unichar_to_id</a></div><div class="ttdeci">UNICHAR_ID TESS_API unichar_to_id(const char *const unichar_repr) const</div><div class="ttdef"><b>Definition:</b> <a href="a00623_source.html#l00194">unicharset.cpp:194</a></div></div> <div class="ttc" id="a02505_html_a3c9282cad4102157d214bcc6311cda07"><div class="ttname"><a href="a02505.html#a3c9282cad4102157d214bcc6311cda07">TBLOB::outlines</a></div><div class="ttdeci">TESSLINE * outlines</div><div class="ttdef"><b>Definition:</b> <a href="a00215_source.html#l00377">blobs.h:377</a></div></div> <div class="ttc" id="a02505_html"><div class="ttname"><a href="a02505.html">TBLOB</a></div><div class="ttdef"><b>Definition:</b> <a href="a00215_source.html#l00261">blobs.h:261</a></div></div> <div class="ttc" id="a04089_html_a57e449d38b255fe82e61d88ded8b0020"><div class="ttname"><a href="a04089.html#a57e449d38b255fe82e61d88ded8b0020">tesseract::Classify::classify_bln_numeric_mode</a></div><div class="ttdeci">bool classify_bln_numeric_mode</div><div class="ttdef"><b>Definition:</b> <a href="a00662_source.html#l00500">classify.h:500</a></div></div> <div class="ttc" id="a02301_html_a247f50792f581df05afe336a2aeda402"><div class="ttname"><a href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract::TessBaseAPI::tesseract_</a></div><div class="ttdeci">Tesseract * tesseract_</div><div class="ttdoc">The underlying data object. </div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00865">baseapi.h:865</a></div></div> <div class="ttc" id="a04089_html_a54212a417ae117baf3f1613b72ef2951"><div class="ttname"><a href="a04089.html#a54212a417ae117baf3f1613b72ef2951">tesseract::Classify::AdaptToChar</a></div><div class="ttdeci">void AdaptToChar(TBLOB *Blob, CLASS_ID ClassId, int FontinfoId, FLOAT32 Threshold, ADAPT_TEMPLATES adaptive_templates)</div><div class="ttdef"><b>Definition:</b> <a href="a00650_source.html#l00886">adaptmatch.cpp:886</a></div></div> <div class="ttc" id="a02769_html_a69c5179ac5f10a24f3f97e16ca09460f"><div class="ttname"><a href="a02769.html#a69c5179ac5f10a24f3f97e16ca09460f">tesseract::CCUtil::unicharset</a></div><div class="ttdeci">UNICHARSET unicharset</div><div class="ttdef"><b>Definition:</b> <a href="a00473_source.html#l00070">ccutil.h:70</a></div></div> <div class="ttc" id="a00614_html_a8578b19fa1ff5ca75080db1a18ecc32e"><div class="ttname"><a href="a00614.html#a8578b19fa1ff5ca75080db1a18ecc32e">UNICHAR_ID</a></div><div class="ttdeci">int UNICHAR_ID</div><div class="ttdef"><b>Definition:</b> <a href="a00614_source.html#l00033">unichar.h:33</a></div></div> </div><!-- fragment --> </div> </div> <a id="ga33cf8d85c3714857bc8753fef035ea95"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga33cf8d85c3714857bc8753fef035ea95">◆ </a></span>DetectParagraphs()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">void tesseract::TessBaseAPI::DetectParagraphs </td> <td>(</td> <td class="paramtype">bool </td> <td class="paramname"><em>after_text_recognition</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="a00005_source.html#l02604">2604</a> of file <a class="el" href="a00005_source.html">baseapi.cpp</a>.</p> <div class="fragment"><div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>  {</div><div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>  <span class="keywordtype">int</span> debug_level = 0;</div><div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>  <a class="code" href="a02301.html#a25d71dd25faea83cc91db902f2997297">GetIntVariable</a>(<span class="stringliteral">"paragraph_debug_level"</span>, &debug_level);</div><div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>  <span class="keywordflow">if</span> (<a class="code" href="a02301.html#a06084d66b830a388515663761d842041">paragraph_models_</a> == NULL)</div><div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>  <a class="code" href="a02301.html#a06084d66b830a388515663761d842041">paragraph_models_</a> = <span class="keyword">new</span> <a class="code" href="a02297.html">GenericVector<ParagraphModel*></a>;</div><div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>  MutableIterator *result_it = <a class="code" href="a01734.html#ga29906219f78adc7fd76a83bde37e09eb">GetMutableIterator</a>();</div><div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>  <span class="keywordflow">do</span> { <span class="comment">// Detect paragraphs for this block</span></div><div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>  <a class="code" href="a02297.html">GenericVector<ParagraphModel *></a> models;</div><div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>  <a class="code" href="a01738.html#a65cdf27a58055de3324687ee56b1dcba">::tesseract::DetectParagraphs</a>(debug_level, after_text_recognition,</div><div class="line"><a name="l02613"></a><span class="lineno"> 2613</span>  result_it, &models);</div><div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>  *<a class="code" href="a02301.html#a06084d66b830a388515663761d842041">paragraph_models_</a> += models;</div><div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>  } <span class="keywordflow">while</span> (result_it->Next(<a class="code" href="a01738.html#aa26c22b65cc9765a0e747120f4287fd7a2dcea8d4208c16055353029d26f9bf49">RIL_BLOCK</a>));</div><div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>  <span class="keyword">delete</span> result_it;</div><div class="line"><a name="l02617"></a><span class="lineno"> 2617</span> }</div><div class="ttc" id="a02297_html"><div class="ttname"><a href="a02297.html">GenericVector< ParagraphModel * ></a></div></div> <div class="ttc" id="a01738_html_a65cdf27a58055de3324687ee56b1dcba"><div class="ttname"><a href="a01738.html#a65cdf27a58055de3324687ee56b1dcba">tesseract::DetectParagraphs</a></div><div class="ttdeci">void DetectParagraphs(int debug_level, GenericVector< RowInfo > *row_infos, GenericVector< PARA *> *row_owners, PARA_LIST *paragraphs, GenericVector< ParagraphModel *> *models)</div><div class="ttdef"><b>Definition:</b> <a href="a00113_source.html#l02265">paragraphs.cpp:2265</a></div></div> <div class="ttc" id="a01738_html_aa26c22b65cc9765a0e747120f4287fd7a2dcea8d4208c16055353029d26f9bf49"><div class="ttname"><a href="a01738.html#aa26c22b65cc9765a0e747120f4287fd7a2dcea8d4208c16055353029d26f9bf49">tesseract::RIL_BLOCK</a></div><div class="ttdef"><b>Definition:</b> <a href="a00374_source.html#l00208">publictypes.h:208</a></div></div> <div class="ttc" id="a02301_html_a06084d66b830a388515663761d842041"><div class="ttname"><a href="a02301.html#a06084d66b830a388515663761d842041">tesseract::TessBaseAPI::paragraph_models_</a></div><div class="ttdeci">GenericVector< ParagraphModel * > * paragraph_models_</div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00869">baseapi.h:869</a></div></div> <div class="ttc" id="a02301_html_a25d71dd25faea83cc91db902f2997297"><div class="ttname"><a href="a02301.html#a25d71dd25faea83cc91db902f2997297">tesseract::TessBaseAPI::GetIntVariable</a></div><div class="ttdeci">bool GetIntVariable(const char *name, int *value) const</div><div class="ttdef"><b>Definition:</b> <a href="a00005_source.html#l00226">baseapi.cpp:226</a></div></div> <div class="ttc" id="a01734_html_ga29906219f78adc7fd76a83bde37e09eb"><div class="ttname"><a href="a01734.html#ga29906219f78adc7fd76a83bde37e09eb">tesseract::TessBaseAPI::GetMutableIterator</a></div><div class="ttdeci">MutableIterator * GetMutableIterator()</div><div class="ttdef"><b>Definition:</b> <a href="a00005_source.html#l01271">baseapi.cpp:1271</a></div></div> </div><!-- fragment --> </div> </div> <a id="ga01df6300434b0f792dcc9d257e0ca0b5"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga01df6300434b0f792dcc9d257e0ca0b5">◆ </a></span>GetPageRes()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00566.html#aefcd819eeed9085ef0eeeff0f4cac64f">TESS_LOCAL</a> const <a class="el" href="a02633.html">PAGE_RES</a>* tesseract::TessBaseAPI::GetPageRes </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="a00008_source.html#l00860">860</a> of file <a class="el" href="a00008_source.html">baseapi.h</a>.</p> <div class="fragment"><div class="line"><a name="l00860"></a><span class="lineno"> 860</span> { <span class="keywordflow">return</span> <a class="code" href="a02301.html#a12dda612630eba40e15f9d0b9955a04c">page_res_</a>; }</div><div class="ttc" id="a02301_html_a12dda612630eba40e15f9d0b9955a04c"><div class="ttname"><a href="a02301.html#a12dda612630eba40e15f9d0b9955a04c">tesseract::TessBaseAPI::page_res_</a></div><div class="ttdeci">PAGE_RES * page_res_</div><div class="ttdoc">The page-level data. </div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00871">baseapi.h:871</a></div></div> </div><!-- fragment --> </div> </div> <a id="ga0384f67e497ea3e81436d09da0ad7270"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga0384f67e497ea3e81436d09da0ad7270">◆ </a></span>RecognitionPass1()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02633.html">PAGE_RES</a> * tesseract::TessBaseAPI::RecognitionPass1 </td> <td>(</td> <td class="paramtype">BLOCK_LIST * </td> <td class="paramname"><em>block_list</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Recognize text doing one pass only, using settings for a given pass. </p> <p class="definition">Definition at line <a class="el" href="a00005_source.html#l02588">2588</a> of file <a class="el" href="a00005_source.html">baseapi.cpp</a>.</p> <div class="fragment"><div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>  {</div><div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>  <a class="code" href="a02633.html">PAGE_RES</a> *page_res = <span class="keyword">new</span> <a class="code" href="a02633.html">PAGE_RES</a>(<span class="keyword">false</span>, block_list,</div><div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>  &(<a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-><a class="code" href="a05017.html#a143608f482c6c0c4f312740e6a5f5fd9">prev_word_best_choice_</a>));</div><div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>  <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-><a class="code" href="a02469.html#af9c097177e82c5f5495a7dc1506d66ed">recog_all_words</a>(page_res, NULL, NULL, NULL, 1);</div><div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>  <span class="keywordflow">return</span> page_res;</div><div class="line"><a name="l02593"></a><span class="lineno"> 2593</span> }</div><div class="ttc" id="a02469_html_af9c097177e82c5f5495a7dc1506d66ed"><div class="ttname"><a href="a02469.html#af9c097177e82c5f5495a7dc1506d66ed">tesseract::Tesseract::recog_all_words</a></div><div class="ttdeci">bool recog_all_words(PAGE_RES *page_res, ETEXT_DESC *monitor, const TBOX *target_word_box, const char *word_config, int dopasses)</div><div class="ttdef"><b>Definition:</b> <a href="a00035_source.html#l00293">control.cpp:293</a></div></div> <div class="ttc" id="a05017_html_a143608f482c6c0c4f312740e6a5f5fd9"><div class="ttname"><a href="a05017.html#a143608f482c6c0c4f312740e6a5f5fd9">tesseract::Wordrec::prev_word_best_choice_</a></div><div class="ttdeci">WERD_CHOICE * prev_word_best_choice_</div><div class="ttdef"><b>Definition:</b> <a href="a01730_source.html#l00416">wordrec.h:416</a></div></div> <div class="ttc" id="a02301_html_a247f50792f581df05afe336a2aeda402"><div class="ttname"><a href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract::TessBaseAPI::tesseract_</a></div><div class="ttdeci">Tesseract * tesseract_</div><div class="ttdoc">The underlying data object. </div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00865">baseapi.h:865</a></div></div> <div class="ttc" id="a02633_html"><div class="ttname"><a href="a02633.html">PAGE_RES</a></div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00058">pageres.h:58</a></div></div> </div><!-- fragment --> </div> </div> <a id="ga158cc2af7170f3efa8cb140f2745d9b8"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga158cc2af7170f3efa8cb140f2745d9b8">◆ </a></span>RecognitionPass2()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a02633.html">PAGE_RES</a> * tesseract::TessBaseAPI::RecognitionPass2 </td> <td>(</td> <td class="paramtype">BLOCK_LIST * </td> <td class="paramname"><em>block_list</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a02633.html">PAGE_RES</a> * </td> <td class="paramname"><em>pass1_result</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p class="definition">Definition at line <a class="el" href="a00005_source.html#l02595">2595</a> of file <a class="el" href="a00005_source.html">baseapi.cpp</a>.</p> <div class="fragment"><div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>  {</div><div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>  <span class="keywordflow">if</span> (!pass1_result)</div><div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>  pass1_result = <span class="keyword">new</span> <a class="code" href="a02633.html">PAGE_RES</a>(<span class="keyword">false</span>, block_list,</div><div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>  &(<a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-><a class="code" href="a05017.html#a143608f482c6c0c4f312740e6a5f5fd9">prev_word_best_choice_</a>));</div><div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>  <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-><a class="code" href="a02469.html#af9c097177e82c5f5495a7dc1506d66ed">recog_all_words</a>(pass1_result, NULL, NULL, NULL, 2);</div><div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>  <span class="keywordflow">return</span> pass1_result;</div><div class="line"><a name="l02602"></a><span class="lineno"> 2602</span> }</div><div class="ttc" id="a02469_html_af9c097177e82c5f5495a7dc1506d66ed"><div class="ttname"><a href="a02469.html#af9c097177e82c5f5495a7dc1506d66ed">tesseract::Tesseract::recog_all_words</a></div><div class="ttdeci">bool recog_all_words(PAGE_RES *page_res, ETEXT_DESC *monitor, const TBOX *target_word_box, const char *word_config, int dopasses)</div><div class="ttdef"><b>Definition:</b> <a href="a00035_source.html#l00293">control.cpp:293</a></div></div> <div class="ttc" id="a05017_html_a143608f482c6c0c4f312740e6a5f5fd9"><div class="ttname"><a href="a05017.html#a143608f482c6c0c4f312740e6a5f5fd9">tesseract::Wordrec::prev_word_best_choice_</a></div><div class="ttdeci">WERD_CHOICE * prev_word_best_choice_</div><div class="ttdef"><b>Definition:</b> <a href="a01730_source.html#l00416">wordrec.h:416</a></div></div> <div class="ttc" id="a02301_html_a247f50792f581df05afe336a2aeda402"><div class="ttname"><a href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract::TessBaseAPI::tesseract_</a></div><div class="ttdeci">Tesseract * tesseract_</div><div class="ttdoc">The underlying data object. </div><div class="ttdef"><b>Definition:</b> <a href="a00008_source.html#l00865">baseapi.h:865</a></div></div> <div class="ttc" id="a02633_html"><div class="ttname"><a href="a02633.html">PAGE_RES</a></div><div class="ttdef"><b>Definition:</b> <a href="a00338_source.html#l00058">pageres.h:58</a></div></div> </div><!-- fragment --> </div> </div> <a id="ga554e33b4a8fa10ccd2200698ded6753d"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga554e33b4a8fa10ccd2200698ded6753d">◆ </a></span>TesseractExtractResult()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int tesseract::TessBaseAPI::TesseractExtractResult </td> <td>(</td> <td class="paramtype">char ** </td> <td class="paramname"><em>text</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int ** </td> <td class="paramname"><em>lengths</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">float ** </td> <td class="paramname"><em>costs</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int ** </td> <td class="paramname"><em>x0</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int ** </td> <td class="paramname"><em>y0</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int ** </td> <td class="paramname"><em>x1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int ** </td> <td class="paramname"><em>y1</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a02633.html">PAGE_RES</a> * </td> <td class="paramname"><em>page_res</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Extract the OCR results, costs (penalty points for uncertainty), and the bounding boxes of the characters. </p> <p class="definition">Definition at line <a class="el" href="a00005_source.html#l02690">2690</a> of file <a class="el" href="a00005_source.html">baseapi.cpp</a>.</p> <div class="fragment"><div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>  {</div><div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>  TESS_CHAR_LIST tess_chars;</div><div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>  TESS_CHAR_IT tess_chars_it(&tess_chars);</div><div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>  extract_result(&tess_chars_it, page_res);</div><div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>  tess_chars_it.move_to_first();</div><div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>  <span class="keywordtype">int</span> n = tess_chars.length();</div><div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>  <span class="keywordtype">int</span> text_len = 0;</div><div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>  *lengths = <span class="keyword">new</span> <span class="keywordtype">int</span>[n];</div><div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>  *costs = <span class="keyword">new</span> <span class="keywordtype">float</span>[n];</div><div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>  *x0 = <span class="keyword">new</span> <span class="keywordtype">int</span>[n];</div><div class="line"><a name="l02707"></a><span class="lineno"> 2707</span>  *y0 = <span class="keyword">new</span> <span class="keywordtype">int</span>[n];</div><div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>  *x1 = <span class="keyword">new</span> <span class="keywordtype">int</span>[n];</div><div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>  *y1 = <span class="keyword">new</span> <span class="keywordtype">int</span>[n];</div><div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>  <span class="keywordtype">int</span> i = 0;</div><div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>  <span class="keywordflow">for</span> (tess_chars_it.mark_cycle_pt();</div><div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>  !tess_chars_it.cycled_list();</div><div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>  tess_chars_it.forward(), i++) {</div><div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>  TESS_CHAR *tc = tess_chars_it.data();</div><div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>  text_len += (*lengths)[i] = tc->length;</div><div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>  (*costs)[i] = tc->cost;</div><div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>  (*x0)[i] = tc->box.left();</div><div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>  (*y0)[i] = tc->box.bottom();</div><div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>  (*x1)[i] = tc->box.right();</div><div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>  (*y1)[i] = tc->box.top();</div><div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>  }</div><div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>  <span class="keywordtype">char</span> *p = *text = <span class="keyword">new</span> <span class="keywordtype">char</span>[text_len];</div><div class="line"><a name="l02723"></a><span class="lineno"> 2723</span> </div><div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>  tess_chars_it.move_to_first();</div><div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>  <span class="keywordflow">for</span> (tess_chars_it.mark_cycle_pt();</div><div class="line"><a name="l02726"></a><span class="lineno"> 2726</span>  !tess_chars_it.cycled_list();</div><div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>  tess_chars_it.forward()) {</div><div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>  TESS_CHAR *tc = tess_chars_it.data();</div><div class="line"><a name="l02729"></a><span class="lineno"> 2729</span>  strncpy(p, tc->unicode_repr, tc->length);</div><div class="line"><a name="l02730"></a><span class="lineno"> 2730</span>  p += tc->length;</div><div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>  }</div><div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>  <span class="keywordflow">return</span> n;</div><div class="line"><a name="l02733"></a><span class="lineno"> 2733</span> }</div></div><!-- fragment --> </div> </div> </div><!-- contents --> </div><!-- doc-content --> <!-- start footer part --> <div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> <ul> <li class="footer">Generated on Mon Oct 29 2018 11:27:55 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>