<!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&amp;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
   &#160;<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&amp;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&amp;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&amp;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&#160;</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">&#160;</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> *&#160;</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">&#160;</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> *&#160;</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">&#160;</td></tr>
<tr class="memitem:ga33cf8d85c3714857bc8753fef035ea95"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00566.html#aefcd819eeed9085ef0eeeff0f4cac64f">TESS_LOCAL</a> void&#160;</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">&#160;</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&#160;</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">&#160;</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> *&#160;</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">&#160;</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">&#9670;&nbsp;</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 *&#160;</td>
          <td class="paramname"><em>unichar_repr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>length</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>baseline</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>xheight</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>descender</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>ascender</em>&#160;</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>&#160;                                                   {</div><div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>&#160;  <a class="code" href="a00614.html#a8578b19fa1ff5ca75080db1a18ecc32e">UNICHAR_ID</a> <span class="keywordtype">id</span> = <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-&gt;<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>&#160;  <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>&#160;                                    <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-&gt;<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>&#160;                                    <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-&gt;<a class="code" href="a02469.html#ae6daf71366bf37ae460f95c5d9cad11b">pix_binary</a>());</div><div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>&#160;  <span class="keywordtype">float</span> threshold;</div><div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>&#160;  <span class="keywordtype">float</span> best_rating = -100;</div><div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>&#160;</div><div class="line"><a name="l02566"></a><span class="lineno"> 2566</span>&#160;</div><div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>&#160;  <span class="comment">// Classify to get a raw choice.</span></div><div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>&#160;  BLOB_CHOICE_LIST choices;</div><div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>&#160;  <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-&gt;<a class="code" href="a04089.html#ab39a42222f621c9a5f1bd1b31db3a930">AdaptiveClassifier</a>(blob, &amp;choices);</div><div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>&#160;  BLOB_CHOICE_IT choice_it;</div><div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>&#160;  choice_it.set_to_list(&amp;choices);</div><div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>&#160;  <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>&#160;       choice_it.forward()) {</div><div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>&#160;    <span class="keywordflow">if</span> (choice_it.data()-&gt;rating() &gt; best_rating) {</div><div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>&#160;      best_rating = choice_it.data()-&gt;rating();</div><div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>&#160;    }</div><div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>&#160;  }</div><div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>&#160;</div><div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>&#160;  threshold = <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-&gt;<a class="code" href="a04089.html#adc3a809a1a219f741a9e45a32e0d11bc">matcher_good_threshold</a>;</div><div class="line"><a name="l02580"></a><span class="lineno"> 2580</span>&#160;</div><div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>&#160;  <span class="keywordflow">if</span> (blob-&gt;<a class="code" href="a02505.html#a3c9282cad4102157d214bcc6311cda07">outlines</a>)</div><div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>&#160;    <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-&gt;<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>&#160;                            <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-&gt;<a class="code" href="a04089.html#a49c2bec2694a12cb6518001d8193d58d">AdaptedTemplates</a>);</div><div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>&#160;  <span class="keyword">delete</span> blob;</div><div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160;}</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">&#9670;&nbsp;</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&#160;</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>&#160;                                                              {</div><div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>&#160;  <span class="keywordtype">int</span> debug_level = 0;</div><div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>&#160;  <a class="code" href="a02301.html#a25d71dd25faea83cc91db902f2997297">GetIntVariable</a>(<span class="stringliteral">&quot;paragraph_debug_level&quot;</span>, &amp;debug_level);</div><div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>&#160;  <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>&#160;    <a class="code" href="a02301.html#a06084d66b830a388515663761d842041">paragraph_models_</a> = <span class="keyword">new</span> <a class="code" href="a02297.html">GenericVector&lt;ParagraphModel*&gt;</a>;</div><div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>&#160;  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>&#160;  <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>&#160;    <a class="code" href="a02297.html">GenericVector&lt;ParagraphModel *&gt;</a> models;</div><div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>&#160;    <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>&#160;                                  result_it, &amp;models);</div><div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>&#160;    *<a class="code" href="a02301.html#a06084d66b830a388515663761d842041">paragraph_models_</a> += models;</div><div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>&#160;  } <span class="keywordflow">while</span> (result_it-&gt;Next(<a class="code" href="a01738.html#aa26c22b65cc9765a0e747120f4287fd7a2dcea8d4208c16055353029d26f9bf49">RIL_BLOCK</a>));</div><div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>&#160;  <span class="keyword">delete</span> result_it;</div><div class="line"><a name="l02617"></a><span class="lineno"> 2617</span>&#160;}</div><div class="ttc" id="a02297_html"><div class="ttname"><a href="a02297.html">GenericVector&lt; ParagraphModel * &gt;</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&lt; RowInfo &gt; *row_infos, GenericVector&lt; PARA *&gt; *row_owners, PARA_LIST *paragraphs, GenericVector&lt; ParagraphModel *&gt; *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&lt; ParagraphModel * &gt; * 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">&#9670;&nbsp;</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>&#160;{ <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">&#9670;&nbsp;</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 *&#160;</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>&#160;                                                              {</div><div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>&#160;  <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>&#160;                                    &amp;(<a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-&gt;<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>&#160;  <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-&gt;<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>&#160;  <span class="keywordflow">return</span> page_res;</div><div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>&#160;}</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">&#9670;&nbsp;</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 *&#160;</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> *&#160;</td>
          <td class="paramname"><em>pass1_result</em>&#160;</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>&#160;                                                                {</div><div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>&#160;  <span class="keywordflow">if</span> (!pass1_result)</div><div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>&#160;    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>&#160;                                &amp;(<a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-&gt;<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>&#160;  <a class="code" href="a02301.html#a247f50792f581df05afe336a2aeda402">tesseract_</a>-&gt;<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>&#160;  <span class="keywordflow">return</span> pass1_result;</div><div class="line"><a name="l02602"></a><span class="lineno"> 2602</span>&#160;}</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">&#9670;&nbsp;</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 **&#160;</td>
          <td class="paramname"><em>text</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int **&#160;</td>
          <td class="paramname"><em>lengths</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float **&#160;</td>
          <td class="paramname"><em>costs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int **&#160;</td>
          <td class="paramname"><em>x0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int **&#160;</td>
          <td class="paramname"><em>y0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int **&#160;</td>
          <td class="paramname"><em>x1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int **&#160;</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> *&#160;</td>
          <td class="paramname"><em>page_res</em>&#160;</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>&#160;                                                            {</div><div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>&#160;  TESS_CHAR_LIST tess_chars;</div><div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>&#160;  TESS_CHAR_IT tess_chars_it(&amp;tess_chars);</div><div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>&#160;  extract_result(&amp;tess_chars_it, page_res);</div><div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>&#160;  tess_chars_it.move_to_first();</div><div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>&#160;  <span class="keywordtype">int</span> n = tess_chars.length();</div><div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>&#160;  <span class="keywordtype">int</span> text_len = 0;</div><div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>&#160;  *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>&#160;  *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>&#160;  *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>&#160;  *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>&#160;  *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>&#160;  *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>&#160;  <span class="keywordtype">int</span> i = 0;</div><div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160;  <span class="keywordflow">for</span> (tess_chars_it.mark_cycle_pt();</div><div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160;       !tess_chars_it.cycled_list();</div><div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>&#160;       tess_chars_it.forward(), i++) {</div><div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>&#160;    TESS_CHAR *tc = tess_chars_it.data();</div><div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>&#160;    text_len += (*lengths)[i] = tc-&gt;length;</div><div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>&#160;    (*costs)[i] = tc-&gt;cost;</div><div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>&#160;    (*x0)[i] = tc-&gt;box.left();</div><div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>&#160;    (*y0)[i] = tc-&gt;box.bottom();</div><div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160;    (*x1)[i] = tc-&gt;box.right();</div><div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>&#160;    (*y1)[i] = tc-&gt;box.top();</div><div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>&#160;  }</div><div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>&#160;  <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>&#160;</div><div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>&#160;  tess_chars_it.move_to_first();</div><div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>&#160;  <span class="keywordflow">for</span> (tess_chars_it.mark_cycle_pt();</div><div class="line"><a name="l02726"></a><span class="lineno"> 2726</span>&#160;        !tess_chars_it.cycled_list();</div><div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>&#160;       tess_chars_it.forward()) {</div><div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>&#160;    TESS_CHAR *tc = tess_chars_it.data();</div><div class="line"><a name="l02729"></a><span class="lineno"> 2729</span>&#160;    strncpy(p, tc-&gt;unicode_repr, tc-&gt;length);</div><div class="line"><a name="l02730"></a><span class="lineno"> 2730</span>&#160;    p += tc-&gt;length;</div><div class="line"><a name="l02731"></a><span class="lineno"> 2731</span>&#160;  }</div><div class="line"><a name="l02732"></a><span class="lineno"> 2732</span>&#160;  <span class="keywordflow">return</span> n;</div><div class="line"><a name="l02733"></a><span class="lineno"> 2733</span>&#160;}</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>