.. note:: Not all image provide the access of the value associated to a point (the `f(p)` syntax). This is available for :cpp:concept:`AccessibleImage` images.
.. note:: The macro :c:macro:`mln_foreach` is just a shortcut to iterate over rows in an efficient way.
To iterate over several images in the same time, use :cpp:func:`mln::ranges::view::zip` to pack the value or pixel ranges of each image::
.. warning:: The type returned by `concretize` et al. are not images but *image initializers* that support advanced
parameterization of the initialization. So you should not use ``auto`` type deduction for variables.
.. topic:: Advanced initialization
*image initializers* follow the `Named parameter Idiom
<https://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Named_Parameter>`_ and provides additional init parameters. Note that it may fail to fulfill the requirements, so a status code may be queried to check if everything succeeded.
Initialize from `other` but overrides init-parameters with those from `params`.
Image Concepts
==============
Image-related Concepts
^^^^^^^^^^^^^^^^^^^^^^
* Values
* Point
* Domain
* Pixel
...
...
@@ -112,7 +331,52 @@ Forsee to add pdim (point) and vdim (value) for dimension constant in iamge conc
* :ref:`Index <concept-indexes-Index>`
Concepts
Image properties
^^^^^^^^^^^^^^^^
Image concepts are *property*-based. An image concept is group of images types sharing some properties.
Image (traversal) category
The image category describes how an image can be traversed. It can be **forward**, **bidirectional** (can be
traversed **backward** and **forward**), or **raw** (buffer encoded image with *contiguous* line buffer)
Image Accessibility
An image is said **accessible** whenever it allows to access the value associated to a point, i.e. it allows to
write `f(p)`. While it may seem trivial, not all image are accessible (for example image defined by a vector of pair
*(p, f(p))*.
Image Indexability
An image is **indexable** whenever it enables to access values with an index localisator. Usually, accessing through
an index is faster than accessing by a point.
Image Writability
An image **writable** can be used as an output image to store the result of a processing. Some image are *read-only* as images that compute values on-the-fly and are not buffer-encoded.
The figure below illustrates image properties and some of the image concept.