2
0
mirror of https://github.com/boostorg/gil.git synced 2026-01-24 05:52:13 +00:00
Files
gil/develop/doc/html/reference/channel__algorithm_8hpp.html

169 lines
17 KiB
HTML

<!-- HTML header for doxygen 1.8.13-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Generic Image Library: channel_algorithm.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-boost.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div class="boost-header">
<table border="0" cellpadding="7" cellspacing="0" width="100%" summary="header">
<tr>
<td valign="top" width="300">
<h3><a href="../index.html"><img alt="Boost GIL" src="../_static/gil.png" border="0"></a></h3>
</td>
<td ><h1 align="center"><a href="../index.html"></a></h1></td>
<td></td>
</tr>
</table>
</div>
<hr/>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<!-- Generated by Doxygen 1.8.6 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_1878a3f4746a95c6aad317458cc7ef80.html">boost</a></li><li class="navelem"><a class="el" href="dir_df4750f408086f9b9c1b5ee4251365ff.html">gil</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">channel_algorithm.hpp File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Channel algorithms.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;boost/config.hpp&gt;</code><br/>
<code>#include &lt;boost/mpl/less.hpp&gt;</code><br/>
<code>#include &lt;boost/mpl/integral_c.hpp&gt;</code><br/>
<code>#include &lt;boost/mpl/greater.hpp&gt;</code><br/>
<code>#include &lt;boost/type_traits.hpp&gt;</code><br/>
<code>#include &quot;<a class="el" href="gil__config_8hpp_source.html">gil_config.hpp</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="channel_8hpp_source.html">channel.hpp</a>&quot;</code><br/>
<code>#include &quot;promote_integral.hpp&quot;</code><br/>
<code>#include &quot;<a class="el" href="typedefs_8hpp_source.html">typedefs.hpp</a>&quot;</code><br/>
<code>#include &lt;limits&gt;</code><br/>
</div>
<p><a href="channel__algorithm_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1gil_1_1detail_1_1channel__converter__unsigned__impl.html">channel_converter_unsigned_impl&lt; SrcChannelV, DstChannelV, SrcIsIntegral, DstIsIntegral &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the default implementation. Performance specializatons are provided. <a href="structboost_1_1gil_1_1detail_1_1channel__converter__unsigned__impl.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1gil_1_1channel__converter__unsigned_3_01_t_00_01_t_01_4.html">channel_converter_unsigned&lt; T, T &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converting a channel to itself - identity operation. <a href="structboost_1_1gil_1_1channel__converter__unsigned_3_01_t_00_01_t_01_4.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1gil_1_1detail_1_1channel__converter__unsigned__impl.html">channel_converter_unsigned_impl&lt; SrcChannelV, DstChannelV, SrcIsIntegral, DstIsIntegral &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the default implementation. Performance specializatons are provided. <a href="structboost_1_1gil_1_1detail_1_1channel__converter__unsigned__impl.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1gil_1_1channel__converter__unsigned_3_01float32__t_00_01_dst_channel_v_01_4.html">channel_converter_unsigned&lt; float32_t, DstChannelV &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">float32_t conversion <a href="structboost_1_1gil_1_1channel__converter__unsigned_3_01float32__t_00_01_dst_channel_v_01_4.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1gil_1_1channel__converter__unsigned_3_01uint32__t_00_01float32__t_01_4.html">channel_converter_unsigned&lt; uint32_t, float32_t &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit &lt;-&gt; float channel conversion <a href="structboost_1_1gil_1_1channel__converter__unsigned_3_01uint32__t_00_01float32__t_01_4.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1gil_1_1channel__converter__unsigned_3_01float32__t_00_01uint32__t_01_4.html">channel_converter_unsigned&lt; float32_t, uint32_t &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">32 bit &lt;-&gt; float channel conversion <a href="structboost_1_1gil_1_1channel__converter__unsigned_3_01float32__t_00_01uint32__t_01_4.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1gil_1_1channel__converter.html">channel_converter&lt; SrcChannelV, DstChannelV &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A unary function object converting between channel types. <a href="structboost_1_1gil_1_1channel__converter.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1gil_1_1default__channel__converter.html">default_channel_converter</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Same as <a class="el" href="structboost_1_1gil_1_1channel__converter.html" title="A unary function object converting between channel types. ">channel_converter</a>, except it takes the destination channel by reference, which allows us to move the templates from the class level to the method level. This is important when invoking it on heterogeneous pixels. <a href="structboost_1_1gil_1_1default__channel__converter.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1gil_1_1channel__multiplier__unsigned.html">channel_multiplier_unsigned&lt; ChannelValue &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the default implementation. Performance specializatons are provided. <a href="structboost_1_1gil_1_1channel__multiplier__unsigned.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1gil_1_1channel__multiplier__unsigned_3_01uint8__t_01_4.html">channel_multiplier_unsigned&lt; uint8_t &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of channel_multiply for 8-bit unsigned channels. <a href="structboost_1_1gil_1_1channel__multiplier__unsigned_3_01uint8__t_01_4.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1gil_1_1channel__multiplier__unsigned_3_01uint16__t_01_4.html">channel_multiplier_unsigned&lt; uint16_t &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of channel_multiply for 16-bit unsigned channels. <a href="structboost_1_1gil_1_1channel__multiplier__unsigned_3_01uint16__t_01_4.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1gil_1_1channel__multiplier__unsigned_3_01float32__t_01_4.html">channel_multiplier_unsigned&lt; float32_t &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Specialization of channel_multiply for float 0..1 channels. <a href="structboost_1_1gil_1_1channel__multiplier__unsigned_3_01float32__t_01_4.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structboost_1_1gil_1_1channel__multiplier.html">channel_multiplier&lt; ChannelValue &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function object to multiply two channels. result = a * b / max_value. <a href="structboost_1_1gil_1_1channel__multiplier.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceboost"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceboost.html">boost</a></td></tr>
<tr class="memdesc:namespaceboost"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pixel 2D LOCATOR. <br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga1ca10b1d27bc2f2ce4906b8890e613a5"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1ca10b1d27bc2f2ce4906b8890e613a5"></a>
template&lt;typename DstChannel , typename SrcChannel &gt; </td></tr>
<tr class="memitem:ga1ca10b1d27bc2f2ce4906b8890e613a5"><td class="memTemplItemLeft" align="right" valign="top">channel_traits&lt; DstChannel &gt;<br class="typebreak"/>
::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___channel_convert_algorithm.html#ga1ca10b1d27bc2f2ce4906b8890e613a5">channel_convert</a> (const SrcChannel &amp;src)</td></tr>
<tr class="memdesc:ga1ca10b1d27bc2f2ce4906b8890e613a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converting from one channel type to another. <br/></td></tr>
<tr class="separator:ga1ca10b1d27bc2f2ce4906b8890e613a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36fdfb4869446c1151d0850faf72e3b3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a36fdfb4869446c1151d0850faf72e3b3"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>div255</b> (uint32_t in)</td></tr>
<tr class="separator:a36fdfb4869446c1151d0850faf72e3b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a114bcacf9a7cce97638fe8704d44559f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a114bcacf9a7cce97638fe8704d44559f"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><b>div32768</b> (uint32_t in)</td></tr>
<tr class="separator:a114bcacf9a7cce97638fe8704d44559f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0af81efbbb77846afe2570f242d2b974"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0af81efbbb77846afe2570f242d2b974"></a>
template&lt;typename Channel &gt; </td></tr>
<tr class="memitem:ga0af81efbbb77846afe2570f242d2b974"><td class="memTemplItemLeft" align="right" valign="top">channel_traits&lt; Channel &gt;<br class="typebreak"/>
::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___channel_multiply_algorithm.html#ga0af81efbbb77846afe2570f242d2b974">channel_multiply</a> (Channel a, Channel b)</td></tr>
<tr class="memdesc:ga0af81efbbb77846afe2570f242d2b974"><td class="mdescLeft">&#160;</td><td class="mdescRight">A function multiplying two channels. result = a * b / max_value. <br/></td></tr>
<tr class="separator:ga0af81efbbb77846afe2570f242d2b974"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabbbc7b27d9f61ff45cf5ea7ac21051f5"><td class="memTemplParams" colspan="2"><a class="anchor" id="gabbbc7b27d9f61ff45cf5ea7ac21051f5"></a>
template&lt;typename Channel &gt; </td></tr>
<tr class="memitem:gabbbc7b27d9f61ff45cf5ea7ac21051f5"><td class="memTemplItemLeft" align="right" valign="top">channel_traits&lt; Channel &gt;<br class="typebreak"/>
::value_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group___channel_invert_algorithm.html#gabbbc7b27d9f61ff45cf5ea7ac21051f5">channel_invert</a> (Channel x)</td></tr>
<tr class="memdesc:gabbbc7b27d9f61ff45cf5ea7ac21051f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default implementation. Provide overloads for performance. <br/></td></tr>
<tr class="separator:gabbbc7b27d9f61ff45cf5ea7ac21051f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Channel algorithms. </p>
<dl class="section author"><dt>Author</dt><dd>Lubomir Bourdev and Hailin Jin <br/>
Adobe Systems Incorporated </dd></dl>
<dl class="section date"><dt>Date</dt><dd>2005-2007 <br/>
Last updated on May 6, 2007</dd></dl>
<p>Definitions of standard GIL 8-bit, 16-bit, 32-bit channels </p>
</div></div><!-- contents -->
<!-- HTML footer for doxygen 1.8.13-->
<!-- start footer part -->
<hr class="footer"/>
<address class="footer">
<small>
Generated on Tue Aug 21 2018 16:37:41 for Generic Image Library by &#160;<a href="http://www.doxygen.org/index.html">doxygen</a> 1.8.6
</small>
</address>
</body>
</html>