From 0d47fc0208241ab11ebd5bb25dd72c84d2b5b807 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Fri, 18 Feb 2022 08:57:25 +0000
Subject: [PATCH] deploy: 9bd8642f69bdbf5dfd01df45682efd50dd18fa53
---
.../convolution.cpp | 5 +-
develop/doc/html/design/basics.html | 2 +-
develop/doc/html/design/channel.html | 2 +-
develop/doc/html/design/color_base.html | 2 +-
develop/doc/html/design/color_space.html | 2 +-
develop/doc/html/design/concepts.html | 2 +-
develop/doc/html/design/conclusions.html | 2 +-
develop/doc/html/design/dynamic_image.html | 2 +-
develop/doc/html/design/examples.html | 2 +-
develop/doc/html/design/extending.html | 2 +-
develop/doc/html/design/image.html | 2 +-
develop/doc/html/design/image_view.html | 2 +-
develop/doc/html/design/index.html | 2 +-
develop/doc/html/design/metafunctions.html | 2 +-
develop/doc/html/design/pixel.html | 2 +-
develop/doc/html/design/pixel_iterator.html | 2 +-
develop/doc/html/design/pixel_locator.html | 2 +-
develop/doc/html/design/point.html | 2 +-
develop/doc/html/design/technicalities.html | 2 +-
develop/doc/html/genindex.html | 2 +-
develop/doc/html/histogram/create.html | 2 +-
develop/doc/html/histogram/cumulative.html | 2 +-
develop/doc/html/histogram/extend.html | 2 +-
.../doc/html/histogram/extension/index.html | 2 +-
.../html/histogram/extension/overview.html | 2 +-
develop/doc/html/histogram/extension/std.html | 2 +-
develop/doc/html/histogram/fill.html | 2 +-
develop/doc/html/histogram/index.html | 2 +-
develop/doc/html/histogram/limitations.html | 2 +-
develop/doc/html/histogram/overview.html | 2 +-
.../doc/html/histogram/stl_compatibility.html | 2 +-
develop/doc/html/histogram/subhistogram.html | 2 +-
develop/doc/html/histogram/utilities.html | 2 +-
.../affine-region-detectors.html | 2 +-
develop/doc/html/image_processing/basics.html | 2 +-
.../histogram_equalization.html | 2 +-
.../histogram_matching.html | 2 +-
.../contrast_enhancement/index.html | 2 +-
.../contrast_enhancement/overview.html | 2 +-
develop/doc/html/image_processing/index.html | 2 +-
.../doc/html/image_processing/overview.html | 2 +-
develop/doc/html/index.html | 2 +-
develop/doc/html/installation.html | 2 +-
develop/doc/html/io.html | 2 +-
develop/doc/html/naming.html | 2 +-
develop/doc/html/numeric.html | 2 +-
...__histogram__equalization_8hpp_source.html | 4 +-
.../html/reference/algorithm_8hpp_source.html | 2372 ++++++++++-------
develop/doc/html/reference/annotated.html | 532 ++--
.../any__image__view_8hpp_source.html | 2 +-
..._aligned__pixel__iterator_8hpp_source.html | 4 +-
...aligned__pixel__reference_8hpp_source.html | 4 +-
...nnel__numeric__operations_8hpp_source.html | 283 ++
...il_1_1detail_1_1correlator__n-members.html | 65 +
...ost_1_1gil_1_1detail_1_1correlator__n.html | 87 +
...detail_1_1kernel__1d__adaptor-members.html | 72 +
...1gil_1_1detail_1_1kernel__1d__adaptor.html | 106 +
..._1gil_1_1detail_1_1kernel__2d-members.html | 84 +
...sboost_1_1gil_1_1detail_1_1kernel__2d.html | 95 +
..._1detail_1_1kernel__2d__fixed-members.html | 85 +
...1_1gil_1_1detail_1_1kernel__2d__fixed.html | 102 +
.../reference/classboost_1_1gil_1_1image.html | 2 +-
.../classboost_1_1gil_1_1image__view.html | 2 +-
...assboost_1_1gil_1_1kernel__1d-members.html | 77 +
.../classboost_1_1gil_1_1kernel__1d.html | 127 +
.../classboost_1_1gil_1_1kernel__1d.png | Bin 0 -> 995 bytes
...t_1_1gil_1_1kernel__1d__fixed-members.html | 78 +
...lassboost_1_1gil_1_1kernel__1d__fixed.html | 134 +
...classboost_1_1gil_1_1kernel__1d__fixed.png | Bin 0 -> 837 bytes
develop/doc/html/reference/classes.html | 435 +--
.../doc/html/reference/cmyk_8hpp_source.html | 4 +-
.../reference/color__convert_8hpp_source.html | 2 +-
.../concepts_2image_8hpp_source.html | 6 +-
...concepts_2pixel__iterator_8hpp_source.html | 4 +-
.../conversion__policies_8hpp_source.html | 2 +-
.../html/reference/convolve_8hpp_source.html | 413 +++
.../html/reference/device__n_8hpp_source.html | 2 +-
.../html/reference/diffusion_8hpp_source.html | 6 +-
.../dynamic__io__new_8hpp_source.html | 2 +-
...dynamic__image_2algorithm_8hpp_source.html | 2 +-
develop/doc/html/reference/files.html | 188 +-
.../html/reference/filter_8hpp_source.html | 272 +-
develop/doc/html/reference/functions.html | 10 +-
.../doc/html/reference/functions_func.html | 10 +-
.../group___corner_detection_algorithms.html | 4 +-
.../group___image_processing_math.html | 28 +-
.../html/reference/harris_8hpp_source.html | 5 +-
.../html/reference/hessian_8hpp_source.html | 2 +-
develop/doc/html/reference/hierarchy.html | 641 ++---
.../html/reference/histogram_8hpp_source.html | 2 +-
.../doc/html/reference/image_8hpp_source.html | 1120 ++++----
.../reference/image__view_8hpp_source.html | 2 +-
.../image__view__factory_8hpp_source.html | 12 +-
.../iterator__from__2d_8hpp_source.html | 2 +-
.../html/reference/kernel_8hpp_source.html | 418 +++
.../reference/metafunctions_8hpp_source.html | 1291 ++++-----
.../reference/morphology_8hpp_source.html | 369 +--
.../html/reference/numeric_8hpp_source.html | 476 ++--
.../pixel__iterator_8hpp_source.html | 2 +-
...ixel__numeric__operations_8hpp_source.html | 250 ++
.../planar__pixel__iterator_8hpp_source.html | 2 +-
.../planar__pixel__reference_8hpp_source.html | 4 +-
.../position__iterator_8hpp_source.html | 2 +-
...read__and__convert__image_8hpp_source.html | 2 +-
.../read__and__convert__view_8hpp_source.html | 2 +-
.../reference/read__image_8hpp_source.html | 2 +-
.../reference/read__view_8hpp_source.html | 2 +-
.../reference/reader__base_8hpp_source.html | 2 +-
.../doc/html/reference/rgb_8hpp_source.html | 4 +-
.../doc/html/reference/rgba_8hpp_source.html | 4 +-
.../html/reference/scaling_8hpp_source.html | 2 +-
.../scanline__read__iterator_8hpp_source.html | 2 +-
.../reference/step__iterator_8hpp_source.html | 2 +-
...l_1_1_random_access_n_d_image_concept.html | 4 +-
...1_1gil_1_1channel__assigns__t-members.html | 66 +
...ctboost_1_1gil_1_1channel__assigns__t.html | 134 +
..._1channel__divides__scalar__t-members.html | 65 +
...1_1gil_1_1channel__divides__scalar__t.html | 135 +
...1_1gil_1_1channel__divides__t-members.html | 66 +
...ctboost_1_1gil_1_1channel__divides__t.html | 138 +
..._1_1gil_1_1channel__halves__t-members.html | 65 +
...uctboost_1_1gil_1_1channel__halves__t.html | 91 +
..._1_1channel__minus__scalar__t-members.html | 65 +
...t_1_1gil_1_1channel__minus__scalar__t.html | 135 +
...t_1_1gil_1_1channel__minus__t-members.html | 66 +
...ructboost_1_1gil_1_1channel__minus__t.html | 138 +
...hannel__multiplies__scalar__t-members.html | 65 +
...gil_1_1channel__multiplies__scalar__t.html | 135 +
...gil_1_1channel__multiplies__t-members.html | 66 +
...oost_1_1gil_1_1channel__multiplies__t.html | 138 +
...l_1_1channel__plus__scalar__t-members.html | 65 +
...st_1_1gil_1_1channel__plus__scalar__t.html | 91 +
...st_1_1gil_1_1channel__plus__t-members.html | 66 +
...tructboost_1_1gil_1_1channel__plus__t.html | 138 +
...t_1_1gil_1_1channel__zeros__t-members.html | 65 +
...ructboost_1_1gil_1_1channel__zeros__t.html | 91 +
...il_1_1detail_1_1correlator__k-members.html | 64 +
...ost_1_1gil_1_1detail_1_1correlator__k.html | 84 +
...t_1_1gil_1_1pixel__assigns__t-members.html | 64 +
...ructboost_1_1gil_1_1pixel__assigns__t.html | 91 +
...st_1_1gil_1_1pixel__divide__t-members.html | 64 +
...tructboost_1_1gil_1_1pixel__divide__t.html | 91 +
..._1_1pixel__divides__scalar__t-members.html | 64 +
...t_1_1gil_1_1pixel__divides__scalar__t.html | 91 +
...st_1_1gil_1_1pixel__halves__t-members.html | 64 +
...tructboost_1_1gil_1_1pixel__halves__t.html | 89 +
...ost_1_1gil_1_1pixel__minus__t-members.html | 64 +
...structboost_1_1gil_1_1pixel__minus__t.html | 91 +
...1pixel__multiplies__scalar__t-members.html | 64 +
..._1gil_1_1pixel__multiplies__scalar__t.html | 91 +
..._1_1gil_1_1pixel__multiply__t-members.html | 64 +
...uctboost_1_1gil_1_1pixel__multiply__t.html | 91 +
...oost_1_1gil_1_1pixel__plus__t-members.html | 64 +
.../structboost_1_1gil_1_1pixel__plus__t.html | 91 +
.../structboost_1_1gil_1_1pixel__proxy.html | 76 +
...ost_1_1gil_1_1pixel__zeros__t-members.html | 64 +
...structboost_1_1gil_1_1pixel__zeros__t.html | 89 +
.../html/reference/threshold_8hpp_source.html | 853 +++---
.../html/reference/utilities_8hpp_source.html | 2 +-
.../reference/write__view_8hpp_source.html | 2 +-
develop/doc/html/search.html | 2 +-
develop/doc/html/toolbox.html | 2 +-
develop/doc/html/tutorial/gradient.html | 2 +-
develop/doc/html/tutorial/histogram.html | 2 +-
develop/doc/html/tutorial/video.html | 2 +-
165 files changed, 10846 insertions(+), 4150 deletions(-)
create mode 100644 develop/doc/html/reference/channel__numeric__operations_8hpp_source.html
create mode 100644 develop/doc/html/reference/classboost_1_1gil_1_1detail_1_1correlator__n-members.html
create mode 100644 develop/doc/html/reference/classboost_1_1gil_1_1detail_1_1correlator__n.html
create mode 100644 develop/doc/html/reference/classboost_1_1gil_1_1detail_1_1kernel__1d__adaptor-members.html
create mode 100644 develop/doc/html/reference/classboost_1_1gil_1_1detail_1_1kernel__1d__adaptor.html
create mode 100644 develop/doc/html/reference/classboost_1_1gil_1_1detail_1_1kernel__2d-members.html
create mode 100644 develop/doc/html/reference/classboost_1_1gil_1_1detail_1_1kernel__2d.html
create mode 100644 develop/doc/html/reference/classboost_1_1gil_1_1detail_1_1kernel__2d__fixed-members.html
create mode 100644 develop/doc/html/reference/classboost_1_1gil_1_1detail_1_1kernel__2d__fixed.html
create mode 100644 develop/doc/html/reference/classboost_1_1gil_1_1kernel__1d-members.html
create mode 100644 develop/doc/html/reference/classboost_1_1gil_1_1kernel__1d.html
create mode 100644 develop/doc/html/reference/classboost_1_1gil_1_1kernel__1d.png
create mode 100644 develop/doc/html/reference/classboost_1_1gil_1_1kernel__1d__fixed-members.html
create mode 100644 develop/doc/html/reference/classboost_1_1gil_1_1kernel__1d__fixed.html
create mode 100644 develop/doc/html/reference/classboost_1_1gil_1_1kernel__1d__fixed.png
create mode 100644 develop/doc/html/reference/convolve_8hpp_source.html
create mode 100644 develop/doc/html/reference/kernel_8hpp_source.html
create mode 100644 develop/doc/html/reference/pixel__numeric__operations_8hpp_source.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__assigns__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__assigns__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__divides__scalar__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__divides__scalar__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__divides__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__divides__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__halves__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__halves__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__minus__scalar__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__minus__scalar__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__minus__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__minus__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__multiplies__scalar__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__multiplies__scalar__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__multiplies__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__multiplies__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__plus__scalar__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__plus__scalar__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__plus__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__plus__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__zeros__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1channel__zeros__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1detail_1_1correlator__k-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1detail_1_1correlator__k.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__assigns__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__assigns__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__divide__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__divide__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__divides__scalar__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__divides__scalar__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__halves__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__halves__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__minus__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__minus__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__multiplies__scalar__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__multiplies__scalar__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__multiply__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__multiply__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__plus__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__plus__t.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__proxy.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__zeros__t-members.html
create mode 100644 develop/doc/html/reference/structboost_1_1gil_1_1pixel__zeros__t.html
diff --git a/develop/doc/html/_downloads/975e2af95a20efe1ab7b36bc39833e6a/convolution.cpp b/develop/doc/html/_downloads/975e2af95a20efe1ab7b36bc39833e6a/convolution.cpp
index b5e911da9..52c27b5d0 100644
--- a/develop/doc/html/_downloads/975e2af95a20efe1ab7b36bc39833e6a/convolution.cpp
+++ b/develop/doc/html/_downloads/975e2af95a20efe1ab7b36bc39833e6a/convolution.cpp
@@ -1,5 +1,6 @@
//
// Copyright 2005-2007 Adobe Systems Incorporated
+// Copyright 2021 Pranam Lashkari
//
// Distributed under the Boost Software License, Version 1.0
// See accompanying file LICENSE_1_0.txt or copy at
@@ -7,8 +8,8 @@
#include
#include
-#include
-#include
+#include
+#include
// Convolves the image with a Gaussian kernel.
diff --git a/develop/doc/html/design/basics.html b/develop/doc/html/design/basics.html
index f4b807531..d91a1263b 100644
--- a/develop/doc/html/design/basics.html
+++ b/develop/doc/html/design/basics.html
@@ -114,7 +114,7 @@ read the sections in order.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
9 #ifndef BOOST_GIL_CHANNEL_NUMERIC_OPERATIONS_HPP
+
10 #define BOOST_GIL_CHANNEL_NUMERIC_OPERATIONS_HPP
+
+
12 #include <boost/gil/channel.hpp>
+
+
14 namespace boost {
namespace gil {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
34 template <
typename Channel1,
typename Channel2,
typename ChannelResult>
+
+
+
37 using ChannelRef1 =
typename channel_traits<Channel1>::const_reference;
+
38 using ChannelRef2 =
typename channel_traits<Channel2>::const_reference;
+
39 static_assert(std::is_convertible<ChannelRef1, ChannelResult>::value,
+
40 "ChannelRef1 not convertible to ChannelResult" );
+
41 static_assert(std::is_convertible<ChannelRef2, ChannelResult>::value,
+
42 "ChannelRef2 not convertible to ChannelResult" );
+
+
46 auto operator() (ChannelRef1 ch1, ChannelRef2 ch2)
const -> ChannelResult
+
+
48 return ChannelResult(ch1) + ChannelResult(ch2);
+
+
+
+
55 template <
typename Channel1,
typename Channel2,
typename ChannelResult>
+
+
+
58 using ChannelRef1 =
typename channel_traits<Channel1>::const_reference;
+
59 using ChannelRef2 =
typename channel_traits<Channel2>::const_reference;
+
60 static_assert(std::is_convertible<ChannelRef1, ChannelResult>::value,
+
61 "ChannelRef1 not convertible to ChannelResult" );
+
62 static_assert(std::is_convertible<ChannelRef2, ChannelResult>::value,
+
63 "ChannelRef2 not convertible to ChannelResult" );
+
+
67 auto operator() (ChannelRef1 ch1, ChannelRef2 ch2)
const -> ChannelResult
+
+
69 return ChannelResult(ch1) - ChannelResult(ch2);
+
+
+
+
76 template <
typename Channel1,
typename Channel2,
typename ChannelResult>
+
+
+
79 using ChannelRef1 =
typename channel_traits<Channel1>::const_reference;
+
80 using ChannelRef2 =
typename channel_traits<Channel2>::const_reference;
+
81 static_assert(std::is_convertible<ChannelRef1, ChannelResult>::value,
+
82 "ChannelRef1 not convertible to ChannelResult" );
+
83 static_assert(std::is_convertible<ChannelRef2, ChannelResult>::value,
+
84 "ChannelRef2 not convertible to ChannelResult" );
+
+
88 auto operator() (ChannelRef1 ch1, ChannelRef2 ch2)
const -> ChannelResult
+
+
90 return ChannelResult(ch1) * ChannelResult(ch2);
+
+
+
+
97 template <
typename Channel1,
typename Channel2,
typename ChannelResult>
+
+
+
100 using ChannelRef1 =
typename channel_traits<Channel1>::const_reference;
+
101 using ChannelRef2 =
typename channel_traits<Channel2>::const_reference;
+
102 static_assert(std::is_convertible<ChannelRef1, ChannelResult>::value,
+
103 "ChannelRef1 not convertible to ChannelResult" );
+
104 static_assert(std::is_convertible<ChannelRef2, ChannelResult>::value,
+
105 "ChannelRef2 not convertible to ChannelResult" );
+
+
109 auto operator() (ChannelRef1 ch1, ChannelRef2 ch2)
const -> ChannelResult
+
+
111 return ChannelResult(ch1) / ChannelResult(ch2);
+
+
+
+
118 template <
typename Channel,
typename Scalar,
typename ChannelResult>
+
+
+
121 using ChannelRef =
typename channel_traits<Channel>::const_reference;
+
122 static_assert(std::is_convertible<ChannelRef, ChannelResult>::value,
+
123 "ChannelRef not convertible to ChannelResult" );
+
124 static_assert(std::is_scalar<Scalar>::value,
"Scalar not a scalar" );
+
125 static_assert(std::is_convertible<Scalar, ChannelResult>::value,
+
126 "Scalar not convertible to ChannelResult" );
+
+
128 auto operator()(ChannelRef channel, Scalar
const & scalar)
const -> ChannelResult
+
+
130 return ChannelResult(channel) + ChannelResult(scalar);
+
+
+
+
137 template <
typename Channel,
typename Scalar,
typename ChannelResult>
+
+
+
140 using ChannelRef =
typename channel_traits<Channel>::const_reference;
+
141 static_assert(std::is_convertible<ChannelRef, ChannelResult>::value,
+
142 "ChannelRef not convertible to ChannelResult" );
+
143 static_assert(std::is_scalar<Scalar>::value,
"Scalar not a scalar" );
+
144 static_assert(std::is_convertible<Scalar, ChannelResult>::value,
+
145 "Scalar not convertible to ChannelResult" );
+
+
149 auto operator() (ChannelRef channel, Scalar
const & scalar)
const -> ChannelResult
+
+
+
152 return ChannelResult(channel - scalar);
+
+
+
+
159 template <
typename Channel,
typename Scalar,
typename ChannelResult>
+
+
+
162 using ChannelRef =
typename channel_traits<Channel>::const_reference;
+
163 static_assert(std::is_convertible<ChannelRef, ChannelResult>::value,
+
164 "ChannelRef not convertible to ChannelResult" );
+
165 static_assert(std::is_scalar<Scalar>::value,
"Scalar not a scalar" );
+
166 static_assert(std::is_convertible<Scalar, ChannelResult>::value,
+
167 "Scalar not convertible to ChannelResult" );
+
+
171 auto operator() (ChannelRef channel, Scalar
const & scalar)
const -> ChannelResult
+
+
173 return ChannelResult(channel) * ChannelResult(scalar);
+
+
+
+
180 template <
typename Channel,
typename Scalar,
typename ChannelResult>
+
+
+
183 using ChannelRef =
typename channel_traits<Channel>::const_reference;
+
184 static_assert(std::is_convertible<ChannelRef, ChannelResult>::value,
+
185 "ChannelRef not convertible to ChannelResult" );
+
186 static_assert(std::is_scalar<Scalar>::value,
"Scalar not a scalar" );
+
187 static_assert(std::is_convertible<Scalar, ChannelResult>::value,
+
188 "Scalar not convertible to ChannelResult" );
+
+
192 auto operator() (ChannelRef channel, Scalar
const & scalar)
const -> ChannelResult
+
+
194 return ChannelResult(channel) / ChannelResult(scalar);
+
+
+
+
201 template <
typename Channel>
+
+
+
204 using ChannelRef =
typename channel_traits<Channel>::reference;
+
+
206 auto operator()(ChannelRef channel)
const -> ChannelRef
+
+
+
+
+
+
+
+
+
+
219 template <
typename Channel>
+
+
+
222 using ChannelRef =
typename channel_traits<Channel>::reference;
+
+
224 auto operator()(ChannelRef channel)
const -> ChannelRef
+
+
226 channel = Channel(0);
+
+
+
+
+
234 template <
typename Channel1,
typename Channel2>
+
+
+
237 using ChannelRef1 =
typename channel_traits<Channel1>::const_reference;
+
238 using ChannelRef2 =
typename channel_traits<Channel2>::reference;
+
239 static_assert(std::is_convertible<ChannelRef1, Channel2>::value,
+
240 "ChannelRef1 not convertible to Channel2" );
+
+
244 auto operator() (ChannelRef1 ch1, ChannelRef2 ch2)
const -> ChannelRef2
+
+
+
+
+
+
+
+
+
+
+Arithmetic operation of division of two channel values.
Definition: channel_numeric_operations.hpp:98
+auto operator()(ChannelRef1 ch1, ChannelRef2 ch2) const -> ChannelRef2
Definition: channel_numeric_operations.hpp:244
+Operation of setting channel value to zero.
Definition: channel_numeric_operations.hpp:220
+Arithmetic operation of multiplication of two channel values.
Definition: channel_numeric_operations.hpp:77
+Arithmetic operation of adding scalar to channel value.
Definition: channel_numeric_operations.hpp:119
+Arithmetic operation of dividing channel value by scalar.
Definition: channel_numeric_operations.hpp:181
+auto operator()(ChannelRef1 ch1, ChannelRef2 ch2) const -> ChannelResult
Definition: channel_numeric_operations.hpp:109
+Arithmetic operation of dividing channel value by 2.
Definition: channel_numeric_operations.hpp:202
+auto operator()(ChannelRef channel, Scalar const &scalar) const -> ChannelResult
Definition: channel_numeric_operations.hpp:192
+auto operator()(ChannelRef1 ch1, ChannelRef2 ch2) const -> ChannelResult
Definition: channel_numeric_operations.hpp:46
+auto operator()(ChannelRef1 ch1, ChannelRef2 ch2) const -> ChannelResult
Definition: channel_numeric_operations.hpp:67
+Arithmetic operation of channel value by a scalar.
Definition: channel_numeric_operations.hpp:160
+auto operator()(ChannelRef1 ch1, ChannelRef2 ch2) const -> ChannelResult
Definition: channel_numeric_operations.hpp:88
+Arithmetic operation of subtracting scalar from channel value.
Definition: channel_numeric_operations.hpp:138
+Arithmetic operation of subtraction of two channel values.
Definition: channel_numeric_operations.hpp:56
+auto operator()(ChannelRef channel, Scalar const &scalar) const -> ChannelResult
Definition: channel_numeric_operations.hpp:149
+Definition: channel_numeric_operations.hpp:235
+auto operator()(ChannelRef channel, Scalar const &scalar) const -> ChannelResult
Definition: channel_numeric_operations.hpp:171
+Arithmetic operation of addition of two channel values.
Definition: channel_numeric_operations.hpp:35
+
+
+
+
+
diff --git a/develop/doc/html/design/channel.html b/develop/doc/html/design/channel.html
index 67b659f6c..33b05a5c7 100644
--- a/develop/doc/html/design/channel.html
+++ b/develop/doc/html/design/channel.html
@@ -263,7 +263,7 @@ channel-level algorithms that GIL provides:
diff --git a/develop/doc/html/design/color_base.html b/develop/doc/html/design/color_base.html
index ea992afa3..70f789482 100644
--- a/develop/doc/html/design/color_base.html
+++ b/develop/doc/html/design/color_base.html
@@ -310,7 +310,7 @@ color base require that they all have the same color space.
diff --git a/develop/doc/html/design/color_space.html b/develop/doc/html/design/color_space.html
index 09ed5ef53..8567ea404 100644
--- a/develop/doc/html/design/color_space.html
+++ b/develop/doc/html/design/color_space.html
@@ -162,7 +162,7 @@ A color space and its associated mapping are often used together.
diff --git a/develop/doc/html/design/concepts.html b/develop/doc/html/design/concepts.html
index b7a07f7f7..3bc000978 100644
--- a/develop/doc/html/design/concepts.html
+++ b/develop/doc/html/design/concepts.html
@@ -143,7 +143,7 @@ Most of them are defined at the
diff --git a/develop/doc/html/design/conclusions.html b/develop/doc/html/design/conclusions.html
index d510d4033..4b2f7fc94 100644
--- a/develop/doc/html/design/conclusions.html
+++ b/develop/doc/html/design/conclusions.html
@@ -121,7 +121,7 @@ raw pixel data from another image library.
diff --git a/develop/doc/html/design/dynamic_image.html b/develop/doc/html/design/dynamic_image.html
index 013a94129..249859507 100644
--- a/develop/doc/html/design/dynamic_image.html
+++ b/develop/doc/html/design/dynamic_image.html
@@ -274,7 +274,7 @@ uniformly as a collection and store them in the same container.
diff --git a/develop/doc/html/design/examples.html b/develop/doc/html/design/examples.html
index 1e049b52c..b31ee1f7f 100644
--- a/develop/doc/html/design/examples.html
+++ b/develop/doc/html/design/examples.html
@@ -264,7 +264,7 @@ channel depth. They could be either planar or interleaved.
diff --git a/develop/doc/html/design/extending.html b/develop/doc/html/design/extending.html
index 3065b87af..9aac6e59b 100644
--- a/develop/doc/html/design/extending.html
+++ b/develop/doc/html/design/extending.html
@@ -234,7 +234,7 @@ defines the Mandelbrot set.
diff --git a/develop/doc/html/design/image.html b/develop/doc/html/design/image.html
index f44ea798a..2e61d843c 100644
--- a/develop/doc/html/design/image.html
+++ b/develop/doc/html/design/image.html
@@ -175,7 +175,7 @@ there are no padding bits at the end of rows of packed images.
diff --git a/develop/doc/html/design/image_view.html b/develop/doc/html/design/image_view.html
index 6c048224b..be2fca01a 100644
--- a/develop/doc/html/design/image_view.html
+++ b/develop/doc/html/design/image_view.html
@@ -486,7 +486,7 @@ development and is not optimized for speed
diff --git a/develop/doc/html/design/index.html b/develop/doc/html/design/index.html
index ca4656a45..6d6de243f 100644
--- a/develop/doc/html/design/index.html
+++ b/develop/doc/html/design/index.html
@@ -102,7 +102,7 @@ structure and basic elements of the Generic Image Library (GIL).
diff --git a/develop/doc/html/design/metafunctions.html b/develop/doc/html/design/metafunctions.html
index 526271395..44864e906 100644
--- a/develop/doc/html/design/metafunctions.html
+++ b/develop/doc/html/design/metafunctions.html
@@ -302,7 +302,7 @@ is basic, but a color converted view or a virtual view is not.
diff --git a/develop/doc/html/design/pixel.html b/develop/doc/html/design/pixel.html
index 46b2e27c2..34e10652a 100644
--- a/develop/doc/html/design/pixel.html
+++ b/develop/doc/html/design/pixel.html
@@ -348,7 +348,7 @@ different color spaces and channel types:
diff --git a/develop/doc/html/design/pixel_iterator.html b/develop/doc/html/design/pixel_iterator.html
index 486677969..62292aca4 100644
--- a/develop/doc/html/design/pixel_iterator.html
+++ b/develop/doc/html/design/pixel_iterator.html
@@ -368,7 +368,7 @@ but not MemoryBased
diff --git a/develop/doc/html/design/pixel_locator.html b/develop/doc/html/design/pixel_locator.html
index ab5893095..00c8d0c15 100644
--- a/develop/doc/html/design/pixel_locator.html
+++ b/develop/doc/html/design/pixel_locator.html
@@ -358,7 +358,7 @@ using the x-iterators directly.
diff --git a/develop/doc/html/design/point.html b/develop/doc/html/design/point.html
index 1a5e12c7c..e527eb2db 100644
--- a/develop/doc/html/design/point.html
+++ b/develop/doc/html/design/point.html
@@ -134,7 +134,7 @@ coordinate type.
diff --git a/develop/doc/html/design/technicalities.html b/develop/doc/html/design/technicalities.html
index 13f0ced0c..f06e41938 100644
--- a/develop/doc/html/design/technicalities.html
+++ b/develop/doc/html/design/technicalities.html
@@ -159,7 +159,7 @@ suggesting the above solution.
diff --git a/develop/doc/html/genindex.html b/develop/doc/html/genindex.html
index ac620e9e2..d62b57de8 100644
--- a/develop/doc/html/genindex.html
+++ b/develop/doc/html/genindex.html
@@ -76,7 +76,7 @@
diff --git a/develop/doc/html/histogram/create.html b/develop/doc/html/histogram/create.html
index 5fb8f82fd..27ae1e239 100644
--- a/develop/doc/html/histogram/create.html
+++ b/develop/doc/html/histogram/create.html
@@ -105,7 +105,7 @@ to match the GIL image.
diff --git a/develop/doc/html/histogram/cumulative.html b/develop/doc/html/histogram/cumulative.html
index aa8b621b3..8aed2146c 100644
--- a/develop/doc/html/histogram/cumulative.html
+++ b/develop/doc/html/histogram/cumulative.html
@@ -102,7 +102,7 @@ and then call the function.
diff --git a/develop/doc/html/histogram/extend.html b/develop/doc/html/histogram/extend.html
index 2721a2079..aa74db71d 100644
--- a/develop/doc/html/histogram/extend.html
+++ b/develop/doc/html/histogram/extend.html
@@ -138,7 +138,7 @@ the key.
diff --git a/develop/doc/html/histogram/extension/index.html b/develop/doc/html/histogram/extension/index.html
index b51b09c06..b2438c261 100644
--- a/develop/doc/html/histogram/extension/index.html
+++ b/develop/doc/html/histogram/extension/index.html
@@ -90,7 +90,7 @@ usage of external containers as histograms for GIL images.
diff --git a/develop/doc/html/histogram/extension/overview.html b/develop/doc/html/histogram/extension/overview.html
index b39dd2f33..eac4305b0 100644
--- a/develop/doc/html/histogram/extension/overview.html
+++ b/develop/doc/html/histogram/extension/overview.html
@@ -121,7 +121,7 @@ are provided as extensions.
diff --git a/develop/doc/html/histogram/extension/std.html b/develop/doc/html/histogram/extension/std.html
index 4cd22c938..2a828d003 100644
--- a/develop/doc/html/histogram/extension/std.html
+++ b/develop/doc/html/histogram/extension/std.html
@@ -120,7 +120,7 @@
diff --git a/develop/doc/html/histogram/fill.html b/develop/doc/html/histogram/fill.html
index 8cc7ad32c..07c5b6763 100644
--- a/develop/doc/html/histogram/fill.html
+++ b/develop/doc/html/histogram/fill.html
@@ -182,7 +182,7 @@ which is of std::tu
diff --git a/develop/doc/html/histogram/index.html b/develop/doc/html/histogram/index.html
index 612f71437..4ddd667ea 100644
--- a/develop/doc/html/histogram/index.html
+++ b/develop/doc/html/histogram/index.html
@@ -95,7 +95,7 @@ histogram class and functions used in many image processing algorithms.
diff --git a/develop/doc/html/histogram/limitations.html b/develop/doc/html/histogram/limitations.html
index 2cdd0d544..b92582fa5 100644
--- a/develop/doc/html/histogram/limitations.html
+++ b/develop/doc/html/histogram/limitations.html
@@ -82,7 +82,7 @@
diff --git a/develop/doc/html/histogram/overview.html b/develop/doc/html/histogram/overview.html
index 4ea1a603a..0085f1a05 100644
--- a/develop/doc/html/histogram/overview.html
+++ b/develop/doc/html/histogram/overview.html
@@ -114,7 +114,7 @@ key are shipped with the class itself.
diff --git a/develop/doc/html/histogram/stl_compatibility.html b/develop/doc/html/histogram/stl_compatibility.html
index 766727224..2be6375bf 100644
--- a/develop/doc/html/histogram/stl_compatibility.html
+++ b/develop/doc/html/histogram/stl_compatibility.html
@@ -82,7 +82,7 @@
diff --git a/develop/doc/html/histogram/subhistogram.html b/develop/doc/html/histogram/subhistogram.html
index b7d81bd94..a61de7e85 100644
--- a/develop/doc/html/histogram/subhistogram.html
+++ b/develop/doc/html/histogram/subhistogram.html
@@ -137,7 +137,7 @@ and blue color lie between 2 - 10
diff --git a/develop/doc/html/histogram/utilities.html b/develop/doc/html/histogram/utilities.html
index 3958bbbf9..73af85ce3 100644
--- a/develop/doc/html/histogram/utilities.html
+++ b/develop/doc/html/histogram/utilities.html
@@ -82,7 +82,7 @@
diff --git a/develop/doc/html/image_processing/affine-region-detectors.html b/develop/doc/html/image_processing/affine-region-detectors.html
index fa906abdc..29b7c2e15 100644
--- a/develop/doc/html/image_processing/affine-region-detectors.html
+++ b/develop/doc/html/image_processing/affine-region-detectors.html
@@ -162,7 +162,7 @@ detector.” In Alvey vision conference, vol. 15, no. 50, pp. 10-5244.
diff --git a/develop/doc/html/image_processing/basics.html b/develop/doc/html/image_processing/basics.html
index 4e3295ddf..d8769e032 100644
--- a/develop/doc/html/image_processing/basics.html
+++ b/develop/doc/html/image_processing/basics.html
@@ -123,7 +123,7 @@ gets sharper depending on it’s sigma value.
diff --git a/develop/doc/html/image_processing/contrast_enhancement/histogram_equalization.html b/develop/doc/html/image_processing/contrast_enhancement/histogram_equalization.html
index 8330fdbca..32d68462d 100644
--- a/develop/doc/html/image_processing/contrast_enhancement/histogram_equalization.html
+++ b/develop/doc/html/image_processing/contrast_enhancement/histogram_equalization.html
@@ -145,7 +145,7 @@ before trying the histogram equalization algorithm.
diff --git a/develop/doc/html/image_processing/contrast_enhancement/histogram_matching.html b/develop/doc/html/image_processing/contrast_enhancement/histogram_matching.html
index 4df55d7f0..c137d21bc 100644
--- a/develop/doc/html/image_processing/contrast_enhancement/histogram_matching.html
+++ b/develop/doc/html/image_processing/contrast_enhancement/histogram_matching.html
@@ -138,7 +138,7 @@ before trying the histogram matching algorithm.
diff --git a/develop/doc/html/image_processing/contrast_enhancement/index.html b/develop/doc/html/image_processing/contrast_enhancement/index.html
index 8960c3037..6aab0d572 100644
--- a/develop/doc/html/image_processing/contrast_enhancement/index.html
+++ b/develop/doc/html/image_processing/contrast_enhancement/index.html
@@ -89,7 +89,7 @@ processing algorithms used for contrast enhancement.
diff --git a/develop/doc/html/image_processing/contrast_enhancement/overview.html b/develop/doc/html/image_processing/contrast_enhancement/overview.html
index 72a864a47..1f993ebe4 100644
--- a/develop/doc/html/image_processing/contrast_enhancement/overview.html
+++ b/develop/doc/html/image_processing/contrast_enhancement/overview.html
@@ -95,7 +95,7 @@ These include :
diff --git a/develop/doc/html/image_processing/index.html b/develop/doc/html/image_processing/index.html
index e1c4d0cf4..91685b7e5 100644
--- a/develop/doc/html/image_processing/index.html
+++ b/develop/doc/html/image_processing/index.html
@@ -103,7 +103,7 @@ features, structures and algorithms, for image processing and analysis.
diff --git a/develop/doc/html/image_processing/overview.html b/develop/doc/html/image_processing/overview.html
index 1fa1d2de5..e2907d7cd 100644
--- a/develop/doc/html/image_processing/overview.html
+++ b/develop/doc/html/image_processing/overview.html
@@ -88,7 +88,7 @@ projects run in frame of the Google Summer of Code 2019:
diff --git a/develop/doc/html/index.html b/develop/doc/html/index.html
index 95dc6d6e6..5c43cce2a 100644
--- a/develop/doc/html/index.html
+++ b/develop/doc/html/index.html
@@ -197,7 +197,7 @@ Blurring images (requires the optional Numeric extension)
diff --git a/develop/doc/html/installation.html b/develop/doc/html/installation.html
index 98099ed6d..c69b5990a 100644
--- a/develop/doc/html/installation.html
+++ b/develop/doc/html/installation.html
@@ -105,7 +105,7 @@ of the library repository.
diff --git a/develop/doc/html/io.html b/develop/doc/html/io.html
index dc5e6f928..4a02a45cc 100644
--- a/develop/doc/html/io.html
+++ b/develop/doc/html/io.html
@@ -742,7 +742,7 @@ to enable the tests:
diff --git a/develop/doc/html/naming.html b/develop/doc/html/naming.html
index 4d998a6c9..25ece978f 100644
--- a/develop/doc/html/naming.html
+++ b/develop/doc/html/naming.html
@@ -114,7 +114,7 @@ pixel.
diff --git a/develop/doc/html/numeric.html b/develop/doc/html/numeric.html
index 783798c8c..3c2cb1a11 100644
--- a/develop/doc/html/numeric.html
+++ b/develop/doc/html/numeric.html
@@ -79,7 +79,7 @@
diff --git a/develop/doc/html/reference/adaptive__histogram__equalization_8hpp_source.html b/develop/doc/html/reference/adaptive__histogram__equalization_8hpp_source.html
index 92126ade4..1d1c8f303 100644
--- a/develop/doc/html/reference/adaptive__histogram__equalization_8hpp_source.html
+++ b/develop/doc/html/reference/adaptive__histogram__equalization_8hpp_source.html
@@ -310,8 +310,8 @@ $(function() {
-
BOOST_FORCEINLINE void copy_pixels(const View1 &src, const View2 &dst)
std::copy for image views
Definition: algorithm.hpp:282
-
const image< Pixel, IsPlanar, Alloc >::view_t & view(image< Pixel, IsPlanar, Alloc > &img)
Returns the non-constant-pixel view of an image.
Definition: image.hpp:548
+
BOOST_FORCEINLINE void copy_pixels(const View1 &src, const View2 &dst)
std::copy for image views
Definition: algorithm.hpp:288
+
const image< Pixel, IsPlanar, Alloc >::view_t & view(image< Pixel, IsPlanar, Alloc > &img)
Returns the non-constant-pixel view of an image.
Definition: image.hpp:549
diff --git a/develop/doc/html/reference/algorithm_8hpp_source.html b/develop/doc/html/reference/algorithm_8hpp_source.html
index 7a87e5722..72b70159b 100644
--- a/develop/doc/html/reference/algorithm_8hpp_source.html
+++ b/develop/doc/html/reference/algorithm_8hpp_source.html
@@ -49,1013 +49,1407 @@ $(function() {
-
-
-
-
-
-
8 #ifndef BOOST_GIL_ALGORITHM_HPP
-
9 #define BOOST_GIL_ALGORITHM_HPP
-
-
11 #include <boost/gil/bit_aligned_pixel_iterator.hpp>
-
12 #include <boost/gil/color_base_algorithm.hpp>
-
13 #include <boost/gil/concepts.hpp>
-
14 #include <boost/gil/image_view.hpp>
-
15 #include <boost/gil/image_view_factory.hpp>
-
16 #include <boost/gil/detail/mp11.hpp>
-
17 #include <boost/gil/detail/type_traits.hpp>
-
-
19 #include <boost/assert.hpp>
-
20 #include <boost/config.hpp>
-
-
-
-
-
-
-
27 #include <type_traits>
-
-
-
30 namespace boost {
namespace gil {
-
-
-
33 template <
typename ChannelPtr,
typename ColorSpace>
-
-
35 template <
typename Iterator>
-
-
37 template <
typename StepIterator>
-
-
-
-
-
-
-
-
80 template <
typename Derived,
typename Result=
void >
-
-
-
83 using result_type = Result;
-
-
85 template <
typename V1,
typename V2> BOOST_FORCEINLINE
-
86 result_type operator()(
const std::pair<const V1*,const V2*>& p)
const {
-
-
-
-
90 template <
typename V1,
typename V2> BOOST_FORCEINLINE
-
91 result_type operator()(
const V1& v1,
const V2& v2)
const {
-
-
-
-
95 result_type operator()(
const error_t&)
const {
throw std::bad_cast(); }
-
-
-
-
99 template <
typename V1,
typename V2>
-
-
101 result_type apply(V1
const & v1, V2
const & v2, std::false_type)
const
-
-
103 return ((
const Derived*)
this )->apply_incompatible(v1, v2);
-
-
-
-
107 template <
typename V1,
typename V2>
-
-
109 result_type apply(V1
const & v1, V2
const & v2, std::true_type)
const
-
-
111 return ((
const Derived*)
this )->apply_compatible(v1, v2);
-
-
-
-
115 template <
typename V1,
typename V2>
-
-
117 result_type apply_incompatible(V1
const & , V2
const & )
const
-
-
119 throw std::bad_cast();
-
-
-
-
-
-
-
-
-
-
-
137 template <
typename T,
typename CS>
-
-
-
-
-
-
-
-
145 auto p =
std::copy ((
unsigned char *)first, (
unsigned char *)last, (
unsigned char *)dst);
-
-
-
-
151 template <
typename T,
typename CS>
-
-
-
-
-
-
-
-
159 namespace boost {
namespace gil {
-
-
161 template <
typename I,
typename O>
struct copy_fn {
-
162 BOOST_FORCEINLINE I operator()(I first, I last, O dst)
const {
return std::copy (first,last,dst); }
-
-
-
-
-
-
170 template <
typename CS,
typename IC1,
typename IC2> BOOST_FORCEINLINE
-
-
172 boost::gil::gil_function_requires<boost::gil::ChannelsCompatibleConcept<typename std::iterator_traits<IC1>::value_type,
typename std::iterator_traits<IC2>::value_type>>();
-
173 static_for_each(first,last,dst,boost::gil::detail::copy_fn<IC1,IC2>());
-
174 return dst+(last-first);
-
-
-
-
178 namespace boost {
namespace gil {
-
-
182 template <
typename I,
typename O>
-
-
184 BOOST_FORCEINLINE
void operator()(I src,
typename std::iterator_traits<I>::difference_type n, O dst)
const {
std::copy (src,src+n, dst); }
-
-
-
188 template <
typename IL,
typename O>
-
-
190 using diff_t =
typename std::iterator_traits<iterator_from_2d<IL>>::difference_type;
-
-
192 gil_function_requires<PixelLocatorConcept<IL>>();
-
193 gil_function_requires<MutablePixelIteratorConcept<O>>();
-
-
195 diff_t l=src.width()-src.x_pos();
-
196 diff_t numToCopy=(n<l ? n:l);
-
197 detail::copy_n(src.x(), numToCopy, dst);
-
-
-
-
-
-
-
-
206 template <
typename I,
typename OL>
-
-
208 using diff_t =
typename std::iterator_traits<I>::difference_type;
-
-
210 gil_function_requires<PixelIteratorConcept<I>>();
-
211 gil_function_requires<MutablePixelLocatorConcept<OL>>();
-
-
213 diff_t l=dst.width()-dst.x_pos();
-
214 diff_t numToCopy=(n<l ? n:l);
-
215 detail::copy_n(src, numToCopy, dst.x());
-
-
-
-
-
-
-
-
224 template <
typename IL,
typename OL>
-
-
226 using diff_t =
typename iterator_from_2d<IL>::difference_type;
-
-
228 gil_function_requires<PixelLocatorConcept<IL>>();
-
229 gil_function_requires<MutablePixelLocatorConcept<OL>>();
-
230 if (src.x_pos()!=dst.x_pos() || src.width()!=dst.width()) {
-
-
-
-
-
-
236 diff_t l=dst.width()-dst.x_pos();
-
237 diff_t numToCopy=(n<l ? n : l);
-
238 detail::copy_n(src.x(), numToCopy, dst.x());
-
-
-
-
-
-
-
-
246 template <
typename SrcIterator,
typename DstIterator>
-
247 BOOST_FORCEINLINE DstIterator copy_with_2d_iterators(SrcIterator first, SrcIterator last, DstIterator dst) {
-
248 using src_x_iterator =
typename SrcIterator::x_iterator;
-
249 using dst_x_iterator =
typename DstIterator::x_iterator;
-
-
251 typename SrcIterator::difference_type n = last - first;
-
-
253 if (first.is_1d_traversable()) {
-
254 if (dst.is_1d_traversable())
-
-
-
-
-
259 if (dst.is_1d_traversable())
-
260 copier_n<SrcIterator,dst_x_iterator>()(first,n, dst.x());
-
-
262 copier_n<SrcIterator,DstIterator>()(first,n,dst);
-
-
-
-
-
-
-
-
272 template <
typename IL,
typename OL>
-
-
274 return boost::gil::detail::copy_with_2d_iterators(first,last,dst);
-
-
-
-
278 namespace boost {
namespace gil {
-
281 template <
typename View1,
typename View2> BOOST_FORCEINLINE
-
-
-
284 BOOST_ASSERT(src.dimensions() == dst.dimensions());
-
285 detail::copy_with_2d_iterators(src.begin(),src.end(),dst.begin());
-
-
-
-
-
-
-
299 template <
typename CC>
-
300 class copy_and_convert_pixels_fn :
public binary_operation_obj<copy_and_convert_pixels_fn<CC>>
-
-
-
-
-
305 using result_type =
typename binary_operation_obj<copy_and_convert_pixels_fn<default_color_converter>>::result_type;
-
306 copy_and_convert_pixels_fn() {}
-
307 copy_and_convert_pixels_fn(CC cc_in) : _cc(cc_in) {}
-
-
309 template <
typename V1,
typename V2> BOOST_FORCEINLINE
-
310 result_type apply_incompatible(
const V1& src,
const V2& dst)
const {
-
311 copy_pixels (color_converted_view<typename V2::value_type>(src,_cc),dst);
-
-
-
+
+
+
+
+
+
+
9 #ifndef BOOST_GIL_ALGORITHM_HPP
+
10 #define BOOST_GIL_ALGORITHM_HPP
+
+
12 #include <boost/gil/metafunctions.hpp>
+
13 #include <boost/gil/pixel_iterator.hpp>
+
14 #include <boost/gil/pixel_numeric_operations.hpp>
+
15 #include <boost/gil/image.hpp>
+
16 #include <boost/gil/bit_aligned_pixel_iterator.hpp>
+
17 #include <boost/gil/color_base_algorithm.hpp>
+
18 #include <boost/gil/concepts.hpp>
+
19 #include <boost/gil/image_view.hpp>
+
20 #include <boost/gil/image_view_factory.hpp>
+
21 #include <boost/gil/detail/mp11.hpp>
+
22 #include <boost/gil/detail/type_traits.hpp>
+
+
24 #include <boost/assert.hpp>
+
25 #include <boost/config.hpp>
+
+
+
+
+
+
+
32 #include <type_traits>
+
+
+
+
36 namespace boost {
namespace gil {
+
+
+
39 template <
typename ChannelPtr,
typename ColorSpace>
+
+
41 template <
typename Iterator>
+
+
43 template <
typename StepIterator>
+
+
+
+
+
+
+
+
86 template <
typename Derived,
typename Result=
void >
+
+
+
89 using result_type = Result;
+
+
91 template <
typename V1,
typename V2> BOOST_FORCEINLINE
+
92 result_type operator()(
const std::pair<const V1*,const V2*>& p)
const {
+
+
+
+
96 template <
typename V1,
typename V2> BOOST_FORCEINLINE
+
97 result_type operator()(
const V1& v1,
const V2& v2)
const {
+
+
+
+
101 result_type operator()(
const error_t&)
const {
throw std::bad_cast(); }
+
+
+
+
105 template <
typename V1,
typename V2>
+
+
107 result_type apply(V1
const & v1, V2
const & v2, std::false_type)
const
+
+
109 return ((
const Derived*)
this )->apply_incompatible(v1, v2);
+
+
+
+
113 template <
typename V1,
typename V2>
+
+
115 result_type apply(V1
const & v1, V2
const & v2, std::true_type)
const
+
+
117 return ((
const Derived*)
this )->apply_compatible(v1, v2);
+
+
+
+
121 template <
typename V1,
typename V2>
+
+
123 result_type apply_incompatible(V1
const & , V2
const & )
const
+
+
125 throw std::bad_cast();
+
+
+
+
+
+
+
+
+
+
+
143 template <
typename T,
typename CS>
+
+
+
+
+
+
+
+
151 auto p =
std::copy ((
unsigned char *)first, (
unsigned char *)last, (
unsigned char *)dst);
+
+
+
+
157 template <
typename T,
typename CS>
+
+
+
+
+
+
+
+
165 namespace boost {
namespace gil {
+
+
167 template <
typename I,
typename O>
struct copy_fn {
+
168 BOOST_FORCEINLINE I operator()(I first, I last, O dst)
const {
return std::copy (first,last,dst); }
+
+
+
+
+
+
176 template <
typename CS,
typename IC1,
typename IC2> BOOST_FORCEINLINE
+
+
178 boost::gil::gil_function_requires<boost::gil::ChannelsCompatibleConcept<typename std::iterator_traits<IC1>::value_type,
typename std::iterator_traits<IC2>::value_type>>();
+
179 static_for_each(first,last,dst,boost::gil::detail::copy_fn<IC1,IC2>());
+
180 return dst+(last-first);
+
+
+
+
184 namespace boost {
namespace gil {
+
+
188 template <
typename I,
typename O>
+
+
190 BOOST_FORCEINLINE
void operator()(I src,
typename std::iterator_traits<I>::difference_type n, O dst)
const {
std::copy (src,src+n, dst); }
+
+
+
194 template <
typename IL,
typename O>
+
+
196 using diff_t =
typename std::iterator_traits<iterator_from_2d<IL>>::difference_type;
+
+
198 gil_function_requires<PixelLocatorConcept<IL>>();
+
199 gil_function_requires<MutablePixelIteratorConcept<O>>();
+
+
201 diff_t l=src.width()-src.x_pos();
+
202 diff_t numToCopy=(n<l ? n:l);
+
203 detail::copy_n(src.x(), numToCopy, dst);
+
+
+
+
+
+
+
+
212 template <
typename I,
typename OL>
+
+
214 using diff_t =
typename std::iterator_traits<I>::difference_type;
+
+
216 gil_function_requires<PixelIteratorConcept<I>>();
+
217 gil_function_requires<MutablePixelLocatorConcept<OL>>();
+
+
219 diff_t l=dst.width()-dst.x_pos();
+
220 diff_t numToCopy=(n<l ? n:l);
+
221 detail::copy_n(src, numToCopy, dst.x());
+
+
+
+
+
+
+
+
230 template <
typename IL,
typename OL>
+
+
232 using diff_t =
typename iterator_from_2d<IL>::difference_type;
+
+
234 gil_function_requires<PixelLocatorConcept<IL>>();
+
235 gil_function_requires<MutablePixelLocatorConcept<OL>>();
+
236 if (src.x_pos()!=dst.x_pos() || src.width()!=dst.width()) {
+
+
+
+
+
+
242 diff_t l=dst.width()-dst.x_pos();
+
243 diff_t numToCopy=(n<l ? n : l);
+
244 detail::copy_n(src.x(), numToCopy, dst.x());
+
+
+
+
+
+
+
+
252 template <
typename SrcIterator,
typename DstIterator>
+
253 BOOST_FORCEINLINE DstIterator copy_with_2d_iterators(SrcIterator first, SrcIterator last, DstIterator dst) {
+
254 using src_x_iterator =
typename SrcIterator::x_iterator;
+
255 using dst_x_iterator =
typename DstIterator::x_iterator;
+
+
257 typename SrcIterator::difference_type n = last - first;
+
+
259 if (first.is_1d_traversable()) {
+
260 if (dst.is_1d_traversable())
+
+
+
+
+
265 if (dst.is_1d_traversable())
+
266 copier_n<SrcIterator,dst_x_iterator>()(first,n, dst.x());
+
+
268 copier_n<SrcIterator,DstIterator>()(first,n,dst);
+
+
+
+
+
+
+
+
278 template <
typename IL,
typename OL>
+
+
280 return boost::gil::detail::copy_with_2d_iterators(first,last,dst);
+
+
+
+
284 namespace boost {
namespace gil {
+
287 template <
typename View1,
typename View2> BOOST_FORCEINLINE
+
+
+
290 BOOST_ASSERT(src.dimensions() == dst.dimensions());
+
291 detail::copy_with_2d_iterators(src.begin(),src.end(),dst.begin());
+
+
+
+
+
+
+
305 template <
typename CC>
+
306 class copy_and_convert_pixels_fn :
public binary_operation_obj<copy_and_convert_pixels_fn<CC>>
+
+
+
+
+
311 using result_type =
typename binary_operation_obj<copy_and_convert_pixels_fn<default_color_converter>>::result_type;
+
312 copy_and_convert_pixels_fn() {}
+
313 copy_and_convert_pixels_fn(CC cc_in) : _cc(cc_in) {}
+
315 template <
typename V1,
typename V2> BOOST_FORCEINLINE
-
316 result_type apply_compatible(
const V1& src,
const V2& dst)
const {
-
+
316 result_type apply_incompatible(
const V1& src,
const V2& dst)
const {
+
317 copy_pixels (color_converted_view<typename V2::value_type>(src,_cc),dst);
-
-
-
-
323 template <
typename V1,
typename V2,
typename CC>
-
-
-
326 detail::copy_and_convert_pixels_fn<CC> ccp(cc);
-
-
-
-
330 struct default_color_converter;
-
-
333 template <
typename View1,
typename View2>
-
-
-
336 detail::copy_and_convert_pixels_fn<default_color_converter> ccp;
-
-
-
-
-
-
-
-
-
358 template <
typename IL,
typename V>
-
-
360 boost::gil::gil_function_requires<boost::gil::MutablePixelLocatorConcept<IL>>();
-
361 if (first.is_1d_traversable()) {
-
-
-
-
365 std::ptrdiff_t n=last-first;
-
-
367 std::ptrdiff_t numToDo=std::min<const std::ptrdiff_t>(n,(std::ptrdiff_t)(first.width()-first.x_pos()));
-
368 std::fill_n(first.x(), numToDo, val);
-
-
-
-
-
-
-
-
376 namespace boost {
namespace gil {
-
-
-
-
-
382 template <
typename It,
typename P>
-
383 void operator()(It first, It last,
const P& p_in) {
-
-
-
-
-
389 template <
typename It,
typename P>
-
-
391 void fill_aux(It first, It last, P
const & p, std::true_type)
-
-
393 static_for_each(first, last, p,
std_fill_t ());
-
-
-
397 template <
typename It,
typename P>
-
-
399 void fill_aux(It first, It last, P
const & p, std::false_type)
-
-
-
-
-
-
-
408 template <
typename View,
typename Value>
-
-
-
-
412 if (
view .is_1d_traversable())
-
-
-
415 view .begin().x(),
view .end().x(), value, is_planar<View>());
-
-
-
-
419 for (std::ptrdiff_t y = 0; y <
view .height(); ++y)
-
-
421 view .row_begin(y),
view .row_end(y), value, is_planar<View>());
+
+
+
321 template <
typename V1,
typename V2> BOOST_FORCEINLINE
+
322 result_type apply_compatible(
const V1& src,
const V2& dst)
const {
+
+
+
+
+
+
329 template <
typename V1,
typename V2,
typename CC>
+
+
+
332 detail::copy_and_convert_pixels_fn<CC> ccp(cc);
+
+
+
+
336 struct default_color_converter;
+
+
339 template <
typename View1,
typename View2>
+
+
+
342 detail::copy_and_convert_pixels_fn<default_color_converter> ccp;
+
+
+
+
+
+
+
+
+
364 template <
typename IL,
typename V>
+
+
366 boost::gil::gil_function_requires<boost::gil::MutablePixelLocatorConcept<IL>>();
+
367 if (first.is_1d_traversable()) {
+
+
+
+
371 std::ptrdiff_t n=last-first;
+
+
373 std::ptrdiff_t numToDo=std::min<const std::ptrdiff_t>(n,(std::ptrdiff_t)(first.width()-first.x_pos()));
+
374 std::fill_n(first.x(), numToDo, val);
+
+
+
+
+
+
+
+
382 namespace boost {
namespace gil {
+
+
+
+
+
388 template <
typename It,
typename P>
+
389 void operator()(It first, It last,
const P& p_in) {
+
+
+
+
+
395 template <
typename It,
typename P>
+
+
397 void fill_aux(It first, It last, P
const & p, std::true_type)
+
+
399 static_for_each(first, last, p,
std_fill_t ());
+
+
+
403 template <
typename It,
typename P>
+
+
405 void fill_aux(It first, It last, P
const & p, std::false_type)
+
+
+
+
+
+
+
414 template <
typename View,
typename Value>
+
+
+
+
418 if (
view .is_1d_traversable())
+
+
+
421 view .begin().x(),
view .end().x(), value, is_planar<View>());
-
-
-
-
-
-
-
434 template <
typename Iterator>
-
-
436 void destruct_range_impl(Iterator first, Iterator last,
-
437 typename std::enable_if
-
-
-
-
441 std::is_pointer<Iterator>,
-
-
-
444 detail::is_trivially_destructible<
typename std::iterator_traits<Iterator>::value_type>
-
-
-
-
-
449 while (first != last)
-
-
-
-
-
-
-
456 template <
typename Iterator>
-
-
458 void destruct_range_impl(Iterator , Iterator ,
-
459 typename std::enable_if
-
-
-
-
463 mp11::mp_not<std::is_pointer<Iterator>>,
-
464 detail::is_trivially_destructible<
typename std::iterator_traits<Iterator>::value_type>
-
-
-
-
-
-
470 template <
typename Iterator>
-
-
472 void destruct_range(Iterator first, Iterator last)
+
+
+
425 for (std::ptrdiff_t y = 0; y <
view .height(); ++y)
+
+
427 view .row_begin(y),
view .row_end(y), value, is_planar<View>());
+
+
+
+
+
+
+
+
440 template <
typename Iterator>
+
+
442 void destruct_range_impl(Iterator first, Iterator last,
+
443 typename std::enable_if
+
+
+
+
447 std::is_pointer<Iterator>,
+
+
+
450 detail::is_trivially_destructible<
typename std::iterator_traits<Iterator>::value_type>
+
+
+
+
+
455 while (first != last)
+
+
+
+
+
+
+
462 template <
typename Iterator>
+
+
464 void destruct_range_impl(Iterator , Iterator ,
+
465 typename std::enable_if
+
+
+
+
469 mp11::mp_not<std::is_pointer<Iterator>>,
+
470 detail::is_trivially_destructible<
typename std::iterator_traits<Iterator>::value_type>
+
+
-
474 destruct_range_impl(first, last);
-
-
-
477 struct std_destruct_t
-
-
479 template <
typename Iterator>
-
480 void operator()(Iterator first, Iterator last)
const
-
-
482 destruct_range(first,last);
-
-
-
-
487 template <
typename It>
-
-
489 void destruct_aux(It first, It last, std::true_type)
-
-
491 static_for_each(first,last,std_destruct_t());
-
-
-
495 template <
typename It>
-
-
497 void destruct_aux(It first, It last, std::false_type)
-
-
499 destruct_range(first,last);
-
-
-
-
-
506 template <
typename View>
-
-
-
-
510 if (
view .is_1d_traversable())
-
-
512 detail::destruct_aux(
-
513 view .begin().x(),
view .end().x(), is_planar<View>());
-
-
-
-
517 for (std::ptrdiff_t y = 0; y <
view .height(); ++y)
-
518 detail::destruct_aux(
-
519 view .row_begin(y),
view .row_end(y), is_planar<View>());
+
+
+
476 template <
typename Iterator>
+
+
478 void destruct_range(Iterator first, Iterator last)
+
+
480 destruct_range_impl(first, last);
+
+
+
483 struct std_destruct_t
+
+
485 template <
typename Iterator>
+
486 void operator()(Iterator first, Iterator last)
const
+
+
488 destruct_range(first,last);
+
+
+
+
493 template <
typename It>
+
+
495 void destruct_aux(It first, It last, std::true_type)
+
+
497 static_for_each(first,last,std_destruct_t());
+
+
+
501 template <
typename It>
+
+
503 void destruct_aux(It first, It last, std::false_type)
+
+
505 destruct_range(first,last);
+
+
+
+
+
512 template <
typename View>
+
+
+
+
516 if (
view .is_1d_traversable())
+
+
518 detail::destruct_aux(
+
519 view .begin().x(),
view .end().x(), is_planar<View>());
-
-
-
-
-
-
-
-
535 template <
typename It,
typename P>
-
-
537 void uninitialized_fill_aux(It first, It last, P
const & p, std::true_type)
-
-
539 std::size_t channel = 0;
-
-
-
542 using pixel_t =
typename std::iterator_traits<It>::value_type;
-
543 while (channel < num_channels<pixel_t>::value)
-
-
545 std::uninitialized_fill(
-
546 dynamic_at_c(first,channel),
-
547 dynamic_at_c(last,channel),
-
548 dynamic_at_c(p,channel));
-
-
-
-
-
-
-
555 for (std::size_t c = 0; c < channel; ++c)
-
556 destruct_range(dynamic_at_c(first, c), dynamic_at_c(last, c));
-
+
+
+
523 for (std::ptrdiff_t y = 0; y <
view .height(); ++y)
+
524 detail::destruct_aux(
+
525 view .row_begin(y),
view .row_end(y), is_planar<View>());
+
+
+
+
+
+
+
+
+
541 template <
typename It,
typename P>
+
+
543 void uninitialized_fill_aux(It first, It last, P
const & p, std::true_type)
+
+
545 std::size_t channel = 0;
+
+
+
548 using pixel_t =
typename std::iterator_traits<It>::value_type;
+
549 while (channel < num_channels<pixel_t>::value)
+
+
551 std::uninitialized_fill(
+
552 dynamic_at_c(first,channel),
+
553 dynamic_at_c(last,channel),
+
554 dynamic_at_c(p,channel));
+
+
+
-
-
-
563 template <
typename It,
typename P>
-
-
565 void uninitialized_fill_aux(It first, It last, P
const & p, std::false_type)
-
-
567 std::uninitialized_fill(first,last,p);
-
-
-
-
-
576 template <
typename View,
typename Value>
-
-
578 if (
view .is_1d_traversable())
-
579 detail::uninitialized_fill_aux(
view .begin().x(),
view .end().x(),
-
580 val,is_planar<View>());
-
-
582 typename View::y_coord_t y = 0;
-
-
584 for (y=0; y<
view .height(); ++y)
-
585 detail::uninitialized_fill_aux(
view .row_begin(y),
view .row_end(y),
-
586 val,is_planar<View>());
-
-
588 for (
typename View::y_coord_t y0=0; y0<y; ++y0)
-
589 detail::destruct_aux(
view .row_begin(y0),
view .row_end(y0), is_planar<View>());
-
-
-
-
-
-
-
-
-
-
604 template <
typename It> BOOST_FORCEINLINE
-
605 void default_construct_range_impl(It first, It last, std::true_type)
-
-
-
-
-
610 using value_t =
typename std::iterator_traits<It>::value_type;
-
611 while (first != last)
-
-
613 new (first) value_t();
-
-
-
-
-
-
619 destruct_range(first1, first);
-
-
-
-
-
624 template <
typename It>
-
-
626 void default_construct_range_impl(It, It, std::false_type) {}
-
-
628 template <
typename It>
-
-
630 void default_construct_range(It first, It last)
-
-
632 default_construct_range_impl(first, last,
typename std::is_pointer<It>::type());
-
-
-
636 template <
typename It>
-
-
638 void default_construct_aux(It first, It last, std::true_type)
-
-
640 std::size_t channel = 0;
-
-
-
643 using pixel_t =
typename std::iterator_traits<It>::value_type;
-
644 while (channel < num_channels<pixel_t>::value)
-
-
646 default_construct_range(dynamic_at_c(first, channel), dynamic_at_c(last, channel));
-
-
-
-
-
-
652 for (std::size_t c = 0; c < channel; ++c)
-
653 destruct_range(dynamic_at_c(first, c), dynamic_at_c(last, c));
-
+
+
+
561 for (std::size_t c = 0; c < channel; ++c)
+
562 destruct_range(dynamic_at_c(first, c), dynamic_at_c(last, c));
+
+
+
+
+
569 template <
typename It,
typename P>
+
+
571 void uninitialized_fill_aux(It first, It last, P
const & p, std::false_type)
+
+
573 std::uninitialized_fill(first,last,p);
+
+
+
+
+
582 template <
typename View,
typename Value>
+
+
584 if (
view .is_1d_traversable())
+
585 detail::uninitialized_fill_aux(
view .begin().x(),
view .end().x(),
+
586 val,is_planar<View>());
+
+
588 typename View::y_coord_t y = 0;
+
+
590 for (y=0; y<
view .height(); ++y)
+
591 detail::uninitialized_fill_aux(
view .row_begin(y),
view .row_end(y),
+
592 val,is_planar<View>());
+
+
594 for (
typename View::y_coord_t y0=0; y0<y; ++y0)
+
595 detail::destruct_aux(
view .row_begin(y0),
view .row_end(y0), is_planar<View>());
+
+
+
+
+
+
+
+
+
+
610 template <
typename It> BOOST_FORCEINLINE
+
611 void default_construct_range_impl(It first, It last, std::true_type)
+
+
+
+
+
616 using value_t =
typename std::iterator_traits<It>::value_type;
+
617 while (first != last)
+
+
619 new (first) value_t();
+
+
+
+
+
+
625 destruct_range(first1, first);
+
+
+
+
+
630 template <
typename It>
+
+
632 void default_construct_range_impl(It, It, std::false_type) {}
+
+
634 template <
typename It>
+
+
636 void default_construct_range(It first, It last)
+
+
638 default_construct_range_impl(first, last,
typename std::is_pointer<It>::type());
+
+
+
642 template <
typename It>
+
+
644 void default_construct_aux(It first, It last, std::true_type)
+
+
646 std::size_t channel = 0;
+
+
+
649 using pixel_t =
typename std::iterator_traits<It>::value_type;
+
650 while (channel < num_channels<pixel_t>::value)
+
+
652 default_construct_range(dynamic_at_c(first, channel), dynamic_at_c(last, channel));
+
+
-
-
-
659 template <
typename It>
-
-
661 void default_construct_aux(It first, It last, std::false_type)
-
-
663 default_construct_range(first, last);
-
-
-
666 template <
typename View,
bool IsPlanar>
-
667 struct has_trivial_pixel_constructor
-
668 : detail::is_trivially_default_constructible<typename View::value_type>
-
-
-
671 template <
typename View>
-
672 struct has_trivial_pixel_constructor<View, true>
-
673 : detail::is_trivially_default_constructible<typename channel_type<View>::type>
-
-
-
676 template <
typename View,
bool IsTriviallyConstructible>
-
-
678 void default_construct_pixels_impl(
-
-
680 std::enable_if<!IsTriviallyConstructible>* =
nullptr )
-
-
682 if (
view .is_1d_traversable())
-
-
684 detail::default_construct_aux(
-
685 view .begin().x(),
view .end().x(), is_planar<View>());
-
-
-
-
689 typename View::y_coord_t y = 0;
-
-
-
692 for ( y = 0; y <
view .height(); ++y )
-
693 detail::default_construct_aux(
-
694 view .row_begin(y),
view .row_end(y), is_planar<View>());
-
-
+
+
+
658 for (std::size_t c = 0; c < channel; ++c)
+
659 destruct_range(dynamic_at_c(first, c), dynamic_at_c(last, c));
+
+
+
+
+
665 template <
typename It>
+
+
667 void default_construct_aux(It first, It last, std::false_type)
+
+
669 default_construct_range(first, last);
+
+
+
672 template <
typename View,
bool IsPlanar>
+
673 struct has_trivial_pixel_constructor
+
674 : detail::is_trivially_default_constructible<typename View::value_type>
+
+
+
677 template <
typename View>
+
678 struct has_trivial_pixel_constructor<View, true>
+
679 : detail::is_trivially_default_constructible<typename channel_type<View>::type>
+
+
+
682 template <
typename View,
bool IsTriviallyConstructible>
+
+
684 void default_construct_pixels_impl(
+
+
686 std::enable_if<!IsTriviallyConstructible>* =
nullptr )
+
+
688 if (
view .is_1d_traversable())
+
+
690 detail::default_construct_aux(
+
691 view .begin().x(),
view .end().x(), is_planar<View>());
+
+
+
+
695 typename View::y_coord_t y = 0;
+
-
698 for (
typename View::y_coord_t y0 = 0; y0 < y; ++y0 )
-
699 detail::destruct_aux(
-
700 view .row_begin(y0),
view .row_end(y0), is_planar<View>());
-
-
-
-
-
-
-
-
-
713 template <
typename View>
-
-
-
716 detail::default_construct_pixels_impl
-
-
-
719 detail::has_trivial_pixel_constructor
-
-
-
722 is_planar<View>::value
-
-
-
-
-
-
-
-
-
-
737 enum class copy_planarity_condition
-
-
-
740 interleaved_to_planar,
-
-
-
-
744 using planar_to_planar_type =
-
745 std::integral_constant
-
-
747 copy_planarity_condition, copy_planarity_condition::planar_to_planar
-
-
749 using interleaved_to_planar_type =
-
750 std::integral_constant
-
-
752 copy_planarity_condition, copy_planarity_condition::interleaved_to_planar
-
-
754 using mixed_to_interleaved_type =
-
755 std::integral_constant
-
-
757 copy_planarity_condition, copy_planarity_condition::mixed_to_interleaved
-
-
-
761 template <
typename It1,
typename It2>
-
-
763 void uninitialized_copy_aux(It1 first1, It1 last1, It2 first2, It2 last2, planar_to_planar_type)
-
-
765 std::size_t channel=0;
-
-
767 using pixel_t =
typename std::iterator_traits<It1>::value_type;
-
768 while (channel < num_channels<pixel_t>::value)
-
-
770 std::uninitialized_copy(
-
771 dynamic_at_c(first1, channel),
-
772 dynamic_at_c(last1, channel),
-
773 dynamic_at_c(first2, channel));
-
-
-
-
-
-
-
780 std::advance(last2, std::distance(first1, last1));
-
781 for (std::size_t c = 0; c < channel; ++c)
-
782 destruct_range(dynamic_at_c(first2, c), dynamic_at_c(last2, c));
-
-
-
-
-
788 template <
typename It1,
typename It2>
-
-
790 void uninitialized_copy_aux(It1 first1, It1 last1, It2 first2, It2 last2, mixed_to_interleaved_type)
-
-
792 std::uninitialized_copy(first1, last1, first2);
-
-
-
796 template <
typename It1,
typename It2>
-
-
798 void uninitialized_copy_aux(It1 first1, It1 last1, It2 first2, It2 last2,
-
799 interleaved_to_planar_type)
-
-
801 default_construct_aux(first2, last2, std::true_type());
-
-
803 typename It2::difference_type n = last2 - first2;
-
804 copier_n<It1,It2>()(first1, n, first2);
-
-
-
-
812 template <
typename View1,
typename View2>
-
-
-
815 using copy_planarity_condition = detail::copy_planarity_condition;
-
816 using copy_planarity_condition_type =
-
817 std::integral_constant
-
-
819 copy_planarity_condition,
-
820 !is_planar<View2>::value
-
821 ? copy_planarity_condition::mixed_to_interleaved
-
822 : (is_planar<View1>::value
-
823 ? copy_planarity_condition::planar_to_planar
-
824 : copy_planarity_condition::interleaved_to_planar)
-
-
826 BOOST_ASSERT(view1.dimensions() == view2.dimensions());
-
-
828 if (view1.is_1d_traversable() && view2.is_1d_traversable())
-
-
830 detail::uninitialized_copy_aux(
-
831 view1.begin().x(), view1.end().x(), view2.begin().x(), view2.end().x(),
-
832 copy_planarity_condition_type());
-
-
+
698 for ( y = 0; y <
view .height(); ++y )
+
699 detail::default_construct_aux(
+
700 view .row_begin(y),
view .row_end(y), is_planar<View>());
+
+
+
+
704 for (
typename View::y_coord_t y0 = 0; y0 < y; ++y0 )
+
705 detail::destruct_aux(
+
706 view .row_begin(y0),
view .row_end(y0), is_planar<View>());
+
+
+
+
+
+
+
+
+
719 template <
typename View>
+
+
+
722 detail::default_construct_pixels_impl
+
+
+
725 detail::has_trivial_pixel_constructor
+
+
+
728 is_planar<View>::value
+
+
+
+
+
+
+
+
+
+
743 enum class copy_planarity_condition
+
+
+
746 interleaved_to_planar,
+
+
+
+
750 using planar_to_planar_type =
+
751 std::integral_constant
+
+
753 copy_planarity_condition, copy_planarity_condition::planar_to_planar
+
+
755 using interleaved_to_planar_type =
+
756 std::integral_constant
+
+
758 copy_planarity_condition, copy_planarity_condition::interleaved_to_planar
+
+
760 using mixed_to_interleaved_type =
+
761 std::integral_constant
+
+
763 copy_planarity_condition, copy_planarity_condition::mixed_to_interleaved
+
+
+
767 template <
typename It1,
typename It2>
+
+
769 void uninitialized_copy_aux(It1 first1, It1 last1, It2 first2, It2 last2, planar_to_planar_type)
+
+
771 std::size_t channel=0;
+
+
773 using pixel_t =
typename std::iterator_traits<It1>::value_type;
+
774 while (channel < num_channels<pixel_t>::value)
+
+
776 std::uninitialized_copy(
+
777 dynamic_at_c(first1, channel),
+
778 dynamic_at_c(last1, channel),
+
779 dynamic_at_c(first2, channel));
+
+
+
+
+
+
+
786 std::advance(last2, std::distance(first1, last1));
+
787 for (std::size_t c = 0; c < channel; ++c)
+
788 destruct_range(dynamic_at_c(first2, c), dynamic_at_c(last2, c));
+
+
+
+
+
794 template <
typename It1,
typename It2>
+
+
796 void uninitialized_copy_aux(It1 first1, It1 last1, It2 first2, It2 last2, mixed_to_interleaved_type)
+
+
798 std::uninitialized_copy(first1, last1, first2);
+
+
+
802 template <
typename It1,
typename It2>
+
+
804 void uninitialized_copy_aux(It1 first1, It1 last1, It2 first2, It2 last2,
+
805 interleaved_to_planar_type)
+
+
807 default_construct_aux(first2, last2, std::true_type());
+
+
809 typename It2::difference_type n = last2 - first2;
+
810 copier_n<It1,It2>()(first1, n, first2);
+
+
+
+
818 template <
typename View1,
typename View2>
+
+
+
821 using copy_planarity_condition = detail::copy_planarity_condition;
+
822 using copy_planarity_condition_type =
+
823 std::integral_constant
+
+
825 copy_planarity_condition,
+
826 !is_planar<View2>::value
+
827 ? copy_planarity_condition::mixed_to_interleaved
+
828 : (is_planar<View1>::value
+
829 ? copy_planarity_condition::planar_to_planar
+
830 : copy_planarity_condition::interleaved_to_planar)
+
+
832 BOOST_ASSERT(view1.dimensions() == view2.dimensions());
+
+
834 if (view1.is_1d_traversable() && view2.is_1d_traversable())
-
836 typename View1::y_coord_t y = 0;
-
-
-
839 for (y = 0; y < view1.height(); ++y)
-
840 detail::uninitialized_copy_aux(
-
841 view1.row_begin(y), view1.row_end(y), view2.row_begin(y), view2.row_end(y),
-
842 copy_planarity_condition_type());
-
-
-
-
846 for (
typename View1::y_coord_t y0 = 0; y0 < y; ++y0)
-
847 detail::destruct_aux(view2.row_begin(y0), view2.row_end(y0), is_planar<View2>());
-
+
836 detail::uninitialized_copy_aux(
+
837 view1.begin().x(), view1.end().x(), view2.begin().x(), view2.end().x(),
+
838 copy_planarity_condition_type());
+
+
+
+
842 typename View1::y_coord_t y = 0;
+
+
+
845 for (y = 0; y < view1.height(); ++y)
+
846 detail::uninitialized_copy_aux(
+
847 view1.row_begin(y), view1.row_end(y), view2.row_begin(y), view2.row_end(y),
+
848 copy_planarity_condition_type());
-
-
-
-
-
-
-
867 template <
typename View,
typename F>
-
-
-
870 if (
view .is_1d_traversable())
-
-
872 return std::for_each(
view .begin().x(),
view .end().x(), fun);
-
-
-
-
876 for (std::ptrdiff_t y = 0; y <
view .height(); ++y)
-
877 std::for_each(
view .row_begin(y),
view .row_end(y), fun);
-
+
+
+
852 for (
typename View1::y_coord_t y0 = 0; y0 < y; ++y0)
+
853 detail::destruct_aux(view2.row_begin(y0), view2.row_end(y0), is_planar<View2>());
+
+
+
+
+
+
+
+
+
873 template <
typename View,
typename F>
+
+
+
876 if (
view .is_1d_traversable())
+
+
878 return std::for_each(
view .begin().x(),
view .end().x(), fun);
-
-
-
-
887 template <
typename View,
typename F>
-
-
-
890 typename View::xy_locator loc =
view .xy_at(0, 0);
-
891 for (std::ptrdiff_t y = 0; y <
view .height(); ++y)
-
-
893 for (std::ptrdiff_t x = 0; x <
view .width(); ++x, ++loc.x())
-
-
895 loc.x() -=
view .width(); ++loc.y();
-
-
-
-
-
-
-
-
910 template <
typename View,
typename F>
-
-
-
913 if (
view .is_1d_traversable())
-
-
915 std::generate(
view .begin().x(),
view .end().x(), fun);
-
-
-
-
919 for (std::ptrdiff_t y = 0; y <
view .height(); ++y)
-
920 std::generate(
view .row_begin(y),
view .row_end(y), fun);
-
-
-
-
-
-
-
932 template <
typename I1,
typename I2>
-
-
934 bool equal_n(I1 i1, std::ptrdiff_t n, I2 i2);
-
-
+
+
+
882 for (std::ptrdiff_t y = 0; y <
view .height(); ++y)
+
883 std::for_each(
view .row_begin(y),
view .row_end(y), fun);
+
+
+
+
+
+
893 template <
typename View,
typename F>
+
+
+
896 typename View::xy_locator loc =
view .xy_at(0, 0);
+
897 for (std::ptrdiff_t y = 0; y <
view .height(); ++y)
+
+
899 for (std::ptrdiff_t x = 0; x <
view .width(); ++x, ++loc.x())
+
+
901 loc.x() -=
view .width(); ++loc.y();
+
+
+
+
+
+
+
+
916 template <
typename View,
typename F>
+
+
+
919 if (
view .is_1d_traversable())
+
+
921 std::generate(
view .begin().x(),
view .end().x(), fun);
+
+
+
+
925 for (std::ptrdiff_t y = 0; y <
view .height(); ++y)
+
926 std::generate(
view .row_begin(y),
view .row_end(y), fun);
+
+
+
+
+
938 template <
typename I1,
typename I2>
-
-
-
-
942 bool operator()(I1 i1, std::ptrdiff_t n, I2 i2)
const
-
-
-
-
-
-
950 template <
typename T,
typename CS>
-
-
-
-
-
-
-
-
-
-
960 template <
typename T,
typename CS>
-
-
-
-
-
968 template <
typename IC,
typename CS>
-
-
-
-
-
-
-
975 constexpr std::ptrdiff_t byte_size = n *
sizeof (
typename std::iterator_traits<IC>::value_type);
-
976 for (std::ptrdiff_t i = 0; i < mp11::mp_size<CS>::value; ++i)
-
-
978 if (memcmp(dynamic_at_c(i1, i), dynamic_at_c(i2, i), byte_size) != 0)
-
-
-
-
-
-
-
988 template <
typename Loc,
typename It>
-
-
-
-
-
-
994 gil_function_requires<boost::gil::PixelLocatorConcept<Loc>>();
-
995 gil_function_requires<boost::gil::PixelIteratorConcept<It>>();
-
-
-
998 std::ptrdiff_t
const num = std::min<std::ptrdiff_t>(n, i1.width() - i1.x_pos());
-
999 if (!equal_n(i1.x(), num, i2))
-
-
-
-
-
-
-
-
-
-
1012 template <
typename It,
typename Loc>
-
-
-
-
-
-
1018 gil_function_requires<boost::gil::PixelIteratorConcept<It>>();
-
1019 gil_function_requires<boost::gil::PixelLocatorConcept<Loc>>();
-
-
-
1022 std::ptrdiff_t
const num = std::min<std::ptrdiff_t>(n, i2.width() - i2.x_pos());
-
1023 if (!equal_n(i1, num, i2.x()))
-
-
-
-
-
-
-
-
-
-
1034 template <
typename Loc1,
typename Loc2>
-
-
-
1037 gil_function_requires<boost::gil::PixelLocatorConcept<Loc1>>();
-
1038 gil_function_requires<boost::gil::PixelLocatorConcept<Loc2>>();
-
1039 if (i1.x_pos()!=i2.x_pos() || i1.width()!=i2.width()) {
-
-
1041 if (*i1++!=*i2++)
return false ;
-
-
-
-
1045 std::ptrdiff_t num=std::min<const std::ptrdiff_t>(n,i2.width()-i2.x_pos());
-
1046 if (!equal_n(i1.x(), num, i2.x()))
-
-
-
-
-
-
-
-
-
-
-
1057 template <
typename I1,
typename I2> BOOST_FORCEINLINE
-
1058 bool equal_n(I1 i1, std::ptrdiff_t n, I2 i2) {
-
1059 return detail::equal_n_fn<I1,I2>()(i1,n,i2);
-
-
+
+
940 bool equal_n(I1 i1, std::ptrdiff_t n, I2 i2);
+
+
+
+
944 template <
typename I1,
typename I2>
+
+
+
+
948 bool operator()(I1 i1, std::ptrdiff_t n, I2 i2)
const
+
+
+
+
+
+
956 template <
typename T,
typename CS>
+
+
+
+
+
+
+
+
+
+
966 template <
typename T,
typename CS>
+
+
+
+
+
974 template <
typename IC,
typename CS>
+
+
+
+
+
+
+
981 constexpr std::ptrdiff_t byte_size = n *
sizeof (
typename std::iterator_traits<IC>::value_type);
+
982 for (std::ptrdiff_t i = 0; i < mp11::mp_size<CS>::value; ++i)
+
+
984 if (memcmp(dynamic_at_c(i1, i), dynamic_at_c(i2, i), byte_size) != 0)
+
+
+
+
+
+
+
994 template <
typename Loc,
typename It>
+
+
+
+
+
+
1000 gil_function_requires<boost::gil::PixelLocatorConcept<Loc>>();
+
1001 gil_function_requires<boost::gil::PixelIteratorConcept<It>>();
+
+
+
1004 std::ptrdiff_t
const num = std::min<std::ptrdiff_t>(n, i1.width() - i1.x_pos());
+
1005 if (!equal_n(i1.x(), num, i2))
+
+
+
+
+
+
+
+
+
+
1018 template <
typename It,
typename Loc>
+
+
+
+
+
+
1024 gil_function_requires<boost::gil::PixelIteratorConcept<It>>();
+
1025 gil_function_requires<boost::gil::PixelLocatorConcept<Loc>>();
+
+
+
1028 std::ptrdiff_t
const num = std::min<std::ptrdiff_t>(n, i2.width() - i2.x_pos());
+
1029 if (!equal_n(i1, num, i2.x()))
+
+
+
+
+
+
+
+
+
+
1040 template <
typename Loc1,
typename Loc2>
+
+
+
1043 gil_function_requires<boost::gil::PixelLocatorConcept<Loc1>>();
+
1044 gil_function_requires<boost::gil::PixelLocatorConcept<Loc2>>();
+
1045 if (i1.x_pos()!=i2.x_pos() || i1.width()!=i2.width()) {
+
+
1047 if (*i1++!=*i2++)
return false ;
+
+
+
+
1051 std::ptrdiff_t num=std::min<const std::ptrdiff_t>(n,i2.width()-i2.x_pos());
+
1052 if (!equal_n(i1.x(), num, i2.x()))
+
+
+
+
+
+
+
+
+
-
-
1075 template <
typename Loc1,
typename Loc2> BOOST_FORCEINLINE
-
-
1077 boost::gil::gil_function_requires<boost::gil::PixelLocatorConcept<Loc1>>();
-
1078 boost::gil::gil_function_requires<boost::gil::PixelLocatorConcept<Loc2>>();
-
1079 std::ptrdiff_t n=last-first;
-
1080 if (first.is_1d_traversable()) {
-
1081 if (first2.is_1d_traversable())
-
1082 return boost::gil::detail::equal_n_fn<typename Loc1::x_iterator,typename Loc2::x_iterator>()(first.x(),n, first2.x());
-
-
1084 return boost::gil::detail::equal_n_fn<typename Loc1::x_iterator,boost::gil::iterator_from_2d<Loc2>>()(first.x(),n, first2);
-
-
1086 if (first2.is_1d_traversable())
-
-
-
-
-
-
-
-
1094 namespace boost {
namespace gil {
-
1097 template <
typename View1,
typename View2> BOOST_FORCEINLINE
-
-
1099 BOOST_ASSERT(v1.dimensions() == v2.dimensions());
-
1100 return std::equal (v1.begin(),v1.end(),v2.begin());
-
-
+
1063 template <
typename I1,
typename I2> BOOST_FORCEINLINE
+
1064 bool equal_n(I1 i1, std::ptrdiff_t n, I2 i2) {
+
1065 return detail::equal_n_fn<I1,I2>()(i1,n,i2);
+
+
+
+
+
1081 template <
typename Loc1,
typename Loc2> BOOST_FORCEINLINE
+
+
1083 boost::gil::gil_function_requires<boost::gil::PixelLocatorConcept<Loc1>>();
+
1084 boost::gil::gil_function_requires<boost::gil::PixelLocatorConcept<Loc2>>();
+
1085 std::ptrdiff_t n=last-first;
+
1086 if (first.is_1d_traversable()) {
+
1087 if (first2.is_1d_traversable())
+
1088 return boost::gil::detail::equal_n_fn<typename Loc1::x_iterator,typename Loc2::x_iterator>()(first.x(),n, first2.x());
+
+
1090 return boost::gil::detail::equal_n_fn<typename Loc1::x_iterator,boost::gil::iterator_from_2d<Loc2>>()(first.x(),n, first2);
+
+
1092 if (first2.is_1d_traversable())
+
+
+
+
+
+
+
+
1100 namespace boost {
namespace gil {
+
1103 template <
typename View1,
typename View2> BOOST_FORCEINLINE
+
+
1105 BOOST_ASSERT(v1.dimensions() == v2.dimensions());
+
1106 return std::equal (v1.begin(),v1.end(),v2.begin());
+
-
-
1115 template <
typename View1,
typename View2,
typename F> BOOST_FORCEINLINE
-
-
1117 BOOST_ASSERT(src.dimensions() == dst.dimensions());
-
1118 for (std::ptrdiff_t y=0; y<src.height(); ++y) {
-
1119 typename View1::x_iterator srcIt=src.row_begin(y);
-
1120 typename View2::x_iterator dstIt=dst.row_begin(y);
-
1121 for (std::ptrdiff_t x=0; x<src.width(); ++x)
-
1122 dstIt[x]=fun(srcIt[x]);
-
-
-
-
-
1129 template <
typename View1,
typename View2,
typename View3,
typename F> BOOST_FORCEINLINE
-
-
1131 for (std::ptrdiff_t y=0; y<dst.height(); ++y) {
-
1132 typename View1::x_iterator srcIt1=src1.row_begin(y);
-
1133 typename View2::x_iterator srcIt2=src2.row_begin(y);
-
1134 typename View3::x_iterator dstIt=dst.row_begin(y);
-
1135 for (std::ptrdiff_t x=0; x<dst.width(); ++x)
-
1136 dstIt[x]=fun(srcIt1[x],srcIt2[x]);
-
-
-
-
-
-
1147 template <
typename View1,
typename View2,
typename F> BOOST_FORCEINLINE
-
-
1149 BOOST_ASSERT(src.dimensions() == dst.dimensions());
-
1150 typename View1::xy_locator loc=src.xy_at(0,0);
-
1151 for (std::ptrdiff_t y=0; y<src.height(); ++y) {
-
1152 typename View2::x_iterator dstIt=dst.row_begin(y);
-
1153 for (std::ptrdiff_t x=0; x<src.width(); ++x, ++loc.x())
-
-
1155 loc.x()-=src.width(); ++loc.y();
-
-
-
-
-
1162 template <
typename View1,
typename View2,
typename View3,
typename F> BOOST_FORCEINLINE
-
-
1164 BOOST_ASSERT(src1.dimensions() == dst.dimensions());
-
1165 BOOST_ASSERT(src2.dimensions() == dst.dimensions());
-
1166 typename View1::xy_locator loc1=src1.xy_at(0,0);
-
1167 typename View2::xy_locator loc2=src2.xy_at(0,0);
-
1168 for (std::ptrdiff_t y=0; y<src1.height(); ++y) {
-
1169 typename View3::x_iterator dstIt=dst.row_begin(y);
-
1170 for (std::ptrdiff_t x=0; x<src1.width(); ++x, ++loc1.x(), ++loc2.x())
-
1171 dstIt[x]=fun(loc1,loc2);
-
1172 loc1.x()-=src1.width(); ++loc1.y();
-
1173 loc2.x()-=src2.width(); ++loc2.y();
-
-
-
-
-
-
+
+
+
1121 template <
typename View1,
typename View2,
typename F> BOOST_FORCEINLINE
+
+
1123 BOOST_ASSERT(src.dimensions() == dst.dimensions());
+
1124 for (std::ptrdiff_t y=0; y<src.height(); ++y) {
+
1125 typename View1::x_iterator srcIt=src.row_begin(y);
+
1126 typename View2::x_iterator dstIt=dst.row_begin(y);
+
1127 for (std::ptrdiff_t x=0; x<src.width(); ++x)
+
1128 dstIt[x]=fun(srcIt[x]);
+
+
+
+
+
1135 template <
typename View1,
typename View2,
typename View3,
typename F> BOOST_FORCEINLINE
+
+
1137 for (std::ptrdiff_t y=0; y<dst.height(); ++y) {
+
1138 typename View1::x_iterator srcIt1=src1.row_begin(y);
+
1139 typename View2::x_iterator srcIt2=src2.row_begin(y);
+
1140 typename View3::x_iterator dstIt=dst.row_begin(y);
+
1141 for (std::ptrdiff_t x=0; x<dst.width(); ++x)
+
1142 dstIt[x]=fun(srcIt1[x],srcIt2[x]);
+
+
+
+
+
+
1153 template <
typename View1,
typename View2,
typename F> BOOST_FORCEINLINE
+
+
1155 BOOST_ASSERT(src.dimensions() == dst.dimensions());
+
1156 typename View1::xy_locator loc=src.xy_at(0,0);
+
1157 for (std::ptrdiff_t y=0; y<src.height(); ++y) {
+
1158 typename View2::x_iterator dstIt=dst.row_begin(y);
+
1159 for (std::ptrdiff_t x=0; x<src.width(); ++x, ++loc.x())
+
+
1161 loc.x()-=src.width(); ++loc.y();
+
+
+
+
+
1168 template <
typename View1,
typename View2,
typename View3,
typename F> BOOST_FORCEINLINE
+
+
1170 BOOST_ASSERT(src1.dimensions() == dst.dimensions());
+
1171 BOOST_ASSERT(src2.dimensions() == dst.dimensions());
+
1172 typename View1::xy_locator loc1=src1.xy_at(0,0);
+
1173 typename View2::xy_locator loc2=src2.xy_at(0,0);
+
1174 for (std::ptrdiff_t y=0; y<src1.height(); ++y) {
+
1175 typename View3::x_iterator dstIt=dst.row_begin(y);
+
1176 for (std::ptrdiff_t x=0; x<src1.width(); ++x, ++loc1.x(), ++loc2.x())
+
1177 dstIt[x]=fun(loc1,loc2);
+
1178 loc1.x()-=src1.width(); ++loc1.y();
+
1179 loc2.x()-=src2.width(); ++loc2.y();
+
+
+
+
+
+
+
+
1191 template <
typename T>
+
+
+
1195 template <
typename Iterator1,
typename Iterator2,
typename BinaryFunction>
+
1196 BinaryFunction for_each(Iterator1 first1, Iterator1 last1, Iterator2 first2, BinaryFunction f)
+
+
1198 while (first1 != last1)
+
1199 f(*first1++, *first2++);
+
+
+
+
1203 template <
typename SrcIterator,
typename DstIterator>
+
+
1205 auto assign_pixels(SrcIterator src, SrcIterator src_end, DstIterator dst) -> DstIterator
+
+
1207 for_each(src, src_end, dst,
+
+
+
1210 typename pixel_proxy<
typename std::iterator_traits<SrcIterator>::value_type>::type,
+
1211 typename pixel_proxy<
typename std::iterator_traits<DstIterator>::value_type>::type
+
+
1213 return dst + (src_end - src);
+
+
+
+
+
1218 template <std::
size_t Size>
+
1219 struct inner_product_k_t
+
+
+
+
1223 class InputIterator1,
+
1224 class InputIterator2,
+
+
1226 class BinaryOperation1,
+
1227 class BinaryOperation2
+
+
+
1230 InputIterator1 first1,
+
1231 InputIterator2 first2, T init,
+
1232 BinaryOperation1 binary_op1,
+
1233 BinaryOperation2 binary_op2)
+
+
1235 init = binary_op1(init, binary_op2(*first1, *first2));
+
1236 return inner_product_k_t<Size - 1>::template apply(
+
1237 first1 + 1, first2 + 1, init, binary_op1, binary_op2);
+
+
+
+
+
1242 struct inner_product_k_t<0>
+
+
+
+
1246 class InputIterator1,
+
1247 class InputIterator2,
+
+
1249 class BinaryOperation1,
+
1250 class BinaryOperation2
+
+
+
1253 InputIterator1 first1,
+
1254 InputIterator2 first2,
+
+
1256 BinaryOperation1 binary_op1,
+
1257 BinaryOperation2 binary_op2)
+
+
+
+
+
+
+
+
+
+
+
1269 class InputIterator1,
+
1270 class InputIterator2,
+
+
1272 class BinaryOperation1,
+
1273 class BinaryOperation2
+
+
+
+
1277 InputIterator1 first1,
+
1278 InputIterator2 first2,
+
+
1280 BinaryOperation1 binary_op1,
+
1281 BinaryOperation2 binary_op2)
+
+
1283 return detail::inner_product_k_t<Size>::template apply(
+
1284 first1, first2, init, binary_op1, binary_op2);
+
+
+
+
+
1290 typename PixelAccum,
+
1291 typename SrcIterator,
+
1292 typename KernelIterator,
+
+
1294 typename DstIterator
+
+
+
1297 auto correlate_pixels_n(
+
1298 SrcIterator src_begin,
+
1299 SrcIterator src_end,
+
1300 KernelIterator kernel_begin,
+
+
1302 DstIterator dst_begin)
+
+
+
1305 using src_pixel_ref_t =
typename pixel_proxy
+
+
1307 typename std::iterator_traits<SrcIterator>::value_type
+
+
1309 using dst_pixel_ref_t =
typename pixel_proxy
+
+
1311 typename std::iterator_traits<DstIterator>::value_type
+
+
1313 using kernel_value_t =
typename std::iterator_traits<KernelIterator>::value_type;
+
+
1315 PixelAccum accum_zero;
+
1316 pixel_zeros_t<PixelAccum>()(accum_zero);
+
1317 while (src_begin != src_end)
+
+
1319 pixel_assigns_t<PixelAccum, dst_pixel_ref_t>()(
+
+
+
1322 src_begin + kernel_size,
+
+
+
1325 pixel_plus_t<PixelAccum, PixelAccum, PixelAccum>(),
+
1326 pixel_multiplies_scalar_t<src_pixel_ref_t, kernel_value_t, PixelAccum>()),
+
+
+
+
+
+
+
+
+
+
+
+
1339 typename PixelAccum,
+
1340 typename SrcIterator,
+
1341 typename KernelIterator,
+
1342 typename DstIterator
+
+
+
1345 auto correlate_pixels_k(
+
1346 SrcIterator src_begin,
+
1347 SrcIterator src_end,
+
1348 KernelIterator kernel_begin,
+
1349 DstIterator dst_begin)
+
+
+
1352 using src_pixel_ref_t =
typename pixel_proxy
+
+
1354 typename std::iterator_traits<SrcIterator>::value_type
+
+
1356 using dst_pixel_ref_t =
typename pixel_proxy
+
+
1358 typename std::iterator_traits<DstIterator>::value_type
+
+
1360 using kernel_type =
typename std::iterator_traits<KernelIterator>::value_type;
+
+
1362 PixelAccum accum_zero;
+
1363 pixel_zeros_t<PixelAccum>()(accum_zero);
+
1364 while (src_begin != src_end)
+
+
1366 pixel_assigns_t<PixelAccum, dst_pixel_ref_t>()(
+
1367 inner_product_k<Size>(
+
+
+
+
1371 pixel_plus_t<PixelAccum, PixelAccum, PixelAccum>(),
+
1372 pixel_multiplies_scalar_t<src_pixel_ref_t, kernel_type, PixelAccum>()),
+
+
+
+
+
+
+
+
+
1385 template <
typename PixelAccum,
typename SrcView,
typename Scalar,
typename DstView>
+
+
1387 void view_multiplies_scalar(SrcView
const & src_view, Scalar
const & scalar, DstView
const & dst_view)
+
+
1389 static_assert(std::is_scalar<Scalar>::value,
"Scalar is not scalar" );
+
1390 BOOST_ASSERT(src_view.dimensions() == dst_view.dimensions());
+
1391 using src_pixel_ref_t =
typename pixel_proxy<typename SrcView::value_type>::type;
+
1392 using dst_pixel_ref_t =
typename pixel_proxy<typename DstView::value_type>::type;
+
1393 using y_coord_t =
typename SrcView::y_coord_t;
+
+
1395 y_coord_t
const height = src_view.height();
+
1396 for (y_coord_t y = 0; y < height; ++y)
+
+
1398 typename SrcView::x_iterator it_src = src_view.row_begin(y);
+
1399 typename DstView::x_iterator it_dst = dst_view.row_begin(y);
+
1400 typename SrcView::x_iterator it_src_end = src_view.row_end(y);
+
1401 while (it_src != it_src_end)
+
+
1403 pixel_assigns_t<PixelAccum, dst_pixel_ref_t>()(
+
1404 pixel_multiplies_scalar_t<src_pixel_ref_t, Scalar, PixelAccum>()(*it_src, scalar),
+
+
+
+
+
+
+
+
+
+
1416 enum class boundary_option
+
+
+
+
+
+
+
+
+
+
+
+
1428 template <
typename SrcView,
typename RltView>
+
1429 void extend_row_impl(
+
1430 SrcView
const & src_view,
+
1431 RltView result_view,
+
1432 std::size_t extend_count,
+
1433 boundary_option option)
+
+
1435 std::ptrdiff_t extend_count_ =
static_cast< std::ptrdiff_t
> (extend_count);
+
+
1437 if (option == boundary_option::extend_constant)
+
+
1439 for (std::ptrdiff_t i = 0; i < result_view.height(); i++)
+
+
1441 if (i >= extend_count_ && i < extend_count_ + src_view.height())
+
+
+
1444 src_view.row_begin(i - extend_count_),
+
1445 src_view.row_end(i - extend_count_),
+
1446 result_view.row_begin(i)
+
+
+
1449 else if (i < extend_count_)
+
+
1451 assign_pixels(src_view.row_begin(0), src_view.row_end(0), result_view.row_begin(i));
+
+
+
+
+
1456 src_view.row_begin(src_view.height() - 1),
+
1457 src_view.row_end(src_view.height() - 1),
+
1458 result_view.row_begin(i)
+
+
+
+
+
+
1464 else if (option == boundary_option::extend_zero)
+
+
1466 typename SrcView::value_type acc_zero;
+
1467 pixel_zeros_t<typename SrcView::value_type>()(acc_zero);
+
+
1469 for (std::ptrdiff_t i = 0; i < result_view.height(); i++)
+
+
1471 if (i >= extend_count_ && i < extend_count_ + src_view.height())
+
+
+
1474 src_view.row_begin(i - extend_count_),
+
1475 src_view.row_end(i - extend_count_),
+
1476 result_view.row_begin(i)
+
+
+
+
+
1481 std::fill_n(result_view.row_begin(i), result_view.width(), acc_zero);
+
+
+
+
1485 else if (option == boundary_option::extend_padded)
+
+
+
+
+
+
+
1492 src_view.height() + (2 * extend_count)
+
+
1494 for (std::ptrdiff_t i = 0; i < result_view.height(); i++)
+
+
+
1497 original_view.row_begin(i),
+
1498 original_view.row_end(i),
+
1499 result_view.row_begin(i)
+
+
+
+
+
+
1505 BOOST_ASSERT_MSG(
false ,
"Invalid boundary option" );
+
+
+
+
+
+
+
1518 template <
typename SrcView>
+
+
1520 SrcView
const & src_view,
+
1521 std::size_t extend_count,
+
1522 boundary_option option
+
1523 ) ->
typename gil::image<typename SrcView::value_type>
+
+
1525 typename gil::image<typename SrcView::value_type>
+
1526 result_img(src_view.width(), src_view.height() + (2 * extend_count));
+
+
1528 auto result_view =
view (result_img);
+
1529 detail::extend_row_impl(src_view, result_view, extend_count, option);
+
+
+
+
+
1540 template <
typename SrcView>
+
+
1542 SrcView
const & src_view,
+
1543 std::size_t extend_count,
+
1544 boundary_option option
+
1545 ) ->
typename gil::image<typename SrcView::value_type>
+
+
+
+
1549 typename gil::image<typename SrcView::value_type>
+
1550 result_img(src_view.width() + (2 * extend_count), src_view.height());
+
+
+
1553 detail::extend_row_impl(src_view_rotate, result_view, extend_count, option);
+
+
+
+
1563 template <
typename SrcView>
+
1564 auto extend_boundary(
+
1565 SrcView
const & src_view,
+
1566 std::size_t extend_count,
+
1567 boundary_option option
+
1568 ) ->
typename gil::image<typename SrcView::value_type>
+
+
1570 if (option == boundary_option::extend_padded)
+
+
1572 typename gil::image<typename SrcView::value_type>
+
1573 result_img(src_view.width()+(2 * extend_count), src_view.height()+(2 * extend_count));
+
1574 typename gil::image<typename SrcView::value_type>::view_t result_view =
view (result_img);
+
+
+
+
+
+
1580 src_view.width() + (2 * extend_count),
+
1581 src_view.height() + (2 * extend_count)
+
+
+
1584 for (std::ptrdiff_t i = 0; i < result_view.height(); i++)
+
+
+
1587 original_view.row_begin(i),
+
1588 original_view.row_end(i),
+
1589 result_view.row_begin(i)
+
+
+
+
+
+
+
1596 auto auxilary_img = extend_col(src_view, extend_count, option);
+
1597 return extend_row(
view (auxilary_img), extend_count, option);
+
+
+
+
+
-
MEMORY-BASED STEP ITERATOR.
Definition: algorithm.hpp:36
-
Definition: algorithm.hpp:183
-
BOOST_FORCEINLINE void copy_and_convert_pixels(const View1 &src, const View2 &dst)
Definition: algorithm.hpp:335
-
BOOST_FORCEINLINE void fill_pixels(View const &view, Value const &value)
std::fill for image views
Definition: algorithm.hpp:410
-
BOOST_FORCEINLINE bool equal_pixels(const View1 &v1, const View2 &v2)
std::equal for image views
Definition: algorithm.hpp:1098
-
Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept,...
Definition: metafunctions.hpp:23
-
A generic binary operation on views.
Definition: algorithm.hpp:81
-
void generate_pixels(View const &view, F fun)
std::generate for image views
Definition: algorithm.hpp:911
-
void uninitialized_copy_pixels(View1 const &view1, View2 const &view2)
std::uninitialized_copy for image views. Does not support planar heterogeneous views....
Definition: algorithm.hpp:813
+
MEMORY-BASED STEP ITERATOR.
Definition: algorithm.hpp:42
+
Definition: algorithm.hpp:189
+
BOOST_FORCEINLINE void copy_and_convert_pixels(const View1 &src, const View2 &dst)
Definition: algorithm.hpp:341
+
BOOST_FORCEINLINE void fill_pixels(View const &view, Value const &value)
std::fill for image views
Definition: algorithm.hpp:416
+
Reference proxy associated with a type that has a "reference" member type alias.
Definition: algorithm.hpp:1192
+
BOOST_FORCEINLINE bool equal_pixels(const View1 &v1, const View2 &v2)
std::equal for image views
Definition: algorithm.hpp:1104
+
Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept,...
Definition: metafunctions.hpp:24
+
A generic binary operation on views.
Definition: algorithm.hpp:87
+
void generate_pixels(View const &view, F fun)
std::generate for image views
Definition: algorithm.hpp:917
+
void uninitialized_copy_pixels(View1 const &view1, View2 const &view2)
std::uninitialized_copy for image views. Does not support planar heterogeneous views....
Definition: algorithm.hpp:819
Provides 1D random-access navigation to the pixels of the image. Models: PixelIteratorConcept,...
Definition: iterator_from_2d.hpp:42
-
void fill(boost::gil::iterator_from_2d< IL > first, boost::gil::iterator_from_2d< IL > last, const V &val)
std::fill(I,I,V) with I being a iterator_from_2d
Definition: algorithm.hpp:359
-
+
void fill(boost::gil::iterator_from_2d< IL > first, boost::gil::iterator_from_2d< IL > last, const V &val)
std::fill(I,I,V) with I being a iterator_from_2d
Definition: algorithm.hpp:365
+
Returns whether two views are compatible.
Definition: concepts/image_view.hpp:522
-
-
BOOST_FORCEINLINE void copy_pixels(const View1 &src, const View2 &dst)
std::copy for image views
Definition: algorithm.hpp:282
-
BOOST_FORCEINLINE boost::gil::iterator_from_2d< OL > copy1(boost::gil::iterator_from_2d< IL > first, boost::gil::iterator_from_2d< IL > last, boost::gil::iterator_from_2d< OL > dst)
std::copy(I1,I1,I2) with I1 and I2 being a iterator_from_2d
Definition: algorithm.hpp:273
-
const image< Pixel, IsPlanar, Alloc >::view_t & view(image< Pixel, IsPlanar, Alloc > &img)
Returns the non-constant-pixel view of an image.
Definition: image.hpp:548
-
BOOST_FORCEINLINE void destruct_pixels(View const &view)
Invokes the in-place destructor on every pixel of the view.
Definition: algorithm.hpp:508
-
F for_each_pixel_position(View const &view, F fun)
Definition: algorithm.hpp:888
-
void uninitialized_fill_pixels(const View &view, const Value &val)
std::uninitialized_fill for image views. Does not support planar heterogeneous views....
Definition: algorithm.hpp:577
-
void default_construct_pixels(View const &view)
Invokes the in-place default constructor on every pixel of the (uninitialized) view....
Definition: algorithm.hpp:714
-
BOOST_FORCEINLINE boost::gil::planar_pixel_iterator< IC2, CS > copy(boost::gil::planar_pixel_iterator< IC1, CS > first, boost::gil::planar_pixel_iterator< IC1, CS > last, boost::gil::planar_pixel_iterator< IC2, CS > dst)
Copy when both src and dst are planar pointers is copy for each channel.
Definition: algorithm.hpp:171
-
struct to do std::fill
Definition: algorithm.hpp:381
-
F for_each_pixel(View const &view, F fun)
Definition: algorithm.hpp:868
-
BOOST_FORCEINLINE bool equal(boost::gil::iterator_from_2d< Loc1 > first, boost::gil::iterator_from_2d< Loc1 > last, boost::gil::iterator_from_2d< Loc2 > first2)
std::equal(I1,I1,I2) with I1 and I2 being a iterator_from_2d
Definition: algorithm.hpp:1076
-
Memory-based pixel locator. Models: PixelLocatorConcept,HasDynamicXStepTypeConcept,...
Definition: algorithm.hpp:38
-
An iterator over planar pixels. Models HomogeneousColorBaseConcept, PixelIteratorConcept,...
Definition: algorithm.hpp:34
+
+
BOOST_FORCEINLINE void copy_pixels(const View1 &src, const View2 &dst)
std::copy for image views
Definition: algorithm.hpp:288
+
BOOST_FORCEINLINE boost::gil::iterator_from_2d< OL > copy1(boost::gil::iterator_from_2d< IL > first, boost::gil::iterator_from_2d< IL > last, boost::gil::iterator_from_2d< OL > dst)
std::copy(I1,I1,I2) with I1 and I2 being a iterator_from_2d
Definition: algorithm.hpp:279
+
const image< Pixel, IsPlanar, Alloc >::view_t & view(image< Pixel, IsPlanar, Alloc > &img)
Returns the non-constant-pixel view of an image.
Definition: image.hpp:549
+
BOOST_FORCEINLINE void destruct_pixels(View const &view)
Invokes the in-place destructor on every pixel of the view.
Definition: algorithm.hpp:514
+
F for_each_pixel_position(View const &view, F fun)
Definition: algorithm.hpp:894
+
void uninitialized_fill_pixels(const View &view, const Value &val)
std::uninitialized_fill for image views. Does not support planar heterogeneous views....
Definition: algorithm.hpp:583
+
void default_construct_pixels(View const &view)
Invokes the in-place default constructor on every pixel of the (uninitialized) view....
Definition: algorithm.hpp:720
+
BOOST_FORCEINLINE boost::gil::planar_pixel_iterator< IC2, CS > copy(boost::gil::planar_pixel_iterator< IC1, CS > first, boost::gil::planar_pixel_iterator< IC1, CS > last, boost::gil::planar_pixel_iterator< IC2, CS > dst)
Copy when both src and dst are planar pointers is copy for each channel.
Definition: algorithm.hpp:177
+
+
struct to do std::fill
Definition: algorithm.hpp:387
+
F for_each_pixel(View const &view, F fun)
Definition: algorithm.hpp:874
+
BOOST_FORCEINLINE bool equal(boost::gil::iterator_from_2d< Loc1 > first, boost::gil::iterator_from_2d< Loc1 > last, boost::gil::iterator_from_2d< Loc2 > first2)
std::equal(I1,I1,I2) with I1 and I2 being a iterator_from_2d
Definition: algorithm.hpp:1082
+
Memory-based pixel locator. Models: PixelLocatorConcept,HasDynamicXStepTypeConcept,...
Definition: algorithm.hpp:44
+
An iterator over planar pixels. Models HomogeneousColorBaseConcept, PixelIteratorConcept,...
Definition: algorithm.hpp:40
+
diff --git a/develop/doc/html/reference/annotated.html b/develop/doc/html/reference/annotated.html
index 1a1722230..95ebeb1ec 100644
--- a/develop/doc/html/reference/annotated.html
+++ b/develop/doc/html/reference/annotated.html
@@ -54,44 +54,49 @@ $(function() {
C copier_n< I, iterator_from_2d< OL > > Destination range is delimited by image iterators
C copier_n< iterator_from_2d< IL >, iterator_from_2d< OL > > Both source and destination ranges are delimited by image iterators
C copier_n< iterator_from_2d< IL >, O > Source range is delimited by image iterators
-
C dec Operator– wrapped in a function object
-
C equal_n_fn< boost::gil::iterator_from_2d< Loc >, It >
-
C equal_n_fn< boost::gil::iterator_from_2d< Loc1 >, boost::gil::iterator_from_2d< Loc2 > > Both source and destination ranges are delimited by image iterators
-
C equal_n_fn< It, boost::gil::iterator_from_2d< Loc > >
-
C equal_n_fn< pixel< T, CS > const *, pixel< T, CS > const * >
-
C equal_n_fn< planar_pixel_iterator< IC, CS >, planar_pixel_iterator< IC, CS > >
-
► C file_stream_device
-
C read_tag Used to overload the constructor
-
C filler Filler is used to fill the histogram class with all values between a specified range This functor is used when sparsefill is false, since all the keys need to be present in that case. Currently on 1D implementation is available, extend by adding specialization for 2D and higher dimensional cases
-
C filler< 1 > Specialisation for 1D histogram
-
C hash_tuple Functor provided for the hashing of tuples. The following approach makes use hash_combine from boost::container_hash. Although there is a direct hashing available for tuples, this approach will ease adopting in future to a std::hash_combine. In case std::hash extends support to tuples this functor as well as the helper implementation hash_tuple_impl can be removed
-
C homogeneous_color_base< Element, Layout, 1 > A homogeneous color base holding one color element. Models HomogeneousColorBaseConcept or HomogeneousColorBaseValueConcept
-
C homogeneous_color_base< Element, Layout, 2 > A homogeneous color base holding two color elements Models HomogeneousColorBaseConcept or HomogeneousColorBaseValueConcept
-
C homogeneous_color_base< Element, Layout, 3 > A homogeneous color base holding three color elements. Models HomogeneousColorBaseConcept or HomogeneousColorBaseValueConcept
-
C homogeneous_color_base< Element, Layout, 4 > A homogeneous color base holding four color elements. Models HomogeneousColorBaseConcept or HomogeneousColorBaseValueConcept
-
C homogeneous_color_base< Element, Layout, 5 > A homogeneous color base holding five color elements. Models HomogeneousColorBaseConcept or HomogeneousColorBaseValueConcept
-
C identity Identity taken from SGI STL
-
C inc Operator++ wrapped in a function object
-
C is_input_device
-
C is_output_device
-
C is_read_device
-
C is_read_only Determines if reader type is read only ( no conversion )
-
C is_write_device
-
C istream_device
-
C kth_channel_deref_fn Function object that returns a grayscale reference of the K-th channel (specified as a template parameter) of a given reference. Models: PixelDereferenceAdaptorConcept
-
C nth_channel_deref_fn Function object that returns a grayscale reference of the N-th channel of a given reference. Models: PixelDereferenceAdaptorConcept
-
C ostream_device
-
C PixelImageViewIsMutableConcept
-
C PixelIteratorIsMutableConcept
-
C plus_asymmetric Plus function object whose arguments may be of different type
-
C RandomAccess2DImageViewIsMutableConcept
-
C RandomAccessNDImageViewIsMutableConcept
-
C RandomAccessNDLocatorIsMutableConcept
-
C rgb_to_luminance_fn Red * .3 + green * .59 + blue * .11 + .5
-
C std_fill_t Struct to do std::fill
-
C step_iterator_adaptor An adaptor over an existing iterator that changes the step unit
-
C tuple_limit Provides equivalent of std::numeric_limits for type std::tuple tuple_limit gets called with only tuples having integral elements
-
C type_to_index Returns the index corresponding to the first occurrance of a given given type in
+
C correlator_k Provides functionality for performing 1D correlation between the kernel and a buffer storing row pixels of source image. Kernel size is a template parameter and must be compulsorily specified while using
+
C correlator_n Provides functionality for performing 1D correlation between the kernel and a buffer storing row pixels of source image. Kernel size is to be provided through constructor for all instances
+
C dec Operator– wrapped in a function object
+
C equal_n_fn< boost::gil::iterator_from_2d< Loc >, It >
+
C equal_n_fn< boost::gil::iterator_from_2d< Loc1 >, boost::gil::iterator_from_2d< Loc2 > > Both source and destination ranges are delimited by image iterators
+
C equal_n_fn< It, boost::gil::iterator_from_2d< Loc > >
+
C equal_n_fn< pixel< T, CS > const *, pixel< T, CS > const * >
+
C equal_n_fn< planar_pixel_iterator< IC, CS >, planar_pixel_iterator< IC, CS > >
+
► C file_stream_device
+
C read_tag Used to overload the constructor
+
C filler Filler is used to fill the histogram class with all values between a specified range This functor is used when sparsefill is false, since all the keys need to be present in that case. Currently on 1D implementation is available, extend by adding specialization for 2D and higher dimensional cases
+
C filler< 1 > Specialisation for 1D histogram
+
C hash_tuple Functor provided for the hashing of tuples. The following approach makes use hash_combine from boost::container_hash. Although there is a direct hashing available for tuples, this approach will ease adopting in future to a std::hash_combine. In case std::hash extends support to tuples this functor as well as the helper implementation hash_tuple_impl can be removed
+
C homogeneous_color_base< Element, Layout, 1 > A homogeneous color base holding one color element. Models HomogeneousColorBaseConcept or HomogeneousColorBaseValueConcept
+
C homogeneous_color_base< Element, Layout, 2 > A homogeneous color base holding two color elements Models HomogeneousColorBaseConcept or HomogeneousColorBaseValueConcept
+
C homogeneous_color_base< Element, Layout, 3 > A homogeneous color base holding three color elements. Models HomogeneousColorBaseConcept or HomogeneousColorBaseValueConcept
+
C homogeneous_color_base< Element, Layout, 4 > A homogeneous color base holding four color elements. Models HomogeneousColorBaseConcept or HomogeneousColorBaseValueConcept
+
C homogeneous_color_base< Element, Layout, 5 > A homogeneous color base holding five color elements. Models HomogeneousColorBaseConcept or HomogeneousColorBaseValueConcept
+
C identity Identity taken from SGI STL
+
C inc Operator++ wrapped in a function object
+
C is_input_device
+
C is_output_device
+
C is_read_device
+
C is_read_only Determines if reader type is read only ( no conversion )
+
C is_write_device
+
C istream_device
+
C kernel_1d_adaptor Kernel adaptor for one-dimensional cores Core needs to provide size(),begin(),end(),operator[], value_type,iterator,const_iterator,reference,const_reference
+
C kernel_2d Variable-size kernel
+
C kernel_2d_fixed Static-size kernel
+
C kth_channel_deref_fn Function object that returns a grayscale reference of the K-th channel (specified as a template parameter) of a given reference. Models: PixelDereferenceAdaptorConcept
+
C nth_channel_deref_fn Function object that returns a grayscale reference of the N-th channel of a given reference. Models: PixelDereferenceAdaptorConcept
+
C ostream_device
+
C PixelImageViewIsMutableConcept
+
C PixelIteratorIsMutableConcept
+
C plus_asymmetric Plus function object whose arguments may be of different type
+
C RandomAccess2DImageViewIsMutableConcept
+
C RandomAccessNDImageViewIsMutableConcept
+
C RandomAccessNDLocatorIsMutableConcept
+
C rgb_to_luminance_fn Red * .3 + green * .59 + blue * .11 + .5
+
C std_fill_t Struct to do std::fill
+
C step_iterator_adaptor An adaptor over an existing iterator that changes the step unit
+
C tuple_limit Provides equivalent of std::numeric_limits for type std::tuple tuple_limit gets called with only tuples having integral elements
+
C type_to_index Returns the index corresponding to the first occurrance of a given given type in
► N laplace_function Discrete approximations of 2D Laplacian operator
C stencil_5points 5 point stencil approximation of Laplacian
C stencil_9points_standard 9 point stencil approximation of Laplacian
@@ -111,220 +116,243 @@ $(function() {
C black_t Black
C blue_t Blue
C byte_to_memunit
-
C channel_converter A unary function object converting between channel types
-
C channel_converter_unsigned< float32_t, DstChannelV > Float32_t conversion
-
C channel_converter_unsigned< float32_t, uint32_t > 32 bit <-> float channel conversion
-
C channel_converter_unsigned< T, T > Converting a channel to itself - identity operation
-
C channel_converter_unsigned< uint32_t, float32_t > 32 bit <-> float channel conversion
-
C channel_mapping_type< planar_pixel_reference< ChannelReference, ColorSpace > > Specifies the color space type of a planar pixel reference. Required by PixelBasedConcept
-
C channel_multiplier A function object to multiply two channels. result = a * b / max_value
-
C channel_multiplier_unsigned This is the default implementation. Performance specializatons are provided
-
C channel_multiplier_unsigned< float32_t > Specialization of channel_multiply for float 0..1 channels
-
C channel_multiplier_unsigned< uint16_t > Specialization of channel_multiply for 16-bit unsigned channels
-
C channel_multiplier_unsigned< uint8_t > Specialization of channel_multiply for 8-bit unsigned channels
-
C channel_type
-
C channel_type< planar_pixel_reference< ChannelReference, ColorSpace > > Specifies the color space type of a planar pixel reference. Required by HomogeneousPixelBasedConcept
-
C ChannelConcept A channel is the building block of a color. Color is defined as a mixture of primary colors and a channel defines the degree to which each primary color is used in the mixture
-
C ChannelConvertibleConcept A channel is convertible to another one if the channel_convert algorithm is defined for the two channels
-
C ChannelMappingConcept Channel mapping concept
-
C channels_are_compatible Predicate metafunction returning whether two channels are compatible
-
C ChannelsCompatibleConcept Channels are compatible if their associated value types (ignoring constness and references) are the same
-
C ChannelValueConcept A channel that supports default construction
-
C CollectionImageViewConcept GIL view as Collection
-
C color_convert_deref_fn Function object that given a source pixel, returns it converted to a given color space and channel depth. Models: PixelDereferenceAdaptorConcept
-
C color_converted_view_type Returns the type of a view that does color conversion upon dereferencing its pixels
-
C color_converted_view_type< any_image_view< Views... >, DstP > Returns the type of a runtime-specified view, color-converted to a given pixel type with the default coor converter
-
C color_converted_view_type< any_image_view< Views... >, DstP, CC > Returns the type of a runtime-specified view, color-converted to a given pixel type with user specified color converter
-
C color_element_const_reference_type Specifies the return type of the constant element accessor by color name, get_color(color_base, Color());
-
C color_element_reference_type Specifies the return type of the mutable element accessor by color name, get_color(color_base, Color());
-
C color_element_type Specifies the type of the element associated with a given color tag
-
C color_space_type< planar_pixel_reference< ChannelReference, ColorSpace > > Specifies the color space type of a planar pixel reference. Required by PixelBasedConcept
-
C ColorBaseConcept A color base is a container of color elements (such as channels, channel references or channel pointers)
-
C ColorBasesCompatibleConcept Two color bases are compatible if they have the same color space and their elements are compatible, semantic-pairwise
-
C ColorBaseValueConcept Color base that also has a default-constructor. Refines Regular
-
C ColorSpaceConcept Color space type concept
-
C ColorSpacesCompatibleConcept Two color spaces are compatible if they are the same
-
C const_iterator_type Returns the type of an iterator just like the input iterator, except operating over immutable values
-
C contains_color A predicate metafunction determining whether a given color base contains a given color
-
C CopyConstructible Concept of copy construction requirement
-
C cyan_t Cyan
-
C default_channel_converter Same as channel_converter , 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
-
C default_color_converter Class for color-converting one pixel to another
-
C default_color_converter_impl Color Convertion function object. To be specialized for every src/dst color space
-
C default_color_converter_impl< C, C > When the color space is the same, color convertion performs channel depth conversion
-
C default_color_converter_impl< C1, rgba_t > Converting any pixel type to RGBA. Note: Supports homogeneous pixels only
-
C default_color_converter_impl< cmyk_t, gray_t > CMYK to Gray
-
C default_color_converter_impl< cmyk_t, rgb_t > CMYK to RGB (not the fastest code in the world)
-
C default_color_converter_impl< gray_t, cmyk_t > Gray to CMYK
-
C default_color_converter_impl< gray_t, rgb_t > Gray to RGB
-
C default_color_converter_impl< rgb_t, cmyk_t > RGB to CMYK (not the fastest code in the world)
-
C default_color_converter_impl< rgb_t, gray_t > RGB to Gray
-
C default_color_converter_impl< rgba_t, C2 > Converting RGBA to any pixel type. Note: Supports homogeneous pixels only
-
C default_color_converter_impl< rgba_t, rgba_t > Unfortunately RGBA to RGBA must be explicitly provided - otherwise we get ambiguous specialization error
-
C DefaultConstructible Concept of default construction requirement
-
C deref_base Helper base class for pixel dereference adaptors
-
C deref_compose Composes two dereference function objects. Similar to std::unary_compose but needs to pull some aliases from the component types. Models: PixelDereferenceAdaptorConcept
-
C dereference_iterator_adaptor An adaptor over an existing iterator that provides for custom filter on dereferencing the object. Models: IteratorAdaptorConcept , PixelIteratorConcept
-
C derived_image_type Constructs a homogeneous image type from a source image type by changing some of the properties
-
C derived_iterator_type Constructs a pixel iterator type from a source pixel iterator type by changing some of the properties
-
C derived_pixel_reference_type Constructs a pixel reference type from a source pixel reference type by changing some of the properties
-
C derived_view_type Constructs an image view type from a source view type by changing some of the properties
-
C devicen_color_t Unnamed color
-
C devicen_layout_t Unnamed color layout of up to five channels
-
C devicen_t Unnamed color space of 1, 3, 4, or 5 channels
-
C dynamic_x_step_type Base template for types that model HasDynamicXStepTypeConcept
-
C dynamic_x_step_type< const Pixel * >
-
C dynamic_x_step_type< Pixel * >
-
C dynamic_xy_step_transposed_type Returns the type of a transposed view that has a dynamic step along both X and Y
-
C dynamic_xy_step_type Returns the type of a view that has a dynamic step along both X and Y
-
C dynamic_y_step_type Base template for types that model HasDynamicYStepTypeConcept
-
C element_const_reference_type Specifies the return type of the constant element accessor at_c of a homogeneous color base
-
C element_reference_type Specifies the return type of the mutable element accessor at_c of a homogeneous color base
-
C element_type Specifies the element type of a homogeneous color base
-
C EqualityComparable Concept of == and != comparability requirement
-
C ForwardCollectionImageViewConcept GIL view as ForwardCollection
-
C get_dynamic_image_reader Helper metafunction to generate dynamic image reader type
-
C get_dynamic_image_writer Helper metafunction to generate dynamic image writer type
-
C get_reader Helper metafunction to generate image reader type
-
C get_reader_backend Helper metafunction to generate image backend type
-
C get_scanline_reader Helper metafunction to generate image scanline_reader type
-
C get_writer Helper metafunction to generate writer type
-
C gray_color_t Gray
-
C green_t Green
-
C HasDynamicXStepTypeConcept Concept for iterators, locators and views that can define a type just like the given iterator, locator or view, except it supports runtime specified step along the X navigation
-
C HasDynamicYStepTypeConcept Concept for locators and views that can define a type just like the given locator or view, except it supports runtime specified step along the Y navigation
-
C HasTransposedTypeConcept Concept for locators and views that can define a type just like the given locator or view, except X and Y is swapped
-
C histogram Default histogram class provided by boost::gil
-
C HomogeneousColorBaseConcept Color base whose elements all have the same type
-
C HomogeneousColorBaseValueConcept Homogeneous color base that also has a default constructor. Refines Regular
-
C HomogeneousPixelBasedConcept Concept for homogeneous pixel-based GIL constructs
-
C HomogeneousPixelConcept Homogeneous pixel concept
-
C HomogeneousPixelValueConcept Homogeneous pixel concept that is a Regular type
-
C hough_parameter A type to encapsulate Hough transform parameter range
-
C image Container interface over image view. Models ImageConcept , PixelBasedConcept
-
C image_is_basic Basic images must use basic views and std::allocator
-
C image_type Returns the type of a homogeneous image given the channel type, layout, and whether it operates on planar data
-
C image_view A lightweight object that interprets memory as a 2D array of pixels. Models ImageViewConcept ,PixelBasedConcept ,HasDynamicXStepTypeConcept ,HasDynamicYStepTypeConcept ,HasTransposedTypeConcept
-
C ImageConcept 2-dimensional image whose value type models PixelValueConcept
-
C ImageViewConcept GIL's 2-dimensional view over immutable GIL pixels
-
C is_iterator_adaptor Metafunction predicate determining whether the given iterator is a plain one or an adaptor over another iterator. Examples of adaptors are the step iterator and the dereference iterator adaptor
-
C is_pixel< bit_aligned_pixel_reference< B, C, L, M > > Metafunction predicate that flags bit_aligned_pixel_reference as a model of PixelConcept . Required by PixelConcept
-
C is_pixel< planar_pixel_reference< ChannelReference, ColorSpace > > Metafunction predicate that flags planar_pixel_reference as a model of PixelConcept . Required by PixelConcept
-
C is_planar< planar_pixel_reference< ChannelReference, ColorSpace > > Specifies that planar_pixel_reference represents a planar construct. Required by PixelBasedConcept
-
C is_read_supported
-
C iterator_adaptor_get_base Returns the base iterator for a given iterator adaptor. Provide an specialization when introducing new iterator adaptors
-
C iterator_adaptor_rebind Changes the base iterator of an iterator adaptor. Provide an specialization when introducing new iterator adaptors
-
C iterator_add_deref Returns the type (and creates an instance) of an iterator that invokes the given dereference adaptor upon dereferencing
-
C iterator_add_deref< dereference_iterator_adaptor< Iterator, PREV_DEREF >, Deref > For dereference iterator adaptors, compose the new function object after the old one
-
C iterator_from_2d Provides 1D random-access navigation to the pixels of the image. Models: PixelIteratorConcept , PixelBasedConcept , HasDynamicXStepTypeConcept
-
C iterator_is_basic Determines if a given pixel iterator is basic Basic iterators must use gil::pixel (if interleaved), gil::planar_pixel_iterator (if planar) and gil::memory_based_step_iterator (if step). They must use the standard constness rules
-
C iterator_is_basic< memory_based_step_iterator< pixel< T, L > * > >
-
C iterator_is_basic< memory_based_step_iterator< pixel< T, L > const * > >
-
C iterator_is_basic< memory_based_step_iterator< planar_pixel_iterator< T *, CS > > >
-
C iterator_is_basic< memory_based_step_iterator< planar_pixel_iterator< T const *, CS > > >
-
C iterator_is_basic< pixel< T, L > * >
-
C iterator_is_basic< pixel< T, L > const * >
-
C iterator_is_basic< planar_pixel_iterator< T *, CS > >
-
C iterator_is_basic< planar_pixel_iterator< T const *, CS > >
-
C iterator_is_mutable Metafunction predicate returning whether the given iterator allows for changing its values
-
C iterator_is_step Determines if the given iterator has a step that could be set dynamically
-
C iterator_type Returns the type of a homogeneous iterator given the channel type, layout, whether it operates on planar data, whether it is a step iterator, and whether it is mutable
-
C iterator_type_from_pixel Returns the type of a pixel iterator given the pixel type, whether it operates on planar data, whether it is a step iterator, and whether it is mutable
-
C IteratorAdaptorConcept Iterator adaptor is a forward iterator adapting another forward iterator
-
C kth_channel_view_type Given a source image view type View, returns the type of an image view over a given channel of View
-
C kth_semantic_element_const_reference_type Specifies the return type of the constant semantic_at_c<K>(color_base);
-
C kth_semantic_element_reference_type Specifies the return type of the mutable semantic_at_c<K>(color_base);
-
C kth_semantic_element_type Specifies the type of the K-th semantic element of a color base
-
C layout Represents a color space and ordering of channels in memory
-
C locator_is_basic Determines if a given locator is basic. A basic locator is memory-based and has basic x_iterator and y_iterator
-
C locator_is_mutable Determines if the given locator is mutable (i.e. its pixels can be changed)
-
C locator_is_step_in_x Determines if the given locator has a horizontal step that could be set dynamically
-
C locator_is_step_in_y Determines if the given locator has a vertical step that could be set dynamically
-
C locator_type Returns the type of a homogeneous locator given the channel type, layout, whether it operates on planar data and whether it has a step horizontally
-
C magenta_t Magenta
-
C memory_based_2d_locator Memory-based pixel locator. Models: PixelLocatorConcept ,HasDynamicXStepTypeConcept ,HasDynamicYStepTypeConcept ,HasTransposedTypeConcept
-
C memory_based_step_iterator MEMORY-BASED STEP ITERATOR
-
C MemoryBasedIteratorConcept Concept of a random-access iterator that can be advanced in memory units (bytes or bits)
-
C memunit_step_fn Function object that returns the memory unit distance between two iterators and advances a given iterator a given number of mem units (bytes or bits)
-
C Metafunction Concept for type as metafunction requirement
-
C MutableChannelConcept A channel that allows for modifying its value
-
C MutableColorBaseConcept Color base which allows for modifying its elements
-
C MutableHomogeneousColorBaseConcept Homogeneous color base that allows for modifying its elements
-
C MutableHomogeneousPixelConcept Homogeneous pixel concept that allows for changing its channels
-
C MutableImageViewConcept GIL's 2-dimensional view over mutable GIL pixels
-
C MutableIteratorAdaptorConcept Iterator adaptor that is mutable
-
C MutablePixelConcept Pixel concept that allows for changing its channels
-
C MutablePixelIteratorConcept Pixel iterator that allows for changing its pixel
-
C MutablePixelLocatorConcept GIL's 2-dimensional locator over mutable GIL pixels
-
C MutableRandomAccess2DImageViewConcept 2-dimensional view over mutable values
-
C MutableRandomAccess2DLocatorConcept 2-dimensional locator over mutable pixels
-
C MutableRandomAccessNDImageViewConcept N-dimensional view over mutable values
-
C MutableRandomAccessNDLocatorConcept N-dimensional locator over mutable pixels
-
C MutableStepIteratorConcept Step iterator that allows for modifying its current value
-
C nth_channel_view_type Given a source image view type View, returns the type of an image view over a single channel of View
-
C nth_channel_view_type< any_image_view< Views... > > Given a runtime source image view, returns the type of a runtime image view over a single channel of the source view
-
C num_channels Returns the number of channels of a pixel-based GIL construct
-
C packed_dynamic_channel_reference< BitField, NumBits, false > Models a constant subbyte channel reference whose bit offset is a runtime parameter. Models ChannelConcept Same as packed_channel_reference, except that the offset is a runtime parameter
-
C packed_dynamic_channel_reference< BitField, NumBits, true > Models a mutable subbyte channel reference whose bit offset is a runtime parameter. Models ChannelConcept Same as packed_channel_reference, except that the offset is a runtime parameter
-
C packed_image1_type Returns the type of a single-channel image given its bitfield type, the bit size of its channel and its layout
-
C packed_image2_type Returns the type of a two channel image given its bitfield type, the bit size of its channels and its layout
-
C packed_image3_type Returns the type of a three channel image given its bitfield type, the bit size of its channels and its layout
-
C packed_image4_type Returns the type of a four channel image given its bitfield type, the bit size of its channels and its layout
-
C packed_image5_type Returns the type of a five channel image given its bitfield type, the bit size of its channels and its layout
-
C packed_image_type Returns the type of an interleaved packed image: an image whose channels may not be byte-aligned, but whose pixels are byte aligned
-
C packed_pixel Heterogeneous pixel value whose channel references can be constructed from the pixel bitfield and their index. Models ColorBaseValueConcept , PixelValueConcept , PixelBasedConcept Typical use for this is a model of a packed pixel (like 565 RGB)
-
C packed_pixel_type Returns the type of a packed pixel given its bitfield type, the bit size of its channels and its layout
-
C pixel Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept , PixelValueConcept , HomogeneousPixelBasedConcept
-
C pixel_2d_locator_base Base class for models of PixelLocatorConcept
-
C pixel_is_reference Given a model of a pixel, determines whether the model represents a pixel reference (as opposed to pixel value)
-
C pixel_reference_is_basic Determines if a given pixel reference is basic Basic references must use gil::pixel & (if interleaved), gil::planar_pixel_reference (if planar). They must use the standard constness rules
-
C pixel_reference_is_mutable Determines if the given pixel reference is mutable (i.e. its channels can be changed)
-
C pixel_reference_is_proxy Determines whether the given pixel reference is a proxy class or a native C++ reference
-
C pixel_reference_type Returns the type of a homogeneous pixel reference given the channel type, layout, whether it operates on planar data and whether it is mutable
-
C pixel_value_type Returns the type of a homogeneous pixel given the channel type and layout
-
C PixelBasedConcept Concept for all pixel-based GIL constructs
-
C PixelConcept Pixel concept - A color base whose elements are channels
-
C PixelConvertibleConcept Pixel convertible concept Convertibility is non-symmetric and implies that one pixel can be converted to another, approximating the color. Conversion is explicit and sometimes lossy
-
C PixelDereferenceAdaptorConcept Represents a unary function object that can be invoked upon dereferencing a pixel iterator
-
C PixelIteratorConcept An STL random access traversal iterator over a model of PixelConcept
-
C PixelLocatorConcept GIL's 2-dimensional locator over immutable GIL pixels
-
C pixels_are_compatible Returns whether two pixels are compatible Pixels are compatible if their channels and color space types are compatible. Compatible pixels can be assigned and copy constructed from one another
-
C PixelsCompatibleConcept Concept for pixel compatibility Pixels are compatible if their channels and color space types are compatible. Compatible pixels can be assigned and copy constructed from one another
-
C PixelValueConcept Pixel concept that is a Regular type
-
C planar_pixel_iterator An iterator over planar pixels. Models HomogeneousColorBaseConcept , PixelIteratorConcept , HomogeneousPixelBasedConcept , MemoryBasedIteratorConcept , HasDynamicXStepTypeConcept
-
C planar_pixel_reference A reference proxy to a planar pixel
-
C point 2D point both axes of which have the same dimension type
-
C Point2DConcept 2-dimensional point concept
-
C PointNDConcept N-dimensional point concept
-
C position_iterator An iterator that remembers its current X,Y position and invokes a function object with it upon dereferencing. Used to create virtual image views. Models: StepIteratorConcept , PixelIteratorConcept , PixelBasedConcept , HasDynamicXStepTypeConcept
-
C promote_integral Meta-function to define an integral type with size than is (roughly) twice the bit size of T
-
C RandomAccess2DImageConcept 2-dimensional container of values
-
C RandomAccess2DImageViewConcept 2-dimensional view over immutable values
-
C RandomAccess2DLocatorConcept 2-dimensional locator over immutable values
-
C RandomAccessNDImageConcept N-dimensional container of values
-
C RandomAccessNDImageViewConcept N-dimensional view over immutable values
-
C RandomAccessNDLocatorConcept N-dimensional locator over immutable values
-
C reader_base
-
C red_t Red
-
C Regular Concept for type regularity requirement
-
C ReversibleCollectionImageViewConcept GIL view as ReversibleCollection
-
C SameType Concept of types equivalence requirement
-
C scanline_read_iterator Input iterator to read images
-
C size Returns an integral constant type specifying the number of elements in a color base
-
C StepIteratorConcept Step iterator concept
-
C Swappable Concept of swap operation requirement
-
C transposed_type
-
C type_from_x_iterator Given a pixel iterator defining access to pixels along a row, returns the types of the corresponding built-in step_iterator, xy_locator, image_view
-
C view_is_basic Basic views must be over basic locators
-
C view_is_mutable Determines if the given view is mutable (i.e. its pixels can be changed)
-
C view_is_step_in_x Determines if the given view has a horizontal step that could be set dynamically
-
C view_is_step_in_y Determines if the given view has a vertical step that could be set dynamically
-
C view_type Returns the type of a homogeneous view given the channel type, layout, whether it operates on planar data and whether it has a step horizontally
-
C view_type_from_pixel Returns the type of a view the pixel type, whether it operates on planar data and whether it has a step horizontally
-
C views_are_compatible Returns whether two views are compatible
-
C ViewsCompatibleConcept Views are compatible if they have the same color spaces and compatible channel values
-
C virtual_2d_locator A 2D locator over a virtual image Upon dereferencing, invokes a given function object passing it its coordinates. Models: PixelLocatorConcept , HasDynamicXStepTypeConcept , HasDynamicYStepTypeConcept , HasTransposedTypeConcept
-
C yellow_t Yellow
+
C channel_assigns_t
+
C channel_converter A unary function object converting between channel types
+
C channel_converter_unsigned< float32_t, DstChannelV > Float32_t conversion
+
C channel_converter_unsigned< float32_t, uint32_t > 32 bit <-> float channel conversion
+
C channel_converter_unsigned< T, T > Converting a channel to itself - identity operation
+
C channel_converter_unsigned< uint32_t, float32_t > 32 bit <-> float channel conversion
+
C channel_divides_scalar_t Arithmetic operation of dividing channel value by scalar
+
C channel_divides_t Arithmetic operation of division of two channel values
+
C channel_halves_t Arithmetic operation of dividing channel value by 2
+
C channel_mapping_type< planar_pixel_reference< ChannelReference, ColorSpace > > Specifies the color space type of a planar pixel reference. Required by PixelBasedConcept
+
C channel_minus_scalar_t Arithmetic operation of subtracting scalar from channel value
+
C channel_minus_t Arithmetic operation of subtraction of two channel values
+
C channel_multiplier A function object to multiply two channels. result = a * b / max_value
+
C channel_multiplier_unsigned This is the default implementation. Performance specializatons are provided
+
C channel_multiplier_unsigned< float32_t > Specialization of channel_multiply for float 0..1 channels
+
C channel_multiplier_unsigned< uint16_t > Specialization of channel_multiply for 16-bit unsigned channels
+
C channel_multiplier_unsigned< uint8_t > Specialization of channel_multiply for 8-bit unsigned channels
+
C channel_multiplies_scalar_t Arithmetic operation of channel value by a scalar
+
C channel_multiplies_t Arithmetic operation of multiplication of two channel values
+
C channel_plus_scalar_t Arithmetic operation of adding scalar to channel value
+
C channel_plus_t Arithmetic operation of addition of two channel values
+
C channel_type
+
C channel_type< planar_pixel_reference< ChannelReference, ColorSpace > > Specifies the color space type of a planar pixel reference. Required by HomogeneousPixelBasedConcept
+
C channel_zeros_t Operation of setting channel value to zero
+
C ChannelConcept A channel is the building block of a color. Color is defined as a mixture of primary colors and a channel defines the degree to which each primary color is used in the mixture
+
C ChannelConvertibleConcept A channel is convertible to another one if the channel_convert algorithm is defined for the two channels
+
C ChannelMappingConcept Channel mapping concept
+
C channels_are_compatible Predicate metafunction returning whether two channels are compatible
+
C ChannelsCompatibleConcept Channels are compatible if their associated value types (ignoring constness and references) are the same
+
C ChannelValueConcept A channel that supports default construction
+
C CollectionImageViewConcept GIL view as Collection
+
C color_convert_deref_fn Function object that given a source pixel, returns it converted to a given color space and channel depth. Models: PixelDereferenceAdaptorConcept
+
C color_converted_view_type Returns the type of a view that does color conversion upon dereferencing its pixels
+
C color_converted_view_type< any_image_view< Views... >, DstP > Returns the type of a runtime-specified view, color-converted to a given pixel type with the default coor converter
+
C color_converted_view_type< any_image_view< Views... >, DstP, CC > Returns the type of a runtime-specified view, color-converted to a given pixel type with user specified color converter
+
C color_element_const_reference_type Specifies the return type of the constant element accessor by color name, get_color(color_base, Color());
+
C color_element_reference_type Specifies the return type of the mutable element accessor by color name, get_color(color_base, Color());
+
C color_element_type Specifies the type of the element associated with a given color tag
+
C color_space_type< planar_pixel_reference< ChannelReference, ColorSpace > > Specifies the color space type of a planar pixel reference. Required by PixelBasedConcept
+
C ColorBaseConcept A color base is a container of color elements (such as channels, channel references or channel pointers)
+
C ColorBasesCompatibleConcept Two color bases are compatible if they have the same color space and their elements are compatible, semantic-pairwise
+
C ColorBaseValueConcept Color base that also has a default-constructor. Refines Regular
+
C ColorSpaceConcept Color space type concept
+
C ColorSpacesCompatibleConcept Two color spaces are compatible if they are the same
+
C const_iterator_type Returns the type of an iterator just like the input iterator, except operating over immutable values
+
C contains_color A predicate metafunction determining whether a given color base contains a given color
+
C CopyConstructible Concept of copy construction requirement
+
C cyan_t Cyan
+
C default_channel_converter Same as channel_converter , 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
+
C default_color_converter Class for color-converting one pixel to another
+
C default_color_converter_impl Color Convertion function object. To be specialized for every src/dst color space
+
C default_color_converter_impl< C, C > When the color space is the same, color convertion performs channel depth conversion
+
C default_color_converter_impl< C1, rgba_t > Converting any pixel type to RGBA. Note: Supports homogeneous pixels only
+
C default_color_converter_impl< cmyk_t, gray_t > CMYK to Gray
+
C default_color_converter_impl< cmyk_t, rgb_t > CMYK to RGB (not the fastest code in the world)
+
C default_color_converter_impl< gray_t, cmyk_t > Gray to CMYK
+
C default_color_converter_impl< gray_t, rgb_t > Gray to RGB
+
C default_color_converter_impl< rgb_t, cmyk_t > RGB to CMYK (not the fastest code in the world)
+
C default_color_converter_impl< rgb_t, gray_t > RGB to Gray
+
C default_color_converter_impl< rgba_t, C2 > Converting RGBA to any pixel type. Note: Supports homogeneous pixels only
+
C default_color_converter_impl< rgba_t, rgba_t > Unfortunately RGBA to RGBA must be explicitly provided - otherwise we get ambiguous specialization error
+
C DefaultConstructible Concept of default construction requirement
+
C deref_base Helper base class for pixel dereference adaptors
+
C deref_compose Composes two dereference function objects. Similar to std::unary_compose but needs to pull some aliases from the component types. Models: PixelDereferenceAdaptorConcept
+
C dereference_iterator_adaptor An adaptor over an existing iterator that provides for custom filter on dereferencing the object. Models: IteratorAdaptorConcept , PixelIteratorConcept
+
C derived_image_type Constructs a homogeneous image type from a source image type by changing some of the properties
+
C derived_iterator_type Constructs a pixel iterator type from a source pixel iterator type by changing some of the properties
+
C derived_pixel_reference_type Constructs a pixel reference type from a source pixel reference type by changing some of the properties
+
C derived_view_type Constructs an image view type from a source view type by changing some of the properties
+
C devicen_color_t Unnamed color
+
C devicen_layout_t Unnamed color layout of up to five channels
+
C devicen_t Unnamed color space of 1, 3, 4, or 5 channels
+
C dynamic_x_step_type Base template for types that model HasDynamicXStepTypeConcept
+
C dynamic_x_step_type< const Pixel * >
+
C dynamic_x_step_type< Pixel * >
+
C dynamic_xy_step_transposed_type Returns the type of a transposed view that has a dynamic step along both X and Y
+
C dynamic_xy_step_type Returns the type of a view that has a dynamic step along both X and Y
+
C dynamic_y_step_type Base template for types that model HasDynamicYStepTypeConcept
+
C element_const_reference_type Specifies the return type of the constant element accessor at_c of a homogeneous color base
+
C element_reference_type Specifies the return type of the mutable element accessor at_c of a homogeneous color base
+
C element_type Specifies the element type of a homogeneous color base
+
C EqualityComparable Concept of == and != comparability requirement
+
C ForwardCollectionImageViewConcept GIL view as ForwardCollection
+
C get_dynamic_image_reader Helper metafunction to generate dynamic image reader type
+
C get_dynamic_image_writer Helper metafunction to generate dynamic image writer type
+
C get_reader Helper metafunction to generate image reader type
+
C get_reader_backend Helper metafunction to generate image backend type
+
C get_scanline_reader Helper metafunction to generate image scanline_reader type
+
C get_writer Helper metafunction to generate writer type
+
C gray_color_t Gray
+
C green_t Green
+
C HasDynamicXStepTypeConcept Concept for iterators, locators and views that can define a type just like the given iterator, locator or view, except it supports runtime specified step along the X navigation
+
C HasDynamicYStepTypeConcept Concept for locators and views that can define a type just like the given locator or view, except it supports runtime specified step along the Y navigation
+
C HasTransposedTypeConcept Concept for locators and views that can define a type just like the given locator or view, except X and Y is swapped
+
C histogram Default histogram class provided by boost::gil
+
C HomogeneousColorBaseConcept Color base whose elements all have the same type
+
C HomogeneousColorBaseValueConcept Homogeneous color base that also has a default constructor. Refines Regular
+
C HomogeneousPixelBasedConcept Concept for homogeneous pixel-based GIL constructs
+
C HomogeneousPixelConcept Homogeneous pixel concept
+
C HomogeneousPixelValueConcept Homogeneous pixel concept that is a Regular type
+
C hough_parameter A type to encapsulate Hough transform parameter range
+
C image Container interface over image view. Models ImageConcept , PixelBasedConcept
+
C image_is_basic Basic images must use basic views and std::allocator
+
C image_type Returns the type of a homogeneous image given the channel type, layout, and whether it operates on planar data
+
C image_view A lightweight object that interprets memory as a 2D array of pixels. Models ImageViewConcept ,PixelBasedConcept ,HasDynamicXStepTypeConcept ,HasDynamicYStepTypeConcept ,HasTransposedTypeConcept
+
C ImageConcept 2-dimensional image whose value type models PixelValueConcept
+
C ImageViewConcept GIL's 2-dimensional view over immutable GIL pixels
+
C is_iterator_adaptor Metafunction predicate determining whether the given iterator is a plain one or an adaptor over another iterator. Examples of adaptors are the step iterator and the dereference iterator adaptor
+
C is_pixel< bit_aligned_pixel_reference< B, C, L, M > > Metafunction predicate that flags bit_aligned_pixel_reference as a model of PixelConcept . Required by PixelConcept
+
C is_pixel< planar_pixel_reference< ChannelReference, ColorSpace > > Metafunction predicate that flags planar_pixel_reference as a model of PixelConcept . Required by PixelConcept
+
C is_planar< planar_pixel_reference< ChannelReference, ColorSpace > > Specifies that planar_pixel_reference represents a planar construct. Required by PixelBasedConcept
+
C is_read_supported
+
C iterator_adaptor_get_base Returns the base iterator for a given iterator adaptor. Provide an specialization when introducing new iterator adaptors
+
C iterator_adaptor_rebind Changes the base iterator of an iterator adaptor. Provide an specialization when introducing new iterator adaptors
+
C iterator_add_deref Returns the type (and creates an instance) of an iterator that invokes the given dereference adaptor upon dereferencing
+
C iterator_add_deref< dereference_iterator_adaptor< Iterator, PREV_DEREF >, Deref > For dereference iterator adaptors, compose the new function object after the old one
+
C iterator_from_2d Provides 1D random-access navigation to the pixels of the image. Models: PixelIteratorConcept , PixelBasedConcept , HasDynamicXStepTypeConcept
+
C iterator_is_basic Determines if a given pixel iterator is basic Basic iterators must use gil::pixel (if interleaved), gil::planar_pixel_iterator (if planar) and gil::memory_based_step_iterator (if step). They must use the standard constness rules
+
C iterator_is_basic< memory_based_step_iterator< pixel< T, L > * > >
+
C iterator_is_basic< memory_based_step_iterator< pixel< T, L > const * > >
+
C iterator_is_basic< memory_based_step_iterator< planar_pixel_iterator< T *, CS > > >
+
C iterator_is_basic< memory_based_step_iterator< planar_pixel_iterator< T const *, CS > > >
+
C iterator_is_basic< pixel< T, L > * >
+
C iterator_is_basic< pixel< T, L > const * >
+
C iterator_is_basic< planar_pixel_iterator< T *, CS > >
+
C iterator_is_basic< planar_pixel_iterator< T const *, CS > >
+
C iterator_is_mutable Metafunction predicate returning whether the given iterator allows for changing its values
+
C iterator_is_step Determines if the given iterator has a step that could be set dynamically
+
C iterator_type Returns the type of a homogeneous iterator given the channel type, layout, whether it operates on planar data, whether it is a step iterator, and whether it is mutable
+
C iterator_type_from_pixel Returns the type of a pixel iterator given the pixel type, whether it operates on planar data, whether it is a step iterator, and whether it is mutable
+
C IteratorAdaptorConcept Iterator adaptor is a forward iterator adapting another forward iterator
+
C kernel_1d Variable-size kernel
+
C kernel_1d_fixed Static-size kernel
+
C kth_channel_view_type Given a source image view type View, returns the type of an image view over a given channel of View
+
C kth_semantic_element_const_reference_type Specifies the return type of the constant semantic_at_c<K>(color_base);
+
C kth_semantic_element_reference_type Specifies the return type of the mutable semantic_at_c<K>(color_base);
+
C kth_semantic_element_type Specifies the type of the K-th semantic element of a color base
+
C layout Represents a color space and ordering of channels in memory
+
C locator_is_basic Determines if a given locator is basic. A basic locator is memory-based and has basic x_iterator and y_iterator
+
C locator_is_mutable Determines if the given locator is mutable (i.e. its pixels can be changed)
+
C locator_is_step_in_x Determines if the given locator has a horizontal step that could be set dynamically
+
C locator_is_step_in_y Determines if the given locator has a vertical step that could be set dynamically
+
C locator_type Returns the type of a homogeneous locator given the channel type, layout, whether it operates on planar data and whether it has a step horizontally
+
C magenta_t Magenta
+
C memory_based_2d_locator Memory-based pixel locator. Models: PixelLocatorConcept ,HasDynamicXStepTypeConcept ,HasDynamicYStepTypeConcept ,HasTransposedTypeConcept
+
C memory_based_step_iterator MEMORY-BASED STEP ITERATOR
+
C MemoryBasedIteratorConcept Concept of a random-access iterator that can be advanced in memory units (bytes or bits)
+
C memunit_step_fn Function object that returns the memory unit distance between two iterators and advances a given iterator a given number of mem units (bytes or bits)
+
C Metafunction Concept for type as metafunction requirement
+
C MutableChannelConcept A channel that allows for modifying its value
+
C MutableColorBaseConcept Color base which allows for modifying its elements
+
C MutableHomogeneousColorBaseConcept Homogeneous color base that allows for modifying its elements
+
C MutableHomogeneousPixelConcept Homogeneous pixel concept that allows for changing its channels
+
C MutableImageViewConcept GIL's 2-dimensional view over mutable GIL pixels
+
C MutableIteratorAdaptorConcept Iterator adaptor that is mutable
+
C MutablePixelConcept Pixel concept that allows for changing its channels
+
C MutablePixelIteratorConcept Pixel iterator that allows for changing its pixel
+
C MutablePixelLocatorConcept GIL's 2-dimensional locator over mutable GIL pixels
+
C MutableRandomAccess2DImageViewConcept 2-dimensional view over mutable values
+
C MutableRandomAccess2DLocatorConcept 2-dimensional locator over mutable pixels
+
C MutableRandomAccessNDImageViewConcept N-dimensional view over mutable values
+
C MutableRandomAccessNDLocatorConcept N-dimensional locator over mutable pixels
+
C MutableStepIteratorConcept Step iterator that allows for modifying its current value
+
C nth_channel_view_type Given a source image view type View, returns the type of an image view over a single channel of View
+
C nth_channel_view_type< any_image_view< Views... > > Given a runtime source image view, returns the type of a runtime image view over a single channel of the source view
+
C num_channels Returns the number of channels of a pixel-based GIL construct
+
C packed_dynamic_channel_reference< BitField, NumBits, false > Models a constant subbyte channel reference whose bit offset is a runtime parameter. Models ChannelConcept Same as packed_channel_reference, except that the offset is a runtime parameter
+
C packed_dynamic_channel_reference< BitField, NumBits, true > Models a mutable subbyte channel reference whose bit offset is a runtime parameter. Models ChannelConcept Same as packed_channel_reference, except that the offset is a runtime parameter
+
C packed_image1_type Returns the type of a single-channel image given its bitfield type, the bit size of its channel and its layout
+
C packed_image2_type Returns the type of a two channel image given its bitfield type, the bit size of its channels and its layout
+
C packed_image3_type Returns the type of a three channel image given its bitfield type, the bit size of its channels and its layout
+
C packed_image4_type Returns the type of a four channel image given its bitfield type, the bit size of its channels and its layout
+
C packed_image5_type Returns the type of a five channel image given its bitfield type, the bit size of its channels and its layout
+
C packed_image_type Returns the type of an interleaved packed image: an image whose channels may not be byte-aligned, but whose pixels are byte aligned
+
C packed_pixel Heterogeneous pixel value whose channel references can be constructed from the pixel bitfield and their index. Models ColorBaseValueConcept , PixelValueConcept , PixelBasedConcept Typical use for this is a model of a packed pixel (like 565 RGB)
+
C packed_pixel_type Returns the type of a packed pixel given its bitfield type, the bit size of its channels and its layout
+
C pixel Represents a pixel value (a container of channels). Models: HomogeneousColorBaseValueConcept , PixelValueConcept , HomogeneousPixelBasedConcept
+
C pixel_2d_locator_base Base class for models of PixelLocatorConcept
+
C pixel_assigns_t Casts and assigns a pixel to another
+
C pixel_divide_t Performs channel-wise division of two pixels
+
C pixel_divides_scalar_t Performs channel-wise division of pixel elements by scalar
+
C pixel_halves_t Performs channel-wise division by 2
+
C pixel_is_reference Given a model of a pixel, determines whether the model represents a pixel reference (as opposed to pixel value)
+
C pixel_minus_t Performs channel-wise subtraction of two pixels
+
C pixel_multiplies_scalar_t Performs channel-wise multiplication of pixel elements by scalar
+
C pixel_multiply_t Performs channel-wise multiplication of two pixels
+
C pixel_plus_t Performs channel-wise addition of two pixels
+
C pixel_proxy Reference proxy associated with a type that has a "reference" member type alias
+
C pixel_reference_is_basic Determines if a given pixel reference is basic Basic references must use gil::pixel & (if interleaved), gil::planar_pixel_reference (if planar). They must use the standard constness rules
+
C pixel_reference_is_mutable Determines if the given pixel reference is mutable (i.e. its channels can be changed)
+
C pixel_reference_is_proxy Determines whether the given pixel reference is a proxy class or a native C++ reference
+
C pixel_reference_type Returns the type of a homogeneous pixel reference given the channel type, layout, whether it operates on planar data and whether it is mutable
+
C pixel_value_type Returns the type of a homogeneous pixel given the channel type and layout
+
C pixel_zeros_t Sets pixel elements to zero (for whatever zero means)
+
C PixelBasedConcept Concept for all pixel-based GIL constructs
+
C PixelConcept Pixel concept - A color base whose elements are channels
+
C PixelConvertibleConcept Pixel convertible concept Convertibility is non-symmetric and implies that one pixel can be converted to another, approximating the color. Conversion is explicit and sometimes lossy
+
C PixelDereferenceAdaptorConcept Represents a unary function object that can be invoked upon dereferencing a pixel iterator
+
C PixelIteratorConcept An STL random access traversal iterator over a model of PixelConcept
+
C PixelLocatorConcept GIL's 2-dimensional locator over immutable GIL pixels
+
C pixels_are_compatible Returns whether two pixels are compatible Pixels are compatible if their channels and color space types are compatible. Compatible pixels can be assigned and copy constructed from one another
+
C PixelsCompatibleConcept Concept for pixel compatibility Pixels are compatible if their channels and color space types are compatible. Compatible pixels can be assigned and copy constructed from one another
+
C PixelValueConcept Pixel concept that is a Regular type
+
C planar_pixel_iterator An iterator over planar pixels. Models HomogeneousColorBaseConcept , PixelIteratorConcept , HomogeneousPixelBasedConcept , MemoryBasedIteratorConcept , HasDynamicXStepTypeConcept
+
C planar_pixel_reference A reference proxy to a planar pixel
+
C point 2D point both axes of which have the same dimension type
+
C Point2DConcept 2-dimensional point concept
+
C PointNDConcept N-dimensional point concept
+
C position_iterator An iterator that remembers its current X,Y position and invokes a function object with it upon dereferencing. Used to create virtual image views. Models: StepIteratorConcept , PixelIteratorConcept , PixelBasedConcept , HasDynamicXStepTypeConcept
+
C promote_integral Meta-function to define an integral type with size than is (roughly) twice the bit size of T
+
C RandomAccess2DImageConcept 2-dimensional container of values
+
C RandomAccess2DImageViewConcept 2-dimensional view over immutable values
+
C RandomAccess2DLocatorConcept 2-dimensional locator over immutable values
+
C RandomAccessNDImageConcept N-dimensional container of values
+
C RandomAccessNDImageViewConcept N-dimensional view over immutable values
+
C RandomAccessNDLocatorConcept N-dimensional locator over immutable values
+
C reader_base
+
C red_t Red
+
C Regular Concept for type regularity requirement
+
C ReversibleCollectionImageViewConcept GIL view as ReversibleCollection
+
C SameType Concept of types equivalence requirement
+
C scanline_read_iterator Input iterator to read images
+
C size Returns an integral constant type specifying the number of elements in a color base
+
C StepIteratorConcept Step iterator concept
+
C Swappable Concept of swap operation requirement
+
C transposed_type
+
C type_from_x_iterator Given a pixel iterator defining access to pixels along a row, returns the types of the corresponding built-in step_iterator, xy_locator, image_view
+
C view_is_basic Basic views must be over basic locators
+
C view_is_mutable Determines if the given view is mutable (i.e. its pixels can be changed)
+
C view_is_step_in_x Determines if the given view has a horizontal step that could be set dynamically
+
C view_is_step_in_y Determines if the given view has a vertical step that could be set dynamically
+
C view_type Returns the type of a homogeneous view given the channel type, layout, whether it operates on planar data and whether it has a step horizontally
+
C view_type_from_pixel Returns the type of a view the pixel type, whether it operates on planar data and whether it has a step horizontally
+
C views_are_compatible Returns whether two views are compatible
+
C ViewsCompatibleConcept Views are compatible if they have the same color spaces and compatible channel values
+
C virtual_2d_locator A 2D locator over a virtual image Upon dereferencing, invokes a given function object passing it its coordinates. Models: PixelLocatorConcept , HasDynamicXStepTypeConcept , HasDynamicYStepTypeConcept , HasTransposedTypeConcept
+
C yellow_t Yellow
diff --git a/develop/doc/html/reference/any__image__view_8hpp_source.html b/develop/doc/html/reference/any__image__view_8hpp_source.html
index e2d02b51a..a7b73d049 100644
--- a/develop/doc/html/reference/any__image__view_8hpp_source.html
+++ b/develop/doc/html/reference/any__image__view_8hpp_source.html
@@ -217,7 +217,7 @@ $(function() {
BOOST_FORCEINLINE auto apply_operation(Variant1 &&arg1, Visitor &&op)
Applies the visitor op to the variants.
Definition: apply_operation.hpp:19
Base template for types that model HasDynamicXStepTypeConcept.
Definition: dynamic_step.hpp:17
-
const image< Pixel, IsPlanar, Alloc >::view_t & view(image< Pixel, IsPlanar, Alloc > &img)
Returns the non-constant-pixel view of an image.
Definition: image.hpp:548
+
const image< Pixel, IsPlanar, Alloc >::view_t & view(image< Pixel, IsPlanar, Alloc > &img)
Returns the non-constant-pixel view of an image.
Definition: image.hpp:549
Returns an integral constant type specifying the number of elements in a color base.
Definition: color_base_algorithm.hpp:42
Returns the number of channels of a pixel-based GIL construct.
Definition: locator.hpp:38
diff --git a/develop/doc/html/reference/bit__aligned__pixel__iterator_8hpp_source.html b/develop/doc/html/reference/bit__aligned__pixel__iterator_8hpp_source.html
index c94718369..2c01f5e86 100644
--- a/develop/doc/html/reference/bit__aligned__pixel__iterator_8hpp_source.html
+++ b/develop/doc/html/reference/bit__aligned__pixel__iterator_8hpp_source.html
@@ -220,10 +220,10 @@ $(function() {
-
BOOST_FORCEINLINE auto copy(boost::gil::pixel< T, CS > *first, boost::gil::pixel< T, CS > *last, boost::gil::pixel< T, CS > *dst) -> boost::gil::pixel< T, CS > *
Copy when both src and dst are interleaved and of the same type can be just memmove.
Definition: algorithm.hpp:139
+
BOOST_FORCEINLINE auto copy(boost::gil::pixel< T, CS > *first, boost::gil::pixel< T, CS > *last, boost::gil::pixel< T, CS > *dst) -> boost::gil::pixel< T, CS > *
Copy when both src and dst are interleaved and of the same type can be just memmove.
Definition: algorithm.hpp:145
An iterator over non-byte-aligned pixels. Models PixelIteratorConcept, PixelBasedConcept,...
Definition: bit_aligned_pixel_iterator.hpp:37
reference operator[](difference_type d) const
Definition: bit_aligned_pixel_iterator.hpp:66
-
BOOST_FORCEINLINE bool equal(boost::gil::iterator_from_2d< Loc1 > first, boost::gil::iterator_from_2d< Loc1 > last, boost::gil::iterator_from_2d< Loc2 > first2)
std::equal(I1,I1,I2) with I1 and I2 being a iterator_from_2d
Definition: algorithm.hpp:1076
+
BOOST_FORCEINLINE bool equal(boost::gil::iterator_from_2d< Loc1 > first, boost::gil::iterator_from_2d< Loc1 > last, boost::gil::iterator_from_2d< Loc2 > first2)
std::equal(I1,I1,I2) with I1 and I2 being a iterator_from_2d
Definition: algorithm.hpp:1082
diff --git a/develop/doc/html/reference/bit__aligned__pixel__reference_8hpp_source.html b/develop/doc/html/reference/bit__aligned__pixel__reference_8hpp_source.html
index 8fcb6f819..7d8a7b0ce 100644
--- a/develop/doc/html/reference/bit__aligned__pixel__reference_8hpp_source.html
+++ b/develop/doc/html/reference/bit__aligned__pixel__reference_8hpp_source.html
@@ -393,11 +393,11 @@ $(function() {
void swap(boost::gil::packed_channel_reference< BF, FB, NB, M > const x, R &y)
swap for packed_channel_reference
Definition: channel.hpp:529
-
Heterogeneous pixel value whose channel references can be constructed from the pixel bitfield and the...
Definition: metafunctions.hpp:24
+
Heterogeneous pixel value whose channel references can be constructed from the pixel bitfield and the...
Definition: metafunctions.hpp:25
auto at_c(detail::homogeneous_color_base< E, L, N > &p) -> typename std::add_lvalue_reference< E >::type
Provides mutable access to the K-th element, in physical order.
Definition: color_base.hpp:632
Definition: bit_aligned_pixel_reference.hpp:34
BOOST_FORCEINLINE bool operator!=(const point< T > &p1, const point< T > &p2)
Definition: point.hpp:137
-
BOOST_FORCEINLINE bool equal(boost::gil::iterator_from_2d< Loc1 > first, boost::gil::iterator_from_2d< Loc1 > last, boost::gil::iterator_from_2d< Loc2 > first2)
std::equal(I1,I1,I2) with I1 and I2 being a iterator_from_2d
Definition: algorithm.hpp:1076
+
BOOST_FORCEINLINE bool equal(boost::gil::iterator_from_2d< Loc1 > first, boost::gil::iterator_from_2d< Loc1 > last, boost::gil::iterator_from_2d< Loc2 > first2)
std::equal(I1,I1,I2) with I1 and I2 being a iterator_from_2d
Definition: algorithm.hpp:1082
BOOST_FORCEINLINE bool operator==(const point< T > &p1, const point< T > &p2)
Definition: point.hpp:129
diff --git a/develop/doc/html/reference/channel__numeric__operations_8hpp_source.html b/develop/doc/html/reference/channel__numeric__operations_8hpp_source.html
new file mode 100644
index 000000000..d467dc22a
--- /dev/null
+++ b/develop/doc/html/reference/channel__numeric__operations_8hpp_source.html
@@ -0,0 +1,283 @@
+
+
+
+
+
+
+
+
+
Generic Image Library: channel_numeric_operations.hpp Source File
+
+
+
+
+
+
+
+