Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 4bc66056a634db26a1f4d0845dc41ca6 > files > 5287

mrpt-doc-0.9.5-0.1.20110925svn2670.fc16.i686.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>mrpt::utils::CImage Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> &gt; <b>C++ reference</b> </div>
<div align="right">
<a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a>
</div>
<!-- Generated by Doxygen 1.7.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="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
          <div class="left">
            <form id="FSearchBox" action="search.php" method="get">
              <img id="MSearchSelect" src="search/mag.png" alt=""/>
              <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" 
                     onfocus="searchBox.OnSearchFieldFocus(true)" 
                     onblur="searchBox.OnSearchFieldFocus(false)"/>
            </form>
          </div><div class="right"></div>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacemrpt.html">mrpt</a>      </li>
      <li class="navelem"><a class="el" href="namespacemrpt_1_1utils.html">utils</a>      </li>
      <li class="navelem"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">mrpt::utils::CImage Class Reference<div class="ingroups"><a class="el" href="group__mrpt__base__grp.html">[mrpt-base]</a></div></div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="mrpt::utils::CImage" --><!-- doxytag: inherits="mrpt::utils::CSerializable,mrpt::utils::CCanvas" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>A class for storing images as grayscale or RGB bitmaps. </p>
<p>File I/O is supported in two different ways:</p>
<ul>
<li>Binary dump using the <a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html" title="The virtual base class which provides a unified interface for all persistent objects in MRPT...">CSerializable</a> interface(&lt;&lt; and &gt;&gt; operators), just as most objects in the MRPT library. This format is not compatible with any standarized image format.</li>
<li>Saving/loading from files of different formats (bmp,jpg,png,...) using the methods <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#acad842441ddd573795484780552e55e6" title="Load image from a file, whose format is determined from the extension (internally uses OpenCV)...">CImage::loadFromFile</a> and <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a1b64eea6332fce6366c859d210b3e3d5" title="Save the image to a file, whose format is determined from the extension (internally uses OpenCV)...">CImage::saveToFile</a>.</li>
</ul>
<p>How to create color/grayscale images: </p>
<div class="fragment"><pre class="fragment">    <a class="code" href="classmrpt_1_1utils_1_1_c_image.html#a40b640dc50d762e14c58105980e82429" title="Default constructor: initialize an 1x1 RGB image.">CImage</a>  img1(width, height,  <a class="code" href="_c_image_8h.html#a05d8a871017c9c7214faf67311e33525">CH_GRAY</a> );  <span class="comment">// Grayscale image (8U1C)</span>
    <a class="code" href="classmrpt_1_1utils_1_1_c_image.html#a40b640dc50d762e14c58105980e82429" title="Default constructor: initialize an 1x1 RGB image.">CImage</a>  img2(width, height,  <a class="code" href="_c_image_8h.html#abbb5a64a224fe607fbf2fc5ac29e31cb">CH_RGB</a> );  <span class="comment">// RGB image (8U3C)</span>
</pre></div><p>Additional notes:</p>
<ul>
<li>The OpenCV "IplImage" format is used internally for compatibility with all OpenCV functions. See <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ab827a411abbe4e37fe0837cbd28ecc99" title="Returns a pointer to an OpenCV&#39;s IplImage struct containing the image, which is linked to this class:...">CImage::getAsIplImage</a> and <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a26f034e5d3ffab83a41326a6f6fdf5a4" title="Returns a pointer to an T* containing the image - the idea is to call like &quot;img.getAs&lt;IplImage&gt;()&quot; so...">CImage::getAs&lt;&gt;()</a>. Example: <div class="fragment"><pre class="fragment">            <a class="code" href="classmrpt_1_1utils_1_1_c_image.html#a40b640dc50d762e14c58105980e82429" title="Default constructor: initialize an 1x1 RGB image.">CImage</a>  <a class="code" href="classmrpt_1_1utils_1_1_c_image.html#a35ed32bed738be526c2152acc3e64164" title="The internal IplImage pointer to the actual image content.">img</a>;
            ...
            <span class="comment">// Call to OpenCV function expecting an &quot;IplImage *&quot; or a &quot;void* arr&quot;:</span>
            cvFunction( img.getAs&lt;IplImage&gt;(), ... );
</pre></div></li>
<li>Only the unsigned 8-bit storage format for pixels (on each channel) is supported.</li>
<li>An external storage mode can be enabled by calling <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a2dfac3beec88430aa55540b6cfed4c68" title="By using this method the image is marked as referenced to an external file, which will be loaded only...">CImage::setExternalStorage</a>, useful for storing large collections of image objects in memory while loading the image data itself only for the relevant images at any time.</li>
<li>To move images from one object to the another, use <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a2dc0ef184f6e625c3d40497911ad1bf2" title="Moves an image from another object, erasing the origin image in the process (this is much faster than...">CImage::copyFastFrom</a> rather than the copy operator =.</li>
<li>If you are interested in a smart pointer to an image, use: <div class="fragment"><pre class="fragment">    CImagePtr   myImgPtr = CImagePtr( <span class="keyword">new</span> <a class="code" href="classmrpt_1_1utils_1_1_c_image.html#a40b640dc50d762e14c58105980e82429" title="Default constructor: initialize an 1x1 RGB image.">CImage</a>(...) );
</pre></div></li>
<li>To set a <a class="el" href="classmrpt_1_1utils_1_1_c_image.html" title="A class for storing images as grayscale or RGB bitmaps.">CImage</a> from an OpenCV "IPLImage*", use the methods:<ul>
<li><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a1eb6f9fb31d9b1ad8eb6a261a75d8ff2" title="Reads the image from a OpenCV IplImage object (making a COPY).">CImage::loadFromIplImage</a></li>
<li><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a8675bda1f942e862d1b652c5bd8126a1" title="Reads the image from a OpenCV IplImage object (WITHOUT making a copy).">CImage::setFromIplImage</a></li>
<li><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ad8874015d8deade7b467220b5f30a052" title="Constructor from an IPLImage*, making a copy of the image.">CImage::CImage(void *IPL)</a></li>
</ul>
</li>
</ul>
<p>Some functions are implemented in MRPT with highly optimized SSE2/SSE3 routines, in suitable platforms and compilers. To see the list of optimizations refer to <a class="el" href="group__sse__optimizations.html">this page</a>. If optimized versions are not available in some platform it falls back to default OpenCV methods.</p>
<p>For many computer vision functions that use <a class="el" href="classmrpt_1_1utils_1_1_c_image.html" title="A class for storing images as grayscale or RGB bitmaps.">CImage</a> as its image data type, see <a class="el" href="namespacemrpt_1_1vision.html" title="Classes for computer vision, detectors, features, etc.">mrpt::vision</a>.</p>
<dl class="note"><dt><b>Note:</b></dt><dd>This class acts as a wrapper class to a small subset of OpenCV functions. IplImage is the internal storage structure.</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="namespacemrpt_1_1vision.html" title="Classes for computer vision, detectors, features, etc.">mrpt::vision</a>, mrpt::vision::CFeatureExtractor, <a class="el" href="classmrpt_1_1vision_1_1_c_image_pyramid.html" title="Holds and builds a pyramid of images: starting with an image at full resolution (octave=1), it builds a number of half-resolution images: octave=2 at 1/2 , octave=3 at 1/2^2, octave=N at 1/2^(N-1).">mrpt::vision::CImagePyramid</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html" title="The virtual base class which provides a unified interface for all persistent objects in MRPT...">CSerializable</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html" title="This virtual class defines the interface of any object accepting drawing primitives on it...">CCanvas</a> </dd></dl>
</div>
<p><code>#include &lt;<a class="el" href="_c_image_8h_source.html">mrpt/utils/CImage.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for mrpt::utils::CImage:</div>
<div class="dyncontent">
<div class="center"><img src="classmrpt_1_1utils_1_1_c_image__inherit__graph.png" border="0" usemap="#mrpt_1_1utils_1_1_c_image_inherit__map" alt="Inheritance graph"/></div>
<map name="mrpt_1_1utils_1_1_c_image_inherit__map" id="mrpt_1_1utils_1_1_c_image_inherit__map">
<area shape="rect" id="node2" href="classmrpt_1_1utils_1_1_c_serializable.html" title="The virtual base class which provides a unified interface for all persistent objects in MRPT..." alt="" coords="4,80,168,107"/><area shape="rect" id="node4" href="classmrpt_1_1utils_1_1_c_object.html" title="The virtual base class of all MRPT classes with a unified RTTI system." alt="" coords="19,5,153,32"/><area shape="rect" id="node6" href="classmrpt_1_1utils_1_1_c_canvas.html" title="This virtual class defines the interface of any object accepting drawing primitives on it..." alt="" coords="194,80,336,107"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="classmrpt_1_1utils_1_1_c_image-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a29d01f1280922b7a59dc5069b7ba0cf8">TPenStyle</a> { <br/>
&#160;&#160;<a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a29d01f1280922b7a59dc5069b7ba0cf8a391a281352d3f77eefaefac24350d3b9">psSolid</a> =  0, 
<a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a29d01f1280922b7a59dc5069b7ba0cf8a16d694b9f28fd2d1208971efb92bcd64">psDash</a>, 
<a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a29d01f1280922b7a59dc5069b7ba0cf8a91a928916fee18d19b9d033dcc359e2d">psDot</a>, 
<a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a29d01f1280922b7a59dc5069b7ba0cf8ac68b9d86600cc5a75642464bfe832884">psDashDot</a>, 
<br/>
&#160;&#160;<a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a29d01f1280922b7a59dc5069b7ba0cf8a8a447161dfa4e44225a9e35e075ecf5d">psDashDotDot</a>
<br/>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition of pen styles.  <a href="classmrpt_1_1utils_1_1_c_canvas.html#a29d01f1280922b7a59dc5069b7ba0cf8">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_object_ptr.html">mrpt::utils::CObjectPtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#a534695890364f4b916bba07dad311bcf">duplicateGetSmartPtr</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer).  <a href="#a534695890364f4b916bba07dad311bcf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html">CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#a9ef7857a0b36059c078e195a0a65ac00">clone</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Cloning interface for smart pointers.  <a href="#a9ef7857a0b36059c078e195a0a65ac00"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a8ed4afc52ed713317c2a54eff8d02b5d">rectangle</a> (int x0, int y0, int x1, int y1, const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a> color, unsigned int width=1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a rectangle (an empty rectangle, without filling)  <a href="#a8ed4afc52ed713317c2a54eff8d02b5d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#af95d2bb4cd73df0a5c1e99c7bd9147bb">triangle</a> (int x0, int y0, int size, const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a> color, bool inferior=true, unsigned int width=1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a triangle.  <a href="#af95d2bb4cd73df0a5c1e99c7bd9147bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a2e887699dbd3509de85311938781263e">filledRectangle</a> (int x0, int y0, int x1, int y1, const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a> color)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a filled rectangle.  <a href="#a2e887699dbd3509de85311938781263e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a5a9bbe148d68f920ec57e7c757e8df92">textOut</a> (int x0, int y0, const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;str, const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a> color)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Renders 2D text using bitmap fonts.  <a href="#a5a9bbe148d68f920ec57e7c757e8df92"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a2928fa64fc68c1f74cbe9c2e4aed8285">selectTextFont</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;fontName)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Select the current font used when drawing text.  <a href="#a2928fa64fc68c1f74cbe9c2e4aed8285"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a6e3d4fdf972162341e828537cecdd5af">drawImage</a> (int x, int y, const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">utils::CImage</a> &amp;<a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a35ed32bed738be526c2152acc3e64164">img</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws an image as a bitmap at a given position.  <a href="#a6e3d4fdf972162341e828537cecdd5af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a81dfceb650fc0ad81de7fff347f85d0c">drawImage</a> (int x, int y, const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">utils::CImage</a> &amp;<a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a35ed32bed738be526c2152acc3e64164">img</a>, float rotation, float scale)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws an image as a bitmap at a given position, with some custom scale and rotation changes.  <a href="#a81dfceb650fc0ad81de7fff347f85d0c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a0b6b83a1350a2ad0a8180c631c781d12">cross</a> (int x0, int y0, const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a> color, char type, unsigned int size=5, unsigned int width=1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw a cross.  <a href="#a0b6b83a1350a2ad0a8180c631c781d12"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a4d1c3412ebbec34cfd941a3fdb355bd9">drawCircle</a> (int x, int y, int radius, const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a> color=<a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>(255, 255, 255), unsigned int width=1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a circle of a given radius.  <a href="#a4d1c3412ebbec34cfd941a3fdb355bd9"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class MATRIX2X2 &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#ae942977624cd3347bc4879bcec4c8721">ellipseGaussian</a> (const MATRIX2X2 *cov2D, const double mean_x, const double mean_y, double confIntervalStds=2, const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a> color=<a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>(255, 255, 255), unsigned int width=1, int nEllipsePoints=20)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws an ellipse representing a given confidence interval of a 2D Gaussian distribution.  <a href="#ae942977624cd3347bc4879bcec4c8721"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class FEATURELIST &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a5c4ab411ff29f57c618742eefaba82db">drawFeaturesSimple</a> (const FEATURELIST &amp;<a class="el" href="classstd_1_1list.html">list</a>, const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">TColor</a> &amp;color=<a class="el" href="structmrpt_1_1utils_1_1_t_color.html#a889b647441f8534a0e205e387635e1c1">TColor::red</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a set of marks onto the image, given a generic container of entities having just "x" and "y" fields.  <a href="#a5c4ab411ff29f57c618742eefaba82db"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class FEATURELIST &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#adb876e7085a1aa3b05932c14607085d8">drawFeatures</a> (const FEATURELIST &amp;<a class="el" href="classstd_1_1list.html">list</a>, const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">TColor</a> &amp;color=<a class="el" href="structmrpt_1_1utils_1_1_t_color.html#a889b647441f8534a0e205e387635e1c1">TColor::red</a>, const bool showIDs=false, const bool showResponse=false)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a set of marks (or scaled circles for features with scale) onto the image, given a generic container of features.  <a href="#adb876e7085a1aa3b05932c14607085d8"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Constructors &amp; destructor</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a40b640dc50d762e14c58105980e82429">CImage</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor: initialize an 1x1 RGB image.  <a href="#a40b640dc50d762e14c58105980e82429"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a915fe8531e4b29fec1e1008bb562d224">CImage</a> (unsigned int width, unsigned int height, <a class="el" href="namespacemrpt_1_1utils.html#a8669b520cea0ec8220809c77721f60eb">TImageChannels</a> nChannels=CH_RGB, bool originTopLeft=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor for a given image size and type.  <a href="#a915fe8531e4b29fec1e1008bb562d224"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#acb0e062234d8d03df6ae83ed8403450e">CImage</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;o)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor, makes a full copy of the original image contents (unless it was externally stored, in that case, this new image will just point to the same image file).  <a href="#acb0e062234d8d03df6ae83ed8403450e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ade84203bc74759aaf9df1211c98eae0c">CImage</a> (<a class="el" href="namespacemrpt_1_1utils.html#a3769f80743e0397ea2fd598c6029889f">TConstructorFlags_CImage</a> constructor_flag)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast constructor that leaves the image uninitialized (the internal IplImage pointer set to NULL).  <a href="#ade84203bc74759aaf9df1211c98eae0c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a382ccd55b8e4f7c2f13a240706f80e81">CImage</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;other_img, <a class="el" href="namespacemrpt_1_1utils.html#a3769f80743e0397ea2fd598c6029889f">TConstructorFlags_CImage</a> constructor_flag)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Fast constructor of a grayscale version of another image, making a <b>reference</b> to the original image if it already was in grayscale, or otherwise creating a new grayscale image and converting the original image into it.  <a href="#a382ccd55b8e4f7c2f13a240706f80e81"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ad8874015d8deade7b467220b5f30a052">CImage</a> (void *iplImage)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor from an IPLImage*, making a copy of the image.  <a href="#ad8874015d8deade7b467220b5f30a052"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename Derived &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a2e6747f0fe14b495c614418f54003468">CImage</a> (const <a class="el" href="class_eigen_1_1_matrix_base.html">Eigen::MatrixBase</a>&lt; Derived &gt; &amp;m, bool matrix_is_normalized)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Explicit constructor from a matrix, interpreted as grayscale intensity values, in the range [0,1] (normalized=true) or [0,255] (normalized=false)  <a href="#a2e6747f0fe14b495c614418f54003468"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a9d81d340dc4e1958bd27dad2afe36e02">~CImage</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor:  <a href="#a9d81d340dc4e1958bd27dad2afe36e02"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Manipulate the image contents or size, various computer-vision methods (image filters, undistortion, etc.)</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a77228d5ac964d44aa3ccd87ac958ab7a">resize</a> (unsigned int width, unsigned int height, <a class="el" href="namespacemrpt_1_1utils.html#a8669b520cea0ec8220809c77721f60eb">TImageChannels</a> nChannels, bool originTopLeft)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the size of the image, erasing previous contents (does NOT scale its current content, for that, see scaleImage).  <a href="#a77228d5ac964d44aa3ccd87ac958ab7a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#af2eb20a3604c776d2600bf03f3c0fae2">scaleImage</a> (unsigned int width, unsigned int height, <a class="el" href="group__mrpt__base__grp.html#gaaa1dce60212047066cc950eb834e96fd">TInterpolationMethod</a> interp=IMG_INTERP_CUBIC)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Scales this image to a new size, interpolating as needed.  <a href="#af2eb20a3604c776d2600bf03f3c0fae2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae12e38a35c4f4b31c62fc4310f33005f">scaleImage</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;out_img, unsigned int width, unsigned int height, <a class="el" href="group__mrpt__base__grp.html#gaaa1dce60212047066cc950eb834e96fd">TInterpolationMethod</a> interp=IMG_INTERP_CUBIC) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Scales this image to a new size, interpolating as needed, saving the new image in a different output object.  <a href="#ae12e38a35c4f4b31c62fc4310f33005f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae567e356f0dbbb7fe89ed2c5c7ca608c">rotateImage</a> (double angle_radians, unsigned int center_x, unsigned int center_y, double scale=1.0)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotates the image by the given angle around the given center point, with an optional scale factor.  <a href="#ae567e356f0dbbb7fe89ed2c5c7ca608c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a1461330d3d8400619c8313634be13dec">setPixel</a> (int x, int y, size_t color)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the value of the pixel (x,y).  <a href="#a1461330d3d8400619c8313634be13dec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a18831bddbf80c1baa81375dcc8ddd917">setOriginTopLeft</a> (bool val)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Changes the property of the image stating if the top-left corner (vs.  <a href="#a18831bddbf80c1baa81375dcc8ddd917"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a62f7d2f17c48f39f25fcee7eda8736ca">line</a> (int x0, int y0, int x1, int y1, const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a> color, unsigned int width=1, <a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a29d01f1280922b7a59dc5069b7ba0cf8">TPenStyle</a> penStyle=psSolid)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a line.  <a href="#a62f7d2f17c48f39f25fcee7eda8736ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a2f6e8e4c8ec4f4ae7a96bd56694744b0">drawCircle</a> (int x, int y, int radius, const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a> &amp;color=<a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>(255, 255, 255), unsigned int width=1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draws a circle of a given radius.  <a href="#a2f6e8e4c8ec4f4ae7a96bd56694744b0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a218aa57c3e6884bc54af325a478c0f95">equalizeHistInPlace</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Equalize the image histogram, replacing the original image.  <a href="#a218aa57c3e6884bc54af325a478c0f95"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a76d8b82f129399160a3ccfa3cfdd65f7">equalizeHist</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;outImg) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Equalize the image histogram, saving the new image in the given output object.  <a href="#a76d8b82f129399160a3ccfa3cfdd65f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a4081b970421194842f33e085e3d64208">scaleHalf</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a new image scaled down to half its original size.  <a href="#a4081b970421194842f33e085e3d64208"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a6d1e867abef37ffd895b20fc6224b134">scaleHalf</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;out_image) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a70e6eb2c8d81eebf6acc189eb694f59d">scaleHalfSmooth</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a new image scaled down to half its original size (averaging between every two rows) </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On odd size. </td></tr>
  </table>
  </dd>
</dl>
 <a href="#a70e6eb2c8d81eebf6acc189eb694f59d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a7144b0d66abc030f9ff4227f07436931">scaleHalfSmooth</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;out_image) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a74a66af9b4d7f4ee2e28d4281f654e4b">scaleDouble</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a new image scaled up to double its original size.  <a href="#a74a66af9b4d7f4ee2e28d4281f654e4b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a399fd7e035264ad526cef4d62e075d21">scaleDouble</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;out_image) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#abb15878d765749114f2e6d55a1595b94">update_patch</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;patch, const unsigned int col, const unsigned int row)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Update a part of this image with the "patch" given as argument.  <a href="#abb15878d765749114f2e6d55a1595b94"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ab09cf102297ac0b27dade7ef953c99cc">extract_patch</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;patch, const unsigned int col=0, const unsigned int row=0, const unsigned int width=1, const unsigned int height=1) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract a patch from this image, saveing it into "patch" (its previous contents will be overwritten).  <a href="#ab09cf102297ac0b27dade7ef953c99cc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#abfdf97f0283eed58f2f6b5bb41d2f6f9">correlate</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;img2int, int width_init=0, int height_init=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the correlation coefficient (returned as val), between two images This function use grayscale images only img1, img2 must be same size (by AJOGD @ DEC-2006)  <a href="#abfdf97f0283eed58f2f6b5bb41d2f6f9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a10b4c62958d7f9a0193e8b3a3495e8cd">cross_correlation</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;patch_img, size_t &amp;u_max, size_t &amp;v_max, double &amp;max_val, int u_search_ini=-1, int v_search_ini=-1, int u_search_size=-1, int v_search_size=-1, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> *out_corr_image=NULL) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the correlation between this image and another one, encapsulating the openCV function cvMatchTemplate.  <a href="#a10b4c62958d7f9a0193e8b3a3495e8cd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ad9ff434708ef37544afeae70fda87686">cross_correlation_FFT</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;in_img, <a class="el" href="namespacemrpt_1_1math.html#a46578d070e41e17dead613002e755aa3">math::CMatrixFloat</a> &amp;out_corr, int u_search_ini=-1, int v_search_ini=-1, int u_search_size=-1, int v_search_size=-1, float biasThisImg=0, float biasInImg=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the correlation matrix between this image and another one.  <a href="#ad9ff434708ef37544afeae70fda87686"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a424922e27cb2d0ff93ff1ae3e3d79c48">normalize</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Optimize de brightness range of a image without using histogram Only for one channel images.  <a href="#a424922e27cb2d0ff93ff1ae3e3d79c48"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aa2ef21af98537c4d55676ec359a6154a">flipVertical</a> (bool also_swapRB=false)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Flips vertically the image.  <a href="#aa2ef21af98537c4d55676ec359a6154a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a5ed4c830e8725ba66d76e4a92928bdfc">swapRB</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Swaps red and blue channels.  <a href="#a5ed4c830e8725ba66d76e4a92928bdfc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a543afd4be92f7c35ebe58c664ab82452">rectifyImage</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;out_img, const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;cameraParams) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Rectify (un-distort) the image according to some camera parameters, and returns an output un-distorted image.  <a href="#a543afd4be92f7c35ebe58c664ab82452"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a4ca10a7c221a9b33620d4ac25424944a">rectifyImage</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;out_img, const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">math::CMatrixDouble33</a> &amp;cameraMatrix, const <a class="el" href="namespacemrpt.html#a4a6aab2c98368ca6b554c04f8fe84cfb">vector_double</a> &amp;distCoeff) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Rectify (un-distort) the image according to a certain camera matrix and vector of distortion coefficients and returns an output rectified image.  <a href="#a4ca10a7c221a9b33620d4ac25424944a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a0f51eb15d0ba3492f07c2f571b917695">rectifyImageInPlace</a> (const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;cameraParams)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Rectify (un-distort) the image according to a certain camera matrix and vector of distortion coefficients, replacing "this" with the rectified image.  <a href="#a0f51eb15d0ba3492f07c2f571b917695"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aebe1d754f737065f146fa6afc7fd1d48">rectifyImageInPlace</a> (const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">math::CMatrixDouble33</a> &amp;cameraMatrix, const <a class="el" href="namespacemrpt.html#a4a6aab2c98368ca6b554c04f8fe84cfb">vector_double</a> &amp;distCoeff)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Rectify (un-distort) the image according to a certain camera matrix and vector of distortion coefficients, replacing "this" with the rectified image.  <a href="#aebe1d754f737065f146fa6afc7fd1d48"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#adbd26bac5b6c3cace9daf94462ea7c55">rectifyImageInPlace</a> (void *mapX, void *mapY)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Rectify an image (undistorts and rectification) from a stereo pair according to a pair of precomputed rectification maps.  <a href="#adbd26bac5b6c3cace9daf94462ea7c55"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a4d3c7ef471a50c349b91b14196df719a">filterMedian</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;out_img, int W=3) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter the image with a Median filter with a window size WxW, returning the filtered image in out_img.  <a href="#a4d3c7ef471a50c349b91b14196df719a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#afb6e492c8d16972fd02b7a2449b68914">filterMedianInPlace</a> (int W=3)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter the image with a Median filter with a window size WxH, replacing "this" image by the filtered one.  <a href="#afb6e492c8d16972fd02b7a2449b68914"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a3712a9ee8c65f120420fe1ea109319cc">filterGaussianInPlace</a> (int W=3, int H=3)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter the image with a Gaussian filter with a window size WxH, returning the filtered image in out_img.  <a href="#a3712a9ee8c65f120420fe1ea109319cc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ac283065a6ff35c7ab252cdc5dbf4c37a">filterGaussian</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;out_img, int W=3, int H=3) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter the image with a Gaussian filter with a window size WxH, replacing "this" image by the filtered one.  <a href="#ac283065a6ff35c7ab252cdc5dbf4c37a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a8b579836bba916e5f6fc38ce1acb0447">drawChessboardCorners</a> (<a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">TPixelCoordf</a> &gt; &amp;cornerCoords, unsigned int check_size_x, unsigned int check_size_y)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Draw onto this image the detected corners of a chessboard.  <a href="#a8b579836bba916e5f6fc38ce1acb0447"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a71a088b5ad9837496592119c1ac1ce1f">joinImagesHorz</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;im1, const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;im2)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Joins two images side-by-side horizontally.  <a href="#a71a088b5ad9837496592119c1ac1ce1f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#afd0dbc513f07e36a3764e674fdff6c1e">KLT_response</a> (const unsigned int x, const unsigned int y, const unsigned int half_window_size) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the KLT response at a given pixel (x,y) - Only for grayscale images (for efficiency it avoids converting to grayscale internally).  <a href="#afd0dbc513f07e36a3764e674fdff6c1e"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Copy, move &amp; swap operations</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a18c8daf2a3363fd660005953be7a6331">operator=</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;o)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy operator (if the image is externally stored, the writen image will be such as well).  <a href="#a18c8daf2a3363fd660005953be7a6331"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#af19a598956af3139b56906347f0ce3b0">copyFromForceLoad</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;o)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies from another image, and, if that one is externally stored, the image file will be actually loaded into memory in "this" object.  <a href="#af19a598956af3139b56906347f0ce3b0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a2dc0ef184f6e625c3d40497911ad1bf2">copyFastFrom</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;o)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves an image from another object, erasing the origin image in the process (this is much faster than copying)  <a href="#a2dc0ef184f6e625c3d40497911ad1bf2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#afc0e1d1e1b6a5dd9eec12e6d3508a3b8">swap</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;o)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Very efficient swap of two images (just swap the internal pointers)  <a href="#afc0e1d1e1b6a5dd9eec12e6d3508a3b8"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Access to image contents (IplImage structure and raw pixels).</div></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">const T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a6eb49fc77a2c2830187ed5225e8744d1">getAs</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to an T* containing the image - the idea is to call like "img.getAs&lt;IplImage&gt;()" so we can avoid here including OpenCV's headers.  <a href="#a6eb49fc77a2c2830187ed5225e8744d1"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">T *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a26f034e5d3ffab83a41326a6f6fdf5a4">getAs</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to an T* containing the image - the idea is to call like "img.getAs&lt;IplImage&gt;()" so we can avoid here including OpenCV's headers.  <a href="#a26f034e5d3ffab83a41326a6f6fdf5a4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ab827a411abbe4e37fe0837cbd28ecc99">getAsIplImage</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to an OpenCV's IplImage struct containing the image, which is linked to this class: free neigther that pointer nor this class until they are not required anymore, since this class is in charge of freeing the memory buffers inside of the returned image.  <a href="#ab827a411abbe4e37fe0837cbd28ecc99"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#acda23bd85fa63072d326dc1dbb93353a">get_unsafe</a> (unsigned int col, unsigned int row, unsigned int channel=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Access to pixels without checking boundaries - Use normally the () operator better, which checks the coordinates.  <a href="#acda23bd85fa63072d326dc1dbb93353a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aa5492fc4ec9512370a79523d88bbcf21">getAsFloat</a> (unsigned int col, unsigned int row, unsigned int channel) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the contents of a given pixel at the desired channel, in float format: [0,255]-&gt;[0,1] The coordinate origin is pixel(0,0)=top-left corner of the image.  <a href="#aa5492fc4ec9512370a79523d88bbcf21"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#adf3077240734bb721f49eb6e8a4ab6e5">getAsFloat</a> (unsigned int col, unsigned int row) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the contents of a given pixel (for gray-scale images, in color images the gray scale equivalent is computed for the pixel), in float format: [0,255]-&gt;[0,1] The coordinate origin is pixel(0,0)=top-left corner of the image.  <a href="#adf3077240734bb721f49eb6e8a4ab6e5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a79dbd0066650b827be0104148873b445">operator()</a> (unsigned int col, unsigned int row, unsigned int channel=0) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to a given pixel information.  <a href="#a79dbd0066650b827be0104148873b445"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Query image properties</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae82bff36dbdbdfefe2735d6a02ed6bc8">getWidth</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the width of the image in pixels.  <a href="#ae82bff36dbdbdfefe2735d6a02ed6bc8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ab0ebc0aa07b6fbcf4f24898881db3f4d">getHeight</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the height of the image in pixels.  <a href="#ab0ebc0aa07b6fbcf4f24898881db3f4d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae1c213839bda73001cafa09d21818044">getSize</a> (<a class="el" href="namespacemrpt_1_1utils.html#aad714637162eda7b78d3d4c520e9a379">TImageSize</a> &amp;s) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the size of the image.  <a href="#ae1c213839bda73001cafa09d21818044"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1utils.html#aad714637162eda7b78d3d4c520e9a379">TImageSize</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a4f8e2244425e66957467cc00ddabde6f">getSize</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the size of the image.  <a href="#a4f8e2244425e66957467cc00ddabde6f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#acafd9a0bea6c6775a0d17083b20ab745">getRowStride</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the row stride of the image: this is the number of *bytes* between two consecutive rows.  <a href="#acafd9a0bea6c6775a0d17083b20ab745"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a18339058c8da20163455765a93063645">getMaxAsFloat</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the maximum pixel value of the image, as a float value in the range [0,1].  <a href="#a18339058c8da20163455765a93063645"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a8b519b0a2e8419aea72308eb67060688">isColor</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the image is RGB, false if it is grayscale.  <a href="#a8b519b0a2e8419aea72308eb67060688"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a603f63c422e2f8c0c4d5ae55bfd6144c">isOriginTopLeft</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if the coordinates origin is top-left, or false if it is bottom-left.  <a href="#a603f63c422e2f8c0c4d5ae55bfd6144c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a8a81ff1a19799b643f6f427c5137441f">getChannelsOrder</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a string of the form "BGR","RGB" or "GRAY" indicating the channels ordering.  <a href="#a8a81ff1a19799b643f6f427c5137441f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aab5f796511ba27098ee366e9f168711b">setChannelsOrder_RGB</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the channel ordering in a color image as "RGB" (this doesn't actually modify the image data, just the format description)  <a href="#aab5f796511ba27098ee366e9f168711b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ac1f0acabec455291b2c73bb7af4b858e">setChannelsOrder_BGR</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the channel ordering in a color image as "BGR" (this doesn't actually modify the image data, just the format description)  <a href="#ac1f0acabec455291b2c73bb7af4b858e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacemrpt_1_1utils.html#a8669b520cea0ec8220809c77721f60eb">TImageChannels</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a3a7ffd0fbd460b2e0f1afb703ddceaab">getChannelCount</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of channels, typically 1 (GRAY) or 3 (RGB)  <a href="#a3a7ffd0fbd460b2e0f1afb703ddceaab"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a50fc13111fafbf571e63f6777535fb84">getAsMatrix</a> (<a class="el" href="namespacemrpt_1_1math.html#a46578d070e41e17dead613002e755aa3">mrpt::math::CMatrixFloat</a> &amp;outMatrix, bool doResize=true, int x_min=0, int y_min=0, int x_max=-1, int y_max=-1) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the image as a matrix with pixel grayscale values in the range [0,1].  <a href="#a50fc13111fafbf571e63f6777535fb84"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ab99f3634637f3a48955c63d79316d5e7">getAsMatrixTiled</a> (<a class="el" href="classmrpt_1_1math_1_1_c_matrix.html">math::CMatrix</a> &amp;outMatrix) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the image as a matrix, where the image is "tiled" (repeated) the required number of times to fill the entire size of the matrix on input.  <a href="#ab99f3634637f3a48955c63d79316d5e7"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Set, load &amp; save methods</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a4ca06fa1dc16092710b2e10a1ed8f332">loadFromMemoryBuffer</a> (unsigned int width, unsigned int height, bool color, unsigned char *rawpixels, bool swapRedBlue=false)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the image from raw pixels buffer in memory.  <a href="#a4ca06fa1dc16092710b2e10a1ed8f332"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a173ae3ec4e7aac6eeebca8763b08c794">loadFromMemoryBuffer</a> (unsigned int width, unsigned int height, unsigned int bytesPerRow, unsigned char *red, unsigned char *green, unsigned char *blue)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a color image from three raw pixels buffers in memory.  <a href="#a173ae3ec4e7aac6eeebca8763b08c794"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a1eb6f9fb31d9b1ad8eb6a261a75d8ff2">loadFromIplImage</a> (void *iplImage)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the image from a OpenCV IplImage object (making a COPY).  <a href="#a1eb6f9fb31d9b1ad8eb6a261a75d8ff2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a8675bda1f942e862d1b652c5bd8126a1">setFromIplImage</a> (void *iplImage)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the image from a OpenCV IplImage object (WITHOUT making a copy).  <a href="#a8675bda1f942e862d1b652c5bd8126a1"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aa3720d8bea984e1319b42bf58f7ba5ef">setFromIplImageReadOnly</a> (void *iplImage)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the image from a OpenCV IplImage object (WITHOUT making a copy) and from now on the image cannot be modified, just read.  <a href="#aa3720d8bea984e1319b42bf58f7ba5ef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aeadbe9b94550d1378e19f6510f7e788c">setFromImageReadOnly</a> (const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;other_img)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the internal IplImage pointer to that of another given image, WITHOUT making a copy, and from now on the image cannot be modified in this object (it will be neither freed, so the memory responsibility will still be of the original image object).  <a href="#aeadbe9b94550d1378e19f6510f7e788c"></a><br/></td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;typename Derived &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a7e44d9399f9ec03ca9cdf7cdde833c6b">setFromMatrix</a> (const <a class="el" href="class_eigen_1_1_matrix_base.html">Eigen::MatrixBase</a>&lt; Derived &gt; &amp;m, bool matrix_is_normalized=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the image from a matrix, interpreted as grayscale intensity values, in the range [0,1] (normalized=true) or [0,255] (normalized=false)  <a href="#a7e44d9399f9ec03ca9cdf7cdde833c6b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a76496a28d0ecd2fe9d55c26ab4cf6c77">loadFromStreamAsJPEG</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;in)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads the image from a binary stream containing a binary jpeg file.  <a href="#a76496a28d0ecd2fe9d55c26ab4cf6c77"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#acad842441ddd573795484780552e55e6">loadFromFile</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;fileName, int isColor=-1)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Load image from a file, whose format is determined from the extension (internally uses OpenCV).  <a href="#acad842441ddd573795484780552e55e6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a1b64eea6332fce6366c859d210b3e3d5">saveToFile</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;fileName, int jpeg_quality=95) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Save the image to a file, whose format is determined from the extension (internally uses OpenCV).  <a href="#a1b64eea6332fce6366c859d210b3e3d5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a7db288879c7bc198a24571d87e20d7ce">saveToStreamAsJPEG</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;out) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Save image to binary stream as a JPEG (.jpg) compresed format.  <a href="#a7db288879c7bc198a24571d87e20d7ce"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Color/Grayscale conversion</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ad6c9a96cfc910c8a80a477e554f2094c">grayscale</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a grayscale version of the image, or itself if it is already a grayscale image.  <a href="#ad6c9a96cfc910c8a80a477e554f2094c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a7a0f8ae44b540fb181bc2a6499224eb0">grayscale</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;ret) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a grayscale version of the image, or itself if it is already a grayscale image.  <a href="#a7a0f8ae44b540fb181bc2a6499224eb0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a9d8a0e07dc1ce23f067d416c10f61e53">colorImage</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;ret) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a RGB version of the grayscale image, or itself if it is already a RGB image.  <a href="#a9d8a0e07dc1ce23f067d416c10f61e53"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ade4ba31927443891d43427c5d9b8cc3e">colorImageInPlace</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces this grayscale image with a RGB version of it.  <a href="#ade4ba31927443891d43427c5d9b8cc3e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#adb14c43c957e98285ec0e3750487aeee">grayscaleInPlace</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces the image with a grayscale version of it.  <a href="#adb14c43c957e98285ec0e3750487aeee"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a002a4087e154246234d5fe59261a812b">DISABLE_ZIP_COMPRESSION</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">By default, when storing images through the <a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html" title="The virtual base class which provides a unified interface for all persistent objects in MRPT...">CSerializable</a> interface, grayscale images will be ZIP compressed if they are larger than 16Kb: this flag can be turn on to disable ZIP compression and gain speed versus occupied space.  <a href="#a002a4087e154246234d5fe59261a812b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html#acb51e4dd811d62c2696aee449d0a4715">classCObject</a></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a729ceb6461ff2b0d6ef5e423e3a5d1c7">changeSize</a> (unsigned int width, unsigned int height, <a class="el" href="namespacemrpt_1_1utils.html#a8669b520cea0ec8220809c77721f60eb">TImageChannels</a> nChannels, bool originTopLeft)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Resize the buffers in "img" to accomodate a new image size and/or format.  <a href="#a729ceb6461ff2b0d6ef5e423e3a5d1c7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a0d396c2cfe40f8a03e69577caa5a297f">releaseIpl</a> (bool thisIsExternalImgUnload=false) MRPT_NO_THROWS</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Release the internal IPL image, if not NULL or read-only.  <a href="#a0d396c2cfe40f8a03e69577caa5a297f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ac767eff45b41fbfc68ad4755341fd281">makeSureImageIsLoaded</a> () const   throw (std::exception,utils::CExceptionExternalImageNotFound )</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the image is of type "external storage", and if so and not loaded yet, load it.  <a href="#ac767eff45b41fbfc68ad4755341fd281"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a0b6b801e67bca3d8e0d355e7035f8013">writeToStream</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;out, int *getVersion) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Introduces a pure virtual method responsible for writing to a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a>.  <a href="#a0b6b801e67bca3d8e0d355e7035f8013"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a73ba83035a64939cdc3aa1c0dfed23ec">readFromStream</a> (<a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;in, int version)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Introduces a pure virtual method responsible for loading from a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a> This can not be used directly be users, instead use "stream &gt;&gt; object;" for reading it from a stream or "stream &gt;&gt; object_ptr;" if the class is unknown apriori.  <a href="#a73ba83035a64939cdc3aa1c0dfed23ec"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#aef2c3c9cc8805a0a5c4da2d867a0d422">m_selectedFont</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The selected font name.  <a href="#aef2c3c9cc8805a0a5c4da2d867a0d422"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const uint32_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a81aed2bab475a27dccb549681dcb0861">m_selectedFontBitmaps</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to character bitmaps.  <a href="#a81aed2bab475a27dccb549681dcb0861"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Data members</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a35ed32bed738be526c2152acc3e64164">img</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The internal IplImage pointer to the actual image content.  <a href="#a35ed32bed738be526c2152acc3e64164"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ab25223a74268999b4b9d6a4594d20c34">m_imgIsReadOnly</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to true only when using setFromIplImageReadOnly.  <a href="#ab25223a74268999b4b9d6a4594d20c34"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#af3dbc7d29f50c5ca287c35f244f5ffe3">m_imgIsExternalStorage</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to true only when using setExternalStorage.  <a href="#af3dbc7d29f50c5ca287c35f244f5ffe3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae621098c3369678aa53d99a9cd79f22f">m_externalFile</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The file name of a external storage image.  <a href="#ae621098c3369678aa53d99a9cd79f22f"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
RTTI stuff</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structmrpt_1_1utils_1_1_c_image_ptr.html">CImagePtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae442b489d8ef8baa26bba730953f4170">SmartPtr</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1utils_1_1_c_l_a_s_s_i_n_i_t.html">mrpt::utils::CLASSINIT</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aebca1b3942f43cc8d5297b628ccbcbcb">_init_CImage</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aaad7550ae1fa476d6eecd4abd47f9ce5">classCImage</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a8c7b26510af9b8683f8951003ceda9ba">classinfo</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ad0afb68c2412f15244cd3fe8f4d1c5b0">_GetBaseClass</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a703f96927e0c7efd8988a73ae3685c75">GetRuntimeClass</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns information about the class of an object in runtime.  <a href="#a703f96927e0c7efd8988a73ae3685c75"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aad2da5b6028c862896eeff130254b268">duplicate</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a copy of the object, indepently of its class.  <a href="#aad2da5b6028c862896eeff130254b268"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a86cb830e9eafbd081756bf49e825084e">CreateObject</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structmrpt_1_1utils_1_1_c_image_ptr.html">CImagePtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a96ea91c6a524b6e6341ed5bdb7d0d64e">Create</a> ()</td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
External storage-mode methods</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a792b99c4b209b5516febb67ad1ae3b34">IMAGES_PATH_BASE</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">By default, ".".  <a href="#a792b99c4b209b5516febb67ad1ae3b34"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a2dfac3beec88430aa55540b6cfed4c68">setExternalStorage</a> (const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;fileName) MRPT_NO_THROWS</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">By using this method the image is marked as referenced to an external file, which will be loaded only under demand.  <a href="#a2dfac3beec88430aa55540b6cfed4c68"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a6675e91f9d52059beeeb3907718bd66c">isExternallyStored</a> () const MRPT_NO_THROWS</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a2dfac3beec88430aa55540b6cfed4c68" title="By using this method the image is marked as referenced to an external file, which will be loaded only...">setExternalStorage()</a>.  <a href="#a6675e91f9d52059beeeb3907718bd66c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a30a5d823f159b04814bf3c7c75fe2101">getExternalStorageFile</a> () const MRPT_NO_THROWS</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">&lt; Only if <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a6675e91f9d52059beeeb3907718bd66c" title="See setExternalStorage().">isExternallyStored()</a> returns true.  <a href="#a30a5d823f159b04814bf3c7c75fe2101"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a358895a16c2bba2a3e5a3b418be76231">getExternalStorageFileAbsolutePath</a> (<a class="el" href="classstd_1_1string.html">std::string</a> &amp;out_path) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Only if <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a6675e91f9d52059beeeb3907718bd66c" title="See setExternalStorage().">isExternallyStored()</a> returns true.  <a href="#a358895a16c2bba2a3e5a3b418be76231"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classstd_1_1string.html">std::string</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aba8221e3e52ad5b6453d394f41f034a5">getExternalStorageFileAbsolutePath</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Only if <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a6675e91f9d52059beeeb3907718bd66c" title="See setExternalStorage().">isExternallyStored()</a> returns true.  <a href="#aba8221e3e52ad5b6453d394f41f034a5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a1c803e601870239da6c61526bc141735">forceLoad</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">For external storage image objects only, this method makes sure the image is loaded in memory.  <a href="#a1c803e601870239da6c61526bc141735"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aeb03949ad9b68ea8110b6683c54afe27">unload</a> () MRPT_NO_THROWS</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">For external storage image objects only, this method unloads the image from memory (or does nothing if already unloaded).  <a href="#aeb03949ad9b68ea8110b6683c54afe27"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="member-group"></a>
RTTI stuff</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const <br class="typebreak"/>
<a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a28ec2a03d277a8469b8ecfc81892afdf">classCSerializable</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::utils::CStream</a></td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="ae442b489d8ef8baa26bba730953f4170"></a><!-- doxytag: member="mrpt::utils::CImage::SmartPtr" ref="ae442b489d8ef8baa26bba730953f4170" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structmrpt_1_1utils_1_1_c_image_ptr.html">CImagePtr</a> <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae442b489d8ef8baa26bba730953f4170">mrpt::utils::CImage::SmartPtr</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>A typedef for the associated smart pointer </p>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00116">116</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<hr/><h2>Member Enumeration Documentation</h2>
<a class="anchor" id="a29d01f1280922b7a59dc5069b7ba0cf8"></a><!-- doxytag: member="mrpt::utils::CImage::TPenStyle" ref="a29d01f1280922b7a59dc5069b7ba0cf8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a29d01f1280922b7a59dc5069b7ba0cf8">mrpt::utils::CCanvas::TPenStyle</a><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition of pen styles. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a29d01f1280922b7a59dc5069b7ba0cf8a391a281352d3f77eefaefac24350d3b9"></a><!-- doxytag: member="psSolid" ref="a29d01f1280922b7a59dc5069b7ba0cf8a391a281352d3f77eefaefac24350d3b9" args="" -->psSolid</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a29d01f1280922b7a59dc5069b7ba0cf8a16d694b9f28fd2d1208971efb92bcd64"></a><!-- doxytag: member="psDash" ref="a29d01f1280922b7a59dc5069b7ba0cf8a16d694b9f28fd2d1208971efb92bcd64" args="" -->psDash</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a29d01f1280922b7a59dc5069b7ba0cf8a91a928916fee18d19b9d033dcc359e2d"></a><!-- doxytag: member="psDot" ref="a29d01f1280922b7a59dc5069b7ba0cf8a91a928916fee18d19b9d033dcc359e2d" args="" -->psDot</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a29d01f1280922b7a59dc5069b7ba0cf8ac68b9d86600cc5a75642464bfe832884"></a><!-- doxytag: member="psDashDot" ref="a29d01f1280922b7a59dc5069b7ba0cf8ac68b9d86600cc5a75642464bfe832884" args="" -->psDashDot</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a29d01f1280922b7a59dc5069b7ba0cf8a8a447161dfa4e44225a9e35e075ecf5d"></a><!-- doxytag: member="psDashDotDot" ref="a29d01f1280922b7a59dc5069b7ba0cf8a8a447161dfa4e44225a9e35e075ecf5d" args="" -->psDashDotDot</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<p>Definition at line <a class="el" href="_c_canvas_8h_source.html#l00078">78</a> of file <a class="el" href="_c_canvas_8h_source.html">CCanvas.h</a>.</p>

</div>
</div>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a40b640dc50d762e14c58105980e82429"></a><!-- doxytag: member="mrpt::utils::CImage::CImage" ref="a40b640dc50d762e14c58105980e82429" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::utils::CImage::CImage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default constructor: initialize an 1x1 RGB image. </p>

</div>
</div>
<a class="anchor" id="a915fe8531e4b29fec1e1008bb562d224"></a><!-- doxytag: member="mrpt::utils::CImage::CImage" ref="a915fe8531e4b29fec1e1008bb562d224" args="(unsigned int width, unsigned int height, TImageChannels nChannels=CH_RGB, bool originTopLeft=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::utils::CImage::CImage </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1utils.html#a8669b520cea0ec8220809c77721f60eb">TImageChannels</a>&#160;</td>
          <td class="paramname"><em>nChannels</em> = <code>CH_RGB</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>originTopLeft</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor for a given image size and type. </p>
<p>Examples: </p>
<div class="fragment"><pre class="fragment">    <a class="code" href="classmrpt_1_1utils_1_1_c_image.html#a40b640dc50d762e14c58105980e82429" title="Default constructor: initialize an 1x1 RGB image.">CImage</a>  img1(width, height,  <a class="code" href="_c_image_8h.html#a05d8a871017c9c7214faf67311e33525">CH_GRAY</a> );  <span class="comment">// Grayscale image (8U1C)</span>
    <a class="code" href="classmrpt_1_1utils_1_1_c_image.html#a40b640dc50d762e14c58105980e82429" title="Default constructor: initialize an 1x1 RGB image.">CImage</a>  img2(width, height,  <a class="code" href="_c_image_8h.html#abbb5a64a224fe607fbf2fc5ac29e31cb">CH_RGB</a> );  <span class="comment">// RGB image (8U3C)</span>
</pre></div> 
</div>
</div>
<a class="anchor" id="acb0e062234d8d03df6ae83ed8403450e"></a><!-- doxytag: member="mrpt::utils::CImage::CImage" ref="acb0e062234d8d03df6ae83ed8403450e" args="(const CImage &amp;o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::utils::CImage::CImage </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy constructor, makes a full copy of the original image contents (unless it was externally stored, in that case, this new image will just point to the same image file). </p>

</div>
</div>
<a class="anchor" id="ade84203bc74759aaf9df1211c98eae0c"></a><!-- doxytag: member="mrpt::utils::CImage::CImage" ref="ade84203bc74759aaf9df1211c98eae0c" args="(TConstructorFlags_CImage constructor_flag)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::utils::CImage::CImage </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1utils.html#a3769f80743e0397ea2fd598c6029889f">TConstructorFlags_CImage</a>&#160;</td>
          <td class="paramname"><em>constructor_flag</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Fast constructor that leaves the image uninitialized (the internal IplImage pointer set to NULL). </p>
<p>Use only when you know the image will be soon be assigned another image. Example of usage: </p>
<div class="fragment"><pre class="fragment">    <a class="code" href="classmrpt_1_1utils_1_1_c_image.html#a40b640dc50d762e14c58105980e82429" title="Default constructor: initialize an 1x1 RGB image.">CImage</a> myImg(<a class="code" href="namespacemrpt_1_1utils.html#a3769f80743e0397ea2fd598c6029889fa1a19665aa9e0290bf5d5dc8295fdfc9c">UNINITIALIZED_IMAGE</a>);
</pre></div> 
<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00149">149</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="a382ccd55b8e4f7c2f13a240706f80e81"></a><!-- doxytag: member="mrpt::utils::CImage::CImage" ref="a382ccd55b8e4f7c2f13a240706f80e81" args="(const CImage &amp;other_img, TConstructorFlags_CImage constructor_flag)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::utils::CImage::CImage </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>other_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1utils.html#a3769f80743e0397ea2fd598c6029889f">TConstructorFlags_CImage</a>&#160;</td>
          <td class="paramname"><em>constructor_flag</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Fast constructor of a grayscale version of another image, making a <b>reference</b> to the original image if it already was in grayscale, or otherwise creating a new grayscale image and converting the original image into it. </p>
<p>It's <b>very important to keep in mind</b> that the original image can't be destroyed before the new object being created with this constructor. Example of usage: </p>
<div class="fragment"><pre class="fragment">     <span class="keywordtype">void</span> my_func(<span class="keyword">const</span> <a class="code" href="classmrpt_1_1utils_1_1_c_image.html#a40b640dc50d762e14c58105980e82429" title="Default constructor: initialize an 1x1 RGB image.">CImage</a> &amp;in_img) {
        <span class="keyword">const</span> <a class="code" href="classmrpt_1_1utils_1_1_c_image.html#a40b640dc50d762e14c58105980e82429" title="Default constructor: initialize an 1x1 RGB image.">CImage</a> gray_img(in_img, <a class="code" href="namespacemrpt_1_1utils.html#a3769f80743e0397ea2fd598c6029889fa5f66ba7e420abc6fe334f1099c10d6b2">FAST_REF_OR_CONVERT_TO_GRAY</a>);
        <span class="comment">// We can now operate on &quot;gray_img&quot; being sure it&#39;s in grayscale.</span>
     }
</pre></div> 
<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00162">162</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

<p>References <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a8b519b0a2e8419aea72308eb67060688">isColor()</a>, and <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ad6c9a96cfc910c8a80a477e554f2094c">grayscale()</a>.</p>

</div>
</div>
<a class="anchor" id="ad8874015d8deade7b467220b5f30a052"></a><!-- doxytag: member="mrpt::utils::CImage::CImage" ref="ad8874015d8deade7b467220b5f30a052" args="(void *iplImage)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">mrpt::utils::CImage::CImage </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>iplImage</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructor from an IPLImage*, making a copy of the image. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a1eb6f9fb31d9b1ad8eb6a261a75d8ff2" title="Reads the image from a OpenCV IplImage object (making a COPY).">loadFromIplImage</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a8675bda1f942e862d1b652c5bd8126a1" title="Reads the image from a OpenCV IplImage object (WITHOUT making a copy).">setFromIplImage</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a2e6747f0fe14b495c614418f54003468"></a><!-- doxytag: member="mrpt::utils::CImage::CImage" ref="a2e6747f0fe14b495c614418f54003468" args="(const Eigen::MatrixBase&lt; Derived &gt; &amp;m, bool matrix_is_normalized)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Derived &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">mrpt::utils::CImage::CImage </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_eigen_1_1_matrix_base.html">Eigen::MatrixBase</a>&lt; Derived &gt; &amp;&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>matrix_is_normalized</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, explicit]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Explicit constructor from a matrix, interpreted as grayscale intensity values, in the range [0,1] (normalized=true) or [0,255] (normalized=false) </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a7e44d9399f9ec03ca9cdf7cdde833c6b" title="Set the image from a matrix, interpreted as grayscale intensity values, in the range [0...">setFromMatrix</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00177">177</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9d81d340dc4e1958bd27dad2afe36e02"></a><!-- doxytag: member="mrpt::utils::CImage::~CImage" ref="a9d81d340dc4e1958bd27dad2afe36e02" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual mrpt::utils::CImage::~CImage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destructor: </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="ad0afb68c2412f15244cd3fe8f4d1c5b0"></a><!-- doxytag: member="mrpt::utils::CImage::_GetBaseClass" ref="ad0afb68c2412f15244cd3fe8f4d1c5b0" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>* mrpt::utils::CImage::_GetBaseClass </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a471a2d4e8bf14cdc749d43ffb8066a12">mrpt::utils::CSerializable</a>.</p>

</div>
</div>
<a class="anchor" id="a729ceb6461ff2b0d6ef5e423e3a5d1c7"></a><!-- doxytag: member="mrpt::utils::CImage::changeSize" ref="a729ceb6461ff2b0d6ef5e423e3a5d1c7" args="(unsigned int width, unsigned int height, TImageChannels nChannels, bool originTopLeft)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::changeSize </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1utils.html#a8669b520cea0ec8220809c77721f60eb">TImageChannels</a>&#160;</td>
          <td class="paramname"><em>nChannels</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>originTopLeft</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Resize the buffers in "img" to accomodate a new image size and/or format. </p>

</div>
</div>
<a class="anchor" id="a9ef7857a0b36059c078e195a0a65ac00"></a><!-- doxytag: member="mrpt::utils::CImage::clone" ref="a9ef7857a0b36059c078e195a0a65ac00" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_object.html">CObject</a>* mrpt::utils::CObject::clone </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Cloning interface for smart pointers. </p>

<p>Reimplemented in <a class="el" href="classmrpt_1_1opengl_1_1_c_renderizable.html#acb2597d6d93b406501d9f3530eb56adf">mrpt::opengl::CRenderizable</a>, and <a class="el" href="classmrpt_1_1opengl_1_1_c_renderizable_display_list.html#ac164cb1d2cf682778ce52967cbd56469">mrpt::opengl::CRenderizableDisplayList</a>.</p>

<p>Definition at line <a class="el" href="_c_object_8h_source.html#l00154">154</a> of file <a class="el" href="_c_object_8h_source.html">CObject.h</a>.</p>

</div>
</div>
<a class="anchor" id="a9d8a0e07dc1ce23f067d416c10f61e53"></a><!-- doxytag: member="mrpt::utils::CImage::colorImage" ref="a9d8a0e07dc1ce23f067d416c10f61e53" args="(CImage &amp;ret) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::colorImage </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>ret</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a RGB version of the grayscale image, or itself if it is already a RGB image. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ad6c9a96cfc910c8a80a477e554f2094c" title="Returns a grayscale version of the image, or itself if it is already a grayscale image.">grayscale</a> </dd></dl>

<p>Referenced by <a class="el" href="_c_display_window_8h_source.html#l00093">mrpt::gui::CDisplayWindow::showImageAndPoints()</a>, and <a class="el" href="_c_display_window_8h_source.html#l00108">mrpt::gui::CDisplayWindow::showTiledImageAndPoints()</a>.</p>

</div>
</div>
<a class="anchor" id="ade4ba31927443891d43427c5d9b8cc3e"></a><!-- doxytag: member="mrpt::utils::CImage::colorImageInPlace" ref="ade4ba31927443891d43427c5d9b8cc3e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::colorImageInPlace </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Replaces this grayscale image with a RGB version of it. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#adb14c43c957e98285ec0e3750487aeee" title="Replaces the image with a grayscale version of it.">grayscaleInPlace</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a2dc0ef184f6e625c3d40497911ad1bf2"></a><!-- doxytag: member="mrpt::utils::CImage::copyFastFrom" ref="a2dc0ef184f6e625c3d40497911ad1bf2" args="(CImage &amp;o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::copyFastFrom </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Moves an image from another object, erasing the origin image in the process (this is much faster than copying) </p>
<dl class="see"><dt><b>See also:</b></dt><dd>operator = </dd></dl>

</div>
</div>
<a class="anchor" id="af19a598956af3139b56906347f0ce3b0"></a><!-- doxytag: member="mrpt::utils::CImage::copyFromForceLoad" ref="af19a598956af3139b56906347f0ce3b0" args="(const CImage &amp;o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::copyFromForceLoad </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copies from another image, and, if that one is externally stored, the image file will be actually loaded into memory in "this" object. </p>
<dl class="see"><dt><b>See also:</b></dt><dd>operator = </dd></dl>

</div>
</div>
<a class="anchor" id="abfdf97f0283eed58f2f6b5bb41d2f6f9"></a><!-- doxytag: member="mrpt::utils::CImage::correlate" ref="abfdf97f0283eed58f2f6b5bb41d2f6f9" args="(const CImage &amp;img2int, int width_init=0, int height_init=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::utils::CImage::correlate </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>img2int</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>width_init</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>height_init</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the correlation coefficient (returned as val), between two images This function use grayscale images only img1, img2 must be same size (by AJOGD @ DEC-2006) </p>

</div>
</div>
<a class="anchor" id="a96ea91c6a524b6e6341ed5bdb7d0d64e"></a><!-- doxytag: member="mrpt::utils::CImage::Create" ref="a96ea91c6a524b6e6341ed5bdb7d0d64e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="structmrpt_1_1utils_1_1_c_image_ptr.html">CImagePtr</a> mrpt::utils::CImage::Create </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a86cb830e9eafbd081756bf49e825084e"></a><!-- doxytag: member="mrpt::utils::CImage::CreateObject" ref="a86cb830e9eafbd081756bf49e825084e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a>* mrpt::utils::CImage::CreateObject </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

</div>
</div>
<a class="anchor" id="a0b6b83a1350a2ad0a8180c631c781d12"></a><!-- doxytag: member="mrpt::utils::CImage::cross" ref="a0b6b83a1350a2ad0a8180c631c781d12" args="(int x0, int y0, const mrpt::utils::TColor color, char type, unsigned int size=5, unsigned int width=1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CCanvas::cross </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">const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>&#160;</td>
          <td class="paramname"><em>color</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>size</em> = <code>5</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draw a cross. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The point x coordinate </td></tr>
    <tr><td class="paramname">y0</td><td>The point y coordinate </td></tr>
    <tr><td class="paramname">color</td><td>The color of the cross </td></tr>
    <tr><td class="paramname">size</td><td>The size of the cross </td></tr>
    <tr><td class="paramname">type</td><td>The cross type. It could be: 'x', '+' or ':'(like '+' but clear at the center dot) </td></tr>
    <tr><td class="paramname">width</td><td>The desired width of the cross (this is IGNORED yet) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a10b4c62958d7f9a0193e8b3a3495e8cd"></a><!-- doxytag: member="mrpt::utils::CImage::cross_correlation" ref="a10b4c62958d7f9a0193e8b3a3495e8cd" args="(const CImage &amp;patch_img, size_t &amp;u_max, size_t &amp;v_max, double &amp;max_val, int u_search_ini=&#45;1, int v_search_ini=&#45;1, int u_search_size=&#45;1, int v_search_size=&#45;1, CImage *out_corr_image=NULL) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::cross_correlation </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>patch_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t &amp;&#160;</td>
          <td class="paramname"><em>u_max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t &amp;&#160;</td>
          <td class="paramname"><em>v_max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>max_val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>u_search_ini</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>v_search_ini</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>u_search_size</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>v_search_size</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> *&#160;</td>
          <td class="paramname"><em>out_corr_image</em> = <code>NULL</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the correlation between this image and another one, encapsulating the openCV function cvMatchTemplate. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">patch_img</td><td>The "patch" image, which must be equal, or smaller than "this" image. This function supports gray-scale (1 channel only) images. </td></tr>
    <tr><td class="paramname">u_search_ini</td><td>The "x" coordinate of the search window. </td></tr>
    <tr><td class="paramname">v_search_ini</td><td>The "y" coordinate of the search window. </td></tr>
    <tr><td class="paramname">u_search_size</td><td>The width of the search window. </td></tr>
    <tr><td class="paramname">v_search_size</td><td>The height of the search window. </td></tr>
    <tr><td class="paramname">u_max</td><td>The u coordinate where find the maximun cross correlation value. </td></tr>
    <tr><td class="paramname">v_max</td><td>The v coordinate where find the maximun cross correlation value </td></tr>
    <tr><td class="paramname">max_val</td><td>The maximun value of cross correlation which we can find </td></tr>
    <tr><td class="paramname">out_corr_image</td><td>If a !=NULL pointer is provided, it will be saved here the correlation image. The size of the output image is (this_width-patch_width+1, this_height-patch_height+1 ) Note: By default, the search area is the whole (this) image. (by AJOGD @ MAR-2007) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ad9ff434708ef37544afeae70fda87686"></a><!-- doxytag: member="mrpt::utils::CImage::cross_correlation_FFT" ref="ad9ff434708ef37544afeae70fda87686" args="(const CImage &amp;in_img, math::CMatrixFloat &amp;out_corr, int u_search_ini=&#45;1, int v_search_ini=&#45;1, int u_search_size=&#45;1, int v_search_size=&#45;1, float biasThisImg=0, float biasInImg=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::cross_correlation_FFT </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>in_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1math.html#a46578d070e41e17dead613002e755aa3">math::CMatrixFloat</a> &amp;&#160;</td>
          <td class="paramname"><em>out_corr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>u_search_ini</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>v_search_ini</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>u_search_size</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>v_search_size</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>biasThisImg</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>biasInImg</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the correlation matrix between this image and another one. </p>
<p>This implementation uses the 2D FFT for achieving reduced computation time. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">in_img</td><td>The "patch" image, which must be equal, or smaller than "this" image. This function supports gray-scale (1 channel only) images. </td></tr>
    <tr><td class="paramname">u_search_ini</td><td>The "x" coordinate of the search window. </td></tr>
    <tr><td class="paramname">v_search_ini</td><td>The "y" coordinate of the search window. </td></tr>
    <tr><td class="paramname">u_search_size</td><td>The width of the search window. </td></tr>
    <tr><td class="paramname">v_search_size</td><td>The height of the search window. </td></tr>
    <tr><td class="paramname">out_corr</td><td>The output for the correlation matrix, which will be "u_search_size" x "v_search_size" </td></tr>
    <tr><td class="paramname">biasThisImg</td><td>This optional parameter is a fixed "bias" value to be substracted to the pixels of "this" image before performing correlation. </td></tr>
    <tr><td class="paramname">biasInImg</td><td>This optional parameter is a fixed "bias" value to be substracted to the pixels of "in_img" image before performing correlation. Note: By default, the search area is the whole (this) image. (by JLBC @ JAN-2006) </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a10b4c62958d7f9a0193e8b3a3495e8cd" title="Computes the correlation between this image and another one, encapsulating the openCV function cvMatc...">cross_correlation</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a8b579836bba916e5f6fc38ce1acb0447"></a><!-- doxytag: member="mrpt::utils::CImage::drawChessboardCorners" ref="a8b579836bba916e5f6fc38ce1acb0447" args="(std::vector&lt; TPixelCoordf &gt; &amp;cornerCoords, unsigned int check_size_x, unsigned int check_size_y)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::utils::CImage::drawChessboardCorners </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classstd_1_1vector.html">std::vector</a>&lt; <a class="el" href="structmrpt_1_1utils_1_1_t_pixel_coordf.html">TPixelCoordf</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>cornerCoords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>check_size_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>check_size_y</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draw onto this image the detected corners of a chessboard. </p>
<p>The length of cornerCoords must be the product of the two check_sizes.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cornerCoords</td><td>[IN] The pixel coordinates of all the corners. </td></tr>
    <tr><td class="paramname">check_size_x</td><td>[IN] The number of squares, in the X direction </td></tr>
    <tr><td class="paramname">check_size_y</td><td>[IN] The number of squares, in the Y direction</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>false if the length of cornerCoords is inconsistent (nothing is drawn then).</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__chessboard__calib.html#gac88718d9f59ced199ba4475ef7299f30" title="Look for the corners of a chessboard in the image using one of two different methods.">mrpt::vision::findChessboardCorners</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a4d1c3412ebbec34cfd941a3fdb355bd9"></a><!-- doxytag: member="mrpt::utils::CImage::drawCircle" ref="a4d1c3412ebbec34cfd941a3fdb355bd9" args="(int x, int y, int radius, const mrpt::utils::TColor color=mrpt::utils::TColor(255, 255, 255), unsigned int width=1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::CCanvas::drawCircle </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>&#160;</td>
          <td class="paramname"><em>color</em> = <code><a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>(255,&#160;255,&#160;255)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draws a circle of a given radius. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>The center - x coordinate in pixels. </td></tr>
    <tr><td class="paramname">y</td><td>The center - y coordinate in pixels. </td></tr>
    <tr><td class="paramname">radius</td><td>The radius - in pixels. </td></tr>
    <tr><td class="paramname">color</td><td>The color of the circle. </td></tr>
    <tr><td class="paramname">width</td><td>The desired width of the line (this is IGNORED in this virtual class) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2f6e8e4c8ec4f4ae7a96bd56694744b0"></a><!-- doxytag: member="mrpt::utils::CImage::drawCircle" ref="a2f6e8e4c8ec4f4ae7a96bd56694744b0" args="(int x, int y, int radius, const mrpt::utils::TColor &amp;color=mrpt::utils::TColor(255, 255, 255), unsigned int width=1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::drawCircle </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>radius</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a> &amp;&#160;</td>
          <td class="paramname"><em>color</em> = <code><a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>(255,&#160;255,&#160;255)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draws a circle of a given radius. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x</td><td>The center - x coordinate in pixels. </td></tr>
    <tr><td class="paramname">y</td><td>The center - y coordinate in pixels. </td></tr>
    <tr><td class="paramname">radius</td><td>The radius - in pixels. </td></tr>
    <tr><td class="paramname">color</td><td>The color of the circle. </td></tr>
    <tr><td class="paramname">width</td><td>The desired width of the line </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="adb876e7085a1aa3b05932c14607085d8"></a><!-- doxytag: member="mrpt::utils::CImage::drawFeatures" ref="adb876e7085a1aa3b05932c14607085d8" args="(const FEATURELIST &amp;list, const TColor &amp;color=TColor::red, const bool showIDs=false, const bool showResponse=false)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class FEATURELIST &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CCanvas::drawFeatures </td>
          <td>(</td>
          <td class="paramtype">const FEATURELIST &amp;&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">TColor</a> &amp;&#160;</td>
          <td class="paramname"><em>color</em> = <code><a class="el" href="structmrpt_1_1utils_1_1_t_color.html#a889b647441f8534a0e205e387635e1c1">TColor::red</a></code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>showIDs</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>showResponse</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draws a set of marks (or scaled circles for features with scale) onto the image, given a generic container of features. </p>
<p>The class of FEATURELIST can be:</p>
<ul>
<li><a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html" title="A list of visual features, to be used as output by detectors, as input/output by trackers, etc.">mrpt::vision::CFeatureList</a></li>
<li><a class="el" href="group__mrptvision__features.html#ga1a3cacefe1829fabd578ba8cc6fe6638" title="A list of image features using the structure TSimpleFeature for each feature - capable of KD-tree com...">mrpt::vision::TSimpleFeatureList</a></li>
</ul>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a5c4ab411ff29f57c618742eefaba82db" title="Draws a set of marks onto the image, given a generic container of entities having just &quot;x&quot; and &quot;y&quot; fi...">drawFeaturesSimple</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_canvas_8h_source.html#l00347">347</a> of file <a class="el" href="_c_canvas_8h_source.html">CCanvas.h</a>.</p>

<p>References <a class="el" href="bits_8h_source.html#l00113">mrpt::utils::round()</a>, and <a class="el" href="namespacemrpt.html#a3a27af794b658df5491e2b7678f8ccb8">mrpt::format()</a>.</p>

</div>
</div>
<a class="anchor" id="a5c4ab411ff29f57c618742eefaba82db"></a><!-- doxytag: member="mrpt::utils::CImage::drawFeaturesSimple" ref="a5c4ab411ff29f57c618742eefaba82db" args="(const FEATURELIST &amp;list, const TColor &amp;color=TColor::red)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class FEATURELIST &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CCanvas::drawFeaturesSimple </td>
          <td>(</td>
          <td class="paramtype">const FEATURELIST &amp;&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">TColor</a> &amp;&#160;</td>
          <td class="paramname"><em>color</em> = <code><a class="el" href="structmrpt_1_1utils_1_1_t_color.html#a889b647441f8534a0e205e387635e1c1">TColor::red</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draws a set of marks onto the image, given a generic container of entities having just "x" and "y" fields. </p>
<p>The class of FEATURELIST can be, for example, std::vector&lt;TPoint2D&gt;, std::vector&lt;TPixelCoordsf&gt; or <a class="el" href="classmrpt_1_1vision_1_1_c_feature_list.html" title="A list of visual features, to be used as output by detectors, as input/output by trackers, etc.">mrpt::vision::CFeatureList</a> </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#adb876e7085a1aa3b05932c14607085d8" title="Draws a set of marks (or scaled circles for features with scale) onto the image, given a generic cont...">drawFeatures</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_canvas_8h_source.html#l00329">329</a> of file <a class="el" href="_c_canvas_8h_source.html">CCanvas.h</a>.</p>

<p>References <a class="el" href="bits_8h_source.html#l00113">mrpt::utils::round()</a>.</p>

</div>
</div>
<a class="anchor" id="a6e3d4fdf972162341e828537cecdd5af"></a><!-- doxytag: member="mrpt::utils::CImage::drawImage" ref="a6e3d4fdf972162341e828537cecdd5af" args="(int x, int y, const utils::CImage &amp;img)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::CCanvas::drawImage </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">utils::CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>img</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draws an image as a bitmap at a given position. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The top-left corner x coordinates on this canvas where the image is to be drawn </td></tr>
    <tr><td class="paramname">y0</td><td>The top-left corner y coordinates on this canvas where the image is to be drawn </td></tr>
    <tr><td class="paramname">img</td><td>The image to be drawn in this canvas This method may be redefined in some classes implementing this interface in a more appropiate manner. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1utils_1_1_c_enhanced_meta_file.html#aa68f3359d38a6eab1aef33ab30cc1ac2">mrpt::utils::CEnhancedMetaFile</a>.</p>

<p>Referenced by <a class="el" href="_c_enhanced_meta_file_8h_source.html#l00154">mrpt::utils::CEnhancedMetaFile::drawImage()</a>.</p>

</div>
</div>
<a class="anchor" id="a81dfceb650fc0ad81de7fff347f85d0c"></a><!-- doxytag: member="mrpt::utils::CImage::drawImage" ref="a81dfceb650fc0ad81de7fff347f85d0c" args="(int x, int y, const utils::CImage &amp;img, float rotation, float scale)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::CCanvas::drawImage </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">utils::CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>rotation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>scale</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draws an image as a bitmap at a given position, with some custom scale and rotation changes. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The top-left corner x coordinates on this canvas where the image is to be drawn </td></tr>
    <tr><td class="paramname">y0</td><td>The top-left corner y coordinates on this canvas where the image is to be drawn </td></tr>
    <tr><td class="paramname">rotation</td><td>The rotation in radians, positive values being anti-clockwise direction, 0 is the normal position. </td></tr>
    <tr><td class="paramname">scale</td><td>The scale factor, e.g. 2 means twice the original size. </td></tr>
    <tr><td class="paramname">img</td><td>The image to be drawn in this canvas This method may be redefined in some classes implementing this interface in a more appropiate manner. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1utils_1_1_c_enhanced_meta_file.html#a3bc94b28ccb9f6eb1370b950edab1303">mrpt::utils::CEnhancedMetaFile</a>.</p>

</div>
</div>
<a class="anchor" id="aad2da5b6028c862896eeff130254b268"></a><!-- doxytag: member="mrpt::utils::CImage::duplicate" ref="aad2da5b6028c862896eeff130254b268" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classmrpt_1_1utils_1_1_c_object.html">mrpt::utils::CObject</a>* mrpt::utils::CImage::duplicate </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a copy of the object, indepently of its class. </p>

<p>Implements <a class="el" href="classmrpt_1_1utils_1_1_c_object.html#aa1070e173c5f7e307b09c53f1fd256e2">mrpt::utils::CObject</a>.</p>

</div>
</div>
<a class="anchor" id="a534695890364f4b916bba07dad311bcf"></a><!-- doxytag: member="mrpt::utils::CImage::duplicateGetSmartPtr" ref="a534695890364f4b916bba07dad311bcf" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_object_ptr.html">mrpt::utils::CObjectPtr</a> mrpt::utils::CObject::duplicateGetSmartPtr </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a copy of the object, indepently of its class, as a smart pointer (the newly created object will exist as long as any copy of this smart pointer). </p>

<p>Definition at line <a class="el" href="_c_object_8h_source.html#l00151">151</a> of file <a class="el" href="_c_object_8h_source.html">CObject.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae942977624cd3347bc4879bcec4c8721"></a><!-- doxytag: member="mrpt::utils::CImage::ellipseGaussian" ref="ae942977624cd3347bc4879bcec4c8721" args="(const MATRIX2X2 *cov2D, const double mean_x, const double mean_y, double confIntervalStds=2, const mrpt::utils::TColor color=mrpt::utils::TColor(255, 255, 255), unsigned int width=1, int nEllipsePoints=20)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class MATRIX2X2 &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CCanvas::ellipseGaussian </td>
          <td>(</td>
          <td class="paramtype">const MATRIX2X2 *&#160;</td>
          <td class="paramname"><em>cov2D</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>mean_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>mean_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>confIntervalStds</em> = <code>2</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>&#160;</td>
          <td class="paramname"><em>color</em> = <code><a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>(255,255,255)</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>nEllipsePoints</em> = <code>20</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draws an ellipse representing a given confidence interval of a 2D Gaussian distribution. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">mean_x</td><td>The x coordinate of the center point of the ellipse. </td></tr>
    <tr><td class="paramname">mean_y</td><td>The y coordinate of the center point of the ellipse. </td></tr>
    <tr><td class="paramname">cov2D</td><td>A 2x2 covariance matrix. </td></tr>
    <tr><td class="paramname">confIntervalStds</td><td>How many "sigmas" for the confidence level (i.e. 2-&gt;95%, 3=99.97%,...) </td></tr>
    <tr><td class="paramname">color</td><td>The color of the ellipse </td></tr>
    <tr><td class="paramname">width</td><td>The desired width of the line (this is IGNORED in this virtual class) </td></tr>
    <tr><td class="paramname">nEllipsePoints</td><td>The number of points to generate to approximate the ellipse shape. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On an invalid matrix. </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_c_canvas_8h_source.html#l00280">280</a> of file <a class="el" href="_c_canvas_8h_source.html">CCanvas.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00370">MRPT_START</a>, <a class="el" href="mrpt__macros_8h_source.html#l00387">M_2PI</a>, <a class="el" href="bits_8h_source.html#l00113">mrpt::utils::round()</a>, and <a class="el" href="mrpt__macros_8h_source.html#l00377">MRPT_END_WITH_CLEAN_UP</a>.</p>

</div>
</div>
<a class="anchor" id="a76d8b82f129399160a3ccfa3cfdd65f7"></a><!-- doxytag: member="mrpt::utils::CImage::equalizeHist" ref="a76d8b82f129399160a3ccfa3cfdd65f7" args="(CImage &amp;outImg) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::equalizeHist </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>outImg</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Equalize the image histogram, saving the new image in the given output object. </p>

</div>
</div>
<a class="anchor" id="a218aa57c3e6884bc54af325a478c0f95"></a><!-- doxytag: member="mrpt::utils::CImage::equalizeHistInPlace" ref="a218aa57c3e6884bc54af325a478c0f95" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::equalizeHistInPlace </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Equalize the image histogram, replacing the original image. </p>

</div>
</div>
<a class="anchor" id="ab09cf102297ac0b27dade7ef953c99cc"></a><!-- doxytag: member="mrpt::utils::CImage::extract_patch" ref="ab09cf102297ac0b27dade7ef953c99cc" args="(CImage &amp;patch, const unsigned int col=0, const unsigned int row=0, const unsigned int width=1, const unsigned int height=1) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::extract_patch </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>patch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>col</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>row</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>width</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>height</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Extract a patch from this image, saveing it into "patch" (its previous contents will be overwritten). </p>
<p>The patch to extract starts at (col,row) and has the given dimensions. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#abb15878d765749114f2e6d55a1595b94" title="Update a part of this image with the &quot;patch&quot; given as argument.">update_patch</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a2e887699dbd3509de85311938781263e"></a><!-- doxytag: member="mrpt::utils::CImage::filledRectangle" ref="a2e887699dbd3509de85311938781263e" args="(int x0, int y0, int x1, int y1, const mrpt::utils::TColor color)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::CCanvas::filledRectangle </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">const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draws a filled rectangle. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The top-left x coordinate </td></tr>
    <tr><td class="paramname">y0</td><td>The top-left y coordinate </td></tr>
    <tr><td class="paramname">x1</td><td>The right-bottom x coordinate </td></tr>
    <tr><td class="paramname">y1</td><td>The right-bottom y coordinate </td></tr>
    <tr><td class="paramname">color</td><td>The color of the rectangle fill This method may be redefined in some classes implementing this interface in a more appropiate manner. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a8ed4afc52ed713317c2a54eff8d02b5d" title="Draws a rectangle (an empty rectangle, without filling)">rectangle</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ac283065a6ff35c7ab252cdc5dbf4c37a"></a><!-- doxytag: member="mrpt::utils::CImage::filterGaussian" ref="ac283065a6ff35c7ab252cdc5dbf4c37a" args="(CImage &amp;out_img, int W=3, int H=3) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::filterGaussian </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>out_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>W</em> = <code>3</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>H</em> = <code>3</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter the image with a Gaussian filter with a window size WxH, replacing "this" image by the filtered one. </p>

</div>
</div>
<a class="anchor" id="a3712a9ee8c65f120420fe1ea109319cc"></a><!-- doxytag: member="mrpt::utils::CImage::filterGaussianInPlace" ref="a3712a9ee8c65f120420fe1ea109319cc" args="(int W=3, int H=3)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::filterGaussianInPlace </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>W</em> = <code>3</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>H</em> = <code>3</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter the image with a Gaussian filter with a window size WxH, returning the filtered image in out_img. </p>

</div>
</div>
<a class="anchor" id="a4d3c7ef471a50c349b91b14196df719a"></a><!-- doxytag: member="mrpt::utils::CImage::filterMedian" ref="a4d3c7ef471a50c349b91b14196df719a" args="(CImage &amp;out_img, int W=3) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::filterMedian </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>out_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>W</em> = <code>3</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter the image with a Median filter with a window size WxW, returning the filtered image in out_img. </p>

</div>
</div>
<a class="anchor" id="afb6e492c8d16972fd02b7a2449b68914"></a><!-- doxytag: member="mrpt::utils::CImage::filterMedianInPlace" ref="afb6e492c8d16972fd02b7a2449b68914" args="(int W=3)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::filterMedianInPlace </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>W</em> = <code>3</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Filter the image with a Median filter with a window size WxH, replacing "this" image by the filtered one. </p>

</div>
</div>
<a class="anchor" id="aa2ef21af98537c4d55676ec359a6154a"></a><!-- doxytag: member="mrpt::utils::CImage::flipVertical" ref="aa2ef21af98537c4d55676ec359a6154a" args="(bool also_swapRB=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::flipVertical </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>also_swapRB</em> = <code>false</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Flips vertically the image. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a5ed4c830e8725ba66d76e4a92928bdfc" title="Swaps red and blue channels.">swapRB</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a1c803e601870239da6c61526bc141735"></a><!-- doxytag: member="mrpt::utils::CImage::forceLoad" ref="a1c803e601870239da6c61526bc141735" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::forceLoad </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>For external storage image objects only, this method makes sure the image is loaded in memory. </p>
<p>Note that usually images are loaded on-the-fly on first access and there's no need to call this.  </p>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00715">715</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="acda23bd85fa63072d326dc1dbb93353a"></a><!-- doxytag: member="mrpt::utils::CImage::get_unsafe" ref="acda23bd85fa63072d326dc1dbb93353a" args="(unsigned int col, unsigned int row, unsigned int channel=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned char* mrpt::utils::CImage::get_unsafe </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>col</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>channel</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Access to pixels without checking boundaries - Use normally the () operator better, which checks the coordinates. </p>
<dl class="see"><dt><b>See also:</b></dt><dd>CImage::operator() </dd></dl>

</div>
</div>
<a class="anchor" id="a6eb49fc77a2c2830187ed5225e8744d1"></a><!-- doxytag: member="mrpt::utils::CImage::getAs" ref="a6eb49fc77a2c2830187ed5225e8744d1" args="() const " -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">const T* mrpt::utils::CImage::getAs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a pointer to an T* containing the image - the idea is to call like "img.getAs&lt;IplImage&gt;()" so we can avoid here including OpenCV's headers. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ab827a411abbe4e37fe0837cbd28ecc99" title="Returns a pointer to an OpenCV&#39;s IplImage struct containing the image, which is linked to this class:...">getAsIplImage</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00539">539</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="a26f034e5d3ffab83a41326a6f6fdf5a4"></a><!-- doxytag: member="mrpt::utils::CImage::getAs" ref="a26f034e5d3ffab83a41326a6f6fdf5a4" args="()" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T* mrpt::utils::CImage::getAs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a pointer to an T* containing the image - the idea is to call like "img.getAs&lt;IplImage&gt;()" so we can avoid here including OpenCV's headers. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ab827a411abbe4e37fe0837cbd28ecc99" title="Returns a pointer to an OpenCV&#39;s IplImage struct containing the image, which is linked to this class:...">getAsIplImage</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00544">544</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="aa5492fc4ec9512370a79523d88bbcf21"></a><!-- doxytag: member="mrpt::utils::CImage::getAsFloat" ref="aa5492fc4ec9512370a79523d88bbcf21" args="(unsigned int col, unsigned int row, unsigned int channel) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::utils::CImage::getAsFloat </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>col</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>channel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the contents of a given pixel at the desired channel, in float format: [0,255]-&gt;[0,1] The coordinate origin is pixel(0,0)=top-left corner of the image. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On pixel coordinates out of bounds </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>operator() </dd></dl>

</div>
</div>
<a class="anchor" id="adf3077240734bb721f49eb6e8a4ab6e5"></a><!-- doxytag: member="mrpt::utils::CImage::getAsFloat" ref="adf3077240734bb721f49eb6e8a4ab6e5" args="(unsigned int col, unsigned int row) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::utils::CImage::getAsFloat </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>col</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>row</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the contents of a given pixel (for gray-scale images, in color images the gray scale equivalent is computed for the pixel), in float format: [0,255]-&gt;[0,1] The coordinate origin is pixel(0,0)=top-left corner of the image. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On pixel coordinates out of bounds </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>operator() </dd></dl>

</div>
</div>
<a class="anchor" id="ab827a411abbe4e37fe0837cbd28ecc99"></a><!-- doxytag: member="mrpt::utils::CImage::getAsIplImage" ref="ab827a411abbe4e37fe0837cbd28ecc99" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* mrpt::utils::CImage::getAsIplImage </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a pointer to an OpenCV's IplImage struct containing the image, which is linked to this class: free neigther that pointer nor this class until they are not required anymore, since this class is in charge of freeing the memory buffers inside of the returned image. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a6eb49fc77a2c2830187ed5225e8744d1" title="Returns a pointer to an T* containing the image - the idea is to call like &quot;img.getAs&lt;IplImage&gt;()&quot; so...">getAs</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00550">550</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="a50fc13111fafbf571e63f6777535fb84"></a><!-- doxytag: member="mrpt::utils::CImage::getAsMatrix" ref="a50fc13111fafbf571e63f6777535fb84" args="(mrpt::math::CMatrixFloat &amp;outMatrix, bool doResize=true, int x_min=0, int y_min=0, int x_max=&#45;1, int y_max=&#45;1) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::getAsMatrix </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1math.html#a46578d070e41e17dead613002e755aa3">mrpt::math::CMatrixFloat</a> &amp;&#160;</td>
          <td class="paramname"><em>outMatrix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>doResize</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x_min</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y_min</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x_max</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y_max</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the image as a matrix with pixel grayscale values in the range [0,1]. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">doResize</td><td>If set to true (default), the output matrix will be always the size of the image at output. If set to false, the matrix will be enlarged to the size of the image, but it will not be cropped if it has room enough (useful for FFT2D,...) </td></tr>
    <tr><td class="paramname">x_min</td><td>The starting "x" coordinate to extract (default=0=the first column) </td></tr>
    <tr><td class="paramname">y_min</td><td>The starting "y" coordinate to extract (default=0=the first row) </td></tr>
    <tr><td class="paramname">x_max</td><td>The final "x" coordinate (inclusive) to extract (default=-1=the last column) </td></tr>
    <tr><td class="paramname">y_max</td><td>The final "y" coordinate (inclusive) to extract (default=-1=the last row) </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a7e44d9399f9ec03ca9cdf7cdde833c6b" title="Set the image from a matrix, interpreted as grayscale intensity values, in the range [0...">setFromMatrix</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ab99f3634637f3a48955c63d79316d5e7"></a><!-- doxytag: member="mrpt::utils::CImage::getAsMatrixTiled" ref="ab99f3634637f3a48955c63d79316d5e7" args="(math::CMatrix &amp;outMatrix) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::getAsMatrixTiled </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1math_1_1_c_matrix.html">math::CMatrix</a> &amp;&#160;</td>
          <td class="paramname"><em>outMatrix</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the image as a matrix, where the image is "tiled" (repeated) the required number of times to fill the entire size of the matrix on input. </p>

</div>
</div>
<a class="anchor" id="a3a7ffd0fbd460b2e0f1afb703ddceaab"></a><!-- doxytag: member="mrpt::utils::CImage::getChannelCount" ref="a3a7ffd0fbd460b2e0f1afb703ddceaab" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1utils.html#a8669b520cea0ec8220809c77721f60eb">TImageChannels</a> mrpt::utils::CImage::getChannelCount </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of channels, typically 1 (GRAY) or 3 (RGB) </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a8b519b0a2e8419aea72308eb67060688" title="Returns true if the image is RGB, false if it is grayscale.">isColor</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a8a81ff1a19799b643f6f427c5137441f"></a><!-- doxytag: member="mrpt::utils::CImage::getChannelsOrder" ref="a8a81ff1a19799b643f6f427c5137441f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* mrpt::utils::CImage::getChannelsOrder </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a string of the form "BGR","RGB" or "GRAY" indicating the channels ordering. </p>
<dl class="see"><dt><b>See also:</b></dt><dd>setChannelsOrder, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a5ed4c830e8725ba66d76e4a92928bdfc" title="Swaps red and blue channels.">swapRB</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a30a5d823f159b04814bf3c7c75fe2101"></a><!-- doxytag: member="mrpt::utils::CImage::getExternalStorageFile" ref="a30a5d823f159b04814bf3c7c75fe2101" args="() const MRPT_NO_THROWS" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> mrpt::utils::CImage::getExternalStorageFile </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>&lt; Only if <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a6675e91f9d52059beeeb3907718bd66c" title="See setExternalStorage().">isExternallyStored()</a> returns true. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a358895a16c2bba2a3e5a3b418be76231" title="Only if isExternallyStored() returns true.">getExternalStorageFileAbsolutePath</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00697">697</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="a358895a16c2bba2a3e5a3b418be76231"></a><!-- doxytag: member="mrpt::utils::CImage::getExternalStorageFileAbsolutePath" ref="a358895a16c2bba2a3e5a3b418be76231" args="(std::string &amp;out_path) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::getExternalStorageFileAbsolutePath </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>out_path</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Only if <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a6675e91f9d52059beeeb3907718bd66c" title="See setExternalStorage().">isExternallyStored()</a> returns true. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a30a5d823f159b04814bf3c7c75fe2101" title="&lt; Only if isExternallyStored() returns true.">getExternalStorageFile</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aba8221e3e52ad5b6453d394f41f034a5"></a><!-- doxytag: member="mrpt::utils::CImage::getExternalStorageFileAbsolutePath" ref="aba8221e3e52ad5b6453d394f41f034a5" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> mrpt::utils::CImage::getExternalStorageFileAbsolutePath </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Only if <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a6675e91f9d52059beeeb3907718bd66c" title="See setExternalStorage().">isExternallyStored()</a> returns true. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a30a5d823f159b04814bf3c7c75fe2101" title="&lt; Only if isExternallyStored() returns true.">getExternalStorageFile</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00706">706</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab0ebc0aa07b6fbcf4f24898881db3f4d"></a><!-- doxytag: member="mrpt::utils::CImage::getHeight" ref="ab0ebc0aa07b6fbcf4f24898881db3f4d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::utils::CImage::getHeight </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the height of the image in pixels. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae1c213839bda73001cafa09d21818044" title="Return the size of the image.">getSize</a> </dd></dl>

<p>Implements <a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a9639f2a43bd4ef94294111e77c6c749a">mrpt::utils::CCanvas</a>.</p>

</div>
</div>
<a class="anchor" id="a18339058c8da20163455765a93063645"></a><!-- doxytag: member="mrpt::utils::CImage::getMaxAsFloat" ref="a18339058c8da20163455765a93063645" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::utils::CImage::getMaxAsFloat </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the maximum pixel value of the image, as a float value in the range [0,1]. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aa5492fc4ec9512370a79523d88bbcf21" title="Returns the contents of a given pixel at the desired channel, in float format: [0,255]-&gt;[0,1] The coordinate origin is pixel(0,0)=top-left corner of the image.">getAsFloat</a> </dd></dl>

</div>
</div>
<a class="anchor" id="acafd9a0bea6c6775a0d17083b20ab745"></a><!-- doxytag: member="mrpt::utils::CImage::getRowStride" ref="acafd9a0bea6c6775a0d17083b20ab745" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::utils::CImage::getRowStride </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the row stride of the image: this is the number of *bytes* between two consecutive rows. </p>
<p>You can access the pointer to the first row with get_unsafe(0,0) </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae1c213839bda73001cafa09d21818044" title="Return the size of the image.">getSize</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#acda23bd85fa63072d326dc1dbb93353a" title="Access to pixels without checking boundaries - Use normally the () operator better, which checks the coordinates.">get_unsafe</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a703f96927e0c7efd8988a73ae3685c75"></a><!-- doxytag: member="mrpt::utils::CImage::GetRuntimeClass" ref="a703f96927e0c7efd8988a73ae3685c75" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>* mrpt::utils::CImage::GetRuntimeClass </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns information about the class of an object in runtime. </p>

<p>Reimplemented from <a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a6861b16159daafd1651d6e0d27f39c58">mrpt::utils::CSerializable</a>.</p>

</div>
</div>
<a class="anchor" id="ae1c213839bda73001cafa09d21818044"></a><!-- doxytag: member="mrpt::utils::CImage::getSize" ref="ae1c213839bda73001cafa09d21818044" args="(TImageSize &amp;s) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::getSize </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1utils.html#aad714637162eda7b78d3d4c520e9a379">TImageSize</a> &amp;&#160;</td>
          <td class="paramname"><em>s</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the size of the image. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae82bff36dbdbdfefe2735d6a02ed6bc8" title="Returns the width of the image in pixels.">getWidth</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ab0ebc0aa07b6fbcf4f24898881db3f4d" title="Returns the height of the image in pixels.">getHeight</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a4f8e2244425e66957467cc00ddabde6f"></a><!-- doxytag: member="mrpt::utils::CImage::getSize" ref="a4f8e2244425e66957467cc00ddabde6f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacemrpt_1_1utils.html#aad714637162eda7b78d3d4c520e9a379">TImageSize</a> mrpt::utils::CImage::getSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return the size of the image. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae82bff36dbdbdfefe2735d6a02ed6bc8" title="Returns the width of the image in pixels.">getWidth</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ab0ebc0aa07b6fbcf4f24898881db3f4d" title="Returns the height of the image in pixels.">getHeight</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00610">610</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae82bff36dbdbdfefe2735d6a02ed6bc8"></a><!-- doxytag: member="mrpt::utils::CImage::getWidth" ref="ae82bff36dbdbdfefe2735d6a02ed6bc8" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t mrpt::utils::CImage::getWidth </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the width of the image in pixels. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae1c213839bda73001cafa09d21818044" title="Return the size of the image.">getSize</a> </dd></dl>

<p>Implements <a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a4c46a63b0d936e15b9c0fa86c125676c">mrpt::utils::CCanvas</a>.</p>

<p>Referenced by <a class="el" href="_c_display_window_8h_source.html#l00133">mrpt::gui::CDisplayWindow::showImagesAndMatchedPoints()</a>.</p>

</div>
</div>
<a class="anchor" id="ad6c9a96cfc910c8a80a477e554f2094c"></a><!-- doxytag: member="mrpt::utils::CImage::grayscale" ref="ad6c9a96cfc910c8a80a477e554f2094c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> mrpt::utils::CImage::grayscale </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a grayscale version of the image, or itself if it is already a grayscale image. </p>

<p>Referenced by <a class="el" href="_c_image_8h_source.html#l00162">CImage()</a>.</p>

</div>
</div>
<a class="anchor" id="a7a0f8ae44b540fb181bc2a6499224eb0"></a><!-- doxytag: member="mrpt::utils::CImage::grayscale" ref="a7a0f8ae44b540fb181bc2a6499224eb0" args="(CImage &amp;ret) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::grayscale </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>ret</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a grayscale version of the image, or itself if it is already a grayscale image. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a9d8a0e07dc1ce23f067d416c10f61e53" title="Returns a RGB version of the grayscale image, or itself if it is already a RGB image.">colorImage</a> </dd></dl>

</div>
</div>
<a class="anchor" id="adb14c43c957e98285ec0e3750487aeee"></a><!-- doxytag: member="mrpt::utils::CImage::grayscaleInPlace" ref="adb14c43c957e98285ec0e3750487aeee" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::grayscaleInPlace </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Replaces the image with a grayscale version of it. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ade4ba31927443891d43427c5d9b8cc3e" title="Replaces this grayscale image with a RGB version of it.">colorImageInPlace</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a8b519b0a2e8419aea72308eb67060688"></a><!-- doxytag: member="mrpt::utils::CImage::isColor" ref="a8b519b0a2e8419aea72308eb67060688" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::utils::CImage::isColor </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if the image is RGB, false if it is grayscale. </p>

<p>Referenced by <a class="el" href="_c_image_8h_source.html#l00162">CImage()</a>.</p>

</div>
</div>
<a class="anchor" id="a6675e91f9d52059beeeb3907718bd66c"></a><!-- doxytag: member="mrpt::utils::CImage::isExternallyStored" ref="a6675e91f9d52059beeeb3907718bd66c" args="() const MRPT_NO_THROWS" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::utils::CImage::isExternallyStored </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a2dfac3beec88430aa55540b6cfed4c68" title="By using this method the image is marked as referenced to an external file, which will be loaded only...">setExternalStorage()</a>. </p>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00695">695</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="a603f63c422e2f8c0c4d5ae55bfd6144c"></a><!-- doxytag: member="mrpt::utils::CImage::isOriginTopLeft" ref="a603f63c422e2f8c0c4d5ae55bfd6144c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::utils::CImage::isOriginTopLeft </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns true if the coordinates origin is top-left, or false if it is bottom-left. </p>

</div>
</div>
<a class="anchor" id="a71a088b5ad9837496592119c1ac1ce1f"></a><!-- doxytag: member="mrpt::utils::CImage::joinImagesHorz" ref="a71a088b5ad9837496592119c1ac1ce1f" args="(const CImage &amp;im1, const CImage &amp;im2)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::joinImagesHorz </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>im1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>im2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Joins two images side-by-side horizontally. </p>
<p>Both images must have the same number of rows and be of the same type (i.e. depth and color mode)</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">im1</td><td>[IN] The first image. </td></tr>
    <tr><td class="paramname">im2</td><td>[IN] The other image. </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="_c_display_window_8h_source.html#l00133">mrpt::gui::CDisplayWindow::showImagesAndMatchedPoints()</a>.</p>

</div>
</div>
<a class="anchor" id="afd0dbc513f07e36a3764e674fdff6c1e"></a><!-- doxytag: member="mrpt::utils::CImage::KLT_response" ref="afd0dbc513f07e36a3764e674fdff6c1e" args="(const unsigned int x, const unsigned int y, const unsigned int half_window_size) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float mrpt::utils::CImage::KLT_response </td>
          <td>(</td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>half_window_size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Compute the KLT response at a given pixel (x,y) - Only for grayscale images (for efficiency it avoids converting to grayscale internally). </p>
<p>See KLT_response_optimized for more details on the internal optimizations of this method, but this graph shows a general view: </p>
<div class="image">
<img src="KLT_response_performance_SSE2.png" alt="KLT_response_performance_SSE2.png"/>
</div>
 
</div>
</div>
<a class="anchor" id="a62f7d2f17c48f39f25fcee7eda8736ca"></a><!-- doxytag: member="mrpt::utils::CImage::line" ref="a62f7d2f17c48f39f25fcee7eda8736ca" args="(int x0, int y0, int x1, int y1, const mrpt::utils::TColor color, unsigned int width=1, TPenStyle penStyle=psSolid)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::CImage::line </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">const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>&#160;</td>
          <td class="paramname"><em>color</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a29d01f1280922b7a59dc5069b7ba0cf8">TPenStyle</a>&#160;</td>
          <td class="paramname"><em>penStyle</em> = <code>psSolid</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draws a line. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The starting point x coordinate </td></tr>
    <tr><td class="paramname">y0</td><td>The starting point y coordinate </td></tr>
    <tr><td class="paramname">x1</td><td>The end point x coordinate </td></tr>
    <tr><td class="paramname">y1</td><td>The end point y coordinate </td></tr>
    <tr><td class="paramname">color</td><td>The color of the line </td></tr>
    <tr><td class="paramname">width</td><td>The desired width of the line (this is IGNORED in this virtual class) This method may be redefined in some classes implementing this interface in a more appropiate manner. </td></tr>
  </table>
  </dd>
</dl>

<p>Reimplemented from <a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#aafccfe59320bbd7d745833548dba9c23">mrpt::utils::CCanvas</a>.</p>

</div>
</div>
<a class="anchor" id="acad842441ddd573795484780552e55e6"></a><!-- doxytag: member="mrpt::utils::CImage::loadFromFile" ref="acad842441ddd573795484780552e55e6" args="(const std::string &amp;fileName, int isColor=&#45;1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::utils::CImage::loadFromFile </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>fileName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>isColor</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Load image from a file, whose format is determined from the extension (internally uses OpenCV). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fileName</td><td>The file to read from. </td></tr>
    <tr><td class="paramname">isColor</td><td>Specifies colorness of the loaded image:<ul>
<li>if &gt;0, the loaded image is forced to be color 3-channel image;</li>
<li>if 0, the loaded image is forced to be grayscale;</li>
<li>if &lt;0, the loaded image will be loaded as is (with number of channels depends on the file). The supported formats are:</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<ul>
<li>Windows bitmaps - BMP, DIB;</li>
<li>JPEG files - JPEG, JPG, JPE;</li>
<li>Portable Network Graphics - PNG;</li>
<li>Portable image format - PBM, PGM, PPM;</li>
<li>Sun rasters - SR, RAS;</li>
<li>TIFF files - TIFF, TIF.</li>
</ul>
<dl class="return"><dt><b>Returns:</b></dt><dd>False on any error </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a1b64eea6332fce6366c859d210b3e3d5" title="Save the image to a file, whose format is determined from the extension (internally uses OpenCV)...">saveToFile</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a2dfac3beec88430aa55540b6cfed4c68" title="By using this method the image is marked as referenced to an external file, which will be loaded only...">setExternalStorage</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a1eb6f9fb31d9b1ad8eb6a261a75d8ff2"></a><!-- doxytag: member="mrpt::utils::CImage::loadFromIplImage" ref="a1eb6f9fb31d9b1ad8eb6a261a75d8ff2" args="(void *iplImage)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::loadFromIplImage </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>iplImage</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads the image from a OpenCV IplImage object (making a COPY). </p>

</div>
</div>
<a class="anchor" id="a4ca06fa1dc16092710b2e10a1ed8f332"></a><!-- doxytag: member="mrpt::utils::CImage::loadFromMemoryBuffer" ref="a4ca06fa1dc16092710b2e10a1ed8f332" args="(unsigned int width, unsigned int height, bool color, unsigned char *rawpixels, bool swapRedBlue=false)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::loadFromMemoryBuffer </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>color</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>rawpixels</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>swapRedBlue</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads the image from raw pixels buffer in memory. </p>

</div>
</div>
<a class="anchor" id="a173ae3ec4e7aac6eeebca8763b08c794"></a><!-- doxytag: member="mrpt::utils::CImage::loadFromMemoryBuffer" ref="a173ae3ec4e7aac6eeebca8763b08c794" args="(unsigned int width, unsigned int height, unsigned int bytesPerRow, unsigned char *red, unsigned char *green, unsigned char *blue)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::loadFromMemoryBuffer </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>bytesPerRow</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>red</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>green</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>blue</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads a color image from three raw pixels buffers in memory. </p>
<p>bytesPerRow is the number of bytes per row per channel, i.e. the row increment. </p>

</div>
</div>
<a class="anchor" id="a76496a28d0ecd2fe9d55c26ab4cf6c77"></a><!-- doxytag: member="mrpt::utils::CImage::loadFromStreamAsJPEG" ref="a76496a28d0ecd2fe9d55c26ab4cf6c77" args="(CStream &amp;in)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::loadFromStreamAsJPEG </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;&#160;</td>
          <td class="paramname"><em>in</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads the image from a binary stream containing a binary jpeg file. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On pixel coordinates out of bounds </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac767eff45b41fbfc68ad4755341fd281"></a><!-- doxytag: member="mrpt::utils::CImage::makeSureImageIsLoaded" ref="ac767eff45b41fbfc68ad4755341fd281" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::makeSureImageIsLoaded </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const  throw (<a class="el" href="classstd_1_1exception.html">std::exception</a>,<a class="el" href="classmrpt_1_1utils_1_1_c_exception_external_image_not_found.html">utils::CExceptionExternalImageNotFound</a> )<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Checks if the image is of type "external storage", and if so and not loaded yet, load it. </p>

</div>
</div>
<a class="anchor" id="a424922e27cb2d0ff93ff1ae3e3d79c48"></a><!-- doxytag: member="mrpt::utils::CImage::normalize" ref="a424922e27cb2d0ff93ff1ae3e3d79c48" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::normalize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Optimize de brightness range of a image without using histogram Only for one channel images. </p>

</div>
</div>
<a class="anchor" id="a79dbd0066650b827be0104148873b445"></a><!-- doxytag: member="mrpt::utils::CImage::operator()" ref="a79dbd0066650b827be0104148873b445" args="(unsigned int col, unsigned int row, unsigned int channel=0) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned char* mrpt::utils::CImage::operator() </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>col</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>channel</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a pointer to a given pixel information. </p>
<p>The coordinate origin is pixel(0,0)=top-left corner of the image. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On pixel coordinates out of bounds </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a18c8daf2a3363fd660005953be7a6331"></a><!-- doxytag: member="mrpt::utils::CImage::operator=" ref="a18c8daf2a3363fd660005953be7a6331" args="(const CImage &amp;o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a>&amp; mrpt::utils::CImage::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Copy operator (if the image is externally stored, the writen image will be such as well). </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a2dc0ef184f6e625c3d40497911ad1bf2" title="Moves an image from another object, erasing the origin image in the process (this is much faster than...">copyFastFrom</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a73ba83035a64939cdc3aa1c0dfed23ec"></a><!-- doxytag: member="mrpt::utils::CImage::readFromStream" ref="a73ba83035a64939cdc3aa1c0dfed23ec" args="(mrpt::utils::CStream &amp;in, int version)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::CSerializable::readFromStream </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;&#160;</td>
          <td class="paramname"><em>in</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>version</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [protected, pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Introduces a pure virtual method responsible for loading from a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a> This can not be used directly be users, instead use "stream &gt;&gt; object;" for reading it from a stream or "stream &gt;&gt; object_ptr;" if the class is unknown apriori. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">in</td><td>The input binary stream where the object data must read from. </td></tr>
    <tr><td class="paramname">version</td><td>The version of the object stored in the stream: use this version number in your code to know how to read the incoming data. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On any error, see <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html#a1b8cd3d084b5a95a3f65c6eed6e7cc6d" title="Reads a block of bytes from the stream into Buffer On any error, or if ZERO bytes are read...">CStream::ReadBuffer</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a> </dd></dl>

<p>Implemented in <a class="el" href="classmrpt_1_1math_1_1_c_matrix_d.html#a0194e57ec48c1dfc6aa00c23d3409143">mrpt::math::CMatrixD</a>, and <a class="el" href="classmrpt_1_1math_1_1_c_matrix.html#a12db95e8c32d48d2d2483936dec516a7">mrpt::math::CMatrix</a>.</p>

</div>
</div>
<a class="anchor" id="a8ed4afc52ed713317c2a54eff8d02b5d"></a><!-- doxytag: member="mrpt::utils::CImage::rectangle" ref="a8ed4afc52ed713317c2a54eff8d02b5d" args="(int x0, int y0, int x1, int y1, const mrpt::utils::TColor color, unsigned int width=1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CCanvas::rectangle </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">const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>&#160;</td>
          <td class="paramname"><em>color</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draws a rectangle (an empty rectangle, without filling) </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The top-left x coordinate </td></tr>
    <tr><td class="paramname">y0</td><td>The top-left y coordinate </td></tr>
    <tr><td class="paramname">x1</td><td>The right-bottom x coordinate </td></tr>
    <tr><td class="paramname">y1</td><td>The right-bottom y coordinate </td></tr>
    <tr><td class="paramname">color</td><td>The color of the line </td></tr>
    <tr><td class="paramname">width</td><td>The desired width of the line. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a2e887699dbd3509de85311938781263e" title="Draws a filled rectangle.">filledRectangle</a> </dd></dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1utils_1_1_c_enhanced_meta_file.html#a24c76c3a6deb58df81e3b3cceab439a9">mrpt::utils::CEnhancedMetaFile</a>.</p>

</div>
</div>
<a class="anchor" id="a543afd4be92f7c35ebe58c664ab82452"></a><!-- doxytag: member="mrpt::utils::CImage::rectifyImage" ref="a543afd4be92f7c35ebe58c664ab82452" args="(CImage &amp;out_img, const mrpt::utils::TCamera &amp;cameraParams) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::rectifyImage </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>out_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;&#160;</td>
          <td class="paramname"><em>cameraParams</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Rectify (un-distort) the image according to some camera parameters, and returns an output un-distorted image. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">out_img</td><td>The output rectified image </td></tr>
    <tr><td class="paramname">cameraParams</td><td>The input camera params (containing the intrinsic and distortion parameters of the camera) </td></tr>
  </table>
  </dd>
</dl>

<p>Referenced by <a class="el" href="vision_2include_2mrpt_2vision_2utils_8h_source.html#l00209">mrpt::vision::correctDistortion()</a>.</p>

</div>
</div>
<a class="anchor" id="a4ca10a7c221a9b33620d4ac25424944a"></a><!-- doxytag: member="mrpt::utils::CImage::rectifyImage" ref="a4ca10a7c221a9b33620d4ac25424944a" args="(CImage &amp;out_img, const math::CMatrixDouble33 &amp;cameraMatrix, const vector_double &amp;distCoeff) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::rectifyImage </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>out_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">math::CMatrixDouble33</a> &amp;&#160;</td>
          <td class="paramname"><em>cameraMatrix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt.html#a4a6aab2c98368ca6b554c04f8fe84cfb">vector_double</a> &amp;&#160;</td>
          <td class="paramname"><em>distCoeff</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Rectify (un-distort) the image according to a certain camera matrix and vector of distortion coefficients and returns an output rectified image. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">out_img</td><td>The output rectified image </td></tr>
    <tr><td class="paramname">cameraMatrix</td><td>The input camera matrix (containing the intrinsic parameters of the camera): [fx 0 cx; 0 fy cy; 0 0 1]: (fx,fy) focal length and (cx,cy) principal point coordinates </td></tr>
    <tr><td class="paramname">distCoeff</td><td>The (input) distortion coefficients: [k1, k2, p1, p2]: k1 and k2 (radial) and p1 and p2 (tangential) </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00428">428</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

<p>References <a class="el" href="_t_camera_8h_source.html#l00074">mrpt::utils::TCamera::intrinsicParams</a>, and <a class="el" href="_t_camera_8h_source.html#l00149">mrpt::utils::TCamera::setDistortionParamsVector()</a>.</p>

</div>
</div>
<a class="anchor" id="a0f51eb15d0ba3492f07c2f571b917695"></a><!-- doxytag: member="mrpt::utils::CImage::rectifyImageInPlace" ref="a0f51eb15d0ba3492f07c2f571b917695" args="(const mrpt::utils::TCamera &amp;cameraParams)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::rectifyImageInPlace </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_t_camera.html">mrpt::utils::TCamera</a> &amp;&#160;</td>
          <td class="paramname"><em>cameraParams</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Rectify (un-distort) the image according to a certain camera matrix and vector of distortion coefficients, replacing "this" with the rectified image. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cameraParams</td><td>The input camera params (containing the intrinsic and distortion parameters of the camera) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aebe1d754f737065f146fa6afc7fd1d48"></a><!-- doxytag: member="mrpt::utils::CImage::rectifyImageInPlace" ref="aebe1d754f737065f146fa6afc7fd1d48" args="(const math::CMatrixDouble33 &amp;cameraMatrix, const vector_double &amp;distCoeff)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::rectifyImageInPlace </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="namespacemrpt_1_1math.html#a58d0ee60eee38e990848ccb8b83e8338">math::CMatrixDouble33</a> &amp;&#160;</td>
          <td class="paramname"><em>cameraMatrix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacemrpt.html#a4a6aab2c98368ca6b554c04f8fe84cfb">vector_double</a> &amp;&#160;</td>
          <td class="paramname"><em>distCoeff</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Rectify (un-distort) the image according to a certain camera matrix and vector of distortion coefficients, replacing "this" with the rectified image. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">cameraMatrix</td><td>The input camera matrix (containing the intrinsic parameters of the camera): [fx 0 cx; 0 fy cy; 0 0 1]: (fx,fy) focal length and (cx,cy) principal point coordinates </td></tr>
    <tr><td class="paramname">distCoeff</td><td>The (input) distortion coefficients: [k1, k2, p1, p2]: k1 and k2 (radial) and p1 and p2 (tangential) </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00445">445</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

<p>References <a class="el" href="_t_camera_8h_source.html#l00074">mrpt::utils::TCamera::intrinsicParams</a>, and <a class="el" href="_t_camera_8h_source.html#l00149">mrpt::utils::TCamera::setDistortionParamsVector()</a>.</p>

</div>
</div>
<a class="anchor" id="adbd26bac5b6c3cace9daf94462ea7c55"></a><!-- doxytag: member="mrpt::utils::CImage::rectifyImageInPlace" ref="adbd26bac5b6c3cace9daf94462ea7c55" args="(void *mapX, void *mapY)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::rectifyImageInPlace </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>mapX</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>mapY</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Rectify an image (undistorts and rectification) from a stereo pair according to a pair of precomputed rectification maps. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">mapX,mapY</td><td>[IN] The pre-computed maps of the rectification (should be computed beforehand) </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__mrpt__vision__grp.html#ga13bd323aaefe18e181cad689468a113f" title="Computes a pair of x-and-y maps for stereo rectification from a pair of cameras and the relative pose...">vision::computeStereoRectificationMaps</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a0d396c2cfe40f8a03e69577caa5a297f"></a><!-- doxytag: member="mrpt::utils::CImage::releaseIpl" ref="a0d396c2cfe40f8a03e69577caa5a297f" args="(bool thisIsExternalImgUnload=false) MRPT_NO_THROWS" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::releaseIpl </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>thisIsExternalImgUnload</em> = <code>false</code></td><td>)</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Release the internal IPL image, if not NULL or read-only. </p>

</div>
</div>
<a class="anchor" id="a77228d5ac964d44aa3ccd87ac958ab7a"></a><!-- doxytag: member="mrpt::utils::CImage::resize" ref="a77228d5ac964d44aa3ccd87ac958ab7a" args="(unsigned int width, unsigned int height, TImageChannels nChannels, bool originTopLeft)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::resize </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="namespacemrpt_1_1utils.html#a8669b520cea0ec8220809c77721f60eb">TImageChannels</a>&#160;</td>
          <td class="paramname"><em>nChannels</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>originTopLeft</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the size of the image, erasing previous contents (does NOT scale its current content, for that, see scaleImage). </p>
<ul>
<li>nChannels: Can be 3 for RGB images or 1 for grayscale images.</li>
<li>originTopLeft: Is true if the top-left corner is (0,0). In other case, the reference is the bottom-left corner. <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#af2eb20a3604c776d2600bf03f3c0fae2" title="Scales this image to a new size, interpolating as needed.">scaleImage</a> </dd></dl>
</li>
</ul>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00205">205</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae567e356f0dbbb7fe89ed2c5c7ca608c"></a><!-- doxytag: member="mrpt::utils::CImage::rotateImage" ref="ae567e356f0dbbb7fe89ed2c5c7ca608c" args="(double angle_radians, unsigned int center_x, unsigned int center_y, double scale=1.0)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::rotateImage </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>angle_radians</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>center_x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>center_y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>scale</em> = <code>1.0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Rotates the image by the given angle around the given center point, with an optional scale factor. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a77228d5ac964d44aa3ccd87ac958ab7a" title="Changes the size of the image, erasing previous contents (does NOT scale its current content...">resize</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#af2eb20a3604c776d2600bf03f3c0fae2" title="Scales this image to a new size, interpolating as needed.">scaleImage</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a1b64eea6332fce6366c859d210b3e3d5"></a><!-- doxytag: member="mrpt::utils::CImage::saveToFile" ref="a1b64eea6332fce6366c859d210b3e3d5" args="(const std::string &amp;fileName, int jpeg_quality=95) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool mrpt::utils::CImage::saveToFile </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>fileName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>jpeg_quality</em> = <code>95</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Save the image to a file, whose format is determined from the extension (internally uses OpenCV). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fileName</td><td>The file to write to.</td></tr>
  </table>
  </dd>
</dl>
<p>The supported formats are:</p>
<ul>
<li>Windows bitmaps - BMP, DIB;</li>
<li>JPEG files - JPEG, JPG, JPE;</li>
<li>Portable Network Graphics - PNG;</li>
<li>Portable image format - PBM, PGM, PPM;</li>
<li>Sun rasters - SR, RAS;</li>
<li>TIFF files - TIFF, TIF.</li>
</ul>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">jpeg_quality</td><td>Only for JPEG files, the quality of the compression in the range [0-100]. Larger is better quality but slower. </td></tr>
  </table>
  </dd>
</dl>
<dl class="note"><dt><b>Note:</b></dt><dd>jpeg_quality is only effective if MRPT is compiled against OpenCV 1.1.0 or newer. </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>False on any error </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#acad842441ddd573795484780552e55e6" title="Load image from a file, whose format is determined from the extension (internally uses OpenCV)...">loadFromFile</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a7db288879c7bc198a24571d87e20d7ce"></a><!-- doxytag: member="mrpt::utils::CImage::saveToStreamAsJPEG" ref="a7db288879c7bc198a24571d87e20d7ce" args="(CStream &amp;out) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::saveToStreamAsJPEG </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">CStream</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Save image to binary stream as a JPEG (.jpg) compresed format. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On number of rows or cols equal to zero, or other errors. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd>saveToJPEG </dd></dl>

</div>
</div>
<a class="anchor" id="a74a66af9b4d7f4ee2e28d4281f654e4b"></a><!-- doxytag: member="mrpt::utils::CImage::scaleDouble" ref="a74a66af9b4d7f4ee2e28d4281f654e4b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> mrpt::utils::CImage::scaleDouble </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a new image scaled up to double its original size. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On odd size </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a4081b970421194842f33e085e3d64208" title="Returns a new image scaled down to half its original size.">scaleHalf</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#af2eb20a3604c776d2600bf03f3c0fae2" title="Scales this image to a new size, interpolating as needed.">scaleImage</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00311">311</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

<p>References <a class="el" href="_c_image_8h_source.html#l00064">mrpt::utils::UNINITIALIZED_IMAGE</a>.</p>

</div>
</div>
<a class="anchor" id="a399fd7e035264ad526cef4d62e075d21"></a><!-- doxytag: member="mrpt::utils::CImage::scaleDouble" ref="a399fd7e035264ad526cef4d62e075d21" args="(CImage &amp;out_image) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::scaleDouble </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>out_image</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

</div>
</div>
<a class="anchor" id="a4081b970421194842f33e085e3d64208"></a><!-- doxytag: member="mrpt::utils::CImage::scaleHalf" ref="a4081b970421194842f33e085e3d64208" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> mrpt::utils::CImage::scaleHalf </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a new image scaled down to half its original size. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On odd size </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a74a66af9b4d7f4ee2e28d4281f654e4b" title="Returns a new image scaled up to double its original size.">scaleDouble</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#af2eb20a3604c776d2600bf03f3c0fae2" title="Scales this image to a new size, interpolating as needed.">scaleImage</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a70e6eb2c8d81eebf6acc189eb694f59d" title="Returns a new image scaled down to half its original size (averaging between every two rows) On odd s...">scaleHalfSmooth</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00281">281</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

<p>References <a class="el" href="_c_image_8h_source.html#l00064">mrpt::utils::UNINITIALIZED_IMAGE</a>.</p>

</div>
</div>
<a class="anchor" id="a6d1e867abef37ffd895b20fc6224b134"></a><!-- doxytag: member="mrpt::utils::CImage::scaleHalf" ref="a6d1e867abef37ffd895b20fc6224b134" args="(CImage &amp;out_image) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::scaleHalf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>out_image</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

</div>
</div>
<a class="anchor" id="a70e6eb2c8d81eebf6acc189eb694f59d"></a><!-- doxytag: member="mrpt::utils::CImage::scaleHalfSmooth" ref="a70e6eb2c8d81eebf6acc189eb694f59d" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> mrpt::utils::CImage::scaleHalfSmooth </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a new image scaled down to half its original size (averaging between every two rows) </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On odd size. </td></tr>
  </table>
  </dd>
</dl>
</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a74a66af9b4d7f4ee2e28d4281f654e4b" title="Returns a new image scaled up to double its original size.">scaleDouble</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#af2eb20a3604c776d2600bf03f3c0fae2" title="Scales this image to a new size, interpolating as needed.">scaleImage</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a4081b970421194842f33e085e3d64208" title="Returns a new image scaled down to half its original size.">scaleHalf</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00296">296</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

<p>References <a class="el" href="_c_image_8h_source.html#l00064">mrpt::utils::UNINITIALIZED_IMAGE</a>.</p>

</div>
</div>
<a class="anchor" id="a7144b0d66abc030f9ff4227f07436931"></a><!-- doxytag: member="mrpt::utils::CImage::scaleHalfSmooth" ref="a7144b0d66abc030f9ff4227f07436931" args="(CImage &amp;out_image) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::scaleHalfSmooth </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>out_image</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </p>

</div>
</div>
<a class="anchor" id="af2eb20a3604c776d2600bf03f3c0fae2"></a><!-- doxytag: member="mrpt::utils::CImage::scaleImage" ref="af2eb20a3604c776d2600bf03f3c0fae2" args="(unsigned int width, unsigned int height, TInterpolationMethod interp=IMG_INTERP_CUBIC)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::scaleImage </td>
          <td>(</td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__mrpt__base__grp.html#gaaa1dce60212047066cc950eb834e96fd">TInterpolationMethod</a>&#160;</td>
          <td class="paramname"><em>interp</em> = <code>IMG_INTERP_CUBIC</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scales this image to a new size, interpolating as needed. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a77228d5ac964d44aa3ccd87ac958ab7a" title="Changes the size of the image, erasing previous contents (does NOT scale its current content...">resize</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae567e356f0dbbb7fe89ed2c5c7ca608c" title="Rotates the image by the given angle around the given center point, with an optional scale factor...">rotateImage</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ae12e38a35c4f4b31c62fc4310f33005f"></a><!-- doxytag: member="mrpt::utils::CImage::scaleImage" ref="ae12e38a35c4f4b31c62fc4310f33005f" args="(CImage &amp;out_img, unsigned int width, unsigned int height, TInterpolationMethod interp=IMG_INTERP_CUBIC) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::scaleImage </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>out_img</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>height</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__mrpt__base__grp.html#gaaa1dce60212047066cc950eb834e96fd">TInterpolationMethod</a>&#160;</td>
          <td class="paramname"><em>interp</em> = <code>IMG_INTERP_CUBIC</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scales this image to a new size, interpolating as needed, saving the new image in a different output object. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a77228d5ac964d44aa3ccd87ac958ab7a" title="Changes the size of the image, erasing previous contents (does NOT scale its current content...">resize</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae567e356f0dbbb7fe89ed2c5c7ca608c" title="Rotates the image by the given angle around the given center point, with an optional scale factor...">rotateImage</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a2928fa64fc68c1f74cbe9c2e4aed8285"></a><!-- doxytag: member="mrpt::utils::CImage::selectTextFont" ref="a2928fa64fc68c1f74cbe9c2e4aed8285" args="(const std::string &amp;fontName)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::CCanvas::selectTextFont </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>fontName</em></td><td>)</td>
          <td><code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Select the current font used when drawing text. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">fontName</td><td>The name of the font</td></tr>
  </table>
  </dd>
</dl>
<p>Valid font names:</p>
<ul>
<li>5x7</li>
<li>6x13</li>
<li>6x13B</li>
<li>6x13O</li>
<li>9x15 (Default at start-up)</li>
<li>9x15B</li>
<li>10x20</li>
<li>18x18ja (Asian characters for UTF-8 strings - Only available if MRPT is built with MRPT_HAS_ASIAN_FONTS = true)</li>
</ul>
<div class="image">
<img src="sample_textFonts.png" alt="sample_textFonts.png"/>
</div>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a5a9bbe148d68f920ec57e7c757e8df92" title="Renders 2D text using bitmap fonts.">textOut</a>, The example in <a href="http://www.mrpt.org/Implemented_2D_Fonts">this page</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="ac1f0acabec455291b2c73bb7af4b858e"></a><!-- doxytag: member="mrpt::utils::CImage::setChannelsOrder_BGR" ref="ac1f0acabec455291b2c73bb7af4b858e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::setChannelsOrder_BGR </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Marks the channel ordering in a color image as "BGR" (this doesn't actually modify the image data, just the format description) </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a8a81ff1a19799b643f6f427c5137441f" title="Returns a string of the form &quot;BGR&quot;,&quot;RGB&quot; or &quot;GRAY&quot; indicating the channels ordering.">getChannelsOrder</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a5ed4c830e8725ba66d76e4a92928bdfc" title="Swaps red and blue channels.">swapRB</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aab5f796511ba27098ee366e9f168711b"></a><!-- doxytag: member="mrpt::utils::CImage::setChannelsOrder_RGB" ref="aab5f796511ba27098ee366e9f168711b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::setChannelsOrder_RGB </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Marks the channel ordering in a color image as "RGB" (this doesn't actually modify the image data, just the format description) </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a8a81ff1a19799b643f6f427c5137441f" title="Returns a string of the form &quot;BGR&quot;,&quot;RGB&quot; or &quot;GRAY&quot; indicating the channels ordering.">getChannelsOrder</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a5ed4c830e8725ba66d76e4a92928bdfc" title="Swaps red and blue channels.">swapRB</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a2dfac3beec88430aa55540b6cfed4c68"></a><!-- doxytag: member="mrpt::utils::CImage::setExternalStorage" ref="a2dfac3beec88430aa55540b6cfed4c68" args="(const std::string &amp;fileName) MRPT_NO_THROWS" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::setExternalStorage </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>fileName</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>By using this method the image is marked as referenced to an external file, which will be loaded only under demand. </p>
<p>A <a class="el" href="classmrpt_1_1utils_1_1_c_image.html" title="A class for storing images as grayscale or RGB bitmaps.">CImage</a> with external storage does not consume memory until some method trying to access the image is invoked (e.g. <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae82bff36dbdbdfefe2735d6a02ed6bc8" title="Returns the width of the image in pixels.">getWidth()</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a8b519b0a2e8419aea72308eb67060688" title="Returns true if the image is RGB, false if it is grayscale.">isColor()</a>,...) At any moment, the image can be unloaded from memory again by invoking unload. An image becomes of type "external storage" only through calling setExternalStorage. This property remains after serializing the object. File names can be absolute, or relative to the <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a792b99c4b209b5516febb67ad1ae3b34" title="By default, &quot;.&quot;.">CImage::IMAGES_PATH_BASE</a> directory. Filenames staring with "X:\" or "/" are considered absolute paths. By calling this method the current contents of the image are NOT saved to that file, because this method can be also called to let the object know where to load the image in case its contents are required. Thus, for saving images in this format (not when loading) the proper order of commands should be: </p>
<div class="fragment"><pre class="fragment">   img.saveToFile( fileName );
   img.setExternalStorage( fileName );
</pre></div><dl class="note"><dt><b>Note:</b></dt><dd>Modifications to the memory copy of the image are not automatically saved to disk. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aeb03949ad9b68ea8110b6683c54afe27" title="For external storage image objects only, this method unloads the image from memory (or does nothing i...">unload</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a6675e91f9d52059beeeb3907718bd66c" title="See setExternalStorage().">isExternallyStored</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aeadbe9b94550d1378e19f6510f7e788c"></a><!-- doxytag: member="mrpt::utils::CImage::setFromImageReadOnly" ref="aeadbe9b94550d1378e19f6510f7e788c" args="(const CImage &amp;other_img)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::setFromImageReadOnly </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>other_img</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the internal IplImage pointer to that of another given image, WITHOUT making a copy, and from now on the image cannot be modified in this object (it will be neither freed, so the memory responsibility will still be of the original image object). </p>
<p>When assigning an IPLImage to this object with this method, the IPLImage will NOT be released/freed at this object destructor. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aa3720d8bea984e1319b42bf58f7ba5ef" title="Reads the image from a OpenCV IplImage object (WITHOUT making a copy) and from now on the image canno...">setFromIplImageReadOnly</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00763">763</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8675bda1f942e862d1b652c5bd8126a1"></a><!-- doxytag: member="mrpt::utils::CImage::setFromIplImage" ref="a8675bda1f942e862d1b652c5bd8126a1" args="(void *iplImage)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::setFromIplImage </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>iplImage</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads the image from a OpenCV IplImage object (WITHOUT making a copy). </p>
<p>This object will own the memory of the passed object and free the IplImage upon destruction, so the caller CAN'T free the original object. This method provides a fast method to grab images from a camera without making a copy of every frame. </p>

</div>
</div>
<a class="anchor" id="aa3720d8bea984e1319b42bf58f7ba5ef"></a><!-- doxytag: member="mrpt::utils::CImage::setFromIplImageReadOnly" ref="aa3720d8bea984e1319b42bf58f7ba5ef" args="(void *iplImage)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::setFromIplImageReadOnly </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>iplImage</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reads the image from a OpenCV IplImage object (WITHOUT making a copy) and from now on the image cannot be modified, just read. </p>
<p>When assigning an IPLImage to this object with this method, the IPLImage will NOT be released/freed at this object destructor. This method provides a fast method to grab images from a camera without making a copy of every frame. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aeadbe9b94550d1378e19f6510f7e788c" title="Sets the internal IplImage pointer to that of another given image, WITHOUT making a copy...">setFromImageReadOnly</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a7e44d9399f9ec03ca9cdf7cdde833c6b"></a><!-- doxytag: member="mrpt::utils::CImage::setFromMatrix" ref="a7e44d9399f9ec03ca9cdf7cdde833c6b" args="(const Eigen::MatrixBase&lt; Derived &gt; &amp;m, bool matrix_is_normalized=true)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Derived &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::setFromMatrix </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_eigen_1_1_matrix_base.html">Eigen::MatrixBase</a>&lt; Derived &gt; &amp;&#160;</td>
          <td class="paramname"><em>m</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>matrix_is_normalized</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the image from a matrix, interpreted as grayscale intensity values, in the range [0,1] (normalized=true) or [0,255] (normalized=false) </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a50fc13111fafbf571e63f6777535fb84" title="Returns the image as a matrix with pixel grayscale values in the range [0,1].">getAsMatrix</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00769">769</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

<p>References <a class="el" href="mrpt__macros_8h_source.html#l00370">MRPT_START</a>, <a class="el" href="mrpt__macros_8h_source.html#l00282">ASSERT_</a>, <a class="el" href="eigen__plugins_8h_source.html#l00102">get_unsafe()</a>, <a class="el" href="_core_source.html#l00103">Eigen::MatrixBase::get_unsafe()</a>, and <a class="el" href="mrpt__macros_8h_source.html#l00374">MRPT_END</a>.</p>

</div>
</div>
<a class="anchor" id="a18831bddbf80c1baa81375dcc8ddd917"></a><!-- doxytag: member="mrpt::utils::CImage::setOriginTopLeft" ref="a18831bddbf80c1baa81375dcc8ddd917" args="(bool val)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::setOriginTopLeft </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the property of the image stating if the top-left corner (vs. </p>
<p>bottom-left) is the coordinate reference. </p>

</div>
</div>
<a class="anchor" id="a1461330d3d8400619c8313634be13dec"></a><!-- doxytag: member="mrpt::utils::CImage::setPixel" ref="a1461330d3d8400619c8313634be13dec" args="(int x, int y, size_t color)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::setPixel </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Changes the value of the pixel (x,y). </p>
<p>Pixel coordinates starts at the left-top corner of the image, and start in (0,0). The meaning of the parameter "color" depends on the implementation: it will usually be a 24bit RGB value (0x00RRGGBB), but it can also be just a 8bit gray level. This method must support (x,y) values OUT of the actual image size without neither raising exceptions, nor leading to memory access errors. </p>

<p>Implements <a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a507ff849993e3ce8818a0426dee8d36b">mrpt::utils::CCanvas</a>.</p>

</div>
</div>
<a class="anchor" id="afc0e1d1e1b6a5dd9eec12e6d3508a3b8"></a><!-- doxytag: member="mrpt::utils::CImage::swap" ref="afc0e1d1e1b6a5dd9eec12e6d3508a3b8" args="(CImage &amp;o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>o</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Very efficient swap of two images (just swap the internal pointers) </p>

</div>
</div>
<a class="anchor" id="a5ed4c830e8725ba66d76e4a92928bdfc"></a><!-- doxytag: member="mrpt::utils::CImage::swapRB" ref="a5ed4c830e8725ba66d76e4a92928bdfc" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::swapRB </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Swaps red and blue channels. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aa2ef21af98537c4d55676ec359a6154a" title="Flips vertically the image.">flipVertical</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a5a9bbe148d68f920ec57e7c757e8df92"></a><!-- doxytag: member="mrpt::utils::CImage::textOut" ref="a5a9bbe148d68f920ec57e7c757e8df92" args="(int x0, int y0, const std::string &amp;str, const mrpt::utils::TColor color)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::CCanvas::textOut </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">const <a class="el" href="classstd_1_1string.html">std::string</a> &amp;&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>&#160;</td>
          <td class="paramname"><em>color</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Renders 2D text using bitmap fonts. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The x coordinates </td></tr>
    <tr><td class="paramname">y0</td><td>The y coordinates </td></tr>
    <tr><td class="paramname">str</td><td>The string to put. If using UNICODE characters, use UTF-8 encoding. </td></tr>
    <tr><td class="paramname">color</td><td>The text color</td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a2928fa64fc68c1f74cbe9c2e4aed8285" title="Select the current font used when drawing text.">selectTextFont</a> </dd></dl>

<p>Reimplemented in <a class="el" href="classmrpt_1_1utils_1_1_c_enhanced_meta_file.html#a6bab922dc577504152029aa15a9864b5">mrpt::utils::CEnhancedMetaFile</a>.</p>

</div>
</div>
<a class="anchor" id="af95d2bb4cd73df0a5c1e99c7bd9147bb"></a><!-- doxytag: member="mrpt::utils::CImage::triangle" ref="af95d2bb4cd73df0a5c1e99c7bd9147bb" args="(int x0, int y0, int size, const mrpt::utils::TColor color, bool inferior=true, unsigned int width=1)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CCanvas::triangle </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>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structmrpt_1_1utils_1_1_t_color.html">mrpt::utils::TColor</a>&#160;</td>
          <td class="paramname"><em>color</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>inferior</em> = <code>true</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>width</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Draws a triangle. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">x0</td><td>The triangle center x coordinate </td></tr>
    <tr><td class="paramname">y0</td><td>The triangle center y coordinate </td></tr>
    <tr><td class="paramname">size</td><td>The size of the triangle </td></tr>
    <tr><td class="paramname">color</td><td>The color of the line </td></tr>
    <tr><td class="paramname">inferior</td><td>The position of the triangle </td></tr>
    <tr><td class="paramname">width</td><td>The desired width of the line. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#af95d2bb4cd73df0a5c1e99c7bd9147bb" title="Draws a triangle.">triangle</a> </dd></dl>

</div>
</div>
<a class="anchor" id="aeb03949ad9b68ea8110b6683c54afe27"></a><!-- doxytag: member="mrpt::utils::CImage::unload" ref="aeb03949ad9b68ea8110b6683c54afe27" args="() MRPT_NO_THROWS" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::unload </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>For external storage image objects only, this method unloads the image from memory (or does nothing if already unloaded). </p>
<p>It does not need to be called explicitly, unless the user wants to save memory for images that will not be used often. If called for an image without the flag "external storage", it is simply ignored. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a2dfac3beec88430aa55540b6cfed4c68" title="By using this method the image is marked as referenced to an external file, which will be loaded only...">setExternalStorage</a>, <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a1c803e601870239da6c61526bc141735" title="For external storage image objects only, this method makes sure the image is loaded in memory...">forceLoad</a> </dd></dl>

</div>
</div>
<a class="anchor" id="abb15878d765749114f2e6d55a1595b94"></a><!-- doxytag: member="mrpt::utils::CImage::update_patch" ref="abb15878d765749114f2e6d55a1595b94" args="(const CImage &amp;patch, const unsigned int col, const unsigned int row)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void mrpt::utils::CImage::update_patch </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classmrpt_1_1utils_1_1_c_image.html">CImage</a> &amp;&#160;</td>
          <td class="paramname"><em>patch</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>col</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const unsigned int&#160;</td>
          <td class="paramname"><em>row</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Update a part of this image with the "patch" given as argument. </p>
<p>The "patch" will be "pasted" at the (col,row) coordinates of this image. </p>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>if patch pasted on the pixel (_row, _column) jut out of the image. </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ab09cf102297ac0b27dade7ef953c99cc" title="Extract a patch from this image, saveing it into &quot;patch&quot; (its previous contents will be overwritten)...">extract_patch</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a0b6b801e67bca3d8e0d355e7035f8013"></a><!-- doxytag: member="mrpt::utils::CImage::writeToStream" ref="a0b6b801e67bca3d8e0d355e7035f8013" args="(mrpt::utils::CStream &amp;out, int *getVersion) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void mrpt::utils::CSerializable::writeToStream </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>getVersion</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [protected, pure virtual, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Introduces a pure virtual method responsible for writing to a <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a>. </p>
<p>This can not be used directly be users, instead use "stream &lt;&lt; object;" for writing it to a stream. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">out</td><td>The output binary stream where object must be dumped. </td></tr>
    <tr><td class="paramname">getVersion</td><td>If NULL, the object must be dumped. If not, only the version of the object dump must be returned in this pointer. This enables the versioning of objects dumping and backward compatibility with previously stored data. </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Exceptions:</b></dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classstd_1_1exception.html" title="STL class.">std::exception</a></td><td>On any error, see <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html#a276005e7110c9de74ff3277b3f7bf621" title="Writes a block of bytes to the stream from Buffer.">CStream::WriteBuffer</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_stream.html" title="This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...">CStream</a> </dd></dl>

<p>Implemented in <a class="el" href="classmrpt_1_1math_1_1_c_matrix_d.html#a767e787b52208ab4dd46ba7f5e2fd224">mrpt::math::CMatrixD</a>, and <a class="el" href="classmrpt_1_1math_1_1_c_matrix.html#a059d7eaf80dab9c7435154146d2b7dbf">mrpt::math::CMatrix</a>.</p>

</div>
</div>
<hr/><h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="a6fec28a53e20dfc1c4d046c26f9f7b48"></a><!-- doxytag: member="mrpt::utils::CImage::mrpt::utils::CStream" ref="a6fec28a53e20dfc1c4d046c26f9f7b48" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classmrpt_1_1utils_1_1_c_stream.html">mrpt::utils::CStream</a><code> [friend, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classmrpt_1_1slam_1_1_c_random_field_grid_map2_d.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::slam::CRandomFieldGridMap2D</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_points_map.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::slam::CPointsMap</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_observation.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::slam::CObservation</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_metric_map.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::slam::CMetricMap</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_renderizable.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::opengl::CRenderizable</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_quat_p_d_f.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::poses::CPose3DQuatPDF</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_point_p_d_f.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::poses::CPointPDF</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose3_d_p_d_f.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::poses::CPose3DPDF</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_pose_p_d_f.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::poses::CPosePDF</a>, <a class="el" href="classmrpt_1_1poses_1_1_c_point2_d_p_d_f.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::poses::CPoint2DPDF</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_renderizable_display_list.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::opengl::CRenderizableDisplayList</a>, <a class="el" href="classmrpt_1_1slam_1_1_c_action.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::slam::CAction</a>, <a class="el" href="classmrpt_1_1detectors_1_1_c_detectable_object.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::detectors::CDetectableObject</a>, <a class="el" href="classmrpt_1_1opengl_1_1_c_textured_object.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::opengl::CTexturedObject</a>, and <a class="el" href="classmrpt_1_1reactivenav_1_1_c_holonomic_log_file_record.html#a6fec28a53e20dfc1c4d046c26f9f7b48">mrpt::reactivenav::CHolonomicLogFileRecord</a>.</p>

<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00056">56</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="aebca1b3942f43cc8d5297b628ccbcbcb"></a><!-- doxytag: member="mrpt::utils::CImage::_init_CImage" ref="aebca1b3942f43cc8d5297b628ccbcbcb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1utils_1_1_c_l_a_s_s_i_n_i_t.html">mrpt::utils::CLASSINIT</a> <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aebca1b3942f43cc8d5297b628ccbcbcb">mrpt::utils::CImage::_init_CImage</a><code> [static, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00116">116</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="aaad7550ae1fa476d6eecd4abd47f9ce5"></a><!-- doxytag: member="mrpt::utils::CImage::classCImage" ref="aaad7550ae1fa476d6eecd4abd47f9ce5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aaad7550ae1fa476d6eecd4abd47f9ce5">mrpt::utils::CImage::classCImage</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00116">116</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="acb51e4dd811d62c2696aee449d0a4715"></a><!-- doxytag: member="mrpt::utils::CImage::classCObject" ref="acb51e4dd811d62c2696aee449d0a4715" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> <a class="el" href="classmrpt_1_1utils_1_1_c_object.html#acb51e4dd811d62c2696aee449d0a4715">mrpt::utils::CObject::classCObject</a><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_object_8h_source.html#l00139">139</a> of file <a class="el" href="_c_object_8h_source.html">CObject.h</a>.</p>

</div>
</div>
<a class="anchor" id="a28ec2a03d277a8469b8ecfc81892afdf"></a><!-- doxytag: member="mrpt::utils::CImage::classCSerializable" ref="a28ec2a03d277a8469b8ecfc81892afdf" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a> <a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html#a28ec2a03d277a8469b8ecfc81892afdf">mrpt::utils::CSerializable::classCSerializable</a><code> [static, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_serializable_8h_source.html#l00056">56</a> of file <a class="el" href="_c_serializable_8h_source.html">CSerializable.h</a>.</p>

</div>
</div>
<a class="anchor" id="a8c7b26510af9b8683f8951003ceda9ba"></a><!-- doxytag: member="mrpt::utils::CImage::classinfo" ref="a8c7b26510af9b8683f8951003ceda9ba" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="structmrpt_1_1utils_1_1_t_runtime_class_id.html">mrpt::utils::TRuntimeClassId</a>* <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a8c7b26510af9b8683f8951003ceda9ba">mrpt::utils::CImage::classinfo</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00116">116</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="a002a4087e154246234d5fe59261a812b"></a><!-- doxytag: member="mrpt::utils::CImage::DISABLE_ZIP_COMPRESSION" ref="a002a4087e154246234d5fe59261a812b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a002a4087e154246234d5fe59261a812b">mrpt::utils::CImage::DISABLE_ZIP_COMPRESSION</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>By default, when storing images through the <a class="el" href="classmrpt_1_1utils_1_1_c_serializable.html" title="The virtual base class which provides a unified interface for all persistent objects in MRPT...">CSerializable</a> interface, grayscale images will be ZIP compressed if they are larger than 16Kb: this flag can be turn on to disable ZIP compression and gain speed versus occupied space. </p>
<p>The default value of this variable is "false". </p>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00193">193</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="a792b99c4b209b5516febb67ad1ae3b34"></a><!-- doxytag: member="mrpt::utils::CImage::IMAGES_PATH_BASE" ref="a792b99c4b209b5516febb67ad1ae3b34" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a792b99c4b209b5516febb67ad1ae3b34">mrpt::utils::CImage::IMAGES_PATH_BASE</a><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>By default, ".". </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a2dfac3beec88430aa55540b6cfed4c68" title="By using this method the image is marked as referenced to an external file, which will be loaded only...">setExternalStorage</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00692">692</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="a35ed32bed738be526c2152acc3e64164"></a><!-- doxytag: member="mrpt::utils::CImage::img" ref="a35ed32bed738be526c2152acc3e64164" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a35ed32bed738be526c2152acc3e64164">mrpt::utils::CImage::img</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The internal IplImage pointer to the actual image content. </p>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00885">885</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="ae621098c3369678aa53d99a9cd79f22f"></a><!-- doxytag: member="mrpt::utils::CImage::m_externalFile" ref="ae621098c3369678aa53d99a9cd79f22f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ae621098c3369678aa53d99a9cd79f22f">mrpt::utils::CImage::m_externalFile</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The file name of a external storage image. </p>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00894">894</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="af3dbc7d29f50c5ca287c35f244f5ffe3"></a><!-- doxytag: member="mrpt::utils::CImage::m_imgIsExternalStorage" ref="af3dbc7d29f50c5ca287c35f244f5ffe3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#af3dbc7d29f50c5ca287c35f244f5ffe3">mrpt::utils::CImage::m_imgIsExternalStorage</a><code> [mutable, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set to true only when using setExternalStorage. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#a2dfac3beec88430aa55540b6cfed4c68" title="By using this method the image is marked as referenced to an external file, which will be loaded only...">setExternalStorage</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00893">893</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="ab25223a74268999b4b9d6a4594d20c34"></a><!-- doxytag: member="mrpt::utils::CImage::m_imgIsReadOnly" ref="ab25223a74268999b4b9d6a4594d20c34" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classmrpt_1_1utils_1_1_c_image.html#ab25223a74268999b4b9d6a4594d20c34">mrpt::utils::CImage::m_imgIsReadOnly</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set to true only when using setFromIplImageReadOnly. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classmrpt_1_1utils_1_1_c_image.html#aa3720d8bea984e1319b42bf58f7ba5ef" title="Reads the image from a OpenCV IplImage object (WITHOUT making a copy) and from now on the image canno...">setFromIplImageReadOnly</a> </dd></dl>

<p>Definition at line <a class="el" href="_c_image_8h_source.html#l00889">889</a> of file <a class="el" href="_c_image_8h_source.html">CImage.h</a>.</p>

</div>
</div>
<a class="anchor" id="aef2c3c9cc8805a0a5c4da2d867a0d422"></a><!-- doxytag: member="mrpt::utils::CImage::m_selectedFont" ref="aef2c3c9cc8805a0a5c4da2d867a0d422" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classstd_1_1string.html">std::string</a> <a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#aef2c3c9cc8805a0a5c4da2d867a0d422">mrpt::utils::CCanvas::m_selectedFont</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The selected font name. </p>

<p>Definition at line <a class="el" href="_c_canvas_8h_source.html#l00068">68</a> of file <a class="el" href="_c_canvas_8h_source.html">CCanvas.h</a>.</p>

</div>
</div>
<a class="anchor" id="a81aed2bab475a27dccb549681dcb0861"></a><!-- doxytag: member="mrpt::utils::CImage::m_selectedFontBitmaps" ref="a81aed2bab475a27dccb549681dcb0861" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const uint32_t* <a class="el" href="classmrpt_1_1utils_1_1_c_canvas.html#a81aed2bab475a27dccb549681dcb0861">mrpt::utils::CCanvas::m_selectedFontBitmaps</a><code> [protected, inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Direct access to character bitmaps. </p>

<p>Definition at line <a class="el" href="_c_canvas_8h_source.html#l00070">70</a> of file <a class="el" href="_c_canvas_8h_source.html">CCanvas.h</a>.</p>

</div>
</div>
</div>
<br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150">  </td></tr> </table>  </body></html>