diff --git a/develop/doc/html/_sources/histogram/create.rst.txt b/develop/doc/html/_sources/histogram/create.rst.txt new file mode 100644 index 000000000..7df551c63 --- /dev/null +++ b/develop/doc/html/_sources/histogram/create.rst.txt @@ -0,0 +1,42 @@ +.. _create_histogram: + +Create a histogram +================== + +**Method 1** - Using the histogram constructor + +Syntax:: + + histogram + +``Type1`` .. ``TypeN`` correspond to the axis type of the N axes in the histogram + +Example: If we want a 3D histogram of Axis1 of type ``int``, Axis2 of type ``float`` and Axis3 of type ``std::string`` +we would do it this way:: + + histogram h; + +And done. + + +**Method 2** (TODO) - Using make_histogram() + +There is an alternative to create the histogram directly from +a GIL image view. + +This should be the preferred over method-1 when creating +histogram with GIL images, since it creates a histogram with axes configured +to match the GIL image. + +Also it is easier than method-1. + +Syntax:: + + auto h = make_histogram(view(image)); + +where ``image`` could be a ``gray8_image_t``/``rgb8_image_t`` object read from source. + + + + + diff --git a/develop/doc/html/_sources/histogram/cumulative.rst.txt b/develop/doc/html/_sources/histogram/cumulative.rst.txt new file mode 100644 index 000000000..a769f9ddd --- /dev/null +++ b/develop/doc/html/_sources/histogram/cumulative.rst.txt @@ -0,0 +1,29 @@ +.. _cumulative_histogram: + +Making a cumulative histogram +============================= + +Overview +-------- + +A cumulative histogram is a histogram in which each bin stores the count / frequency of itself +as well as all the bins with keys 'smaller' than the particular bin. +As such, a notion of ordering among its keys should be existant in the histogram. + +The GIL histogram class has the ability to convert itself into its cumulative version. + +Since the container needs to first get an ordering +over the keys a key sorting takes place before calculating the cumulative histogram. + +Example: + + .. code-block:: cpp + + histogram h; + /* + Fill histogram ... + */ + auto h1 = cumulative_histogram(h); + +Tip: *In case you need to store the cumulative histogram elsewhere, consider creating a copy of the histogram +and then call the function*. \ No newline at end of file diff --git a/develop/doc/html/_sources/histogram/extend.rst.txt b/develop/doc/html/_sources/histogram/extend.rst.txt new file mode 100644 index 000000000..3197af784 --- /dev/null +++ b/develop/doc/html/_sources/histogram/extend.rst.txt @@ -0,0 +1,68 @@ +.. _extend_support: + +Extending the class +=================== + +.. contents:: + :local: + :depth: 1 + +User defined Axes +----------------- + +In case you need a histogram with an axes of an arbitrary type that is not identified by +the C++ Standard Library, you need to provide a overload for the hashing function that is +used in the histogram class. + +GIL's histogram class uses ``boost::hash_combine`` in a sub routine to generate a hash from +the key. + +So we need to provide an overload of ``boost::hash_combine`` for the purpose. + +For example, let's consider you need a histogram with an axis over class Test. + +.. code-block:: cpp + + // File : ./test.hpp + #include + #include + + struct Test + { + int a{0}; + Test() = default; + Test(int c) : a(c) {} + bool operator==(Test const& other) const + { + return (a == other.a); + } + }; + + namespace boost { + std::size_t hash_value(Test const& t) + { + // Replace with your hashing code + std::hash hasher; + return hasher(t.a); + } + } + +Now lets get to the usage example. + +.. code-block:: cpp + + #include + #include + #include + // Mind the order of include i.e. test.hpp before boost/gil.hpp + + using namespace boost::gil; + + int main() + { + boost::gil::histogram h; + Test t(1); + h(t) = 1; + std::cout< v; + gil::gray8_image_t img; + /* + Fill image ... + */ + gil::fill_histogram(view(img), v, false); + +#. **cumulative_histogram()** + + .. code-block:: cpp + + // Demo for std::vector + std::vector v; + /* + Fill vector... + */ + gil::cumulative_histogram(v); + + + + + + diff --git a/develop/doc/html/_sources/histogram/fill.rst.txt b/develop/doc/html/_sources/histogram/fill.rst.txt new file mode 100644 index 000000000..cf3f913c6 --- /dev/null +++ b/develop/doc/html/_sources/histogram/fill.rst.txt @@ -0,0 +1,103 @@ +.. _fill_it: + +Fill histogram +============== + +.. contents:: + :local: + :depth: 1 + +Overview +-------- + +We will demonstrate the available options for filling an instance of the `histogram` class with +values that cater from the most simplest to the complex needs that might arise. + +Basic +----- + +#. Use operator() + + **Task** - Add value to a particular cell / key / bin in histogram + + .. code-block:: cpp + + histogram h; + h(1, 2) = 1; + +#. Use operator[] + + This requires to input the indices in a format the histogram internally stores its keys, + which is of ``std::tuple`` due to its simple interface. + + **Task** - Output value of a bin + + .. code-block:: cpp + + histogram h; + h(1, 2) = 1; + h[{1, 2}] += 1; // Note the curly braces reqd. to construct a tuple + std::cout< A; + /* + Fill value in A + */ + histogram B(A), C; + C = A; + +#. Use a GIL image view + + You can also use GIL images to directly fill histograms. + + **Task** - Fill histogram using GIL image view + + .. code-block:: cpp + + gil::gray8_image_t img; + /* + Fill img ... + */ + histogram h; + h.fill(view(img)); + // OR + gil::fill_histogram(view(img), h, false); // false if histogram needs to be cleared before filling + + +Advanced +-------- + +#. Fill histogram using only a few dimensions of image + + **Task** - Make an histogram over Red and Blue channel of an rgb image + + .. code-block:: cpp + + gil::rgb8_image_t img; + /* + Fill img ... + */ + histogram h; + fill_histogram<0, 2>(view(img), h, false); // 0 - red, 1 - green, 2 - blue + +#. Fill histogram using GIL pixel + + **Task** - Fill histogram bin using pixel construct in GIL + + .. code-block:: cpp + + gil::gray8_image_t img; + /* + Fill img ... + */ + histogram h; + gil::for_each_pixel(view(img), [](gil::gray8_pixel_t const& p){ + ++h[h.key_from_pixel(p)]; + }); + diff --git a/develop/doc/html/_sources/histogram/index.rst.txt b/develop/doc/html/_sources/histogram/index.rst.txt new file mode 100644 index 000000000..ff8cc16bb --- /dev/null +++ b/develop/doc/html/_sources/histogram/index.rst.txt @@ -0,0 +1,20 @@ +Histogram +========= + +The GIL documentation sections listed below are dedicated to describe the +histogram class and functions used in many image processing algorithms. + +.. toctree:: + :maxdepth: 1 + :caption: Table of Contents + + overview + create + fill + subhistogram + cumulative + stl_compatibility + utilities + extend + limitations + extension/index diff --git a/develop/doc/html/_sources/histogram/limitations.rst.txt b/develop/doc/html/_sources/histogram/limitations.rst.txt new file mode 100644 index 000000000..819d308f6 --- /dev/null +++ b/develop/doc/html/_sources/histogram/limitations.rst.txt @@ -0,0 +1,6 @@ +.. _limitations: + +Limitations +=========== + +*TODO* \ No newline at end of file diff --git a/develop/doc/html/_sources/histogram/overview.rst.txt b/develop/doc/html/_sources/histogram/overview.rst.txt new file mode 100644 index 000000000..8b222659e --- /dev/null +++ b/develop/doc/html/_sources/histogram/overview.rst.txt @@ -0,0 +1,28 @@ +Overview +======== + +.. contents:: + :local: + :depth: 1 + +Description +----------- + +The histogram class is built on top of std::unordered_map to keep it compatible with other +STL algorithms. It can support any number of axes (known at compile time i.e. during class +instantiation). Suitable conversion routines from GIL image constructs to the histogram bin +key are shipped with the class itself. + + +Tutorials +--------- +The following flow is recommended: + #. :ref:`create_histogram` + #. :ref:`fill_it` + #. :ref:`sub_histogram` + #. :ref:`cumulative_histogram` + #. :ref:`stl_compatibility` + #. :ref:`extend_support` + #. :ref:`limitations` + +.. note:: To try out these tutorials you need to get a clone of the repository, since it is not yet released. diff --git a/develop/doc/html/_sources/histogram/stl_compatibility.rst.txt b/develop/doc/html/_sources/histogram/stl_compatibility.rst.txt new file mode 100644 index 000000000..9b932a2ce --- /dev/null +++ b/develop/doc/html/_sources/histogram/stl_compatibility.rst.txt @@ -0,0 +1,6 @@ +.. _stl_compatibility: + +STL compatibility +================= + +*TODO* \ No newline at end of file diff --git a/develop/doc/html/_sources/histogram/subhistogram.rst.txt b/develop/doc/html/_sources/histogram/subhistogram.rst.txt new file mode 100644 index 000000000..4e046a45a --- /dev/null +++ b/develop/doc/html/_sources/histogram/subhistogram.rst.txt @@ -0,0 +1,66 @@ +.. _sub_histogram: + +Making a sub-histogram +====================== + +Overview +-------- + +Sub-histogram is a subset of a histogram or one that is formed by masking out a +few axis of the parent histogram. + +GIL class histogram provides these functions as members and returns an instance of +the desired sub-class. + +#. Histogram over fewer axes + + **Task** - Get a 2D histogram from a 3D RGB histogram over red and green axes + + .. code-block:: cpp + + histogram h; + gil::rgb8_image_t img; + /* + Fill img ... + */ + fill_histogram(view(img), h, false); + auto sub_h = h.sub_histogram<0, 1>(); // sub_h is a 2D histogram + + Demo output: + + .. code-block:: cpp + + h is {{1, 2, 3} : 1, + {1, 4, 3} : 2, + {1, 2, 5} : 3} + sub_h would be {{1, 2} : 4, {1, 4} : 2} + +#. Histogram using a particular key range + + **Task** - Get a 2D histogram from a 3D RGB histogram for bins whose red color lie between 10 - 20 + and blue color lie between 2 - 10 + + .. code-block:: cpp + + histogram h; + gil::rgb8_image_t img; + /* + Fill img ... + */ + fill_histogram(view(img), h, false); + std::tuple low, high; + low = {10, 0, 2} // Since no check over blue channel pass any dummy value + high = {20, 0, 10} // Since no check over blue channel pass any dummy value + auto sub_h = h.sub_histogram<0, 2>(low, high); // In angle brackets pass the relevant dimensions in order + + Demo Output: + + .. code-block:: cpp + + h is {{11, 2, 3 } : 1, + {1 , 4, 11} : 2, + {1 , 2, 1 } : 3, + {11, 3, 3 } : 4} + sub_h would be {{11, 2, 3} : 1, {11, 3, 3} : 4} + + diff --git a/develop/doc/html/_sources/histogram/utilities.rst.txt b/develop/doc/html/_sources/histogram/utilities.rst.txt new file mode 100644 index 000000000..5c4bf7755 --- /dev/null +++ b/develop/doc/html/_sources/histogram/utilities.rst.txt @@ -0,0 +1,6 @@ +.. _utilities: + +Utilities +========= + +*TODO* \ No newline at end of file diff --git a/develop/doc/html/_sources/image_processing/contrast_enhancement/index.rst.txt b/develop/doc/html/_sources/image_processing/contrast_enhancement/index.rst.txt new file mode 100644 index 000000000..60c60cd46 --- /dev/null +++ b/develop/doc/html/_sources/image_processing/contrast_enhancement/index.rst.txt @@ -0,0 +1,11 @@ +Contrast Enhancement +==================== + +The GIL documentation sections listed below are dedicated to describe image +processing algorithms used for contrast enhancement. + +.. toctree:: + :maxdepth: 1 + :caption: Table of Contents + + overview \ No newline at end of file diff --git a/develop/doc/html/_sources/image_processing/contrast_enhancement/overview.rst.txt b/develop/doc/html/_sources/image_processing/contrast_enhancement/overview.rst.txt new file mode 100644 index 000000000..467705511 --- /dev/null +++ b/develop/doc/html/_sources/image_processing/contrast_enhancement/overview.rst.txt @@ -0,0 +1,15 @@ +Overview +======== + +Contrast Enhancement is a significant part of image processing algorithms. Too dark or too +light images don't look good to the human eyes. Hence while the primary focus of these +algorithms is to enhance visual beauty, some applications of this in medical research is also +prevalent. + +We have a few contrast enhancement algorithms in the GIL image processing suite as well. +These include : + #. :ref:`he` + #. :ref:`hm` + #. :ref:`ahe` + #. Linear and Non-Linear Contrast stretching + diff --git a/develop/doc/html/_sources/image_processing/index.rst.txt b/develop/doc/html/_sources/image_processing/index.rst.txt index 71c01c742..c5bc61cfa 100644 --- a/develop/doc/html/_sources/image_processing/index.rst.txt +++ b/develop/doc/html/_sources/image_processing/index.rst.txt @@ -11,3 +11,5 @@ features, structures and algorithms, for image processing and analysis. overview basics affine-region-detectors + contrast_enhancement/index + diff --git a/develop/doc/html/_sources/index.rst.txt b/develop/doc/html/_sources/index.rst.txt index 2a52bd6fa..71bdcf120 100644 --- a/develop/doc/html/_sources/index.rst.txt +++ b/develop/doc/html/_sources/index.rst.txt @@ -26,6 +26,7 @@ Core Library Documentation design/index image_processing/index + histogram/index API Reference <./reference/index.html#://> Extensions Documentation @@ -37,6 +38,7 @@ Extensions Documentation io toolbox numeric + histogram/extension/index Examples -------- diff --git a/develop/doc/html/design/basics.html b/develop/doc/html/design/basics.html index bc60ea02d..5f4ea0295 100644 --- a/develop/doc/html/design/basics.html +++ b/develop/doc/html/design/basics.html @@ -114,7 +114,7 @@ read the sections in order.

diff --git a/develop/doc/html/design/channel.html b/develop/doc/html/design/channel.html index 31bb8b297..7c9f3cb34 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 d091eef09..811b5b561 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 98be6cf5f..3c2e976ce 100644 --- a/develop/doc/html/design/color_space.html +++ b/develop/doc/html/design/color_space.html @@ -164,7 +164,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 46e4716aa..d4be0a8ee 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 e26020f48..f284ac1a5 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 b1886104f..526cfa66e 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 4155e044e..586b62ea0 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 f6a7ad451..c2142621a 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 c5faa1e45..50f8ae9bc 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 02824a5ef..dbc72b2e8 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 f4555048b..4d906cf3b 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 85cf92fec..08f1c5c44 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 0952c262c..d3c0b608d 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 2a8153cb5..8d66886f7 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 0e3e15a5a..1d9b34807 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 49b73d12d..d52c8251b 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 8bb1c28dd..06caf4f0b 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 c853f2653..35fa1f815 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 new file mode 100644 index 000000000..55c9e861b --- /dev/null +++ b/develop/doc/html/histogram/create.html @@ -0,0 +1,112 @@ + + + + + + + + Create a histogram - Boost.GIL documentation + + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

Create a histogram

+

Method 1 - Using the histogram constructor

+

Syntax:

+
histogram<Type1, Type2, Type3,... TypeN>
+
+
+

Type1 .. TypeN correspond to the axis type of the N axes in the histogram

+

Example: If we want a 3D histogram of Axis1 of type int, Axis2 of type float and Axis3 of type std::string +we would do it this way:

+
histogram<int, float, std::string> h;
+
+
+

And done.

+

Method 2 (TODO) - Using make_histogram()

+

There is an alternative to create the histogram directly from +a GIL image view.

+

This should be the preferred over method-1 when creating +histogram with GIL images, since it creates a histogram with axes configured +to match the GIL image.

+

Also it is easier than method-1.

+

Syntax:

+
auto h = make_histogram(view(image));
+
+
+

where image could be a gray8_image_t/rgb8_image_t object read from source.

+
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/histogram/cumulative.html b/develop/doc/html/histogram/cumulative.html new file mode 100644 index 000000000..aee7b6b01 --- /dev/null +++ b/develop/doc/html/histogram/cumulative.html @@ -0,0 +1,109 @@ + + + + + + + + Making a cumulative histogram - Boost.GIL documentation + + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

Making a cumulative histogram

+
+

Overview

+

A cumulative histogram is a histogram in which each bin stores the count / frequency of itself +as well as all the bins with keys ‘smaller’ than the particular bin. +As such, a notion of ordering among its keys should be existant in the histogram.

+

The GIL histogram class has the ability to convert itself into its cumulative version.

+

Since the container needs to first get an ordering +over the keys a key sorting takes place before calculating the cumulative histogram.

+

Example:

+
+
histogram<int, float> h;
+/*
+Fill histogram ...
+*/
+auto h1 = cumulative_histogram(h);
+
+
+
+

Tip: In case you need to store the cumulative histogram elsewhere, consider creating a copy of the histogram +and then call the function.

+
+
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/histogram/extend.html b/develop/doc/html/histogram/extend.html new file mode 100644 index 000000000..623a24e78 --- /dev/null +++ b/develop/doc/html/histogram/extend.html @@ -0,0 +1,145 @@ + + + + + + + + Extending the class - Boost.GIL documentation + + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

Extending the class

+ +
+

User defined Axes

+

In case you need a histogram with an axes of an arbitrary type that is not identified by +the C++ Standard Library, you need to provide a overload for the hashing function that is +used in the histogram class.

+

GIL’s histogram class uses boost::hash_combine in a sub routine to generate a hash from +the key.

+

So we need to provide an overload of boost::hash_combine for the purpose.

+

For example, let’s consider you need a histogram with an axis over class Test.

+
// File : ./test.hpp
+#include <cstddef>
+#include <functional>
+
+struct Test
+{
+    int a{0};
+    Test() = default;
+    Test(int c) : a(c) {}
+    bool operator==(Test const& other) const
+    {
+        return (a == other.a);
+    }
+};
+
+namespace boost {
+    std::size_t hash_value(Test const& t)
+    {
+        // Replace with your hashing code
+        std::hash<int> hasher;
+        return hasher(t.a);
+    }
+}
+
+
+

Now lets get to the usage example.

+
#include <test.hpp>
+#include <boost/gil.hpp>
+#include <iostream>
+// Mind the order of include i.e. test.hpp before boost/gil.hpp
+
+using namespace boost::gil;
+
+int main()
+{
+    boost::gil::histogram<Test> h;
+    Test t(1);
+    h(t) = 1;
+    std::cout<<h(t);
+}
+
+
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/histogram/extension/index.html b/develop/doc/html/histogram/extension/index.html new file mode 100644 index 000000000..9ed089306 --- /dev/null +++ b/develop/doc/html/histogram/extension/index.html @@ -0,0 +1,97 @@ + + + + + + + + Extensions - Boost.GIL documentation + + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

Extensions

+

The GIL documentation sections listed below are dedicated to describe the +usage of external containers as histograms for GIL images.

+
+

Table of Contents

+ +
+
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/histogram/extension/overview.html b/develop/doc/html/histogram/extension/overview.html new file mode 100644 index 000000000..0e84265ff --- /dev/null +++ b/develop/doc/html/histogram/extension/overview.html @@ -0,0 +1,128 @@ + + + + + + + + Overview - Boost.GIL documentation + + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

Overview

+ +
+

Description

+

Apart from the default class supplied by Boost.GIL, there are also provisions to +use external containers like from std::vector, std::map, boost::histogram etc. These +are provided as extensions.

+
+
+

Extensions

+
+
Currently the following are available:
+
    +
  1. std::vector (1D histogram support)
  2. +
  3. std::map (1D histogram support)
  4. +
  5. std::array (1D histogram support)
  6. +
  7. std::unordered_map (1D histogram support)
  8. +
  9. boost::histogram
  10. +
+
+
+
+
+

Adding an external container

+
+
The workflow should be:
+
    +
  1. Provide overloads for fill_histogram(must), make_histogram(optional) etc. in a new file preferably named after the container type in extensions/histogram/.
  2. +
  3. Add tests to test/extensions/histogram.
  4. +
  5. Add docs to docs/histogram/extensions.
  6. +
  7. Other cmake, Jamfile, config etc. file changes.
  8. +
+
+
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/histogram/extension/std.html b/develop/doc/html/histogram/extension/std.html new file mode 100644 index 000000000..ed72003d8 --- /dev/null +++ b/develop/doc/html/histogram/extension/std.html @@ -0,0 +1,127 @@ + + + + + + + + STD extension - Boost.GIL documentation + + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

STD extension

+
+

Supported Types:

+
    +
  1. std::vector (1D)
  2. +
  3. std::map (1D)
  4. +
  5. std::unordered_map (1D)
  6. +
  7. std::array (1D)
  8. +
+
+
+

Usage

+
    +
  1. fill_histogram()

    +
    +
    // Demo for std::vector
    +std::vector<int> v;
    +gil::gray8_image_t img;
    +/*
    +Fill image ...
    +*/
    +gil::fill_histogram(view(img), v, false);
    +
    +
    +
    +
  2. +
  3. cumulative_histogram()

    +
    +
    // Demo for std::vector
    +std::vector<int> v;
    +/*
    +Fill vector...
    +*/
    +gil::cumulative_histogram(v);
    +
    +
    +
    +
  4. +
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/histogram/fill.html b/develop/doc/html/histogram/fill.html new file mode 100644 index 000000000..5733afcd5 --- /dev/null +++ b/develop/doc/html/histogram/fill.html @@ -0,0 +1,189 @@ + + + + + + + + Fill histogram - Boost.GIL documentation + + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

Fill histogram

+ +
+

Overview

+

We will demonstrate the available options for filling an instance of the histogram class with +values that cater from the most simplest to the complex needs that might arise.

+
+
+

Basic

+
    +
  1. Use operator()

    +
    +

    Task - Add value to a particular cell / key / bin in histogram

    +
    histogram<int, int> h;
    +h(1, 2) = 1;
    +
    +
    +
    +
  2. +
  3. Use operator[]

    +
    +

    This requires to input the indices in a format the histogram internally stores its keys, +which is of std::tuple due to its simple interface.

    +

    Task - Output value of a bin

    +
    histogram<int, int> h;
    +h(1, 2) = 1;
    +h[{1, 2}] += 1; // Note the curly braces reqd. to construct a tuple
    +std::cout<<h[{1, 2}]; // Output - 2
    +
    +
    +
    +
  4. +
  5. Use another histogram (copy constructor or assignment)

    +
    +

    Task - Fill a histogram using another

    +
    histogram<int, int> A;
    +/*
    +Fill value in A
    +*/
    +histogram<int, int> B(A), C;
    +C = A;
    +
    +
    +
    +
  6. +
  7. Use a GIL image view

    +
    +

    You can also use GIL images to directly fill histograms.

    +

    Task - Fill histogram using GIL image view

    +
    gil::gray8_image_t img;
    +/*
    +Fill img ...
    +*/
    +histogram<int> h;
    +h.fill(view(img));
    +// OR
    +gil::fill_histogram(view(img), h, false); // false if histogram needs to be cleared before filling
    +
    +
    +
    +
  8. +
+
+
+

Advanced

+
    +
  1. Fill histogram using only a few dimensions of image

    +
    +

    Task - Make an histogram over Red and Blue channel of an rgb image

    +
    gil::rgb8_image_t img;
    +/*
    +Fill img ...
    +*/
    +histogram<int, int> h;
    +fill_histogram<0, 2>(view(img), h, false); // 0 - red, 1 - green, 2 - blue
    +
    +
    +
    +
  2. +
  3. Fill histogram using GIL pixel

    +
    +

    Task - Fill histogram bin using pixel construct in GIL

    +
    gil::gray8_image_t img;
    +/*
    +Fill img ...
    +*/
    +histogram<int> h;
    +gil::for_each_pixel(view(img), [](gil::gray8_pixel_t const& p){
    +    ++h[h.key_from_pixel(p)];
    +});
    +
    +
    +
    +
  4. +
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/histogram/index.html b/develop/doc/html/histogram/index.html new file mode 100644 index 000000000..49e4ae224 --- /dev/null +++ b/develop/doc/html/histogram/index.html @@ -0,0 +1,102 @@ + + + + + + + + Histogram - Boost.GIL documentation + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

Histogram

+

The GIL documentation sections listed below are dedicated to describe the +histogram class and functions used in many image processing algorithms.

+ +
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/histogram/limitations.html b/develop/doc/html/histogram/limitations.html new file mode 100644 index 000000000..5a59b8dfe --- /dev/null +++ b/develop/doc/html/histogram/limitations.html @@ -0,0 +1,89 @@ + + + + + + + + Limitations - Boost.GIL documentation + + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

Limitations

+

TODO

+
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/histogram/overview.html b/develop/doc/html/histogram/overview.html new file mode 100644 index 000000000..31576ef02 --- /dev/null +++ b/develop/doc/html/histogram/overview.html @@ -0,0 +1,121 @@ + + + + + + + + Overview - Boost.GIL documentation + + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

Overview

+ +
+

Description

+

The histogram class is built on top of std::unordered_map to keep it compatible with other +STL algorithms. It can support any number of axes (known at compile time i.e. during class +instantiation). Suitable conversion routines from GIL image constructs to the histogram bin +key are shipped with the class itself.

+
+
+

Tutorials

+
+
The following flow is recommended:
+
    +
  1. Create a histogram
  2. +
  3. Fill histogram
  4. +
  5. Making a sub-histogram
  6. +
  7. Making a cumulative histogram
  8. +
  9. STL compatibility
  10. +
  11. Extending the class
  12. +
  13. Limitations
  14. +
+
+
+
+

Note

+

To try out these tutorials you need to get a clone of the repository, since it is not yet released.

+
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/histogram/stl_compatibility.html b/develop/doc/html/histogram/stl_compatibility.html new file mode 100644 index 000000000..d5fe27d92 --- /dev/null +++ b/develop/doc/html/histogram/stl_compatibility.html @@ -0,0 +1,89 @@ + + + + + + + + STL compatibility - Boost.GIL documentation + + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

STL compatibility

+

TODO

+
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/histogram/subhistogram.html b/develop/doc/html/histogram/subhistogram.html new file mode 100644 index 000000000..13bdf3952 --- /dev/null +++ b/develop/doc/html/histogram/subhistogram.html @@ -0,0 +1,144 @@ + + + + + + + + Making a sub-histogram - Boost.GIL documentation + + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

Making a sub-histogram

+
+

Overview

+

Sub-histogram is a subset of a histogram or one that is formed by masking out a +few axis of the parent histogram.

+

GIL class histogram provides these functions as members and returns an instance of +the desired sub-class.

+
    +
  1. Histogram over fewer axes

    +
    +

    Task - Get a 2D histogram from a 3D RGB histogram over red and green axes

    +
    histogram<int, int, int> h;
    +gil::rgb8_image_t img;
    +/*
    +Fill img ...
    +*/
    +fill_histogram(view(img), h, false);
    +auto sub_h = h.sub_histogram<0, 1>(); // sub_h is a 2D histogram
    +
    +
    +

    Demo output:

    +
    h is {{1, 2, 3} : 1,
    +      {1, 4, 3} : 2,
    +      {1, 2, 5} : 3}
    +sub_h would be {{1, 2} : 4, {1, 4} : 2}
    +
    +
    +
    +
  2. +
  3. Histogram using a particular key range

    +
    +

    Task - Get a 2D histogram from a 3D RGB histogram for bins whose red color lie between 10 - 20 +and blue color lie between 2 - 10

    +
    histogram<int, int, int> h;
    +gil::rgb8_image_t img;
    +/*
    +Fill img ...
    +*/
    +fill_histogram(view(img), h, false);
    +std::tuple<int, int, int> low, high;
    +low = {10, 0, 2} // Since no check over blue channel pass any dummy value
    +high = {20, 0, 10} // Since no check over blue channel pass any dummy value
    +auto sub_h = h.sub_histogram<0, 2>(low, high); // In angle brackets pass the relevant dimensions in order
    +
    +
    +

    Demo Output:

    +
    h is {{11, 2, 3 } : 1,
    +      {1 , 4, 11} : 2,
    +      {1 , 2, 1 } : 3,
    +      {11, 3, 3 } : 4}
    +sub_h would be {{11, 2, 3} : 1, {11, 3, 3} : 4}
    +
    +
    +
    +
  4. +
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/histogram/utilities.html b/develop/doc/html/histogram/utilities.html new file mode 100644 index 000000000..a582c53ca --- /dev/null +++ b/develop/doc/html/histogram/utilities.html @@ -0,0 +1,89 @@ + + + + + + + + Utilities - Boost.GIL documentation + + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

Utilities

+

TODO

+
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/image_processing/affine-region-detectors.html b/develop/doc/html/image_processing/affine-region-detectors.html index 2f930b19a..f109f4c05 100644 --- a/develop/doc/html/image_processing/affine-region-detectors.html +++ b/develop/doc/html/image_processing/affine-region-detectors.html @@ -25,7 +25,7 @@ - + @@ -62,7 +62,7 @@ up - + @@ -157,12 +157,12 @@ detector.” In Alvey vision conference, vol. 15, no. 50, pp. 10-5244. up - + diff --git a/develop/doc/html/image_processing/basics.html b/develop/doc/html/image_processing/basics.html index d7c487cb3..1dbd10ab4 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 edbca7bf1..3aaf11246 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 6aca800fb..fe041977d 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 new file mode 100644 index 000000000..bebf07ab0 --- /dev/null +++ b/develop/doc/html/image_processing/contrast_enhancement/index.html @@ -0,0 +1,96 @@ + + + + + + + + Contrast Enhancement - Boost.GIL documentation + + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

Contrast Enhancement

+

The GIL documentation sections listed below are dedicated to describe image +processing algorithms used for contrast enhancement.

+
+

Table of Contents

+ +
+
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/image_processing/contrast_enhancement/overview.html b/develop/doc/html/image_processing/contrast_enhancement/overview.html new file mode 100644 index 000000000..df9cbf75d --- /dev/null +++ b/develop/doc/html/image_processing/contrast_enhancement/overview.html @@ -0,0 +1,102 @@ + + + + + + + + Overview - Boost.GIL documentation + + + + + + + + + + + + + + + +
+ + + + + + + +
+

C++ Boost

+
+

+
+ + +
+
+
+
+ + +
+

Overview

+

Contrast Enhancement is a significant part of image processing algorithms. Too dark or too +light images don’t look good to the human eyes. Hence while the primary focus of these +algorithms is to enhance visual beauty, some applications of this in medical research is also +prevalent.

+

We have a few contrast enhancement algorithms in the GIL image processing suite as well. +These include :

+
+
    +
  1. Histogram Equalization
  2. +
  3. Histogram Matching
  4. +
  5. ahe
  6. +
  7. Linear and Non-Linear Contrast stretching
  8. +
+
+
+ + + +
+ + + \ No newline at end of file diff --git a/develop/doc/html/image_processing/index.html b/develop/doc/html/image_processing/index.html index de91ab305..84725c3eb 100644 --- a/develop/doc/html/image_processing/index.html +++ b/develop/doc/html/image_processing/index.html @@ -85,6 +85,10 @@ features, structures and algorithms, for image processing and analysis.

  • Algorithm steps
  • +
  • Contrast Enhancement +
  • @@ -99,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 4297ef292..119437dbd 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 19054d046..0c7566540 100644 --- a/develop/doc/html/index.html +++ b/develop/doc/html/index.html @@ -108,6 +108,20 @@ image type.

  • Overview
  • Basics
  • Affine region detectors
  • +
  • Contrast Enhancement
  • + + +
  • Histogram
  • API Reference
  • @@ -137,6 +151,11 @@ image type.

  • Overview
  • +
  • Extensions +
  • @@ -178,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 235ff245d..5de280f9c 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 4db7cdeb5..b48729a36 100644 --- a/develop/doc/html/io.html +++ b/develop/doc/html/io.html @@ -25,7 +25,7 @@ - +
    @@ -59,7 +59,7 @@ @@ -741,13 +741,13 @@ to enable the tests:

    diff --git a/develop/doc/html/naming.html b/develop/doc/html/naming.html index 17f79757d..783218d1d 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 3c060c3af..432a41534 100644 --- a/develop/doc/html/numeric.html +++ b/develop/doc/html/numeric.html @@ -79,7 +79,7 @@ diff --git a/develop/doc/html/objects.inv b/develop/doc/html/objects.inv index c9354cd1b..81e548c43 100644 Binary files a/develop/doc/html/objects.inv and b/develop/doc/html/objects.inv differ diff --git a/develop/doc/html/search.html b/develop/doc/html/search.html index c594bea87..6a6f4886b 100644 --- a/develop/doc/html/search.html +++ b/develop/doc/html/search.html @@ -89,7 +89,7 @@ diff --git a/develop/doc/html/searchindex.js b/develop/doc/html/searchindex.js index cd71f61f3..6543fce17 100644 --- a/develop/doc/html/searchindex.js +++ b/develop/doc/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["design/basics","design/channel","design/color_base","design/color_space","design/concepts","design/conclusions","design/dynamic_image","design/examples","design/extending","design/image","design/image_view","design/index","design/metafunctions","design/pixel","design/pixel_iterator","design/pixel_locator","design/point","design/technicalities","image_processing/affine-region-detectors","image_processing/basics","image_processing/contrast_enhancement/histogram_equalization","image_processing/contrast_enhancement/histogram_matching","image_processing/index","image_processing/overview","index","installation","io","naming","numeric","toolbox","tutorial/gradient","tutorial/histogram","tutorial/video"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:55},filenames:["design/basics.rst","design/channel.rst","design/color_base.rst","design/color_space.rst","design/concepts.rst","design/conclusions.rst","design/dynamic_image.rst","design/examples.rst","design/extending.rst","design/image.rst","design/image_view.rst","design/index.rst","design/metafunctions.rst","design/pixel.rst","design/pixel_iterator.rst","design/pixel_locator.rst","design/point.rst","design/technicalities.rst","image_processing/affine-region-detectors.rst","image_processing/basics.rst","image_processing/contrast_enhancement/histogram_equalization.rst","image_processing/contrast_enhancement/histogram_matching.rst","image_processing/index.rst","image_processing/overview.rst","index.rst","installation.rst","io.rst","naming.rst","numeric.rst","toolbox.rst","tutorial/gradient.rst","tutorial/histogram.rst","tutorial/video.rst"],objects:{},objnames:{},objtypes:{},terms:{"0rrgggbb":13,"0x06":13,"0x0c":13,"0x11":13,"0x30":13,"0x60":13,"0x83":13,"0xc1":13,"1000s":18,"100s":18,"100x100":7,"200x200":30,"4x3":0,"50x50":10,"abstract":[0,5,10,24,30],"boolean":[12,30],"byte":[1,9,10,13,14,15,17,24,30],"case":[2,5,7,8,10,12,13,15,18,20,21,26,30],"char":[7,9,10,12,13,14,26,30],"class":[1,2,4,6,8,9,10,12,13,14,15,17,26,30],"const":[1,2,6,7,8,9,10,12,13,14,15,16,17,26,27,30,31],"default":[1,3,6,7,8,9,10,12,14,17,27,30],"final":[2,7,8,30],"float":[1,7,12,26,27,30],"function":[2,6,8,10,12,14,15,17,18,24,26,30,31],"import":[6,9,17,26],"int":[1,2,3,7,10,13,15,26,30,31],"long":[4,7,8,10,12,30],"new":[5,30,31],"public":[6,8,10,14,15,26],"return":[1,2,4,6,7,8,10,12,13,14,15,17,26,30],"short":[12,26,30,31],"static":[1,2,6,7,8,10,13,14,15,30],"switch":[6,30],"throw":6,"true":[1,2,12,13,14,15,20,21,30],"try":[7,20,21,26,30],"var":[7,31],"void":[2,4,6,7,8,9,10,13,14,17,26,30,31],"while":[0,1,3,13,15,30],But:26,For:[1,2,3,4,6,7,8,10,12,13,14,15,18,20,21,25,26,27,30,31],Its:[1,2,13,14,30],Not:7,One:[15,17,18,20,21,26,30],Such:[1,6,15,30],That:[6,30],The:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,17,18,19,20,21,22,23,24,25,26,27,29,30,31],Their:[6,15,30],Then:[15,20,21,30],There:[0,2,6,12,19,26,30],These:[2,12,13,30],Use:[17,26],Using:[10,12,15,24,31],_bmp_test_fil:26,_concept_:30,_dimens:10,_dst:30,_height:26,_imag:[12,27],_img_siz:30,_info:26,_io_dev:26,_is_:12,_loc:[12,27],_pixel:[10,12,27],_planar:[12,27],_png_test_fil:26,_ptr:[12,27],_ref:[12,27],_scanline_length:26,_step:[12,27],_tiff_graphicsmagick_test_fil:26,_tiff_lib_tiff_test_fil:26,_variants_:30,_view:[12,27],_width:[15,26],abbrevi:30,abgr_layout_t:3,abil:26,abl:[14,26],about:[4,8,15,19,30,32],abov:[0,2,7,10,13,14,15,17,18,19,26,30,31],abraham:17,access:[1,2,3,6,7,8,13,15,26,30],accessor:[2,16],accordingli:8,account:7,achiev:[19,20],acknowledg:24,actual:[8,25,31],adapt:1,adaptor:[8,10,15],add:[6,8,15,26],add_deref:[8,10,15],add_fs_path_support:26,add_ref_t:8,added:29,adding:[7,26],addit:[1,2,4,6,9,10,14,15,30],addition:30,address:[0,12,13],adjac:[10,14,30],adob:10,advanc:[10,14,15,26,30],advantag:[30,31],advis:26,affin:[22,24],after:[2,30],again:[15,18],against:[17,25],alex:17,algorithm:[0,4,5,6,7,8,9,14,15,17,22,23,24],align:[0,6,9,10,13,14,24,30,31],all:[0,1,2,3,4,6,7,8,10,13,14,15,17,18,26,29,30],alloc:[7,9,10,12,26,30,31],allocator_typ:9,allow:[0,1,2,5,6,8,9,10,12,13,14,15,17,24,26,30],alon:19,along:[10,12,14,15,16,30],alpha:[0,29],alpha_t:3,alreadi:[12,13,26,30],also:[0,1,2,3,7,10,12,13,14,15,16,20,26,30,31],altern:30,although:20,alvei:18,alwai:[13,17,27,30],amount:[14,15],analog:13,analysi:[12,22],andrew:18,ani:[0,2,5,6,7,8,10,12,14,15,18,19,25,30,31],anoth:[1,2,5,6,8,10,13,14,19,26,30],another_iter:14,any_imag:[6,26,30],any_image_view:[6,30],any_pixel:[6,30],any_pixel_iter:[6,30],anyth:[8,14,26],api:24,append:12,appendix:30,appli:[0,1,14,19,20,21,24,26,30],applic:[26,30],apply_oper:[6,30],appropri:[1,6,26],approxim:[13,14,30],arbitrari:[8,14,30],area:[7,10,26],aren:26,argb_layout_t:3,argument:[6,14,30],argument_typ:[8,10,30],aris:17,arithmet:[1,19],around:[7,14,15,26],arrai:[0,14,15,19],ascii:26,assembl:30,assert:[1,7,13,30],assert_sam:6,assign:[1,2,4,6,9,13,17,30],assignableconcept:14,associ:[1,2,3,6,12,30],assum:[18,30],at_c:[2,13],atom:30,author:26,auto:[4,26],avaialbl:4,avail:[6,10,15,22,26,30],averag:15,avoid:30,awai:[10,14],axi:[10,15,16,19,30],axis:19,axis_iter:[10,15],axis_valu:16,b16:7,back:[6,10,30],backend:26,backend_t:26,backward:27,bad_cast:6,base:[1,6,10,11,13,14,15,17,24,26,30,31],basic:[4,11,12,18,22,24,26],becam:26,becaus:[1,6,9,10,12,13,15,18,30],been:[5,21,26,30,31],befor:[20,21,26],begin:[7,10,26,30,31],behav:6,being:[12,22,26],belong:29,below:[11,14,15,18,20,21,22,26,30],berlin:18,besid:[3,26],beta:10,better:30,between:[1,6,8,10,13,14,20,21,30],bgr16_view_t:7,bgr16s_pixel_t:30,bgr16s_view_t:30,bgr232:13,bgr232_pixel_t:13,bgr232_ptr_t:13,bgr232_ref_t:13,bgr556:13,bgr556_pixel_t:13,bgr8:13,bgr8_image_t:[12,27],bgr8_pixel_t:[7,13],bgr8_view_t:6,bgr:[0,2,7,12,13,27,30,31],bgr_layout_t:[3,13],bgra_layout_t:3,big:[18,26],biggest:30,bilinear:24,bin:[7,20,21],binari:[26,30],binaryfunctionconcept:10,bit:[0,1,2,7,8,9,10,13,14,15,26,27,30,31],bit_align:13,bit_aligned_image1_typ:12,bit_aligned_image2_typ:12,bit_aligned_image3_typ:12,bit_aligned_image4_typ:12,bit_aligned_image5_typ:12,bit_aligned_image_typ:12,bit_aligned_pixel_iter:[13,14],bit_aligned_pixel_refer:13,bitdepth:[12,27],bitfield:12,bitmask:24,bits16:1,bits32f:1,bits8:[7,10,13,14,30],bitwis:10,block:[3,10,30],blue:[2,7,13,17],blue_t:[2,3,7,13],blur:[18,24],bmp_filenam:26,bmp_test_fil:26,bmp_wiki:26,bodi:30,bool:[1,2,4,6,8,9,10,12,13,14,15,20,21,30],boost:[3,6,7,10,12,14,23,25,26,29,30,31],boost_check_equ:26,boost_concept:14,boost_gil_extension_io_jpeg_c_lib_compiled_as_cplusplu:26,boost_gil_extension_io_png_c_lib_compiled_as_cplusplu:26,boost_gil_extension_io_tiff_c_lib_compiled_as_cplusplu:26,boost_gil_extension_io_zlib_c_lib_compiled_as_cplusplu:26,boost_gil_io_add_fs_path_support:26,boost_gil_io_enable_gray_alpha:26,boost_gil_io_png_1_4_or_low:26,boost_gil_io_png_dithering_support:26,boost_gil_io_png_fixed_point_support:26,boost_gil_io_png_floating_point_support:26,boost_gil_io_test_allow_reading_imag:26,boost_gil_io_test_allow_writing_imag:26,boost_gil_io_use_bmp_test_suite_imag:26,boost_gil_io_use_png_test_suite_imag:26,boost_gil_io_use_pnm_test_suite_imag:26,boost_gil_io_use_tiff_graphicsmagick_test_suite_imag:26,boost_gil_io_use_tiff_libtiff_test_suite_imag:26,boost_gil_use_concept_check:[10,30],boost_mpl_assert:13,boostorg:25,border:7,both:[0,6,7,13,15,16,18,21,26,30,31],bottom:[0,10,15,30],bound:[6,13],boundari:30,bourdev:32,branch:25,bring:[20,21],buffer:[7,13,30],build:[0,25,26],built:[1,7,12,13,14,25,30],byte_to_memunit:14,c_str:26,cach:[15,30],cache_loc:[15,30],cached_location_t:[15,30],calcul:[20,21,31],call:[6,7,8,10,13,17,18,26,30,31],can:[2,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,24,25,26,30,31],cannot:[7,10,19,30],canon:[13,30],capabl:26,captur:3,care:[8,20],carriag:[15,30],cast:30,caus:[18,30],caution:6,cav:6,cb1:2,cb2:2,cb3:2,cc_t:26,ccv:10,ccv_imag:30,center:[7,19],centerimg:7,central:30,certain:19,challeng:[0,30],chan16:1,chang:[6,8,10,12,14,18,26,30,31],channel16_0_5_reference_t:1,channel16_11_5_reference_t:1,channel16_5_6_reference_t:1,channel1:1,channel2:1,channel3:1,channel:[0,2,3,5,6,7,10,11,12,13,14,17,19,20,21,24,26,27,30,31],channel_6bit:1,channel_convert:[1,7,8,13,30],channel_convert_to_unsign:30,channel_invert:[1,8],channel_mapping_t:3,channel_mapping_typ:[12,13,30],channel_multipli:1,channel_t:30,channel_trait:[1,8],channel_typ:[7,12,13,29,30],channel_type_to_index:29,channelbitsizevector:12,channelconcept:[1,13],channelconvertibleconcept:1,channelmap:3,channelmappingconcept:[3,13],channelptr:14,channelrefer:13,channelrefvec:14,channelscompatibleconcept:[1,13],channelvalu:[12,13,14],channelvalueconcept:[1,12],check:[6,7,10,15,25,30],choic:[15,18],choos:15,chose:7,christoph:18,chunki:30,claim:26,classtyp:[12,27],clear:[19,26],client:25,clockwis:30,close:26,closer:30,cmyk16_pixel_t:[12,13,27],cmyk16_planar_image_t:6,cmyk16_planar_step_view_t:6,cmyk16_planar_view_t:6,cmyk16c_planar_ref_t:27,cmyk16c_planar_view_t:6,cmyk16sc_planar_ref_t:12,cmyk8_image_t:26,cmyk:[0,12,27],cmyk_t:3,cmyka:29,code:[0,3,5,6,7,8,10,15,23,24,25,26,27,31],col:31,col_begin:10,col_end:10,collect:[6,29],color:[0,1,5,6,7,10,11,12,13,14,15,20,21,24,26,27,29,31],color_bas:2,color_const_reference_t:2,color_convert:[8,13,29],color_convert_deref_fn:[8,14],color_convert_view:8,color_converted_view:[7,8,10,30,31],color_converted_view_typ:[8,10],color_converter_typ:26,color_reference_t:2,color_spac:29,color_space_t:[2,3],color_space_typ:[7,8,12,13,30],colorbas:2,colorbaseconcept:[2,13],colorbasescompatibleconcept:[2,13],colorbasevalueconcept:2,colorconvert:10,colorspac:[3,12,13,14,27],colorspace1:3,colorspace2:3,colorspaceconcept:[3,13],colorspacescompatibleconcept:[2,3,30],column:[14,15,30,31],com:[10,25,32],combin:[6,14,15,18,30],come:[12,26],commerci:31,common:[0,2,4,6,26],commonli:13,commun:29,compact:1,compactli:[7,30],compar:[0,1,2,5,6,7,30],comparison:[1,6,15,18],compat:[1,2,3,6,7,10,13,26,30],compil:[1,2,5,6,7,10,13,14,17,30],complement:5,complet:[25,26,30],complex:[6,7,13,15,18,30],complic:[8,9,17],compon:[0,1,27],compos:[10,14],comprehend:30,comprehens:30,compris:3,comput:[7,15,18,19,30,31],computexgradientgray8:30,concentr:20,concept:[0,1,2,5,8,9,10,11,13,14,15,16,18,19,24,30],concept_check:[10,30],concept_map:4,conceptc:4,conceptu:13,conclus:[11,24],concret:[6,30],condit:[15,18],confer:18,configur:25,consid:[1,3,6,13,19,31],consist:[2,15,25,30],const_iterator_typ:14,const_point:1,const_refer:[1,8,10,13,14,30],const_t:[6,8,9,10,14,15,30],const_view:[9,30],const_view_t:[6,9],constant:[10,12,13,17,18,30],constexpr:[8,30],construct:[1,4,5,6,7,8,9,10,12,13,14,17,30],constructor:[1,6,7,9,17,25,30],consult:26,contain:[1,2,3,6,7,9,13,14,26,30],content:[11,22,29],context:[19,26],contigu:2,contrast:20,conveni:8,convent:[24,30],convers:[1,13,14,15,26],conversionpolici:26,convert:[1,2,7,8,10,12,13,14,20,21,26,29,30],convolut:[10,22,24],convolv:[7,19],coord:30,coord_t:[9,10,15],coordin:[15,16,26,30],copi:[1,2,6,7,8,9,10,13,15,17,26,30,31],copy_and_convert_pixel:[10,30],copy_pixel:[6,7,10,26,30],copyabl:10,copyconstruct:[2,4],copyconstructibleconcept:14,cordelia:18,corner:[7,10,18,30],correct:30,correctli:[4,17],correspond:[1,2,5,8,10,14,19,20,21,30],cost:5,could:[6,7,10,14,15,19,26,30],count:7,counter:30,counterpart:26,coupl:26,cours:[15,26],cover:[18,20],cpp:[3,24],creat:[1,3,6,7,8,12,13,14,15,24,26],create_with_margin:7,cumul:[20,21],current:[3,6,14,15,25,26,30],curvatur:[18,22],custom:[1,10,15],d_channel_t:30,data:[1,5,8,9,10,26,27,30],dave:17,deal:30,dealloc:30,debug:30,decent:26,declar:30,decrement:15,dedic:[11,22],deep:[6,9,17,30],deeper:18,default_color_convert:10,default_color_converter_impl:8,defaultconstruct:4,defaultconstructibleconcept:14,defin:[0,1,2,3,4,6,10,12,13,14,15,16,17,24,26,30],definit:[3,29],degrad:30,degre:30,delai:15,deleg:10,delet:9,demand:26,demonstr:[10,26,30],denot:[14,17,30],depend:[19,25,26],depth:[0,6,7,10,12,14,27,30,31],deref:[10,15],deref_compos:14,deref_t:8,derefer:[8,30],dereferenc:[7,8,10,12,14,15,17],dereference_iterator_adaptor:14,deriv:[10,18,22],derived_image_typ:[12,30],derived_iterator_typ:[12,30],derived_pixel_reference_typ:[12,30],derived_view_typ:[12,30],describ:[0,2,4,11,15,16,22,26],descript:[26,27],design:[0,2,5,24,26,30],desir:[20,30],despit:6,destin:[1,6,7,8,26,30],destroi:6,destructor:[9,30],det:18,detail:[2,6,14,26],detect:[22,30],detector:[22,24],determin:[14,15,18],develop:[10,23,25],devic:26,devicen_t:3,diagram:15,diff:14,differ:[1,6,13,14,15,17,18,19,21,26,30],difference_typ:[10,15],difficult:[0,30],dim:[6,9,30],dimens:[6,9,10,15,16,18,20,21,26,30],dimension:[7,9,10,15,16,30],direct:[12,14,15,18,19,26,30],directli:[7,13,15,17,26,30,31],directori:29,disadvantag:30,discrimin:18,discuss:[0,25],disk:[6,8,30],dispatch:8,displai:26,distanc:[14,30],distinct:[1,13,18,30],distribut:[13,20],dither:26,divis:14,do_swap:6,document:[0,4,19,22,26,30],doe:[1,7,10,12,17,25,30],doesn:[26,30],doing:[6,8,13],don:[6,8,9,10,12,13,15,30],done:[7,15,19,26,30],doubl:[8,30],down:[6,7,10],download:[10,25],draw:19,drawback:30,drive:26,drop:25,dst:[1,2,7,8,10,26,30],dst_channel_t:30,dst_img:[20,21],dst_it:30,dst_pixel:30,dst_row_byt:30,dst_view:26,dstchannel:1,dstcolorspac:8,dstimag:7,dstp:[8,10],dstpixel:13,dstview:30,due:[13,25],duplic:31,dure:[23,26],dxdx:18,dxdy:18,dydi:18,dynam:[11,12,14,15,24,26],dynamic_at_c:[2,13],dynamic_imag:[6,24,30],dynamic_image_al:[6,30],dynamic_x_step_typ:[6,10,14],dynamic_xy_step_transposed_typ:10,dynamic_xy_step_typ:[6,10],dynamic_y_step_typ:[10,15],each:[0,2,7,8,10,13,15,16,20,21,26,30],earli:[10,30],easi:[26,30],easier:[10,30],easili:30,edg:[18,30],effect:[19,30],effici:[0,7,10,14,15,30,31],either:[6,7,8,10,14,21,26,30],element:[2,3,10,11,13,14,19,30],element_const_reference_typ:[2,13],element_recurs:2,element_reference_typ:[2,13],element_typ:2,els:[8,15],email:26,enabl:26,encod:26,end:[0,7,9,10,15,26,30,31],enhanc:20,enough:18,ensur:[10,30],entir:[20,30],enumer:[26,30],epipolar:23,equal:[1,2,3,6,10,13,15,21,30],equal_pixel:10,equalitycompar:[1,2,4],equival:[2,6,10,14,15],error:[1,6,7,10,17,30],especi:6,essenti:0,establish:27,etc:[0,6,10,13,20,21,25,26,30],european:18,evalu:[12,14],even:[6,7,8,26,30,31],ever:7,everi:[5,6,10,14,15,27,30,31],everyth:8,exact:19,exactli:13,exampl:[1,2,3,4,6,8,10,11,12,13,14,15,17,19,26,27,30,31],except:[2,6,8,10,14,15,25,30],exclud:30,execut:[6,30],exercis:30,exist:[5,7,8,26,31],expect:[21,26],expens:30,explan:[10,18,20,21,26],explicit:[6,13,30],explicitli:30,extend:[5,11,24,30],extending_gil__io_with_new_format:26,extens:[6,8,10,25,30,31],extern:26,extra:[7,10,13,30,31],extract:30,extrem:18,fact:[26,30],factori:[8,10,30],fail:30,fall:[7,10],fals:[8,12,15,30],familiar:30,famou:21,far:30,fast:[10,15,30],faster:[1,5,9,15,30],fastest:7,featr:31,featur:[18,21,22,23,26,31],fetch:30,few:[20,21,26],file:[6,8,25,26,30],file_nam:6,filenam:26,filesystem:26,fill:[2,7,10,13,15,26,30],fill_pixel:[7,10,26],fill_valu:9,filter:[15,22],find:[15,25],first:[0,1,2,3,6,7,8,10,13,15,20,23,26],first_argument_typ:10,firstbit:1,fit:13,five:[3,5,12],flat:[19,20],flatten:20,flavour:26,flexibl:[1,6,12,31],flip:[10,14,30],flipped_left_right_view:10,flipped_up_down_view:10,float_on:1,float_zero:1,fly:14,focu:30,focus:30,folder:[19,24,26],follow:[0,1,2,3,5,6,7,9,10,12,13,15,16,18,20,26,27,29,30,31],for_each:[2,7,10,30],for_each_pixel:[7,10,30,31],for_each_pixel_posit:[10,30],form:[0,9,12,13,18,19,30],format:[13,25,30],format_tag:26,formattag:26,forward:14,forwardtraversalconcept:14,found:26,four:[15,30],fourth:7,frame:23,framework:26,frederik:18,free:[15,25,30],freeli:[7,10],frequent:15,friendli:[15,30],from:[0,1,5,6,7,8,12,13,14,15,18,24,25,26,30,31],fulfil:4,full:[6,13],fulli:[8,26,30],fun:10,function_requir:13,fundament:[1,15,23],fundamental_step:14,further:17,furthermor:[26,30],futur:31,gap:10,gaussian:[18,19],gcc:25,gener:[0,2,4,6,7,9,10,11,14,16,18,19,27],generate_pixel:10,geometri:23,get:[1,6,8,10,12,14,18,19,30],get_color:[2,7,8,13],get_info:26,get_num_bit:29,get_num_it:30,get_pixel_typ:29,get_read_devic:26,get_reader_backend:26,gil:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,22,24,25,27,29,32],gil_function_requir:[2,7,10,30],github:25,give:[7,15,26],given:[0,2,6,8,9,10,12,13,14,15,17,18,30],glimps:30,global:30,goal:[5,20],goe:30,going:15,good:[19,20,30],googl:23,gool:18,gradient:[18,19,24],grai:[7,8,18,29],graph:19,grate:17,gray16:26,gray16_image_t:[26,30],gray16_pixel_t:30,gray16_step_view_t:10,gray16c_view_t:30,gray1:[26,30],gray1_image_t:26,gray2:26,gray32s_pixel_t:30,gray32s_view_t:30,gray4:26,gray4_image_t:26,gray7:26,gray8:26,gray8_image_t:[6,20,21,26,30],gray8_pixel_t:[7,8,30,31],gray8_view_t:7,gray8c_loc_t:30,gray8c_view_t:30,gray8s_image_t:30,gray8s_pixel_t:30,gray8s_view_t:30,gray_alpha:26,gray_alpha_16:26,gray_alpha_8:26,gray_channel_t:7,gray_color_t:[7,8],gray_cs_t:7,gray_image_t:30,gray_layout_t:30,gray_pixel_t:30,gray_t:[3,7,8,12],gray_to_rgb:7,grayimage_histogram:[7,31],graypixel:7,grayscal:[7,8,10,12,14,15,20,30],grayview:[7,31],green:[7,10,13,17,31],green_t:[2,3,7,13],grid:30,group:[0,3],guarante:4,guid:[10,24,30],guidelin:26,gv8:7,half:30,half_x_differ:30,halfdiff_cast_channel:30,hand:[0,5,18,24,30,31],handl:30,happen:[6,18,30],hard:[12,26],hardli:30,harrismatrix:18,has:[2,5,6,7,9,10,12,14,15,26,30],hasdynamicxsteptypeconcept:[14,15],hasdynamicysteptypeconcept:15,hassl:30,hastransposedtypeconcept:15,have:[0,1,2,3,5,6,7,8,9,10,12,13,14,15,18,20,21,26,29,30,31],hcb:2,header:[24,25,26,29],heidelberg:18,height:[6,7,9,10,20,21,30,31],help:19,helper:12,henc:[20,21],here:[0,1,2,3,4,6,7,8,10,12,13,14,15,19,26,30],hessianmatrix:18,heterogen:[12,13,30],higher:8,hill:[18,19],his:26,hist:[7,31],histogram:24,histogram_equ:20,histogram_match:21,homogen:[2,13,14,30],homogeneous_color_bas:[2,14],homogeneouscolorbaseconcept:[2,13,14],homogeneouscolorbasevalueconcept:2,homogeneouspixel:13,homogeneouspixelbasedconcept:[12,13],homogeneouspixelconcept:13,homogeneouspixelvalueconcept:13,hopefulli:[26,29],horizont:[7,12,14,15,19,30],how:[1,3,6,7,8,10,12,13,14,18,26,30],howev:[2,10,30],hpp:[6,8,24,25,26,29,30],hsl:29,hsv:[20,21,29],html:10,http:[10,25,32],idea:20,ideal:20,ident:[7,8],ifstream:26,ignor:[13,30],illumin:21,illustr:[6,7,30],imag:[0,5,11,13,14,16,18,19,20,21,23,25,27,29,31],image_read_info:26,image_read_set:26,image_t:[6,26],image_typ:[8,12,29,30],image_view:[6,9,10,30],image_write_info:26,imageconcept:[6,7,9,12],imagemagick:26,imagetyp:6,imageviewconcept:[6,7,9,10,12,30],imageviewtyp:6,imagin:19,img:[6,7,9,10,15,26,30,31],img_view:8,immut:[6,9,10,12,14,15,27,30],impact:[10,30],implement:[1,2,6,8,10,13,14,15,17,18,25,26],impos:1,improv:[29,30],in1:30,in2:30,in_buff:26,inaccuraci:26,inc:14,includ:[4,6,25,26,29,30],incompat:[1,6,7,26,30],incomplet:26,incorrect:30,incorrectli:17,increas:10,increment:[14,15,30],independ:[15,20,21,26,30],index:[2,10,13,15,26,30,31],indexed_imag:29,indic:[1,12,15,19,27,30],indica:27,ineffici:6,info:26,inform:[1,15,26],inher:14,inherit:[13,25],initi:[7,13,23,30],inlin:[6,8,30],inner:30,inp_img:[20,21],input:[10,19,20,21,30],insid:[6,7,8,10,15,16,30],inspect:25,instal:[24,26],instanc:[6,8,14,26,30],instanti:[6,10,15,30],instead:[1,2,9,30],instruct:30,instrument:5,int_:2,integ:[1,7,10,15,26,30],integr:[1,3,12,14,27,30],intel:15,intens:[1,18,19],interest:18,interfac:15,interleav:[0,6,7,8,9,10,12,13,14,15,27,30,31],interleaved_ptr:24,interleaved_ref:24,interleaved_view:[10,26,30],intermedi:7,intern:[14,18,31],internet:8,interpret:[3,10],interv:20,introduc:26,invari:18,invert:8,invert_pixel:17,invok:[2,6,7,8,10,12,14,15,30],involv:30,ios:26,ios_bas:26,is_1d_travers:[10,15],is_bit_align:29,is_homogen:29,is_iterator_adaptor:14,is_mut:[1,8,13,14,30],is_pixel:13,is_planar:[12,13],is_sam:[6,7,13],is_similar:29,ismut:12,isplanar:[9,12],isstep:12,isstepx:12,issu:[17,25,30,31],isxstep:12,isystep:12,iter:[1,2,5,7,8,9,10,11,13,17,24,27,31],iterator_adaptor_get_bas:14,iterator_adaptor_rebind:14,iterator_from_2d:[10,15],iterator_is_mut:14,iterator_t:26,iterator_trait:[13,17,30],iterator_typ:12,iterator_type_from_pixel:12,iteratoradaptorconcept:14,its:[1,3,6,7,9,12,13,14,15,25,29,30],itself:[7,13],jiri:18,journal:18,jpeg:[8,30],jpeg_dynamic_io:6,jpeg_lib:26,jpeg_read_imag:[6,7,30],jpeg_tag:26,jpeg_wiki:26,jpeg_write_view:[6,7,30],jpg:[7,26,30],just:[7,8,9,12,13,15,26,29,30],kadir:18,keep:[0,14,30],kei:18,kernel:[7,22],kind:26,know:26,known:20,krystian:18,kth_element_const_reference_typ:2,kth_element_reference_typ:2,kth_element_typ:[2,13],kth_semantic_element_const_reference_typ:2,kth_semantic_element_reference_typ:2,kth_semantic_element_typ:[2,13],lab:29,lack:[26,30],laid:7,lambda:[7,31],larg:26,larger:7,largest:7,last:[10,13,26,30],lastli:17,later:[2,15,25],latest:25,latter:[7,13],layout:[2,5,11,12,13,14,24,27,30],layout_t:2,least:[6,30],leav:30,lectur:24,left:[7,10,14,15,21,26,30,31],let:[8,18,19,30,31],level:[1,6,26,30],lib:26,libjpeg:[25,26],libpng:[25,26],librari:[0,5,8,10,11,22,25,26,29,31],libraw:26,libtiff:26,lightweight:[7,10,15,30],like:[0,6,7,8,12,13,14,18,19,20,21,25,26,30],limit:[5,6],line:30,linear:[1,6,20],linearli:[1,30],link:[25,26,32],list:[11,22,25,26],littl:[13,19],live:8,load:[6,30],loc2:15,loc:15,local:[21,26],locat:[5,8,9,10,11,12,13,14,16,21,24,27],locator_t:30,locator_typ:12,look:[8,18,19,26,30],loop:[10,15,30],lossi:[1,13],lot:[26,30],lower:26,lubomir:32,luc:18,lumin:19,luminos:[7,30,31],luminosity8bit_hist:31,luminosity_hist:31,luminosity_histogram:7,macro:[26,31],made:29,magnitud:30,mai:[0,1,3,4,6,7,8,10,13,14,15,30],main:29,maintain:[29,30],make:[0,6,7,8,10,15,26,30],make_scanline_read:26,make_step_iter:14,mandel:30,mandel_grad:30,mandelbrot:[8,14,15,24,30],mandelbrot_fn:30,mani:[5,6,9,10,26,30],manipul:5,manual:26,map:[1,3,7,13],margin:7,mark:0,mask:[20,21],mata:18,match:[1,10,17,20,26,30],mathemat:20,matric:[18,19],matrix:[18,19],matter:18,max:1,max_el:2,max_valu:1,maximum:1,mayb:17,mean:[6,7,9,15,19,25,30],meant:26,measur:[6,15,30],mechan:[6,8,15,30],median:19,member:[8,14,17,26],memmov:[7,10],memori:[0,2,3,7,13,14,15,30,31],memory_based_2d_loc:15,memory_based_step_iter:[14,15],memorybasediteratorconcept:[14,15],memunit:[14,15],memunit_adv:14,memunit_advanc:14,memunit_advanced_ref:14,memunit_dist:14,memunit_step:14,mention:26,meta:30,metafunct:[2,4,10,11,13,14,15,16,24,29,30],metaprogram:26,method:[7,8,10,14,15,30],might:[18,19,26,30],mike:18,mikolajczyk:18,mileston:26,min:1,min_el:2,min_valu:1,mind:5,minimum:1,minisblack:26,minor:5,miss:30,mitig:30,mix:7,mode:[26,30],model:[0,4,5,6,7,8,12,17,30],modern:[26,30],modifi:[10,13,14,16,30],modul:[6,8],moment:18,monkei:7,monkey_transform:7,mono:26,moravec:18,more:[1,2,4,6,7,8,9,10,12,13,14,15,26,30],most:[2,4,8,9,10,13,15,16,25,26,30],motiv:1,move:[10,15,18,26,30],mp11:30,mp_list:30,mpl:[2,3,6,12,13,14,26],much:30,multi:[20,21,26],multipl:[7,10,15,30],multipli:[1,14,30],must:[2,4,10,13,14,15,17,30],mutabl:[1,9,10,12,13,14,15,17,27,30],mutable_forwarditeratorconcept:14,mutablechannelconcept:1,mutablecolorbaseconcept:[2,13],mutablehomogeneouscolorbaseconcept:[2,13],mutablehomogeneouspixelconcept:[7,13],mutableimageviewconcept:[9,10,30],mutableiteratoradaptorconcept:14,mutablepixelconcept:[7,13,17],mutablepixeliteratorconcept:14,mutablepixellocatorconcept:[10,15],mutablerandomaccess2dimageviewconcept:10,mutablerandomaccess2dlocatorconcept:15,mutablerandomaccessiteratorconcept:14,mutablerandomaccessndimageviewconcept:[9,10],mutablerandomaccessndlocatorconcept:15,mutablestepiteratorconcept:[14,15],my_any_image_t:6,my_color_convert:8,my_color_converter_impl:8,my_img_typ:[26,30],my_reference_proxi:17,my_valu:17,my_view:7,my_virt_view_t:30,myimg:6,myit:17,n2081:4,name:[7,13,15,19,24,30,31],namespac:[2,6,17,26,29,30],nativ:[1,30],natur:15,navig:[10,14,15],necessari:[14,15,17,26,30],need:[1,4,7,8,10,12,13,14,15,26,29,30],neg:14,negat:10,neighbor:[15,30],neighborhood:15,neighbour:10,nest:[10,30],never:[6,7,30],new_dim:9,next:[8,10,26,30,31],nice:30,noisi:18,non:[7,10,12,13,15,17,20,26,27,30],none:[26,30],normal:[20,21,30],note:[0,1,2,6,7,9,10,13,18,26,30],noth:13,notic:[2,7,18,30],notion:30,now:[18,26,30],nth_channel_deref_fn:14,nth_channel_view:[7,10,30,31],nth_channel_view_typ:10,nth_channel_x_gradi:30,num_channel:[6,10,12,13,30],num_dimens:[10,15,16],number:[2,6,7,10,13,14,15,18,20,21,30],numbit:1,numer:[10,18,24],numeric_limit:1,obj:6,object:[6,8,10,12,14,15,17,26,27,30,31],obtain:[15,30],occupi:13,off:30,offer:15,offset:[1,14,15,30],ofstream:26,often:[3,6,13,30],old:30,onc:[0,5,10,30],one:[2,4,6,7,8,10,12,13,14,15,19,20,26,30],ones:[6,8,13,18],onli:[1,2,6,7,8,10,13,14,15,17,18,20,24,25,26,29,30,31],onlin:26,open:6,oper:[1,2,4,6,8,9,10,13,14,15,16,17,24,26,27,30,31],oppos:[7,10,12,27,30],optim:[5,7,10,15,30],option:[0,8,18,24,26,30],order:[0,2,3,6,7,10,12,13,15,18,25,27,30,31],organ:[12,13,15,27],origin:[6,10,21,30,32],other:[2,4,8,13,14,15,18,19,26,27,30,31],otherwis:[8,13],our:[6,7,8,30],out:[20,21,26,30],out_buff:26,outdoor:18,output:[20,30],outsid:30,over:[1,9,10,13,14,18,20,21,27,30],overhead:[6,30],overlai:18,overload:[6,10,17,30],overrid:[7,8,15],overview:[22,24],own:[4,8,9,10,15,24,26,30],ownership:[9,30],pack:[9,13,14,30],packed_channel_refer:1,packed_channel_valu:1,packed_dynamic_channel_refer:1,packed_image1_typ:12,packed_image2_typ:12,packed_image3_typ:12,packed_image4_typ:12,packed_image5_typ:12,packed_image_typ:12,packed_pixel:[2,13,14,24],packed_pixel_typ:13,pad:[0,7,9,15],page:26,pair:[2,13,30],pairwis:[1,10,13],palett:26,paper:[4,18],paramet:[0,1,5,6,7,8,9,10,14,15,17,26,30],parent:17,part:[26,31],partial:26,particular:[6,18,30],pass:[6,8,10,30],past:10,patch:18,path:[6,26],pattern:[1,7,12,30],peopl:29,per:[6,10,14,15,30],percent:26,perform:[6,8,10,14,15,24,30],permut:2,physic:[1,2,3,7,13],pick:26,pipe:30,pix_buff:13,pix_it:13,pixel1:13,pixel2:13,pixel:[0,1,2,3,4,5,6,8,9,11,16,17,19,20,21,24,27,31],pixel_2d_locator_bas:15,pixel_bit_s:29,pixel_refer:12,pixel_reference_typ:12,pixel_value_typ:12,pixelbasedconcept:[12,13,14,30],pixelconcept:[4,7,8,10,12,13,14,15],pixelconvertibleconcept:13,pixeldata:14,pixeldereferenceadaptorconcept:[8,10,14,15,30],pixeliteratorconcept:[10,12,14,15],pixellocatorconcept:[10,15],pixelrefer:12,pixelscompatibleconcept:[10,13],pixelvalueconcept:[8,9,10,13,14,15],place:30,plain:14,plan:25,planar:[0,2,6,7,9,10,12,13,14,15,17,26,27,30,31],planar_pixel_iter:[14,15],planar_pixel_refer:[13,17],planar_rgb_view:[10,30],plane:[0,7,10,19,30],platform:[15,24],pleas:[18,26],plot:19,plu:15,png:[20,21],png_lib:26,png_tag:[20,21],png_test_fil:26,png_wiki:26,pnm_wiki:26,point2dconcept:[15,16],point:[0,1,6,10,11,12,13,15,18,24,26,27,30],point_t:[6,9,10,15,26,30],point_typ:10,pointer:[1,7,8,10,13,14,15,26,27,30],pointndconcept:[10,15,16],polici:[0,10,31],popular:25,posit:[14,15,30],position_iter:14,possibl:[6,10,13,26,30],potenti:[0,26],pow:30,power:[6,7,18,30],practic:[6,30],pre:30,precis:1,prefix:2,presenc:0,present:[30,31,32],pretend:14,previou:[0,6],previous:[10,30],price:12,privat:[8,10,15,26,30],probabl:26,problem:[12,17,30],process:[0,10,23,24,30],processor:30,produc:19,product:[30,31],profil:8,program:[4,26,30,31],project:[0,23,25],propag:[10,30],proper:30,properli:[1,2,7,8,26,30],properti:[12,13,24,30],propos:4,provid:[0,1,2,3,5,6,8,9,10,12,13,14,15,16,17,19,26,29,30,31],proxi:[1,2,13],ptr:7,ptrdiff_t:[6,10,14,15,30],pull:14,purpos:13,put:[19,30],quadrant:31,qualifi:17,qualiti:[8,26],queri:30,r565:13,rais:30,random:[3,6,14,15,30],randomaccess2dimageconcept:9,randomaccess2dimageviewconcept:10,randomaccess2dlocatorconcept:15,randomaccessndimageconcept:9,randomaccessndimageviewconcept:10,randomaccessndlocatorconcept:[10,15],randomaccesstraversalconcept:[10,14,15],randomaccesstraversaliteratorconcept:14,rang:[1,2,9,10,20,30],range_c:3,rare:[9,30],rather:26,raw:[5,15,30],raw_wiki:26,rbegin:10,rbg323:26,rdbuf:26,read:[0,8,10,12,13,14,15,30],read_and_convert_imag:26,read_and_convert_view:26,read_imag:[20,21,26],read_image_info:26,read_view:26,read_xxx:26,reader:[26,30],reader_bas:26,reader_t:26,readm:25,real:[17,30],realiz:30,reason:20,rebind:14,recommend:[0,26],recreat:[6,7,9],rectangular:[10,30],recurs:[2,14,30],red:[0,1,2,7,13,14,17],red_in_cmyk16:13,red_in_rgb8:13,red_t:[2,3,13],redefin:8,ref2:7,ref:[7,13],ref_imag:21,ref_img:21,refer:[1,2,7,8,10,12,13,14,15,18,21,24,26,27,30],refin:16,regardless:30,region:[22,24,30],regist:30,regular:[1,2,4,9,10,13,15,16],rel:[15,30],relat:[4,12,30],releas:23,relev:26,remain:8,rememb:[15,17],remov:[26,30,31],remove_refer:14,rend:10,repeat:15,replac:12,repositori:25,repres:[0,15,17,26,30],represent:[0,5,24,30],request:26,requir:[1,2,4,6,8,9,10,13,14,15,24,25,26,30],resampl:10,rescal:24,resembl:[6,10],resid:30,resiz:[10,24],resolut:[5,6],respect:[7,13,30],respons:18,rest:[12,30],restrict:26,result:[0,2,5,6,7,8,10,12,13,14,15,18,25,26,30],result_typ:[4,6,8,10,14,30],reus:30,reverse_iter:10,review:[26,29],rewrit:30,rewritten:31,rgb16:26,rgb16_image_t:[10,30],rgb16c_planar_view_t:30,rgb222:30,rgb32f_planar_step_ptr_t:[12,27],rgb32f_planar_view_t:7,rgb32fc_view_t:30,rgb32s_pixel_t:30,rgb32s_view_t:30,rgb565:13,rgb565_channel0_t:13,rgb565_channel1_t:13,rgb565_channel2_t:13,rgb565_pixel_t:13,rgb64_image_t:8,rgb64_pixel:8,rgb64_pixel_ptr_t:8,rgb64_pixel_t:8,rgb8:[13,26],rgb8_image_t:[6,26,30],rgb8_pixel_t:[7,13,30],rgb8_planar_ptr_t:14,rgb8_planar_ref_t:[7,13],rgb8_planar_view_t:12,rgb8_ptr_t:10,rgb8_step_view_t:6,rgb8_view_t:[6,7],rgb8c_planar_ptr_t:[7,14],rgb8c_planar_ref_t:[7,13],rgb8c_ptr_t:10,rgb8c_view_t:[6,30],rgb:[0,1,2,7,8,10,12,13,14,20,21,26,27,30,31],rgb_channel_t:7,rgb_cs_t:7,rgb_full:13,rgb_layout_t:[7,8,13],rgb_planar_pixel_iter:17,rgb_t:[3,7,13,14],rgba16:26,rgba8:26,rgba8_image_t:26,rgba:[0,3,12,27,29],rgba_image_t:26,rgba_layout_t:[3,7],rgba_t:3,rgbpixel:7,rgbtograi:31,right:[7,10,14,15,21,30],rise:15,rotat:[6,10,30],rotated180_view:[6,7,10],rotated180_view_fn:6,rotated90ccw_view:[10,30],rotated90cw_view:[10,30],row:[0,7,9,10,13,14,15,26,30,31],row_begin:[10,30],row_end:10,rowsiz:10,rpv32:7,rule:25,run:[0,1,5,6,7,10,23,24],runtim:6,runtime_imag:[26,30],rview:10,said:6,sake:10,same:[1,2,3,6,7,8,10,13,15,16,18,19,21,26,30],sametyp:[1,2,4,10,13,14,16],sampl:[15,24,26,30,31],satisfi:[2,4,9,10,15,30],sav:6,save:[6,26,30],save_180rot:6,scale:30,scanlin:26,scanline_read:26,scanline_read_iter:26,scenario:[2,20,30],schaffalitzki:18,scharr:19,scharrx:19,schmid:18,scoped_channel_valu:1,sean:17,second:[0,1,7,13,15,17,18,26,30,31],second_argument_typ:10,section:[0,2,10,11,22,26,29],see:[2,4,8,10,14,15,25,26,30],seek:26,select:[6,25],semant:[2,3,13,30],semantic_at_c:[2,7,13],send:26,sensor:21,separ:[0,8,10,18,30],sequenc:[1,3],serv:26,servic:25,set:[0,1,3,4,6,7,8,9,10,13,14,15,26,30],set_step:14,sever:[5,14,26,30],shallow:[6,7,10,14,17,30],shape:19,share:[6,13,26],sharper:19,she:26,shift:1,shortli:31,should:[6,15,18,20,25,26,30],show:[7,26,30],shown:[7,20,21,30],side:30,sigma:19,sign:[12,27,30],signific:10,similar:[1,10,14,15,24,26,30],similarli:[9,14],simpl:[12,15,19,20,26,30,31],simpler:[18,26,31],simplest:[19,30],simpli:[7,8,15,18,19,30],simplic:30,simplifi:[7,18,30],simultan:30,sinc:[6,7,13,14,20,21,26,29,30,31],singl:[6,10,14,19,26,30],size1:12,size2:12,size3:12,size4:12,size5:12,size:[2,3,6,7,10,13,14,15,26,30],size_t:[2,6,9,10,13,15,16],size_typ:[6,10],sizeof:13,skeleton:26,skip:[10,14,30,31],slightli:[8,30],slow:30,slower:[15,30],small:[18,26,29],smaller:7,sobel:19,softwar:31,solut:17,some:[0,4,6,7,8,10,12,13,14,15,17,26,30],sometim:[1,10,13,14,15,17,26,30],somewher:8,soon:26,sort:19,sourc:[1,6,7,8,10,25,26,27,30,31,32],space:[0,2,5,6,7,10,11,13,14,20,21,24,26,29,30,31],special:[8,13,21,27,30],specif:[0,5,24,26,30],specifi:[0,1,3,5,6,8,9,12,14,20,21,24,26],speed:[0,5,6,10,30],spirit:15,spread:20,springer:18,sr8wjg0pcee:32,src1:10,src1_it:30,src2:10,src2_it:30,src:[1,2,6,7,8,10,26,30],src_b:30,src_g:30,src_it:30,src_loc:30,src_pix_ref:8,src_pixel:30,src_r:30,src_row_byt:30,srcchannel:1,srccolorspac:8,srcconstrefp:8,srcp:8,srcpixel:13,srcview:[7,8,10,30],srowbyt:31,stabl:18,stage:10,standalon:29,standard:[3,4,10,12,14,15,20,21],start:[10,13,15,26,30],state:10,statement:[6,30],static_:2,static_assert:[6,7,12,13],static_copi:2,static_equ:2,static_fil:[2,7,30],static_for_each:[2,30],static_gener:[2,30],static_max:2,static_min:2,static_transform:[2,14,30],std:[1,2,6,7,9,10,12,13,14,15,17,26,30,31],step1:7,step2:7,step3:7,step4:7,step5:7,step:[6,10,12,15,22,27,30],step_iterator_t:12,stepanov:17,stephen:18,stepiter:15,stepiteratorconcept:[14,15],still:30,stl:[2,5,6,9,15,17],stlab:10,store:[6,7,15,26,30],straightforward:[10,26],stream:26,strength:19,stretch:19,string:[6,26],stringstream:26,strip:26,strongli:26,struct:[1,2,3,6,8,10,12,13,14,15,16,17,26,30],structur:[0,6,10,11,18,22,24,30],studio:30,sub:[1,17,26,29],subclass:[6,14,15],subimag:30,subimage_view:[7,10,26,30,31],subject:26,suboptim:30,subsampl:[10,14,30],subsampled_view:[7,10,30,31],substitut:4,successfulli:25,succinct:10,suffici:[15,25],suffix:27,suggest:[17,29],suit:26,suitabl:30,sum:18,summer:23,suppli:[8,10,14,15,26],support:[0,1,6,7,8,10,12,14,24,25,30,31],supported_image_format:26,suppos:[6,7,8,30],sure:26,swap:[4,15,17],swappabl:[1,2,4],symmetr:13,synopsi:[10,15],syntact:4,syntax:[4,20,21],synthet:[8,24,30],system:[26,30],tabl:[11,22,26],tag:[26,27],tag_t:26,take:[2,6,7,8,9,10,14,15,17,26,30,31],taken:[20,21,30],targa_wiki:26,target:[5,26,30],task:30,technic:[11,24],techniqu:[6,21,26],tell:25,templat:[1,2,3,4,6,7,8,9,10,12,13,14,15,16,17,26,30,31],temporari:[17,30],term:[16,18],test:[24,25,27],test_imag:26,text:26,than:[2,6,7,13,14,15,26,30],thank:[26,29],thei:[1,2,3,5,6,7,8,10,12,13,14,15,18,19,30],them:[1,4,6,9,10,12,13,26,30],therefor:1,thi:[0,1,2,4,6,7,8,10,12,13,14,15,17,18,19,21,26,27,29,30,31,32],thing:[7,19,26],think:30,third:26,thorough:26,those:[13,19],though:[6,7,19,30],three:[1,13,14,18,19,30],threshold:18,through:[7,15,26,30],thrown:30,thu:[1,2,3,8,15,20],tif:26,tiff_base_tag:26,tiff_extension_tag:26,tiff_graphicsmagick_test_fil:26,tiff_lib:26,tiff_lib_tiff_test_fil:26,tiff_t:26,tiff_tag:26,tiff_wiki:26,tile:26,time:[0,1,2,5,6,7,8,10,14,24],timor:18,tinn:18,tmp:[14,17],todo:28,togeth:[0,3,13,30],toll:[6,30],too:29,toolbox:[24,26],top:[0,7,10,12,15,26,30,31],top_left:10,total:[10,15],trace:18,track:[10,14,30],transform:[1,2,6,8,10,18,20,21,24],transform_pixel:[10,30],transform_pixel_posit:[10,30],transpos:[10,15,30],transposed_typ:[10,15],transposed_view:10,travers:[9,10,14,15,26,27,30],treat:[6,30],tricki:17,trickier:30,trigger:[6,30],trivial:27,troubl:26,true_:[12,14],turn:6,tutori:[8,10,15,24],tuytelaar:18,tweak:19,twice:30,two:[0,1,2,3,6,7,9,10,13,14,15,16,18,19,21,23,26,30],type:[0,1,2,3,4,5,6,7,9,10,13,14,15,16,17,24,26,29,30,31],type_from_x_iter:12,typedef:[1,6,7,8,10,12,13,14,17,26,30],typenam:[1,2,3,4,6,7,8,9,10,12,13,14,15,16,17,26,30,31],typic:[1,6,8,10],ud_fud:10,uint16_t:[1,13],uint8_t:[1,18,31],unari:[14,30],unary_compos:14,unary_funct:14,unaryfunctionconcept:[10,14],unchang:30,unclear:15,under:[18,21,26],underli:[6,10,14,26],understand:[1,18,19,26],unfamiliar:30,unfortun:30,uniform:21,uniformli:[6,20],uninitialized_copi:10,uninitialized_copy_pixel:10,uninitialized_fil:10,uninitialized_fill_pixel:10,uniqu:3,unit:[14,15,26],unless:19,unlik:[9,13],unnam:3,unnecessari:[7,13,30],unpack:13,unrel:31,unrol:30,unset:10,unsign:[6,7,9,10,12,13,14,27,30],unspecifi:4,until:18,unus:[13,30],unusu:30,upon:[6,8,10,12,14,15,17],upper:31,upsid:[6,10],usag:[19,20,21,26],use:[1,2,4,7,8,10,12,13,15,17,19,21,25,26,30],use_default:12,used:[2,3,4,5,6,7,9,13,14,15,16,18,19,26,27,30],useful:[8,9,14,15,30],user:[0,4,8,10,15,26,29,30],uses:[2,6,10,12,14,15,16,26,30],using:[1,2,3,6,7,8,9,10,12,13,15,24,26,30,31],using_io:26,usual:[14,18,19,26],val:10,valid:[1,10,30],valu:[0,1,2,3,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,26,27,30],value_typ:[1,8,9,10,13,14,15,16,26,30],valueless:6,van:18,vari:[0,3,30],variabl:[0,30,31],variant2:6,variant:[6,26,30],variat:[0,26],varieti:[24,30],variou:26,vector3_c:13,vector4:3,vector4_c:3,vector:[20,21,26,30],veri:[9,12,18,30,31],version:[10,14,15,25,26,31],vertic:[12,14,15,19,30],via:[6,10],video:[0,24,30],view1:10,view2:10,view:[5,9,11,13,14,15,20,21,24,26,27,31],view_is_mut:12,view_t:[6,7,9,10,12,26],view_typ:12,view_type_from_pixel:12,viewer:26,viewscompatibleconcept:[7,10],viewtyp:6,virtual:[5,8,12,14,15,26],virtual_2d_loc:[15,30],vision:[0,18],visit:[10,15],visual:30,vol:18,wai:[2,13,17,19,26,27,30],walk:[26,30],want:[7,8,14,15,26,30],warn:30,watch:32,web:4,websit:26,weight:[18,22],well:[2,13,26,30],were:[23,30],what:[6,19,22,26,30],when:[2,7,8,9,10,14,15,17,18,19,21,26,30],where:[1,2,7,9,10,12,13,14,15,16,25,26,27,30],wherea:[0,2,6,19,26,30],whether:[1,10,12,14,15,30],which:[0,1,2,3,6,7,8,9,10,12,14,15,16,19,20,25,26,27,29,30],who:29,whose:[0,2,10,12,13,14,24,30],why:[20,30],width:[6,7,9,10,15,20,21,30,31],window:[18,26],within:10,without:18,word:[0,9,10,14,19,30],work:[0,5,6,7,8,10,13,17,18,24,30,31],worth:[7,26,30],would:[0,6,14,19,20,21,26,30],wrap:[6,10,14],wrapper:[14,15],write:[0,5,6,7,10,17,24,30],write_view:26,writer:26,written:[15,19,26,30,31],wstring:26,www:32,x_at:[10,15],x_coord_t:[6,9,10,15],x_diff:15,x_gradient:[24,30],x_gradient_obj:30,x_gradient_rgb_luminos:30,x_gradient_unguard:30,x_iter:[9,10,13,15,26,30],x_luminosity_gradi:30,x_min:30,xbm:26,xgradientgray16_gray32:30,xgradientplanarrgb8_rgb32:30,xgradientrgb8_bgr16:30,xiter:[12,15],xpm:26,xxx:26,xxx_all:26,xxx_and_convert_xxx:26,xxx_read:26,xxx_tag:26,xxx_write:26,xy_at:[10,15,30],xy_loc:[10,30],xy_locator_t:12,xyz:29,y_at:[10,15],y_coord_t:[6,9,10,15],y_distance_to:15,y_gradient:30,y_iter:[10,15,30],y_min:30,ycbcr:[20,21,26],ycck:26,yellow:18,yet:[0,26,30],you:[7,8,12,17,26,30],your:[8,17,24,25,26,30],your_imag:[20,21],your_ref_imag:21,yourself:26,youtub:32,zero:[13,18,30],zisserman:18,zlib:26},titles:["Basics","Channel","Color Base","Color Space and Layout","Concepts","Conclusions","Dynamic images and image views","Examples","Extending","Image","Image View","Design Guide","Metafunctions","Pixel","Pixel Iterator","Pixel Locator","Point","Technicalities","Affine region detectors","Basics","Histogram Equalization","Histogram Matching","Image Processing","Overview","Boost Generic Image Library","Installation","IO extensions","Naming Conventions","Numeric extension","ToolBox extension","Tutorial: Image Gradient","Tutorial: Histogram","Tutorial: Video Lecture"],titleterms:{"new":[8,26],And:26,Using:[7,26,30],acknowledg:29,adaptor:14,affin:18,algorithm:[1,2,10,13,18,20,21,30],align:12,avail:18,base:[2,12],basic:[0,19],being:18,bit:12,bmp:26,boost:24,buffer:26,canva:7,channel:[1,8],code:30,color:[2,3,8,30],compat:5,compil:[25,26],compon:12,concept:4,conclus:[5,30],concret:27,convent:27,convers:[8,30],convolut:19,core:24,creat:[10,17,30],curvatur:19,defin:8,demo:[20,21],derefer:14,deriv:[12,19],descript:[20,21],design:11,detect:18,detector:18,document:24,dynam:6,equal:20,equival:30,exampl:[7,24],exist:12,extend:[8,26],extens:[5,24,26,28,29],filter:19,first:30,flexibl:5,folder:29,format:26,from:10,fundament:14,gener:[5,24,26,30],gil:[26,30,31],glue:30,gradient:30,guid:11,harri:18,hessian:18,histogram:[7,20,21,31],homogen:12,imag:[6,7,8,9,10,12,15,22,24,26,30],implement:[30,31],instal:25,interfac:[26,30],iter:[12,14,15,30],jpeg:26,kernel:19,layout:3,lectur:32,level:7,librari:24,locat:[15,30],manipul:12,match:21,memori:[12,26],metafunct:12,model:[1,2,3,9,10,13,14,15,16],name:27,numer:28,oper:7,origin:31,other:10,over:15,overload:8,overview:[1,2,3,8,9,10,12,13,14,15,16,23,26,28,29],pack:12,perform:5,pixel:[7,10,12,13,14,15,30],platform:26,png:26,pnm:26,point:16,process:22,proxi:17,quickstart:24,raw:[10,26],read:26,refer:[17,29],region:18,resiz:7,result:[20,21],run:[26,30],space:[3,8],specifi:30,step:[14,18],stl:[10,30],structur:29,style:10,support:26,symbol:26,targa:26,technic:17,test:26,tiff:26,time:30,toolbox:29,trait:12,transform:30,tutori:[26,30,31,32],type:[8,12,27],version:30,video:32,view:[6,7,8,10,12,30],virtual:30,weight:19,what:18,write:26}}) \ No newline at end of file +Search.setIndex({docnames:["design/basics","design/channel","design/color_base","design/color_space","design/concepts","design/conclusions","design/dynamic_image","design/examples","design/extending","design/image","design/image_view","design/index","design/metafunctions","design/pixel","design/pixel_iterator","design/pixel_locator","design/point","design/technicalities","histogram/create","histogram/cumulative","histogram/extend","histogram/extension/index","histogram/extension/overview","histogram/extension/std","histogram/fill","histogram/index","histogram/limitations","histogram/overview","histogram/stl_compatibility","histogram/subhistogram","histogram/utilities","image_processing/affine-region-detectors","image_processing/basics","image_processing/contrast_enhancement/histogram_equalization","image_processing/contrast_enhancement/histogram_matching","image_processing/contrast_enhancement/index","image_processing/contrast_enhancement/overview","image_processing/index","image_processing/overview","index","installation","io","naming","numeric","toolbox","tutorial/gradient","tutorial/histogram","tutorial/video"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:55},filenames:["design/basics.rst","design/channel.rst","design/color_base.rst","design/color_space.rst","design/concepts.rst","design/conclusions.rst","design/dynamic_image.rst","design/examples.rst","design/extending.rst","design/image.rst","design/image_view.rst","design/index.rst","design/metafunctions.rst","design/pixel.rst","design/pixel_iterator.rst","design/pixel_locator.rst","design/point.rst","design/technicalities.rst","histogram/create.rst","histogram/cumulative.rst","histogram/extend.rst","histogram/extension/index.rst","histogram/extension/overview.rst","histogram/extension/std.rst","histogram/fill.rst","histogram/index.rst","histogram/limitations.rst","histogram/overview.rst","histogram/stl_compatibility.rst","histogram/subhistogram.rst","histogram/utilities.rst","image_processing/affine-region-detectors.rst","image_processing/basics.rst","image_processing/contrast_enhancement/histogram_equalization.rst","image_processing/contrast_enhancement/histogram_matching.rst","image_processing/contrast_enhancement/index.rst","image_processing/contrast_enhancement/overview.rst","image_processing/index.rst","image_processing/overview.rst","index.rst","installation.rst","io.rst","naming.rst","numeric.rst","toolbox.rst","tutorial/gradient.rst","tutorial/histogram.rst","tutorial/video.rst"],objects:{},objnames:{},objtypes:{},terms:{"0rrgggbb":13,"0x06":13,"0x0c":13,"0x11":13,"0x30":13,"0x60":13,"0x83":13,"0xc1":13,"1000s":31,"100s":31,"100x100":7,"200x200":45,"4x3":0,"50x50":10,"abstract":[0,5,10,39,45],"boolean":[12,45],"byte":[1,9,10,13,14,15,17,39,45],"case":[2,5,7,8,10,12,13,15,19,20,31,33,34,41,45],"char":[7,9,10,12,13,14,41,45],"class":[1,2,4,6,8,9,10,12,13,14,15,17,19,22,24,25,27,29,39,41,45],"const":[1,2,6,7,8,9,10,12,13,14,15,16,17,20,24,41,42,45,46],"default":[1,3,6,7,8,9,10,12,14,17,20,22,42,45],"final":[2,7,8,45],"float":[1,7,12,18,19,41,42,45],"function":[2,6,8,10,12,14,15,17,19,20,25,29,31,39,41,45,46],"import":[6,9,17,41],"int":[1,2,3,7,10,13,15,18,19,20,23,24,29,41,45,46],"long":[4,7,8,10,12,45],"new":[5,22,45,46],"public":[6,8,10,14,15,41],"return":[1,2,4,6,7,8,10,12,13,14,15,17,20,29,41,45],"short":[12,41,45,46],"static":[1,2,6,7,8,10,13,14,15,45],"switch":[6,45],"throw":6,"true":[1,2,12,13,14,15,33,34,45],"try":[7,27,33,34,41,45],"var":[7,46],"void":[2,4,6,7,8,9,10,13,14,17,41,45,46],"while":[0,1,3,13,15,36,45],And:18,But:41,For:[1,2,3,4,6,7,8,10,12,13,14,15,20,31,33,34,40,41,42,45,46],Its:[1,2,13,14,45],Not:7,One:[15,17,31,33,34,41,45],Such:[1,6,15,45],That:[6,45],The:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,17,19,21,22,25,27,31,32,33,34,35,37,38,39,40,41,42,44,45,46],Their:[6,15,45],Then:[15,33,34,45],There:[0,2,6,12,18,32,41,45],These:[2,12,13,22,36,45],Use:[17,24,41],Using:[10,12,15,18,39,46],_bmp_test_fil:41,_concept_:45,_dimens:10,_dst:45,_height:41,_imag:[12,42],_img_siz:45,_info:41,_io_dev:41,_is_:12,_loc:[12,42],_pixel:[10,12,42],_planar:[12,42],_png_test_fil:41,_ptr:[12,42],_ref:[12,42],_scanline_length:41,_step:[12,42],_tiff_graphicsmagick_test_fil:41,_tiff_lib_tiff_test_fil:41,_variants_:45,_view:[12,42],_width:[15,41],abbrevi:45,abgr_layout_t:3,abil:[19,41],abl:[14,41],about:[4,8,15,32,45,47],abov:[0,2,7,10,13,14,15,17,31,32,41,45,46],abraham:17,access:[1,2,3,6,7,8,13,15,41,45],accessor:[2,16],accordingli:8,account:7,achiev:[32,33],acknowledg:39,actual:[8,40,46],adapt:1,adaptor:[8,10,15],add:[6,8,15,22,24,41],add_deref:[8,10,15],add_fs_path_support:41,add_ref_t:8,added:44,adding:[7,41],addit:[1,2,4,6,9,10,14,15,45],addition:45,address:[0,12,13],adjac:[10,14,45],adob:10,advanc:[10,14,15,41,45],advantag:[45,46],advis:41,affin:[37,39],after:[2,22,45],again:[15,31],against:[17,40],ahe:36,alex:17,algorithm:[0,4,5,6,7,8,9,14,15,17,25,27,35,36,37,38,39],align:[0,6,9,10,13,14,39,45,46],all:[0,1,2,3,4,6,7,8,10,13,14,15,17,19,31,41,44,45],alloc:[7,9,10,12,41,45,46],allocator_typ:9,allow:[0,1,2,5,6,8,9,10,12,13,14,15,17,39,41,45],alon:32,along:[10,12,14,15,16,45],alpha:[0,44],alpha_t:3,alreadi:[12,13,41,45],also:[0,1,2,3,7,10,12,13,14,15,16,18,22,24,33,36,41,45,46],altern:[18,45],although:33,alvei:31,alwai:[13,17,42,45],among:19,amount:[14,15],analog:13,analysi:[12,37],andrew:31,angl:29,ani:[0,2,5,6,7,8,10,12,14,15,27,29,31,32,40,45,46],anoth:[1,2,5,6,8,10,13,14,24,32,41,45],another_iter:14,any_imag:[6,41,45],any_image_view:[6,45],any_pixel:[6,45],any_pixel_iter:[6,45],anyth:[8,14,41],apart:22,api:39,append:12,appendix:45,appli:[0,1,14,32,33,34,39,41,45],applic:[36,41,45],apply_oper:[6,45],appropri:[1,6,41],approxim:[13,14,45],arbitrari:[8,14,20,45],area:[7,10,41],aren:41,argb_layout_t:3,argument:[6,14,45],argument_typ:[8,10,45],aris:[17,24],arithmet:[1,32],around:[7,14,15,41],arrai:[0,14,15,22,23,32],ascii:41,assembl:45,assert:[1,7,13,45],assert_sam:6,assign:[1,2,4,6,9,13,17,24,45],assignableconcept:14,associ:[1,2,3,6,12,45],assum:[31,45],at_c:[2,13],atom:45,author:41,auto:[4,18,19,29,41],avaialbl:4,avail:[6,10,15,22,24,37,41,45],averag:15,avoid:45,awai:[10,14],axes:[18,20,27,29],axi:[10,15,16,18,20,29,32,45],axis1:18,axis2:18,axis3:18,axis:32,axis_iter:[10,15],axis_valu:16,b16:7,back:[6,10,45],backend:41,backend_t:41,backward:42,bad_cast:6,base:[1,6,10,11,13,14,15,17,39,41,45,46],basic:[4,11,12,31,37,39,41],beauti:36,becam:41,becaus:[1,6,9,10,12,13,15,31,45],been:[5,34,41,45,46],befor:[19,20,24,33,34,41],begin:[7,10,41,45,46],behav:6,being:[12,37,41],belong:44,below:[11,14,15,21,25,31,33,34,35,37,41,45],berlin:31,besid:[3,41],beta:10,better:45,between:[1,6,8,10,13,14,29,33,34,45],bgr16_view_t:7,bgr16s_pixel_t:45,bgr16s_view_t:45,bgr232:13,bgr232_pixel_t:13,bgr232_ptr_t:13,bgr232_ref_t:13,bgr556:13,bgr556_pixel_t:13,bgr8:13,bgr8_image_t:[12,42],bgr8_pixel_t:[7,13],bgr8_view_t:6,bgr:[0,2,7,12,13,42,45,46],bgr_layout_t:[3,13],bgra_layout_t:3,big:[31,41],biggest:45,bilinear:39,bin:[7,19,24,27,29,33,34],binari:[41,45],binaryfunctionconcept:10,bit:[0,1,2,7,8,9,10,13,14,15,41,42,45,46],bit_align:13,bit_aligned_image1_typ:12,bit_aligned_image2_typ:12,bit_aligned_image3_typ:12,bit_aligned_image4_typ:12,bit_aligned_image5_typ:12,bit_aligned_image_typ:12,bit_aligned_pixel_iter:[13,14],bit_aligned_pixel_refer:13,bitdepth:[12,42],bitfield:12,bitmask:39,bits16:1,bits32f:1,bits8:[7,10,13,14,45],bitwis:10,block:[3,10,45],blue:[2,7,13,17,24,29],blue_t:[2,3,7,13],blur:[31,39],bmp_filenam:41,bmp_test_fil:41,bmp_wiki:41,bodi:45,bool:[1,2,4,6,8,9,10,12,13,14,15,20,33,34,45],boost:[3,6,7,10,12,14,20,22,38,40,41,44,45,46],boost_check_equ:41,boost_concept:14,boost_gil_extension_io_jpeg_c_lib_compiled_as_cplusplu:41,boost_gil_extension_io_png_c_lib_compiled_as_cplusplu:41,boost_gil_extension_io_tiff_c_lib_compiled_as_cplusplu:41,boost_gil_extension_io_zlib_c_lib_compiled_as_cplusplu:41,boost_gil_io_add_fs_path_support:41,boost_gil_io_enable_gray_alpha:41,boost_gil_io_png_1_4_or_low:41,boost_gil_io_png_dithering_support:41,boost_gil_io_png_fixed_point_support:41,boost_gil_io_png_floating_point_support:41,boost_gil_io_test_allow_reading_imag:41,boost_gil_io_test_allow_writing_imag:41,boost_gil_io_use_bmp_test_suite_imag:41,boost_gil_io_use_png_test_suite_imag:41,boost_gil_io_use_pnm_test_suite_imag:41,boost_gil_io_use_tiff_graphicsmagick_test_suite_imag:41,boost_gil_io_use_tiff_libtiff_test_suite_imag:41,boost_gil_use_concept_check:[10,45],boost_mpl_assert:13,boostorg:40,border:7,both:[0,6,7,13,15,16,31,34,41,45,46],bottom:[0,10,15,45],bound:[6,13],boundari:45,bourdev:47,brace:24,bracket:29,branch:40,bring:[33,34],buffer:[7,13,45],build:[0,40,41],built:[1,7,12,13,14,27,40,45],byte_to_memunit:14,c_str:41,cach:[15,45],cache_loc:[15,45],cached_location_t:[15,45],calcul:[19,33,34,46],call:[6,7,8,10,13,17,19,31,41,45,46],can:[2,4,5,6,7,8,9,10,12,13,14,15,16,17,24,27,31,32,39,40,41,45,46],cannot:[7,10,32,45],canon:[13,45],capabl:41,captur:3,care:[8,33],carriag:[15,45],cast:45,cater:24,caus:[31,45],caution:6,cav:6,cb1:2,cb2:2,cb3:2,cc_t:41,ccv:10,ccv_imag:45,cell:24,center:[7,32],centerimg:7,central:45,certain:32,challeng:[0,45],chan16:1,chang:[6,8,10,12,14,22,31,41,45,46],channel16_0_5_reference_t:1,channel16_11_5_reference_t:1,channel16_5_6_reference_t:1,channel1:1,channel2:1,channel3:1,channel:[0,2,3,5,6,7,10,11,12,13,14,17,24,29,32,33,34,39,41,42,45,46],channel_6bit:1,channel_convert:[1,7,8,13,45],channel_convert_to_unsign:45,channel_invert:[1,8],channel_mapping_t:3,channel_mapping_typ:[12,13,45],channel_multipli:1,channel_t:45,channel_trait:[1,8],channel_typ:[7,12,13,44,45],channel_type_to_index:44,channelbitsizevector:12,channelconcept:[1,13],channelconvertibleconcept:1,channelmap:3,channelmappingconcept:[3,13],channelptr:14,channelrefer:13,channelrefvec:14,channelscompatibleconcept:[1,13],channelvalu:[12,13,14],channelvalueconcept:[1,12],check:[6,7,10,15,29,40,45],choic:[15,31],choos:15,chose:7,christoph:31,chunki:45,claim:41,classtyp:[12,42],clear:[24,32,41],client:40,clockwis:45,clone:27,close:41,closer:45,cmake:22,cmyk16_pixel_t:[12,13,42],cmyk16_planar_image_t:6,cmyk16_planar_step_view_t:6,cmyk16_planar_view_t:6,cmyk16c_planar_ref_t:42,cmyk16c_planar_view_t:6,cmyk16sc_planar_ref_t:12,cmyk8_image_t:41,cmyk:[0,12,42],cmyk_t:3,cmyka:44,code:[0,3,5,6,7,8,10,15,20,38,39,40,41,42,46],col:46,col_begin:10,col_end:10,collect:[6,44],color:[0,1,5,6,7,10,11,12,13,14,15,29,33,34,39,41,42,44,46],color_bas:2,color_const_reference_t:2,color_convert:[8,13,44],color_convert_deref_fn:[8,14],color_convert_view:8,color_converted_view:[7,8,10,45,46],color_converted_view_typ:[8,10],color_converter_typ:41,color_reference_t:2,color_spac:44,color_space_t:[2,3],color_space_typ:[7,8,12,13,45],colorbas:2,colorbaseconcept:[2,13],colorbasescompatibleconcept:[2,13],colorbasevalueconcept:2,colorconvert:10,colorspac:[3,12,13,14,42],colorspace1:3,colorspace2:3,colorspaceconcept:[3,13],colorspacescompatibleconcept:[2,3,45],column:[14,15,45,46],com:[10,40,47],combin:[6,14,15,31,45],come:[12,41],commerci:46,common:[0,2,4,6,41],commonli:13,commun:44,compact:1,compactli:[7,45],compar:[0,1,2,5,6,7,45],comparison:[1,6,15,31],compat:[1,2,3,6,7,10,13,25,27,39,41,45],compil:[1,2,5,6,7,10,13,14,17,27,45],complement:5,complet:[40,41,45],complex:[6,7,13,15,24,31,45],complic:[8,9,17],compon:[0,1,42],compos:[10,14],comprehend:45,comprehens:45,compris:3,comput:[7,15,31,32,45,46],computexgradientgray8:45,concentr:33,concept:[0,1,2,5,8,9,10,11,13,14,15,16,31,32,39,45],concept_check:[10,45],concept_map:4,conceptc:4,conceptu:13,conclus:[11,39],concret:[6,45],condit:[15,31],confer:31,config:22,configur:[18,40],consid:[1,3,6,13,19,20,32,46],consist:[2,15,40,45],const_iterator_typ:14,const_point:1,const_refer:[1,8,10,13,14,45],const_t:[6,8,9,10,14,15,45],const_view:[9,45],const_view_t:[6,9],constant:[10,12,13,17,31,45],constexpr:[8,45],construct:[1,4,5,6,7,8,9,10,12,13,14,17,24,27,45],constructor:[1,6,7,9,17,18,24,40,45],consult:41,contain:[1,2,3,6,7,9,13,14,19,21,41,45],content:[11,21,25,35,37,44],context:[32,41],contigu:2,contrast:[33,36,37,39],conveni:8,convent:[39,45],convers:[1,13,14,15,27,41],conversionpolici:41,convert:[1,2,7,8,10,12,13,14,19,33,34,41,44,45],convolut:[10,37,39],convolv:[7,32],coord:45,coord_t:[9,10,15],coordin:[15,16,41,45],copi:[1,2,6,7,8,9,10,13,15,17,19,24,41,45,46],copy_and_convert_pixel:[10,45],copy_pixel:[6,7,10,41,45],copyabl:10,copyconstruct:[2,4],copyconstructibleconcept:14,cordelia:31,corner:[7,10,31,45],correct:45,correctli:[4,17],correspond:[1,2,5,8,10,14,18,32,33,34,45],cost:5,could:[6,7,10,14,15,18,32,41,45],count:[7,19],counter:45,counterpart:41,coupl:41,cours:[15,41],cout:[20,24],cover:[31,33],cpp:[3,39],creat:[1,3,6,7,8,12,13,14,15,19,25,27,39,41],create_with_margin:7,cstddef:20,cumul:[25,27,33,34,39],cumulative_histogram:[19,23],curli:24,current:[3,6,14,15,22,40,41,45],curvatur:[31,37],custom:[1,10,15],d_channel_t:45,dark:36,data:[1,5,8,9,10,41,42,45],dave:17,deal:45,dealloc:45,debug:45,decent:41,declar:45,decrement:15,dedic:[11,21,25,35,37],deep:[6,9,17,45],deeper:31,default_color_convert:10,default_color_converter_impl:8,defaultconstruct:4,defaultconstructibleconcept:14,defin:[0,1,2,3,4,6,10,12,13,14,15,16,17,39,41,45],definit:[3,44],degrad:45,degre:45,delai:15,deleg:10,delet:9,demand:41,demo:[23,29],demonstr:[10,24,41,45],denot:[14,17,45],depend:[32,40,41],depth:[0,6,7,10,12,14,42,45,46],deref:[10,15],deref_compos:14,deref_t:8,derefer:[8,45],dereferenc:[7,8,10,12,14,15,17],dereference_iterator_adaptor:14,deriv:[10,31,37],derived_image_typ:[12,45],derived_iterator_typ:[12,45],derived_pixel_reference_typ:[12,45],derived_view_typ:[12,45],describ:[0,2,4,11,15,16,21,25,35,37,41],descript:[41,42],design:[0,2,5,39,41,45],desir:[29,33,45],despit:6,destin:[1,6,7,8,41,45],destroi:6,destructor:[9,45],det:31,detail:[2,6,14,41],detect:[37,45],detector:[37,39],determin:[14,15,31],develop:[10,38,40],devic:41,devicen_t:3,diagram:15,diff:14,differ:[1,6,13,14,15,17,31,32,34,41,45],difference_typ:[10,15],difficult:[0,45],dim:[6,9,45],dimens:[6,9,10,15,16,24,29,31,33,34,41,45],dimension:[7,9,10,15,16,45],direct:[12,14,15,31,32,41,45],directli:[7,13,15,17,18,24,41,45,46],directori:44,disadvantag:45,discrimin:31,discuss:[0,40],disk:[6,8,45],dispatch:8,displai:41,distanc:[14,45],distinct:[1,13,31,45],distribut:[13,33],dither:41,divis:14,do_swap:6,doc:22,document:[0,4,21,25,32,35,37,41,45],doe:[1,7,10,12,17,40,45],doesn:[41,45],doing:[6,8,13],don:[6,8,9,10,12,13,15,36,45],done:[7,15,18,32,41,45],doubl:[8,45],down:[6,7,10],download:[10,40],draw:32,drawback:45,drive:41,drop:40,dst:[1,2,7,8,10,41,45],dst_channel_t:45,dst_img:[33,34],dst_it:45,dst_pixel:45,dst_row_byt:45,dst_view:41,dstchannel:1,dstcolorspac:8,dstimag:7,dstp:[8,10],dstpixel:13,dstview:45,due:[13,24,40],dummi:29,duplic:46,dure:[27,38,41],dxdx:31,dxdy:31,dydi:31,dynam:[11,12,14,15,39,41],dynamic_at_c:[2,13],dynamic_imag:[6,39,45],dynamic_image_al:[6,45],dynamic_x_step_typ:[6,10,14],dynamic_xy_step_transposed_typ:10,dynamic_xy_step_typ:[6,10],dynamic_y_step_typ:[10,15],each:[0,2,7,8,10,13,15,16,19,33,34,41,45],earli:[10,45],easi:[41,45],easier:[10,18,45],easili:45,edg:[31,45],effect:[32,45],effici:[0,7,10,14,15,45,46],either:[6,7,8,10,14,34,41,45],element:[2,3,10,11,13,14,32,45],element_const_reference_typ:[2,13],element_recurs:2,element_reference_typ:[2,13],element_typ:2,els:[8,15],elsewher:19,email:41,enabl:41,encod:41,end:[0,7,9,10,15,41,45,46],enhanc:[33,36,37,39],enough:31,ensur:[10,45],entir:[33,45],enumer:[41,45],epipolar:38,equal:[1,2,3,6,10,13,15,34,36,45],equal_pixel:10,equalitycompar:[1,2,4],equival:[2,6,10,14,15],error:[1,6,7,10,17,45],especi:6,essenti:0,establish:42,etc:[0,6,10,13,22,33,34,40,41,45],european:31,evalu:[12,14],even:[6,7,8,41,45,46],ever:7,everi:[5,6,10,14,15,42,45,46],everyth:8,exact:32,exactli:13,exampl:[1,2,3,4,6,8,10,11,12,13,14,15,17,18,19,20,32,41,42,45,46],except:[2,6,8,10,14,15,40,45],exclud:45,execut:[6,45],exercis:45,exist:[5,7,8,19,41,46],expect:[34,41],expens:45,explan:[10,31,33,34,41],explicit:[6,13,45],explicitli:45,extend:[5,11,25,27,39,45],extending_gil__io_with_new_format:41,extens:[6,8,10,25,40,45,46],extern:[21,41],extra:[7,10,13,45,46],extract:45,extrem:31,eyes:36,fact:[41,45],factori:[8,10,45],fail:45,fall:[7,10],fals:[8,12,15,23,24,29,45],familiar:45,famou:34,far:45,fast:[10,15,45],faster:[1,5,9,15,45],fastest:7,featr:46,featur:[31,34,37,38,41,46],fetch:45,few:[24,29,33,34,36,41],fewer:29,file:[6,8,20,22,40,41,45],file_nam:6,filenam:41,filesystem:41,fill:[2,7,10,13,15,19,23,25,27,29,39,41,45],fill_histogram:[22,23,24,29],fill_pixel:[7,10,41],fill_valu:9,filter:[15,37],find:[15,40],first:[0,1,2,3,6,7,8,10,13,15,19,33,38,41],first_argument_typ:10,firstbit:1,fit:13,five:[3,5,12],flat:[32,33],flatten:33,flavour:41,flexibl:[1,6,12,46],flip:[10,14,45],flipped_left_right_view:10,flipped_up_down_view:10,float_on:1,float_zero:1,flow:27,fly:14,focu:[36,45],focus:45,folder:[32,39,41],follow:[0,1,2,3,5,6,7,9,10,12,13,15,16,22,27,31,33,41,42,44,45,46],for_each:[2,7,10,45],for_each_pixel:[7,10,24,45,46],for_each_pixel_posit:[10,45],form:[0,9,12,13,29,31,32,45],format:[13,24,40,45],format_tag:41,formattag:41,forward:14,forwardtraversalconcept:14,found:41,four:[15,45],fourth:7,frame:38,framework:41,frederik:31,free:[15,40,45],freeli:[7,10],frequenc:19,frequent:15,friendli:[15,45],from:[0,1,5,6,7,8,12,13,14,15,18,20,22,24,27,29,31,39,40,41,45,46],fulfil:4,full:[6,13],fulli:[8,41,45],fun:10,function_requir:13,fundament:[1,15,38],fundamental_step:14,further:17,furthermor:[41,45],futur:46,gap:10,gaussian:[31,32],gcc:40,gener:[0,2,4,6,7,9,10,11,14,16,20,31,32,42],generate_pixel:10,geometri:38,get:[1,6,8,10,12,14,19,20,27,29,31,32,45],get_color:[2,7,8,13],get_info:41,get_num_bit:44,get_num_it:45,get_pixel_typ:44,get_read_devic:41,get_reader_backend:41,gil:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,27,29,35,36,37,39,40,42,44,47],gil_function_requir:[2,7,10,45],github:40,give:[7,15,41],given:[0,2,6,8,9,10,12,13,14,15,17,31,45],glimps:45,global:45,goal:[5,33],goe:45,going:15,good:[32,33,36,45],googl:38,gool:31,gradient:[31,32,39],grai:[7,8,31,44],graph:32,grate:17,gray16:41,gray16_image_t:[41,45],gray16_pixel_t:45,gray16_step_view_t:10,gray16c_view_t:45,gray1:[41,45],gray1_image_t:41,gray2:41,gray32s_pixel_t:45,gray32s_view_t:45,gray4:41,gray4_image_t:41,gray7:41,gray8:41,gray8_image_t:[6,18,23,24,33,34,41,45],gray8_pixel_t:[7,8,24,45,46],gray8_view_t:7,gray8c_loc_t:45,gray8c_view_t:45,gray8s_image_t:45,gray8s_pixel_t:45,gray8s_view_t:45,gray_alpha:41,gray_alpha_16:41,gray_alpha_8:41,gray_channel_t:7,gray_color_t:[7,8],gray_cs_t:7,gray_image_t:45,gray_layout_t:45,gray_pixel_t:45,gray_t:[3,7,8,12],gray_to_rgb:7,grayimage_histogram:[7,46],graypixel:7,grayscal:[7,8,10,12,14,15,33,45],grayview:[7,46],green:[7,10,13,17,24,29,46],green_t:[2,3,7,13],grid:45,group:[0,3],guarante:4,guid:[10,39,45],guidelin:41,gv8:7,half:45,half_x_differ:45,halfdiff_cast_channel:45,hand:[0,5,31,39,45,46],handl:45,happen:[6,31,45],hard:[12,41],hardli:45,harrismatrix:31,has:[2,5,6,7,9,10,12,14,15,19,41,45],hasdynamicxsteptypeconcept:[14,15],hasdynamicysteptypeconcept:15,hash:20,hash_combin:20,hash_valu:20,hasher:20,hassl:45,hastransposedtypeconcept:15,have:[0,1,2,3,5,6,7,8,9,10,12,13,14,15,31,33,34,36,41,44,45,46],hcb:2,header:[39,40,41,44],heidelberg:31,height:[6,7,9,10,33,34,45,46],help:32,helper:12,henc:[33,34,36],here:[0,1,2,3,4,6,7,8,10,12,13,14,15,32,41,45],hessianmatrix:31,heterogen:[12,13,45],high:29,higher:8,hill:[31,32],his:41,hist:[7,46],histogram:[20,21,22,27,36,39],histogram_equ:33,histogram_match:34,homogen:[2,13,14,45],homogeneous_color_bas:[2,14],homogeneouscolorbaseconcept:[2,13,14],homogeneouscolorbasevalueconcept:2,homogeneouspixel:13,homogeneouspixelbasedconcept:[12,13],homogeneouspixelconcept:13,homogeneouspixelvalueconcept:13,hopefulli:[41,44],horizont:[7,12,14,15,32,45],how:[1,3,6,7,8,10,12,13,14,31,41,45],howev:[2,10,45],hpp:[6,8,20,39,40,41,44,45],hsl:44,hsv:[33,34,44],html:10,http:[10,40,47],human:36,idea:33,ideal:33,ident:[7,8],identifi:20,ifstream:41,ignor:[13,45],illumin:34,illustr:[6,7,45],imag:[0,5,11,13,14,16,18,21,23,24,25,27,31,32,33,34,35,36,38,40,42,44,46],image_read_info:41,image_read_set:41,image_t:[6,41],image_typ:[8,12,44,45],image_view:[6,9,10,45],image_write_info:41,imageconcept:[6,7,9,12],imagemagick:41,imagetyp:6,imageviewconcept:[6,7,9,10,12,45],imageviewtyp:6,imagin:32,img:[6,7,9,10,15,23,24,29,41,45,46],img_view:8,immut:[6,9,10,12,14,15,42,45],impact:[10,45],implement:[1,2,6,8,10,13,14,15,17,31,40,41],impos:1,improv:[44,45],in1:45,in2:45,in_buff:41,inaccuraci:41,inc:14,includ:[4,6,20,36,40,41,44,45],incompat:[1,6,7,41,45],incomplet:41,incorrect:45,incorrectli:17,increas:10,increment:[14,15,45],independ:[15,33,34,41,45],index:[2,10,13,15,41,45,46],indexed_imag:44,indic:[1,12,15,24,32,42,45],indica:42,ineffici:6,info:41,inform:[1,15,41],inher:14,inherit:[13,40],initi:[7,13,38,45],inlin:[6,8,45],inner:45,inp_img:[33,34],input:[10,24,32,33,34,45],insid:[6,7,8,10,15,16,45],inspect:40,instal:[39,41],instanc:[6,8,14,24,29,41,45],instanti:[6,10,15,27,45],instead:[1,2,9,45],instruct:45,instrument:5,int_:2,integ:[1,7,10,15,41,45],integr:[1,3,12,14,42,45],intel:15,intens:[1,31,32],interest:31,interfac:[15,24],interleav:[0,6,7,8,9,10,12,13,14,15,42,45,46],interleaved_ptr:39,interleaved_ref:39,interleaved_view:[10,41,45],intermedi:7,intern:[14,24,31,46],internet:8,interpret:[3,10],interv:33,introduc:41,invari:31,invert:8,invert_pixel:17,invok:[2,6,7,8,10,12,14,15,45],involv:45,ios:41,ios_bas:41,iostream:20,is_1d_travers:[10,15],is_bit_align:44,is_homogen:44,is_iterator_adaptor:14,is_mut:[1,8,13,14,45],is_pixel:13,is_planar:[12,13],is_sam:[6,7,13],is_similar:44,ismut:12,isplanar:[9,12],isstep:12,isstepx:12,issu:[17,40,45,46],isxstep:12,isystep:12,iter:[1,2,5,7,8,9,10,11,13,17,39,42,46],iterator_adaptor_get_bas:14,iterator_adaptor_rebind:14,iterator_from_2d:[10,15],iterator_is_mut:14,iterator_t:41,iterator_trait:[13,17,45],iterator_typ:12,iterator_type_from_pixel:12,iteratoradaptorconcept:14,its:[1,3,6,7,9,12,13,14,15,19,24,40,44,45],itself:[7,13,19,27],jamfil:22,jiri:31,journal:31,jpeg:[8,45],jpeg_dynamic_io:6,jpeg_lib:41,jpeg_read_imag:[6,7,45],jpeg_tag:41,jpeg_wiki:41,jpeg_write_view:[6,7,45],jpg:[7,41,45],just:[7,8,9,12,13,15,41,44,45],kadir:31,keep:[0,14,27,45],kei:[19,20,24,27,29,31],kernel:[7,37],key_from_pixel:24,kind:41,know:41,known:[27,33],krystian:31,kth_element_const_reference_typ:2,kth_element_reference_typ:2,kth_element_typ:[2,13],kth_semantic_element_const_reference_typ:2,kth_semantic_element_reference_typ:2,kth_semantic_element_typ:[2,13],lab:44,lack:[41,45],laid:7,lambda:[7,46],larg:41,larger:7,largest:7,last:[10,13,41,45],lastli:17,later:[2,15,40],latest:40,latter:[7,13],layout:[2,5,11,12,13,14,39,42,45],layout_t:2,least:[6,45],leav:45,lectur:39,left:[7,10,14,15,34,41,45,46],let:[8,20,31,32,45,46],level:[1,6,41,45],lib:41,libjpeg:[40,41],libpng:[40,41],librari:[0,5,8,10,11,20,37,40,41,44,46],libraw:41,libtiff:41,lie:29,light:36,lightweight:[7,10,15,45],like:[0,6,7,8,12,13,14,22,31,32,33,34,40,41,45],limit:[5,6,25,27,39],line:45,linear:[1,6,33,36],linearli:[1,45],link:[40,41,47],list:[11,21,25,35,37,40,41],littl:[13,32],live:8,load:[6,45],loc2:15,loc:15,local:[34,41],locat:[5,8,9,10,11,12,13,14,16,34,39,42],locator_t:45,locator_typ:12,look:[8,31,32,36,41,45],loop:[10,15,45],lossi:[1,13],lot:[41,45],low:29,lower:41,lubomir:47,luc:31,lumin:32,luminos:[7,45,46],luminosity8bit_hist:46,luminosity_hist:46,luminosity_histogram:7,macro:[41,46],made:44,magnitud:45,mai:[0,1,3,4,6,7,8,10,13,14,15,45],main:[20,44],maintain:[44,45],make:[0,6,7,8,10,15,24,25,27,39,41,45],make_histogram:[18,22],make_scanline_read:41,make_step_iter:14,mandel:45,mandel_grad:45,mandelbrot:[8,14,15,39,45],mandelbrot_fn:45,mani:[5,6,9,10,25,41,45],manipul:5,manual:41,map:[1,3,7,13,22,23],margin:7,mark:0,mask:[29,33,34],mata:31,match:[1,10,17,18,33,36,41,45],mathemat:33,matric:[31,32],matrix:[31,32],matter:31,max:1,max_el:2,max_valu:1,maximum:1,mayb:17,mean:[6,7,9,15,32,40,45],meant:41,measur:[6,15,45],mechan:[6,8,15,45],median:32,medic:36,member:[8,14,17,29,41],memmov:[7,10],memori:[0,2,3,7,13,14,15,45,46],memory_based_2d_loc:15,memory_based_step_iter:[14,15],memorybasediteratorconcept:[14,15],memunit:[14,15],memunit_adv:14,memunit_advanc:14,memunit_advanced_ref:14,memunit_dist:14,memunit_step:14,mention:41,meta:45,metafunct:[2,4,10,11,13,14,15,16,39,44,45],metaprogram:41,method:[7,8,10,14,15,18,45],might:[24,31,32,41,45],mike:31,mikolajczyk:31,mileston:41,min:1,min_el:2,min_valu:1,mind:[5,20],minimum:1,minisblack:41,minor:5,miss:45,mitig:45,mix:7,mode:[41,45],model:[0,4,5,6,7,8,12,17,45],modern:[41,45],modifi:[10,13,14,16,45],modul:[6,8],moment:31,monkei:7,monkey_transform:7,mono:41,moravec:31,more:[1,2,4,6,7,8,9,10,12,13,14,15,41,45],most:[2,4,8,9,10,13,15,16,24,40,41,45],motiv:1,move:[10,15,31,41,45],mp11:45,mp_list:45,mpl:[2,3,6,12,13,14,41],much:45,multi:[33,34,41],multipl:[7,10,15,45],multipli:[1,14,45],must:[2,4,10,13,14,15,17,22,45],mutabl:[1,9,10,12,13,14,15,17,42,45],mutable_forwarditeratorconcept:14,mutablechannelconcept:1,mutablecolorbaseconcept:[2,13],mutablehomogeneouscolorbaseconcept:[2,13],mutablehomogeneouspixelconcept:[7,13],mutableimageviewconcept:[9,10,45],mutableiteratoradaptorconcept:14,mutablepixelconcept:[7,13,17],mutablepixeliteratorconcept:14,mutablepixellocatorconcept:[10,15],mutablerandomaccess2dimageviewconcept:10,mutablerandomaccess2dlocatorconcept:15,mutablerandomaccessiteratorconcept:14,mutablerandomaccessndimageviewconcept:[9,10],mutablerandomaccessndlocatorconcept:15,mutablestepiteratorconcept:[14,15],my_any_image_t:6,my_color_convert:8,my_color_converter_impl:8,my_img_typ:[41,45],my_reference_proxi:17,my_valu:17,my_view:7,my_virt_view_t:45,myimg:6,myit:17,n2081:4,name:[7,13,15,22,32,39,45,46],namespac:[2,6,17,20,41,44,45],nativ:[1,45],natur:15,navig:[10,14,15],necessari:[14,15,17,41,45],need:[1,4,7,8,10,12,13,14,15,19,20,24,27,41,44,45],neg:14,negat:10,neighbor:[15,45],neighborhood:15,neighbour:10,nest:[10,45],never:[6,7,45],new_dim:9,next:[8,10,41,45,46],nice:45,noisi:31,non:[7,10,12,13,15,17,33,36,41,42,45],none:[41,45],normal:[33,34,45],note:[0,1,2,6,7,9,10,13,24,31,41,45],noth:13,notic:[2,7,31,45],notion:[19,45],now:[20,31,41,45],nth_channel_deref_fn:14,nth_channel_view:[7,10,45,46],nth_channel_view_typ:10,nth_channel_x_gradi:45,num_channel:[6,10,12,13,45],num_dimens:[10,15,16],number:[2,6,7,10,13,14,15,27,31,33,34,45],numbit:1,numer:[10,31,39],numeric_limit:1,obj:6,object:[6,8,10,12,14,15,17,18,41,42,45,46],obtain:[15,45],occupi:13,off:45,offer:15,offset:[1,14,15,45],ofstream:41,often:[3,6,13,45],old:45,onc:[0,5,10,45],one:[2,4,6,7,8,10,12,13,14,15,29,32,33,41,45],ones:[6,8,13,31],onli:[1,2,6,7,8,10,13,14,15,17,24,31,33,39,40,41,44,45,46],onlin:41,open:6,oper:[1,2,4,6,8,9,10,13,14,15,16,17,20,24,39,41,42,45,46],oppos:[7,10,12,42,45],optim:[5,7,10,15,45],option:[0,8,22,24,31,39,41,45],order:[0,2,3,6,7,10,12,13,15,19,20,29,31,40,42,45,46],organ:[12,13,15,42],origin:[6,10,34,45,47],other:[2,4,8,13,14,15,20,22,27,31,32,41,42,45,46],otherwis:[8,13],our:[6,7,8,45],out:[27,29,33,34,41,45],out_buff:41,outdoor:31,output:[24,29,33,45],outsid:45,over:[1,9,10,13,14,18,19,20,24,29,31,33,34,42,45],overhead:[6,45],overlai:31,overload:[6,10,17,20,22,45],overrid:[7,8,15],overview:[21,25,35,37,39],own:[4,8,9,10,15,39,41,45],ownership:[9,45],pack:[9,13,14,45],packed_channel_refer:1,packed_channel_valu:1,packed_dynamic_channel_refer:1,packed_image1_typ:12,packed_image2_typ:12,packed_image3_typ:12,packed_image4_typ:12,packed_image5_typ:12,packed_image_typ:12,packed_pixel:[2,13,14,39],packed_pixel_typ:13,pad:[0,7,9,15],page:41,pair:[2,13,45],pairwis:[1,10,13],palett:41,paper:[4,31],paramet:[0,1,5,6,7,8,9,10,14,15,17,41,45],parent:[17,29],part:[36,41,46],partial:41,particular:[6,19,24,29,31,45],pass:[6,8,10,29,45],past:10,patch:31,path:[6,41],pattern:[1,7,12,45],peopl:44,per:[6,10,14,15,45],percent:41,perform:[6,8,10,14,15,39,45],permut:2,physic:[1,2,3,7,13],pick:41,pipe:45,pix_buff:13,pix_it:13,pixel1:13,pixel2:13,pixel:[0,1,2,3,4,5,6,8,9,11,16,17,24,32,33,34,39,42,46],pixel_2d_locator_bas:15,pixel_bit_s:44,pixel_refer:12,pixel_reference_typ:12,pixel_value_typ:12,pixelbasedconcept:[12,13,14,45],pixelconcept:[4,7,8,10,12,13,14,15],pixelconvertibleconcept:13,pixeldata:14,pixeldereferenceadaptorconcept:[8,10,14,15,45],pixeliteratorconcept:[10,12,14,15],pixellocatorconcept:[10,15],pixelrefer:12,pixelscompatibleconcept:[10,13],pixelvalueconcept:[8,9,10,13,14,15],place:[19,45],plain:14,plan:40,planar:[0,2,6,7,9,10,12,13,14,15,17,41,42,45,46],planar_pixel_iter:[14,15],planar_pixel_refer:[13,17],planar_rgb_view:[10,45],plane:[0,7,10,32,45],platform:[15,39],pleas:[31,41],plot:32,plu:15,png:[33,34],png_lib:41,png_tag:[33,34],png_test_fil:41,png_wiki:41,pnm_wiki:41,point2dconcept:[15,16],point:[0,1,6,10,11,12,13,15,31,39,41,42,45],point_t:[6,9,10,15,41,45],point_typ:10,pointer:[1,7,8,10,13,14,15,41,42,45],pointndconcept:[10,15,16],polici:[0,10,46],popular:40,posit:[14,15,45],position_iter:14,possibl:[6,10,13,41,45],potenti:[0,41],pow:45,power:[6,7,31,45],practic:[6,45],pre:45,precis:1,prefer:[18,22],prefix:2,presenc:0,present:[45,46,47],pretend:14,preval:36,previou:[0,6],previous:[10,45],price:12,primari:36,privat:[8,10,15,41,45],probabl:41,problem:[12,17,45],process:[0,10,25,35,36,38,39,45],processor:45,produc:32,product:[45,46],profil:8,program:[4,41,45,46],project:[0,38,40],propag:[10,45],proper:45,properli:[1,2,7,8,41,45],properti:[12,13,39,45],propos:4,provid:[0,1,2,3,5,6,8,9,10,12,13,14,15,16,17,20,22,29,32,41,44,45,46],provis:22,proxi:[1,2,13],ptr:7,ptrdiff_t:[6,10,14,15,45],pull:14,purpos:[13,20],put:[32,45],quadrant:46,qualifi:17,qualiti:[8,41],queri:45,r565:13,rais:45,random:[3,6,14,15,45],randomaccess2dimageconcept:9,randomaccess2dimageviewconcept:10,randomaccess2dlocatorconcept:15,randomaccessndimageconcept:9,randomaccessndimageviewconcept:10,randomaccessndlocatorconcept:[10,15],randomaccesstraversalconcept:[10,14,15],randomaccesstraversaliteratorconcept:14,rang:[1,2,9,10,29,33,45],range_c:3,rare:[9,45],rather:41,raw:[5,15,45],raw_wiki:41,rbegin:10,rbg323:41,rdbuf:41,read:[0,8,10,12,13,14,15,18,45],read_and_convert_imag:41,read_and_convert_view:41,read_imag:[33,34,41],read_image_info:41,read_view:41,read_xxx:41,reader:[41,45],reader_bas:41,reader_t:41,readm:40,real:[17,45],realiz:45,reason:33,rebind:14,recommend:[0,27,41],recreat:[6,7,9],rectangular:[10,45],recurs:[2,14,45],red:[0,1,2,7,13,14,17,24,29],red_in_cmyk16:13,red_in_rgb8:13,red_t:[2,3,13],redefin:8,ref2:7,ref:[7,13],ref_imag:34,ref_img:34,refer:[1,2,7,8,10,12,13,14,15,31,34,39,41,42,45],refin:16,regardless:45,region:[37,39,45],regist:45,regular:[1,2,4,9,10,13,15,16],rel:[15,45],relat:[4,12,45],releas:[27,38],relev:[29,41],remain:8,rememb:[15,17],remov:[41,45,46],remove_refer:14,rend:10,repeat:15,replac:[12,20],repositori:[27,40],repres:[0,15,17,41,45],represent:[0,5,39,45],reqd:24,request:41,requir:[1,2,4,6,8,9,10,13,14,15,24,39,40,41,45],resampl:10,rescal:39,research:36,resembl:[6,10],resid:45,resiz:[10,39],resolut:[5,6],respect:[7,13,45],respons:31,rest:[12,45],restrict:41,result:[0,2,5,6,7,8,10,12,13,14,15,31,40,41,45],result_typ:[4,6,8,10,14,45],reus:45,reverse_iter:10,review:[41,44],rewrit:45,rewritten:46,rgb16:41,rgb16_image_t:[10,45],rgb16c_planar_view_t:45,rgb222:45,rgb32f_planar_step_ptr_t:[12,42],rgb32f_planar_view_t:7,rgb32fc_view_t:45,rgb32s_pixel_t:45,rgb32s_view_t:45,rgb565:13,rgb565_channel0_t:13,rgb565_channel1_t:13,rgb565_channel2_t:13,rgb565_pixel_t:13,rgb64_image_t:8,rgb64_pixel:8,rgb64_pixel_ptr_t:8,rgb64_pixel_t:8,rgb8:[13,41],rgb8_image_t:[6,18,24,29,41,45],rgb8_pixel_t:[7,13,45],rgb8_planar_ptr_t:14,rgb8_planar_ref_t:[7,13],rgb8_planar_view_t:12,rgb8_ptr_t:10,rgb8_step_view_t:6,rgb8_view_t:[6,7],rgb8c_planar_ptr_t:[7,14],rgb8c_planar_ref_t:[7,13],rgb8c_ptr_t:10,rgb8c_view_t:[6,45],rgb:[0,1,2,7,8,10,12,13,14,24,29,33,34,41,42,45,46],rgb_channel_t:7,rgb_cs_t:7,rgb_full:13,rgb_layout_t:[7,8,13],rgb_planar_pixel_iter:17,rgb_t:[3,7,13,14],rgba16:41,rgba8:41,rgba8_image_t:41,rgba:[0,3,12,42,44],rgba_image_t:41,rgba_layout_t:[3,7],rgba_t:3,rgbpixel:7,rgbtograi:46,right:[7,10,14,15,34,45],rise:15,rotat:[6,10,45],rotated180_view:[6,7,10],rotated180_view_fn:6,rotated90ccw_view:[10,45],rotated90cw_view:[10,45],routin:[20,27],row:[0,7,9,10,13,14,15,41,45,46],row_begin:[10,45],row_end:10,rowsiz:10,rpv32:7,rule:40,run:[0,1,5,6,7,10,38,39],runtim:6,runtime_imag:[41,45],rview:10,said:6,sake:10,same:[1,2,3,6,7,8,10,13,15,16,31,32,34,41,45],sametyp:[1,2,4,10,13,14,16],sampl:[15,39,41,45,46],satisfi:[2,4,9,10,15,45],sav:6,save:[6,41,45],save_180rot:6,scale:45,scanlin:41,scanline_read:41,scanline_read_iter:41,scenario:[2,33,45],schaffalitzki:31,scharr:32,scharrx:32,schmid:31,scoped_channel_valu:1,sean:17,second:[0,1,7,13,15,17,31,41,45,46],second_argument_typ:10,section:[0,2,10,11,21,25,35,37,41,44],see:[2,4,8,10,14,15,40,41,45],seek:41,select:[6,40],semant:[2,3,13,45],semantic_at_c:[2,7,13],send:41,sensor:34,separ:[0,8,10,31,45],sequenc:[1,3],serv:41,servic:40,set:[0,1,3,4,6,7,8,9,10,13,14,15,41,45],set_step:14,sever:[5,14,41,45],shallow:[6,7,10,14,17,45],shape:32,share:[6,13,41],sharper:32,she:41,shift:1,ship:27,shortli:46,should:[6,15,18,19,22,31,33,40,41,45],show:[7,41,45],shown:[7,33,34,45],side:45,sigma:32,sign:[12,42,45],signific:[10,36],similar:[1,10,14,15,39,41,45],similarli:[9,14],simpl:[12,15,24,32,33,41,45,46],simpler:[31,41,46],simplest:[24,32,45],simpli:[7,8,15,31,32,45],simplic:45,simplifi:[7,31,45],simultan:45,sinc:[6,7,13,14,18,19,27,29,33,34,41,44,45,46],singl:[6,10,14,32,41,45],size1:12,size2:12,size3:12,size4:12,size5:12,size:[2,3,6,7,10,13,14,15,41,45],size_t:[2,6,9,10,13,15,16,20],size_typ:[6,10],sizeof:13,skeleton:41,skip:[10,14,45,46],slightli:[8,45],slow:45,slower:[15,45],small:[31,41,44],smaller:[7,19],sobel:32,softwar:46,solut:17,some:[0,4,6,7,8,10,12,13,14,15,17,36,41,45],sometim:[1,10,13,14,15,17,41,45],somewher:8,soon:41,sort:[19,32],sourc:[1,6,7,8,10,18,40,41,42,45,46,47],space:[0,2,5,6,7,10,11,13,14,33,34,39,41,44,45,46],special:[8,13,34,42,45],specif:[0,5,39,41,45],specifi:[0,1,3,5,6,8,9,12,14,33,34,39,41],speed:[0,5,6,10,45],spirit:15,spread:33,springer:31,sr8wjg0pcee:47,src1:10,src1_it:45,src2:10,src2_it:45,src:[1,2,6,7,8,10,41,45],src_b:45,src_g:45,src_it:45,src_loc:45,src_pix_ref:8,src_pixel:45,src_r:45,src_row_byt:45,srcchannel:1,srccolorspac:8,srcconstrefp:8,srcp:8,srcpixel:13,srcview:[7,8,10,45],srowbyt:46,stabl:31,stage:10,standalon:44,standard:[3,4,10,12,14,15,20,33,34],start:[10,13,15,41,45],state:10,statement:[6,45],static_:2,static_assert:[6,7,12,13],static_copi:2,static_equ:2,static_fil:[2,7,45],static_for_each:[2,45],static_gener:[2,45],static_max:2,static_min:2,static_transform:[2,14,45],std:[1,2,6,7,9,10,12,13,14,15,17,18,20,21,22,24,27,29,39,41,45,46],step1:7,step2:7,step3:7,step4:7,step5:7,step:[6,10,12,15,37,42,45],step_iterator_t:12,stepanov:17,stephen:31,stepiter:15,stepiteratorconcept:[14,15],still:45,stl:[2,5,6,9,15,17,25,27,39],stlab:10,store:[6,7,15,19,24,41,45],straightforward:[10,41],stream:41,strength:32,stretch:[32,36],string:[6,18,41],stringstream:41,strip:41,strongli:41,struct:[1,2,3,6,8,10,12,13,14,15,16,17,20,41,45],structur:[0,6,10,11,31,37,39,45],studio:45,sub:[1,17,20,25,27,39,41,44],sub_h:29,sub_histogram:29,subclass:[6,14,15],subimag:45,subimage_view:[7,10,41,45,46],subject:41,suboptim:45,subsampl:[10,14,45],subsampled_view:[7,10,45,46],subset:29,substitut:4,successfulli:40,succinct:10,suffici:[15,40],suffix:42,suggest:[17,44],suit:[36,41],suitabl:[27,45],sum:31,summer:38,suppli:[8,10,14,15,22,41],support:[0,1,6,7,8,10,12,14,22,27,39,40,45,46],supported_image_format:41,suppos:[6,7,8,45],sure:41,swap:[4,15,17],swappabl:[1,2,4],symmetr:13,synopsi:[10,15],syntact:4,syntax:[4,18,33,34],synthet:[8,39,45],system:[41,45],tabl:[11,21,25,35,37,41],tag:[41,42],tag_t:41,take:[2,6,7,8,9,10,14,15,17,19,41,45,46],taken:[33,34,45],targa_wiki:41,target:[5,41,45],task:[24,29,45],technic:[11,39],techniqu:[6,34,41],tell:40,templat:[1,2,3,4,6,7,8,9,10,12,13,14,15,16,17,41,45,46],temporari:[17,45],term:[16,31],test:[20,22,39,40,42],test_imag:41,text:41,than:[2,6,7,13,14,15,18,19,41,45],thank:[41,44],thei:[1,2,3,5,6,7,8,10,12,13,14,15,31,32,45],them:[1,4,6,9,10,12,13,41,45],therefor:1,thi:[0,1,2,4,6,7,8,10,12,13,14,15,17,18,24,31,32,34,36,41,42,44,45,46,47],thing:[7,32,41],think:45,third:41,thorough:41,those:[13,32],though:[6,7,32,45],three:[1,13,14,31,32,45],threshold:31,through:[7,15,41,45],thrown:45,thu:[1,2,3,8,15,33],tif:41,tiff_base_tag:41,tiff_extension_tag:41,tiff_graphicsmagick_test_fil:41,tiff_lib:41,tiff_lib_tiff_test_fil:41,tiff_t:41,tiff_tag:41,tiff_wiki:41,tile:41,time:[0,1,2,5,6,7,8,10,14,27,39],timor:31,tinn:31,tip:19,tmp:[14,17],todo:[18,26,28,30,43],togeth:[0,3,13,45],toll:[6,45],too:[36,44],toolbox:[39,41],top:[0,7,10,12,15,27,41,45,46],top_left:10,total:[10,15],trace:31,track:[10,14,45],transform:[1,2,6,8,10,31,33,34,39],transform_pixel:[10,45],transform_pixel_posit:[10,45],transpos:[10,15,45],transposed_typ:[10,15],transposed_view:10,travers:[9,10,14,15,41,42,45],treat:[6,45],tricki:17,trickier:45,trigger:[6,45],trivial:42,troubl:41,true_:[12,14],tupl:[24,29],turn:6,tutori:[8,10,15,39],tuytelaar:31,tweak:32,twice:45,two:[0,1,2,3,6,7,9,10,13,14,15,16,31,32,34,38,41,45],type1:18,type2:18,type3:18,type:[0,1,2,3,4,5,6,7,9,10,13,14,15,16,17,18,20,22,39,41,44,45,46],type_from_x_iter:12,typedef:[1,6,7,8,10,12,13,14,17,41,45],typen:18,typenam:[1,2,3,4,6,7,8,9,10,12,13,14,15,16,17,41,45,46],typic:[1,6,8,10],ud_fud:10,uint16_t:[1,13],uint8_t:[1,31,46],unari:[14,45],unary_compos:14,unary_funct:14,unaryfunctionconcept:[10,14],unchang:45,unclear:15,under:[31,34,41],underli:[6,10,14,41],understand:[1,31,32,41],unfamiliar:45,unfortun:45,uniform:34,uniformli:[6,33],uninitialized_copi:10,uninitialized_copy_pixel:10,uninitialized_fil:10,uninitialized_fill_pixel:10,uniqu:3,unit:[14,15,41],unless:32,unlik:[9,13],unnam:3,unnecessari:[7,13,45],unordered_map:[22,23,27],unpack:13,unrel:46,unrol:45,unset:10,unsign:[6,7,9,10,12,13,14,42,45],unspecifi:4,until:31,unus:[13,45],unusu:45,upon:[6,8,10,12,14,15,17],upper:46,upsid:[6,10],usag:[20,21,32,33,34,41],use:[1,2,4,7,8,10,12,13,15,17,22,24,32,34,40,41,45],use_default:12,used:[2,3,4,5,6,7,9,13,14,15,16,20,25,31,32,35,41,42,45],useful:[8,9,14,15,45],user:[0,4,8,10,15,41,44,45],uses:[2,6,10,12,14,15,16,20,41,45],using:[1,2,3,6,7,8,9,10,12,13,15,20,24,29,39,41,45,46],using_io:41,usual:[14,31,32,41],util:[25,39],val:10,valid:[1,10,45],valu:[0,1,2,3,6,7,8,9,10,12,13,14,15,16,17,24,29,31,32,33,34,41,42,45],value_typ:[1,8,9,10,13,14,15,16,41,45],valueless:6,van:31,vari:[0,3,45],variabl:[0,45,46],variant2:6,variant:[6,41,45],variat:[0,41],varieti:[39,45],variou:41,vector3_c:13,vector4:3,vector4_c:3,vector:[22,23,33,34,41,45],veri:[9,12,31,45,46],version:[10,14,15,19,40,41,46],vertic:[12,14,15,32,45],via:[6,10],video:[0,39,45],view1:10,view2:10,view:[5,9,11,13,14,15,18,23,24,29,33,34,39,41,42,46],view_is_mut:12,view_t:[6,7,9,10,12,41],view_typ:12,view_type_from_pixel:12,viewer:41,viewscompatibleconcept:[7,10],viewtyp:6,virtual:[5,8,12,14,15,41],virtual_2d_loc:[15,45],vision:[0,31],visit:[10,15],visual:[36,45],vol:31,wai:[2,13,17,18,32,41,42,45],walk:[41,45],want:[7,8,14,15,18,41,45],warn:45,watch:47,web:4,websit:41,weight:[31,37],well:[2,13,19,36,41,45],were:[38,45],what:[6,32,37,41,45],when:[2,7,8,9,10,14,15,17,18,31,32,34,41,45],where:[1,2,7,9,10,12,13,14,15,16,18,40,41,42,45],wherea:[0,2,6,32,41,45],whether:[1,10,12,14,15,45],which:[0,1,2,3,6,7,8,9,10,12,14,15,16,19,24,32,33,40,41,42,44,45],who:44,whose:[0,2,10,12,13,14,29,39,45],why:[33,45],width:[6,7,9,10,15,33,34,45,46],window:[31,41],within:10,without:31,word:[0,9,10,14,32,45],work:[0,5,6,7,8,10,13,17,31,39,45,46],workflow:22,worth:[7,41,45],would:[0,6,14,18,29,32,33,34,41,45],wrap:[6,10,14],wrapper:[14,15],write:[0,5,6,7,10,17,39,45],write_view:41,writer:41,written:[15,32,41,45,46],wstring:41,www:47,x_at:[10,15],x_coord_t:[6,9,10,15],x_diff:15,x_gradient:[39,45],x_gradient_obj:45,x_gradient_rgb_luminos:45,x_gradient_unguard:45,x_iter:[9,10,13,15,41,45],x_luminosity_gradi:45,x_min:45,xbm:41,xgradientgray16_gray32:45,xgradientplanarrgb8_rgb32:45,xgradientrgb8_bgr16:45,xiter:[12,15],xpm:41,xxx:41,xxx_all:41,xxx_and_convert_xxx:41,xxx_read:41,xxx_tag:41,xxx_write:41,xy_at:[10,15,45],xy_loc:[10,45],xy_locator_t:12,xyz:44,y_at:[10,15],y_coord_t:[6,9,10,15],y_distance_to:15,y_gradient:45,y_iter:[10,15,45],y_min:45,ycbcr:[33,34,41],ycck:41,yellow:31,yet:[0,27,41,45],you:[7,8,12,17,19,20,24,27,41,45],your:[8,17,20,39,40,41,45],your_imag:[33,34],your_ref_imag:34,yourself:41,youtub:47,zero:[13,31,45],zisserman:31,zlib:41},titles:["Basics","Channel","Color Base","Color Space and Layout","Concepts","Conclusions","Dynamic images and image views","Examples","Extending","Image","Image View","Design Guide","Metafunctions","Pixel","Pixel Iterator","Pixel Locator","Point","Technicalities","Create a histogram","Making a cumulative histogram","Extending the class","Extensions","Overview","STD extension","Fill histogram","Histogram","Limitations","Overview","STL compatibility","Making a sub-histogram","Utilities","Affine region detectors","Basics","Histogram Equalization","Histogram Matching","Contrast Enhancement","Overview","Image Processing","Overview","Boost Generic Image Library","Installation","IO extensions","Naming Conventions","Numeric extension","ToolBox extension","Tutorial: Image Gradient","Tutorial: Histogram","Tutorial: Video Lecture"],titleterms:{"class":20,"new":[8,41],Adding:22,And:41,Axes:20,Using:[7,41,45],acknowledg:44,adaptor:14,advanc:24,affin:31,algorithm:[1,2,10,13,31,33,34,45],align:12,avail:31,base:[2,12],basic:[0,24,32],being:31,bit:12,bmp:41,boost:39,buffer:41,canva:7,channel:[1,8],code:45,color:[2,3,8,45],compat:[5,28],compil:[40,41],compon:12,concept:4,conclus:[5,45],concret:42,contain:22,contrast:35,convent:42,convers:[8,45],convolut:32,core:39,creat:[10,17,18,45],cumul:19,curvatur:32,defin:[8,20],demo:[33,34],derefer:14,deriv:[12,32],descript:[22,27,33,34],design:11,detect:31,detector:31,document:39,dynam:6,enhanc:35,equal:33,equival:45,exampl:[7,39],exist:12,extend:[8,20,41],extens:[5,21,22,23,39,41,43,44],extern:22,fill:24,filter:32,first:45,flexibl:5,folder:44,format:41,from:10,fundament:14,gener:[5,39,41,45],gil:[41,45,46],glue:45,gradient:45,guid:11,harri:31,hessian:31,histogram:[7,18,19,24,25,29,33,34,46],homogen:12,imag:[6,7,8,9,10,12,15,37,39,41,45],implement:[45,46],instal:40,interfac:[41,45],iter:[12,14,15,45],jpeg:41,kernel:32,layout:3,lectur:47,level:7,librari:39,limit:26,locat:[15,45],make:[19,29],manipul:12,match:34,memori:[12,41],metafunct:12,model:[1,2,3,9,10,13,14,15,16],name:42,numer:43,oper:7,origin:46,other:10,over:15,overload:8,overview:[1,2,3,8,9,10,12,13,14,15,16,19,22,24,27,29,36,38,41,43,44],pack:12,perform:5,pixel:[7,10,12,13,14,15,45],platform:41,png:41,pnm:41,point:16,process:37,proxi:17,quickstart:39,raw:[10,41],read:41,refer:[17,44],region:31,resiz:7,result:[33,34],run:[41,45],space:[3,8],specifi:45,std:23,step:[14,31],stl:[10,28,45],structur:44,style:10,sub:29,support:[23,41],symbol:41,targa:41,technic:17,test:41,tiff:41,time:45,toolbox:44,trait:12,transform:45,tutori:[27,41,45,46,47],type:[8,12,23,42],usag:23,user:20,util:30,version:45,video:47,view:[6,7,8,10,12,45],virtual:45,weight:32,what:31,write:41}}) \ No newline at end of file diff --git a/develop/doc/html/toolbox.html b/develop/doc/html/toolbox.html index 54644310d..d379e44e2 100644 --- a/develop/doc/html/toolbox.html +++ b/develop/doc/html/toolbox.html @@ -126,7 +126,7 @@ made suggestions for improvements.

    diff --git a/develop/doc/html/tutorial/gradient.html b/develop/doc/html/tutorial/gradient.html index 518176d17..5bd8f8b6e 100644 --- a/develop/doc/html/tutorial/gradient.html +++ b/develop/doc/html/tutorial/gradient.html @@ -953,7 +953,7 @@ code with different compilers.

    diff --git a/develop/doc/html/tutorial/histogram.html b/develop/doc/html/tutorial/histogram.html index 3b35a9214..649320732 100644 --- a/develop/doc/html/tutorial/histogram.html +++ b/develop/doc/html/tutorial/histogram.html @@ -171,7 +171,7 @@ memory is allocated and no images are copied.

    diff --git a/develop/doc/html/tutorial/video.html b/develop/doc/html/tutorial/video.html index 479d55de4..2626c6def 100644 --- a/develop/doc/html/tutorial/video.html +++ b/develop/doc/html/tutorial/video.html @@ -82,7 +82,7 @@