Sophie

Sophie

distrib > Mageia > 7 > x86_64 > media > nonfree-updates > by-pkgid > b86a85131cc739c1c53d0b55840a4328 > files > 1941

nvidia-cuda-toolkit-devel-10.1.168-1.2.mga7.nonfree.x86_64.rpm

<!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.5"/>
<title>NVIDIA 2D Image And Signal Performance Primitives (NPP): FilterHoughLine</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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</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 style="padding-left: 0.5em;">
   <div id="projectname">NVIDIA 2D Image And Signal Performance Primitives (NPP)
   &#160;<span id="projectnumber">Version 10.1.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></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">FilterHoughLine<div class="ingroups"><a class="el" href="group__image__computer__vision__filtering__functions.html">Computer Vision</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Extracts Hough lines from a single channel 8-bit binarized (0, 255) source feature (canny edges, etc.) image.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaba0301e14765e4956241868c16377930"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__typedefs__npp.html#ga1105a17b5e76381583c46ecd6a60fe21">NppStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__image__filter__hough__line.html#gaba0301e14765e4956241868c16377930">nppiFilterHoughLineGetBufferSize</a> (<a class="el" href="struct_nppi_size.html">NppiSize</a> oSizeROI, <a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> nDelta, int nMaxLineCount, int *hpBufferSize)</td></tr>
<tr class="memdesc:gaba0301e14765e4956241868c16377930"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate scratch buffer size needed for the FilterHoughLine or FilterHoughLineRegion functions based on destination image SizeROI width and height and nDelta parameters.  <a href="#gaba0301e14765e4956241868c16377930">More...</a><br/></td></tr>
<tr class="separator:gaba0301e14765e4956241868c16377930"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga41f2f58d1db84c017395501c363f2f93"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__typedefs__npp.html#ga1105a17b5e76381583c46ecd6a60fe21">NppStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__image__filter__hough__line.html#ga41f2f58d1db84c017395501c363f2f93">nppiFilterHoughLine_8u32f_C1R_Ctx</a> (const <a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *pSrc, int nSrcStep, <a class="el" href="struct_nppi_size.html">NppiSize</a> oSizeROI, <a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> nDelta, int nThreshold, <a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> *pDeviceLines, int nMaxLineCount, int *pDeviceLineCount, <a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *pDeviceBuffer, <a class="el" href="struct_npp_stream_context.html">NppStreamContext</a> nppStreamCtx)</td></tr>
<tr class="memdesc:ga41f2f58d1db84c017395501c363f2f93"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 channel 8-bit unsigned binarized (0, 255) source feature (canny edges, etc.) source image to list of lines in point polar format representing the length (rho) and angle (theta) of each line from the origin of the normal to the line using the formula rho = x cos(theta) + y sin(theta).  <a href="#ga41f2f58d1db84c017395501c363f2f93">More...</a><br/></td></tr>
<tr class="separator:ga41f2f58d1db84c017395501c363f2f93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed681b5f8c7687575d7ec99ccba57244"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__typedefs__npp.html#ga1105a17b5e76381583c46ecd6a60fe21">NppStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__image__filter__hough__line.html#gaed681b5f8c7687575d7ec99ccba57244">nppiFilterHoughLine_8u32f_C1R</a> (const <a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *pSrc, int nSrcStep, <a class="el" href="struct_nppi_size.html">NppiSize</a> oSizeROI, <a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> nDelta, int nThreshold, <a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> *pDeviceLines, int nMaxLineCount, int *pDeviceLineCount, <a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *pDeviceBuffer)</td></tr>
<tr class="separator:gaed681b5f8c7687575d7ec99ccba57244"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa7e912bf91cc525b6538794e82cad6b0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__typedefs__npp.html#ga1105a17b5e76381583c46ecd6a60fe21">NppStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__image__filter__hough__line.html#gaa7e912bf91cc525b6538794e82cad6b0">nppiFilterHoughLineRegion_8u32f_C1R_Ctx</a> (const <a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *pSrc, int nSrcStep, <a class="el" href="struct_nppi_size.html">NppiSize</a> oSizeROI, <a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> nDelta, int nThreshold, <a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> *pDeviceLines, <a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> oDstROI[2], int nMaxLineCount, int *pDeviceLineCount, <a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *pDeviceBuffer, <a class="el" href="struct_npp_stream_context.html">NppStreamContext</a> nppStreamCtx)</td></tr>
<tr class="memdesc:gaa7e912bf91cc525b6538794e82cad6b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 channel 8-bit unsigned binarized (0, 255) source feature (canny edges, etc.) source image to list of lines in point polar format representing the length (rho) and angle (theta) of each line from the origin of the normal to the line using the formula rho = x cos(theta) + y sin(theta).  <a href="#gaa7e912bf91cc525b6538794e82cad6b0">More...</a><br/></td></tr>
<tr class="separator:gaa7e912bf91cc525b6538794e82cad6b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5e095f481788977d167a36dc45ac77a9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__typedefs__npp.html#ga1105a17b5e76381583c46ecd6a60fe21">NppStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__image__filter__hough__line.html#ga5e095f481788977d167a36dc45ac77a9">nppiFilterHoughLineRegion_8u32f_C1R</a> (const <a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *pSrc, int nSrcStep, <a class="el" href="struct_nppi_size.html">NppiSize</a> oSizeROI, <a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> nDelta, int nThreshold, <a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> *pDeviceLines, <a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> oDstROI[2], int nMaxLineCount, int *pDeviceLineCount, <a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *pDeviceBuffer)</td></tr>
<tr class="separator:ga5e095f481788977d167a36dc45ac77a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Extracts Hough lines from a single channel 8-bit binarized (0, 255) source feature (canny edges, etc.) image. </p>
<p>Outputs a list of lines in point polar format representing the length (rho) and angle (theta) of each line from the origin of the normal to the line using the formula rho = x cos(theta) + y sin(theta). The level of discretization, nDelta, is specified as an input parameter. The performance and effectiveness of this function highly depends on this parameter with higher performance for larger numbers and more detailed results for lower numbers. Also, lines are not guaranteed to be added to the pDeviceLines list in the same order from one call to the next. However, all of the same lines will still be generated as long as nMaxLineCount is set large enough so that they all can fit in the list. To convert lines in point polar format back to cartesian lines use the following formula: </p>
<div class="fragment"><div class="line">*</div>
<div class="line">*  <a class="code" href="group__npp__basic__types.html#ga274ed0e3c4cbc89f644143f64e2391ee">Npp32f</a> nHough = ((sqrt(2.0F) * <span class="keyword">static_cast&lt;</span><a class="code" href="group__npp__basic__types.html#ga274ed0e3c4cbc89f644143f64e2391ee">Npp32f</a><span class="keyword">&gt;</span>(oSizeROI.height &gt; oSizeROI.width ? oSizeROI.height </div>
<div class="line">*                                                                                      : oSizeROI.width)) / 2.0F); </div>
<div class="line">*  <span class="keywordtype">int</span> nAccumulatorsHeight = nDelta.rho &gt; 1.0F ? <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(ceil(nHough * 2.0F)) </div>
<div class="line">*                                              : static_cast&lt;int&gt;(ceil((nHough * 2.0F) / nDelta.rho));</div>
<div class="line">*  <span class="keywordtype">int</span> nCenterX = oSizeROI.width &gt;&gt; 1;</div>
<div class="line">*  <span class="keywordtype">int</span> nCenterY = oSizeROI.height &gt;&gt; 1;</div>
<div class="line">*  <a class="code" href="group__npp__basic__types.html#ga274ed0e3c4cbc89f644143f64e2391ee">Npp32f</a> nThetaRad = <span class="keyword">static_cast&lt;</span><a class="code" href="group__npp__basic__types.html#ga274ed0e3c4cbc89f644143f64e2391ee">Npp32f</a><span class="keyword">&gt;</span>(deviceline.theta) * 0.0174532925199433F;</div>
<div class="line">*  <a class="code" href="group__npp__basic__types.html#ga274ed0e3c4cbc89f644143f64e2391ee">Npp32f</a> nSinTheta = sin(nThetaRad);</div>
<div class="line">*  <a class="code" href="group__npp__basic__types.html#ga274ed0e3c4cbc89f644143f64e2391ee">Npp32f</a> nCosTheta = cos(nThetaRad);</div>
<div class="line">*  <span class="keywordtype">int</span> nX1, nY1, nX2, nY2;</div>
<div class="line">*</div>
<div class="line">*  <span class="keywordflow">if</span> (deviceline.theta &gt;= 45 &amp;&amp; deviceline.theta &lt;= 135) <span class="comment">// degrees</span></div>
<div class="line">*  {</div>
<div class="line">*      <span class="comment">// y = (rho - x cos(theta)) / sin(theta)</span></div>
<div class="line">*      nX1 = minimum cartesian X boundary value;</div>
<div class="line">*      nY1 = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>((<span class="keyword">static_cast&lt;</span><a class="code" href="group__npp__basic__types.html#ga274ed0e3c4cbc89f644143f64e2391ee">Npp32f</a><span class="keyword">&gt;</span>(deviceline.rho - (nAccumulatorsHeight &gt;&gt; 1)) - </div>
<div class="line">*                             ((nX1 - nCenterX) * nCosTheta)) / nSinTheta + nCenterY);</div>
<div class="line">*      nX2 = maximum cartesian X boundary value;</div>
<div class="line">*      nY2 = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>((<span class="keyword">static_cast&lt;</span><a class="code" href="group__npp__basic__types.html#ga274ed0e3c4cbc89f644143f64e2391ee">Npp32f</a><span class="keyword">&gt;</span>(deviceline.rho - (nAccumulatorsHeight &gt;&gt; 1)) - </div>
<div class="line">*                             ((nX2 - nCenterX) * nCosTheta)) / nSinTheta + nCenterY);</div>
<div class="line">*  }</div>
<div class="line">*  <span class="keywordflow">else</span></div>
<div class="line">*  {</div>
<div class="line">*      <span class="comment">// x = (rho - y sin(theta)) / cos(theta)</span></div>
<div class="line">*      nY1 = minimum cartesian Y boundary value;</div>
<div class="line">*      nX1 = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>((<span class="keyword">static_cast&lt;</span><a class="code" href="group__npp__basic__types.html#ga274ed0e3c4cbc89f644143f64e2391ee">Npp32f</a><span class="keyword">&gt;</span>(deviceline.rho - (nAccumulatorsHeight &gt;&gt; 1)) - </div>
<div class="line">*                             ((nY1 - nCenterY) * nSinTheta)) / nCosTheta + nCenterX);</div>
<div class="line">*      nY2 = maximum cartesian Y boundary value;</div>
<div class="line">*      nX2 = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>((<span class="keyword">static_cast&lt;</span><a class="code" href="group__npp__basic__types.html#ga274ed0e3c4cbc89f644143f64e2391ee">Npp32f</a><span class="keyword">&gt;</span>(deviceline.rho - (nAccumulatorsHeight &gt;&gt; 1)) - </div>
<div class="line">*                             ((nY2 - nCenterY) * nSinTheta)) / nCosTheta + nCenterX);</div>
<div class="line">*  }</div>
<div class="line">*  </div>
</div><!-- fragment --> <h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gaed681b5f8c7687575d7ec99ccba57244"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__typedefs__npp.html#ga1105a17b5e76381583c46ecd6a60fe21">NppStatus</a> nppiFilterHoughLine_8u32f_C1R </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *&#160;</td>
          <td class="paramname"><em>pSrc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nSrcStep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_nppi_size.html">NppiSize</a>&#160;</td>
          <td class="paramname"><em>oSizeROI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_npp_point_polar.html">NppPointPolar</a>&#160;</td>
          <td class="paramname"><em>nDelta</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nThreshold</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> *&#160;</td>
          <td class="paramname"><em>pDeviceLines</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nMaxLineCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>pDeviceLineCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *&#160;</td>
          <td class="paramname"><em>pDeviceBuffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ga41f2f58d1db84c017395501c363f2f93"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__typedefs__npp.html#ga1105a17b5e76381583c46ecd6a60fe21">NppStatus</a> nppiFilterHoughLine_8u32f_C1R_Ctx </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *&#160;</td>
          <td class="paramname"><em>pSrc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nSrcStep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_nppi_size.html">NppiSize</a>&#160;</td>
          <td class="paramname"><em>oSizeROI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_npp_point_polar.html">NppPointPolar</a>&#160;</td>
          <td class="paramname"><em>nDelta</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nThreshold</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> *&#160;</td>
          <td class="paramname"><em>pDeviceLines</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nMaxLineCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>pDeviceLineCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *&#160;</td>
          <td class="paramname"><em>pDeviceBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_npp_stream_context.html">NppStreamContext</a>&#160;</td>
          <td class="paramname"><em>nppStreamCtx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>1 channel 8-bit unsigned binarized (0, 255) source feature (canny edges, etc.) source image to list of lines in point polar format representing the length (rho) and angle (theta) of each line from the origin of the normal to the line using the formula rho = x cos(theta) + y sin(theta). </p>
<p>The level of discretization, nDelta, is specified as an input parameter. The performance and effectiveness of this function highly depends on this parameter with higher performance for larger numbers and more detailed results for lower numbers. nDelta must have the same values as those used in the <a class="el" href="group__image__filter__hough__line.html#gaba0301e14765e4956241868c16377930" title="Calculate scratch buffer size needed for the FilterHoughLine or FilterHoughLineRegion functions based...">nppiFilterHoughLineGetBufferSize()</a> function call.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pSrc</td><td><a class="el" href="nppi_conventions_lb.html#source_image_pointer">Source-Image Pointer</a>. </td></tr>
    <tr><td class="paramname">nSrcStep</td><td><a class="el" href="nppi_conventions_lb.html#source_image_line_step">Source-Image Line Step</a>. </td></tr>
    <tr><td class="paramname">oSizeROI</td><td><a class="el" href="nppi_conventions_lb.html#roi_specification">Region-of-Interest (ROI)</a>. </td></tr>
    <tr><td class="paramname">nDelta</td><td>Discretization steps, range 0.0F &lt; radial increment nDelta.rho &lt; 3.0F, 1.0F recommended, range 0.25F &lt; angular increment nDelta.theta &lt; 3.0F, 1.0F recommended. </td></tr>
    <tr><td class="paramname">nThreshold</td><td>Minimum number of points to accept a line. </td></tr>
    <tr><td class="paramname">pDeviceLines</td><td>Device pointer to (nMaxLineCount * sizeof(NppPointPolar) line objects. </td></tr>
    <tr><td class="paramname">nMaxLineCount</td><td>The maximum number of lines to output. </td></tr>
    <tr><td class="paramname">pDeviceLineCount</td><td>The number of lines detected by this function up to nMaxLineCount. </td></tr>
    <tr><td class="paramname">pDeviceBuffer</td><td>pointer to scratch DEVICE memory buffer of size hpBufferSize (see <a class="el" href="group__image__filter__hough__line.html#gaba0301e14765e4956241868c16377930" title="Calculate scratch buffer size needed for the FilterHoughLine or FilterHoughLineRegion functions based...">nppiFilterHoughLineGetBufferSize()</a> above) </td></tr>
    <tr><td class="paramname">nppStreamCtx</td><td><a class="el" href="index.html#application_managed_stream_context">Application Managed Stream Context</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="nppi_conventions_lb.html#image_data_error_codes">Image Data Related Error Codes</a>, <a class="el" href="nppi_conventions_lb.html#roi_error_codes">ROI Related Error Codes</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaba0301e14765e4956241868c16377930"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__typedefs__npp.html#ga1105a17b5e76381583c46ecd6a60fe21">NppStatus</a> nppiFilterHoughLineGetBufferSize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_nppi_size.html">NppiSize</a>&#160;</td>
          <td class="paramname"><em>oSizeROI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_npp_point_polar.html">NppPointPolar</a>&#160;</td>
          <td class="paramname"><em>nDelta</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nMaxLineCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>hpBufferSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Calculate scratch buffer size needed for the FilterHoughLine or FilterHoughLineRegion functions based on destination image SizeROI width and height and nDelta parameters. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">oSizeROI</td><td><a class="el" href="nppi_conventions_lb.html#roi_specification">Region-of-Interest (ROI)</a>. </td></tr>
    <tr><td class="paramname">nDelta</td><td>rho radial increment and theta angular increment that will be used in the FilterHoughLine or FilterHoughLineRegion function call. </td></tr>
    <tr><td class="paramname">nMaxLineCount</td><td>The maximum number of lines expected from the FilterHoughLine or FilterHoughLineRegion function call. </td></tr>
    <tr><td class="paramname">hpBufferSize</td><td>Required buffer size in bytes. Important: hpBufferSize is a <em>host pointer.</em> <a class="el" href="general_conventions_lb.html#general_scratch_buffer">Scratch Buffer and Host Pointer</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="nppi_conventions_lb.html#image_data_error_codes">Image Data Related Error Codes</a>, <a class="el" href="nppi_conventions_lb.html#roi_error_codes">ROI Related Error Codes</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga5e095f481788977d167a36dc45ac77a9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__typedefs__npp.html#ga1105a17b5e76381583c46ecd6a60fe21">NppStatus</a> nppiFilterHoughLineRegion_8u32f_C1R </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *&#160;</td>
          <td class="paramname"><em>pSrc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nSrcStep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_nppi_size.html">NppiSize</a>&#160;</td>
          <td class="paramname"><em>oSizeROI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_npp_point_polar.html">NppPointPolar</a>&#160;</td>
          <td class="paramname"><em>nDelta</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nThreshold</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> *&#160;</td>
          <td class="paramname"><em>pDeviceLines</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_npp_point_polar.html">NppPointPolar</a>&#160;</td>
          <td class="paramname"><em>oDstROI</em>[2], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nMaxLineCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>pDeviceLineCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *&#160;</td>
          <td class="paramname"><em>pDeviceBuffer</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="gaa7e912bf91cc525b6538794e82cad6b0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__typedefs__npp.html#ga1105a17b5e76381583c46ecd6a60fe21">NppStatus</a> nppiFilterHoughLineRegion_8u32f_C1R_Ctx </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *&#160;</td>
          <td class="paramname"><em>pSrc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nSrcStep</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_nppi_size.html">NppiSize</a>&#160;</td>
          <td class="paramname"><em>oSizeROI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_npp_point_polar.html">NppPointPolar</a>&#160;</td>
          <td class="paramname"><em>nDelta</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nThreshold</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_npp_point_polar.html">NppPointPolar</a> *&#160;</td>
          <td class="paramname"><em>pDeviceLines</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_npp_point_polar.html">NppPointPolar</a>&#160;</td>
          <td class="paramname"><em>oDstROI</em>[2], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nMaxLineCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>pDeviceLineCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__npp__basic__types.html#ga29b502b6816fc0066fd59538483a5b62">Npp8u</a> *&#160;</td>
          <td class="paramname"><em>pDeviceBuffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="struct_npp_stream_context.html">NppStreamContext</a>&#160;</td>
          <td class="paramname"><em>nppStreamCtx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>1 channel 8-bit unsigned binarized (0, 255) source feature (canny edges, etc.) source image to list of lines in point polar format representing the length (rho) and angle (theta) of each line from the origin of the normal to the line using the formula rho = x cos(theta) + y sin(theta). </p>
<p>The level of discretization, nDelta, is specified as an input parameter. The performance and effectiveness of this function highly depends on this parameter with higher performance for larger numbers and more detailed results for lower numbers. nDelta must have the same values as those used in the <a class="el" href="group__image__filter__hough__line.html#gaba0301e14765e4956241868c16377930" title="Calculate scratch buffer size needed for the FilterHoughLine or FilterHoughLineRegion functions based...">nppiFilterHoughLineGetBufferSize()</a> function call. The oDstROI region limits are used to limit accepted lines to those that fall within those limits.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pSrc</td><td><a class="el" href="nppi_conventions_lb.html#source_image_pointer">Source-Image Pointer</a>. </td></tr>
    <tr><td class="paramname">nSrcStep</td><td><a class="el" href="nppi_conventions_lb.html#source_image_line_step">Source-Image Line Step</a>. </td></tr>
    <tr><td class="paramname">oSizeROI</td><td><a class="el" href="nppi_conventions_lb.html#roi_specification">Region-of-Interest (ROI)</a>. </td></tr>
    <tr><td class="paramname">nDelta</td><td>Discretization steps, range 0.0F &lt; radial increment nDelta.rho &lt; 3.0F, 1.0F recommended, range 0.25F &lt; angular increment nDelta.theta &lt; 3.0F, 1.0F recommended. </td></tr>
    <tr><td class="paramname">nThreshold</td><td>Minimum number of points to accept a line. </td></tr>
    <tr><td class="paramname">pDeviceLines</td><td>Device pointer to (nMaxLineCount * sizeof(NppPointPolar) line objects. </td></tr>
    <tr><td class="paramname">oDstROI</td><td>Region limits with oDstROI[0].rho &lt;= accepted rho &lt;= oDstROI[1].rho and oDstROI[0].theta &lt;= accepted theta &lt;= oDstROI[1].theta. </td></tr>
    <tr><td class="paramname">nMaxLineCount</td><td>The maximum number of lines to output. </td></tr>
    <tr><td class="paramname">pDeviceLineCount</td><td>The number of lines detected by this function up to nMaxLineCount. </td></tr>
    <tr><td class="paramname">pDeviceBuffer</td><td>pointer to scratch DEVICE memory buffer of size hpBufferSize (see <a class="el" href="group__image__filter__hough__line.html#gaba0301e14765e4956241868c16377930" title="Calculate scratch buffer size needed for the FilterHoughLine or FilterHoughLineRegion functions based...">nppiFilterHoughLineGetBufferSize()</a> above) </td></tr>
    <tr><td class="paramname">nppStreamCtx</td><td><a class="el" href="index.html#application_managed_stream_context">Application Managed Stream Context</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="nppi_conventions_lb.html#image_data_error_codes">Image Data Related Error Codes</a>, <a class="el" href="nppi_conventions_lb.html#roi_error_codes">ROI Related Error Codes</a> </dd></dl>

</div>
</div>
</div><!-- contents -->
<HR>
<center>Copyright &copy; 2009-2019 NVIDIA Corporation</center>
<HR>