Olena-patches
Threads by month
- ----- 2025 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- 9625 discussions

19 Apr '13
---
milena/ChangeLog | 4 ++++
milena/doc/mln/convert.dox | 6 +++---
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 86129ef..6c8c7c7 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,9 @@
2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+ * doc/mln/convert.dox: Fix typos.
+
+2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Add documentation about image conversions.
* doc/mln/convert.dox: Add examples and explanations.
diff --git a/milena/doc/mln/convert.dox b/milena/doc/mln/convert.dox
index 158fb43..60319fd 100644
--- a/milena/doc/mln/convert.dox
+++ b/milena/doc/mln/convert.dox
@@ -5,7 +5,7 @@
Type conversions in Olena mainly relies on convert::from_to(). This
routine works on a single value only.
- Type conversion of image value types relies on data::convert. This
+ Type conversion of image value types relies on data::convert(). This
routine relies on convert::from_to(). For each pixel value,
convert::from_to() is called.
@@ -47,7 +47,7 @@
\code
$ g++ -I$OLN/milena main.cc
...
- /my/path/to/oln/milena/mln/convert/from_to.hh:152:5: error: ‘check’ is not a member of ‘mln::metal::abort_<mln::value::rgb<8u> >’
+ /my/path/to/oln/milena/mln/convert/from_to.hh:152:5: error: 'check' is not a member of 'mln::metal::abort_<mln::value::rgb<8u> >'
\endcode
Missing conversion is sometimes due to non-trivial
@@ -114,7 +114,7 @@
\endcode
- If a program requires conversions that are not provided by default
+ If a program requires conversions that are not provided by default,
they can be defined manually by declaring a from_to_()
overload. Default overloads are listed in module \ref fromto.
--
1.7.2.5
1
0
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/newdoc has been updated
via 64752940c947d09ef82306107adde7e9d6f33cda (commit)
from a8d117672fb512482f7a098499a41e99a53fa445 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
6475294 Add documentation about image conversions.
-----------------------------------------------------------------------
Summary of changes:
milena/ChangeLog | 24 +++++
milena/doc/mln/convert.dox | 165 +++++++++++++++++++++++++++++++-
milena/mln/convert/from_to.hh | 2 +-
milena/mln/convert/to.hh | 19 ++++-
milena/mln/convert/to_image.hh | 28 ++++-
milena/mln/convert/to_p_array.hh | 21 +++-
milena/mln/convert/to_p_set.hh | 35 ++++++--
milena/mln/convert/to_qimage.hh | 18 +++-
milena/mln/convert/to_qimage_nocopy.hh | 24 +++++-
milena/mln/convert/to_upper_window.hh | 14 ++-
milena/mln/convert/to_window.hh | 23 ++++-
milena/mln/data/convert.hh | 38 +++++++-
milena/mln/fun/v2v/convert.hh | 16 +++-
milena/mln/fun/v2v/hsl_to_rgb.hh | 13 ++-
milena/mln/fun/v2v/qt_rgb_to_int_u.hh | 8 ++-
milena/mln/fun/v2v/rgb8_to_rgbn.hh | 31 +++---
milena/mln/fun/v2v/rgb_to_hsl.hh | 27 +++++-
milena/mln/fun/v2v/rgb_to_int_u.hh | 15 +++-
milena/mln/fun/v2v/rgb_to_luma.hh | 13 +++-
19 files changed, 460 insertions(+), 74 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

olena: olena-2.0-554-g6475294 Add documentation about image conversions.
by Guillaume Lazzara 19 Apr '13
by Guillaume Lazzara 19 Apr '13
19 Apr '13
* doc/mln/convert.dox: Add examples and explanations.
* mln/convert/from_to.hh,
* mln/convert/to.hh,
* mln/convert/to_image.hh,
* mln/convert/to_p_array.hh,
* mln/convert/to_p_set.hh,
* mln/convert/to_qimage.hh,
* mln/convert/to_qimage_nocopy.hh,
* mln/convert/to_upper_window.hh,
* mln/convert/to_window.hh,
* mln/data/convert.hh,
* mln/fun/v2v/convert.hh,
* mln/fun/v2v/hsl_to_rgb.hh,
* mln/fun/v2v/qt_rgb_to_int_u.hh,
* mln/fun/v2v/rgb8_to_rgbn.hh,
* mln/fun/v2v/rgb_to_hsl.hh,
* mln/fun/v2v/rgb_to_int_u.hh,
* mln/fun/v2v/rgb_to_luma.hh: Add to conversion module.
---
milena/ChangeLog | 24 +++++
milena/doc/mln/convert.dox | 165 +++++++++++++++++++++++++++++++-
milena/mln/convert/from_to.hh | 2 +-
milena/mln/convert/to.hh | 19 ++++-
milena/mln/convert/to_image.hh | 28 ++++-
milena/mln/convert/to_p_array.hh | 21 +++-
milena/mln/convert/to_p_set.hh | 35 ++++++--
milena/mln/convert/to_qimage.hh | 18 +++-
milena/mln/convert/to_qimage_nocopy.hh | 24 +++++-
milena/mln/convert/to_upper_window.hh | 14 ++-
milena/mln/convert/to_window.hh | 23 ++++-
milena/mln/data/convert.hh | 38 +++++++-
milena/mln/fun/v2v/convert.hh | 16 +++-
milena/mln/fun/v2v/hsl_to_rgb.hh | 13 ++-
milena/mln/fun/v2v/qt_rgb_to_int_u.hh | 8 ++-
milena/mln/fun/v2v/rgb8_to_rgbn.hh | 31 +++---
milena/mln/fun/v2v/rgb_to_hsl.hh | 27 +++++-
milena/mln/fun/v2v/rgb_to_int_u.hh | 15 +++-
milena/mln/fun/v2v/rgb_to_luma.hh | 13 +++-
19 files changed, 460 insertions(+), 74 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 3f29bbc..b1cba37 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,29 @@
2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Add documentation about image conversions.
+
+ * doc/mln/convert.dox: Add examples and explanations.
+
+ * mln/convert/from_to.hh,
+ * mln/convert/to.hh,
+ * mln/convert/to_image.hh,
+ * mln/convert/to_p_array.hh,
+ * mln/convert/to_p_set.hh,
+ * mln/convert/to_qimage.hh,
+ * mln/convert/to_qimage_nocopy.hh,
+ * mln/convert/to_upper_window.hh,
+ * mln/convert/to_window.hh,
+ * mln/data/convert.hh,
+ * mln/fun/v2v/convert.hh,
+ * mln/fun/v2v/hsl_to_rgb.hh,
+ * mln/fun/v2v/qt_rgb_to_int_u.hh,
+ * mln/fun/v2v/rgb8_to_rgbn.hh,
+ * mln/fun/v2v/rgb_to_hsl.hh,
+ * mln/fun/v2v/rgb_to_int_u.hh,
+ * mln/fun/v2v/rgb_to_luma.hh: Add to conversion module.
+
+2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Add references to from_to_ overloads in documentation.
* mln/algebra/h_mat.hh,
diff --git a/milena/doc/mln/convert.dox b/milena/doc/mln/convert.dox
index bb2b1e6..158fb43 100644
--- a/milena/doc/mln/convert.dox
+++ b/milena/doc/mln/convert.dox
@@ -1,9 +1,164 @@
/*! \defgroup convert Convertion Routines
- *
- * \brief All conversion routines provided in Milena.
- *
- * \ingroup modroutines
- */
+
+ \brief All conversion routines provided in Milena.
+
+ Type conversions in Olena mainly relies on convert::from_to(). This
+ routine works on a single value only.
+
+ Type conversion of image value types relies on data::convert. This
+ routine relies on convert::from_to(). For each pixel value,
+ convert::from_to() is called.
+
+ Examples of use:
+ \code
+ image2d<value::int_u8> ima_gl;
+ // Initialization of ima_gl.
+ // ...
+ image2d<value::rgb8> ima_color = mln::data::convert(value::rgb8(), ima_gl);
+ \endcode
+
+ \code
+ image2d<value::int_u8> ima_gl;
+ // Initialization of ima_gl.
+ // ...
+ image2d<bool> ima_b = mln::data::convert(bool(), ima_gl);
+ \endcode
+
+
+ Sometimes, no default conversion is available from type \c
+ mln_value(I) to \c V. It fails with a compilation error such as:
+
+ \code
+ #include <mln/core/image/image2d.hh>
+ #include <mln/data/convert.hh>
+ #include <mln/value/int_u8.hh>
+ #include <mln/value/rgb8.hh>
+
+ int main()
+ {
+ using namespace mln;
+
+ image2d<value::rgb8> ima_color;
+ // Initialization of ima_color
+ // ...
+ image2d<value::int_u8> ima_gl = data::convert(value::int_u8(), ima_color);
+ }
+ \endcode
+ \code
+ $ g++ -I$OLN/milena main.cc
+ ...
+ /my/path/to/oln/milena/mln/convert/from_to.hh:152:5: error: ‘check’ is not a member of ‘mln::metal::abort_<mln::value::rgb<8u> >’
+ \endcode
+
+ Missing conversion is sometimes due to non-trivial
+ conversions. Here, converting a value::rgb8 towards a value::int_u8
+ implies to compute the luminance, but several formulae exist.
+
+ For a single use of a specific conversion, the shortest way is to
+ use the data::convert() overload which takes a conversion function.
+ It must be used with one of conversion function listed on this page.
+
+ \code
+ #include <mln/core/image/image2d.hh>
+ #include <mln/data/convert.hh>
+ #include <mln/value/int_u8.hh>
+ #include <mln/value/rgb8.hh>
+ #include <mln/fun/v2v/rgb_to_luma.hh>
+
+ int main()
+ {
+ using namespace mln;
+
+ image2d<value::rgb8> ima_color;
+ // Initialization of ima_color
+ // ...
+ image2d<value::int_u8> ima_gl = data::convert(fun::v2v::rgb_to_luma<value::int_u8>(), ima_color);
+ }
+ \endcode
+
+ It is also possible to declare a user-defined function. Just declare
+ a class that inherits from the mln::Function_v2v class and respects
+ the required interface.
+
+ \code
+ #include <mln/core/image/image2d.hh>
+ #include <mln/data/convert.hh>
+ #include <mln/value/int_u8.hh>
+ #include <mln/value/rgb8.hh>
+ #include <mln/fun/v2v/rgb_to_luma.hh>
+
+ namespace mln
+ {
+ struct only_red_component : public Function_v2v<only_red_component>
+ {
+ typedef value::int_u8 result;
+ typedef mln::value::rgb8 argument;
+
+ result operator()(const argument& v) const
+ {
+ return v.red();
+ }
+ };
+
+ } // end of namespace mln
+
+ int main()
+ {
+ using namespace mln;
+
+ image2d<value::rgb8> ima_color;
+ // Initialization of ima_color
+ // ...
+ image2d<value::int_u8> ima_red_gl = data::convert(only_red_component(), ima_color);
+ }
+ \endcode
+
+
+ If a program requires conversions that are not provided by default
+ they can be defined manually by declaring a from_to_()
+ overload. Default overloads are listed in module \ref fromto.
+
+ \code
+ #include <mln/core/image/image2d.hh>
+ #include <mln/data/convert.hh>
+ #include <mln/value/int_u8.hh>
+ #include <mln/value/rgb8.hh>
+
+ namespace mln
+ {
+ namespace value
+ {
+
+ void from_to_(const value::rgb8& from, value::int_u8& to)
+ {
+ to = (from.red() + from.green() + from.blue()) / 3;
+ }
+
+ } // end of namespace mln::value
+ } // end of namespace mln
+
+ int main()
+ {
+ using namespace mln;
+
+ image2d<value::rgb8> ima_color;
+ // Initialization of ima_color
+ // ...
+ image2d<value::int_u8> ima_red_gl = data::convert(value::int_u8(), ima_color);
+ }
+ \endcode
+
+ Such declarations extend the capabilities of from_to() and all
+ conversion routines relying on it.
+
+ \warning In order to work properly, the from_to_ overload must be
+ declared in the exact same namespace as its first argument. In case
+ the first argument is a builtin type (e.g. int), rely on the second
+ argument namespace. from_to_ overload resolution relies on the
+ Argument-Dependent Lookup (ADL) provided by C++.
+
+ \ingroup modroutines
+*/
/*! \defgroup fromto from_to_ Routines
*
diff --git a/milena/mln/convert/from_to.hh b/milena/mln/convert/from_to.hh
index 32a471d..2befb57 100644
--- a/milena/mln/convert/from_to.hh
+++ b/milena/mln/convert/from_to.hh
@@ -58,7 +58,7 @@ namespace mln
namespace convert
{
- /*! \brief Value conversion routine.
+ /*! \brief Conversion routine.
This is a generic function to convert an object towards another
one.
diff --git a/milena/mln/convert/to.hh b/milena/mln/convert/to.hh
index 6dc72e9..699b71d 100644
--- a/milena/mln/convert/to.hh
+++ b/milena/mln/convert/to.hh
@@ -46,7 +46,24 @@ namespace mln
{
- /// Conversion of the object \p from towards an object with type \c T.
+ /*!
+ \brief Conversion of the object \p from towards an object with
+ type \c T.
+
+ This routine relies on from_to().
+
+ It is provided for conveniance.
+
+ \warning The destination type must be specified as template
+ parameter while calling this function.
+
+ \code
+ value::int_u8 gl = 3;
+ value::rgb8 color = convert::to<value::rgb8>(gl);
+ \endcode
+
+ \ingroup convert
+ */
template <typename T, typename O>
T
to(const O& from);
diff --git a/milena/mln/convert/to_image.hh b/milena/mln/convert/to_image.hh
index 71fde90..2eda6e7 100644
--- a/milena/mln/convert/to_image.hh
+++ b/milena/mln/convert/to_image.hh
@@ -55,28 +55,44 @@ namespace mln
{
- /// Convert a point set \p pset into a binary image. Width of the
- /// converted image will be pset.bbox + 2 * \p border.
+ /*!
+ \brief Convert a point set \p pset into a binary image.
+
+ Width of the converted image will be pset.bbox + 2 * \p border.
+ \ingroup convert
+ */
template <typename S>
mln_image_from_grid(mln_site(S)::grid, bool)
to_image(const Site_Set<S>& pset, unsigned border = 1);
- /// Convert a window \p win into a binary image.
+ /*!
+ \brief Convert a window \p win into a binary image.
+ \ingroup convert
+ */
template <typename W>
mln_image_from_grid(mln_site(W)::grid, bool)
to_image(const Window<W>& win);
- /// Convert a weighted window \p w_win into an image.
+ /*!
+ \brief Convert a weighted window \p w_win into an image.
+ \ingroup convert
+ */
template <typename W>
mln_image_from_grid(mln_site(W)::grid, mln_weight(W))
to_image(const Weighted_Window<W>& w_win);
- /// Convert a neighborhood \p nbh into a binary image.
+ /*!
+ \brief Convert a neighborhood \p nbh into a binary image.
+ \ingroup convert
+ */
template <typename N>
mln_image_from_grid(mln_site(N)::grid, bool)
to_image(const Neighborhood<N>& nbh);
- /// Convert an histo \p h into an image1d<unsigned>.
+ /*!
+ \brief Convert an histo \p h into an image1d<unsigned>.
+ \ingroup convert
+ */
template <typename T>
image1d<unsigned>
to_image(const histo::array<T>& h);
diff --git a/milena/mln/convert/to_p_array.hh b/milena/mln/convert/to_p_array.hh
index 24d64fc..3d54b53 100644
--- a/milena/mln/convert/to_p_array.hh
+++ b/milena/mln/convert/to_p_array.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,18 +44,28 @@ namespace mln
namespace convert
{
- /// Convert a point set \p pset into a p_array (point set vector).
+ /*!
+ \brief Convert a point set \p pset into a p_array (point set vector).
+ \ingroup convert
+ */
template <typename S>
p_array<mln_psite(S)> to_p_array(const Site_Set<S>& pset);
- /// Convert a window \p win centered at point \p p into a p_array
- /// (point set vector).
+ /*!
+ \brief Convert a window \p win centered at point \p p into a p_array
+ (point set vector).
+
+ \ingroup convert
+ */
template <typename W>
p_array<mln_psite(W)> to_p_array(const Window<W>& win,
const mln_psite(W)& p);
- /// Convert an image \p img into a p_array.
+ /*!
+ \brief Convert an image \p img into a p_array.
+ \ingroup convert
+ */
template <typename I>
p_array<mln_psite(I)>
to_p_array(const Image<I>& img);
diff --git a/milena/mln/convert/to_p_set.hh b/milena/mln/convert/to_p_set.hh
index 46cd5e7..5758579 100644
--- a/milena/mln/convert/to_p_set.hh
+++ b/milena/mln/convert/to_p_set.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -48,28 +49,48 @@ namespace mln
namespace convert
{
- /// Convert a neighborhood \p nbh into a site set.
+ /*!
+ \brief Convert a neighborhood \p nbh into a site set.
+ \ingroup convert
+ */
template <typename N>
p_set<mln_psite(N)>
to_p_set(const Neighborhood<N>& nbh);
- /// Convert a binary image \p ima into a site set.
+ /*!
+ \brief Convert a binary image \p ima into a site set.
+ \ingroup convert
+ */
template <typename I>
p_set<mln_psite(I)>
to_p_set(const Image<I>& ima);
- /// Convert a Window \p win into a site set.
+ /*!
+ \brief Convert a Window \p win into a site set.
+ \ingroup convert
+ */
template <typename W>
p_set<mln_psite(W)>
to_p_set(const Window<W>& win);
- /// Convert an std::set \p s of sites into a site set.
- /// C is the comparison functor.
+ /*!
+ \brief Convert an std::set \p s of sites into a site set.
+
+ \tparam P is the site type.
+ \tparam C is the comparison functor.
+
+ \ingroup convert
+ */
template <typename P, typename C>
p_set<P>
to_p_set(const std::set<P, C>& s);
- /// Convert any site set \p ps into a 'mln::p_set<>' site set.
+ /*!
+ \brief Convert any site set \p ps into a 'mln::p_set<>' site
+ set.
+
+ \ingroup convert
+ */
template <typename S>
p_set<mln_psite(S)>
to_p_set(const Site_Set<S>& ps);
diff --git a/milena/mln/convert/to_qimage.hh b/milena/mln/convert/to_qimage.hh
index fd90125..b6f84a6 100755
--- a/milena/mln/convert/to_qimage.hh
+++ b/milena/mln/convert/to_qimage.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2010, 2012, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -56,9 +56,17 @@ namespace mln
namespace convert
{
- /// \brief Convert a Milena image to a Qimage.
- ///
- //
+ /*!
+ \brief Convert a Milena image to a Qimage by copying data.
+
+ This function requires the library <a
+ href="http://www.qt-project.org">Qt</a> 4.x or 5.x.
+
+ This function copies the content of \p ima into the QImage
+ output.
+
+ \ingroup convert
+ */
template <typename I>
inline
QImage
diff --git a/milena/mln/convert/to_qimage_nocopy.hh b/milena/mln/convert/to_qimage_nocopy.hh
index 2820f0e..2d5df86 100755
--- a/milena/mln/convert/to_qimage_nocopy.hh
+++ b/milena/mln/convert/to_qimage_nocopy.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2013 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -52,6 +53,26 @@ namespace mln
namespace convert
{
+ /*!
+ \brief Convert a Milena image to a Qimage without copy.
+
+ This function requires the library <a
+ href="http://www.qt-project.org">Qt</a> 4.x or 5.x.
+
+ It does not copy any data. The underlying data remains held by
+ \p ima.
+
+ \warning \p ima must remain valid until QImage is destroyed.
+
+ \ingroup convert
+ */
+ template <typename I>
+ inline
+ QImage to_qimage_nocopy(const Image<I>& ima);
+
+
+# ifndef MLN_INCLUDE_ONLY
+
// Implementation
namespace impl
@@ -171,6 +192,7 @@ namespace mln
return output;
}
+# endif // ! MLN_INCLUDE_ONLY
} // end of namespace mln::convert
diff --git a/milena/mln/convert/to_upper_window.hh b/milena/mln/convert/to_upper_window.hh
index aae46e2..af0b7f7 100644
--- a/milena/mln/convert/to_upper_window.hh
+++ b/milena/mln/convert/to_upper_window.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,11 +43,18 @@ namespace mln
namespace convert
{
- /// Convert a window \p nbh into an upper window.
+ /*!
+ \brief Convert a window \p nbh into an upper window.
+
+ \ingroup convert
+ */
template <typename W>
window<mln_dpsite(W)> to_upper_window(const Window<W>& win);
- /// Convert a neighborhood \p nbh into an upper window.
+ /*!
+ \brief Convert a neighborhood \p nbh into an upper window.
+ \ingroup convert
+ */
template <typename N>
window<mln_dpoint(N)> to_upper_window(const Neighborhood<N>& nbh);
diff --git a/milena/mln/convert/to_window.hh b/milena/mln/convert/to_window.hh
index 9114a00..a5697ff 100644
--- a/milena/mln/convert/to_window.hh
+++ b/milena/mln/convert/to_window.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -46,19 +47,31 @@ namespace mln
namespace convert
{
- /// Convert a neighborhood \p nbh into a window.
+ /*!
+ Convert a neighborhood \p nbh into a window.
+ \ingroup convert
+ */
template <typename N>
mln_window(N) to_window(const Neighborhood<N>& nbh);
- /// Convert a binary image \p ima into a window.
+ /*!
+ \brief Convert a binary image \p ima into a window.
+ \ingroup convert
+ */
template <typename I>
window<mln_site(I)::dpsite> to_window(const Image<I>& ima);
- /// Convert a site set \p pset into a window.
+ /*!
+ \brief Convert a site set \p pset into a window.
+ \ingroup convert
+ */
template <typename S>
window<mln_site(S)::dpsite> to_window(const Site_Set<S>& pset);
- /// Convert an std::set \p s of delta-sites into a window.
+ /*!
+ \brief Convert an std::set \p s of delta-sites into a window.
+ \ingroup convert
+ */
template <typename D, typename C>
window<D> to_window(const std::set<D, C>& s);
diff --git a/milena/mln/data/convert.hh b/milena/mln/data/convert.hh
index 260baac..2c2a4f0 100644
--- a/milena/mln/data/convert.hh
+++ b/milena/mln/data/convert.hh
@@ -45,16 +45,32 @@ namespace mln
{
/*! \brief Convert the image \p input by changing the value type.
- *
- * \param[in] v A value of the destination type.
- * \param[in] input The input image.
- *
- * \ingroup mlndata
+
+ \param[in] v A value of the destination type. Its type is used
+ to specify the target value type. The value itself
+ is unused.
+ \param[in] input The input image.
+
+ \return An image of value type V.
+
+ \ingroup mlndata convert
*/
template <typename V, typename I>
mln_ch_value(I, V)
convert(const V& v, const Image<I>& input);
+ /*!
+ \brief Convert the image \p input by changing the value type.
+ \overload
+
+ This overload allows to specify a specific conversion function
+ thanks to parameter \p convert_function.
+
+ \ingroup mlndata convert
+ */
+ template <typename F, typename I>
+ mln_ch_value(I, mln_result(F))
+ convert(const Function_v2v<F>& convert_function, const Image<I>& input);
# ifndef MLN_INCLUDE_ONLY
@@ -163,6 +179,18 @@ namespace mln
return output;
}
+ template <typename F, typename I>
+ mln_ch_value(I, mln_result(F))
+ convert(const Function_v2v<F>& convert_function, const Image<I>& input)
+ {
+ mln_trace("data::convert");
+ typedef mln_result(F) V;
+ internal::convert_tests(V(), input);
+
+ mln_ch_value(I, V) output = data::transform(input, convert_function);
+
+ return output;
+ }
# endif // ! MLN_INCLUDE_ONLY
diff --git a/milena/mln/fun/v2v/convert.hh b/milena/mln/fun/v2v/convert.hh
index e1064b8..42c4229 100644
--- a/milena/mln/fun/v2v/convert.hh
+++ b/milena/mln/fun/v2v/convert.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -28,7 +29,7 @@
/// \file
///
-/// FIXME.
+/// \brief Function which relies on from_to() to convert values.
///
/// \todo The function is intrisically meta; how to handle that
/// particular case?
@@ -47,13 +48,22 @@ namespace mln
namespace v2v
{
- // FIXME: Doc!
+ /*! \brief Function which relies on from_to() to convert values.
+ \tparam V The destination type.
+
+ This function relies on convert::from_to().
+
+ \sa data::convert.
+ \ingroup modfunv2v convert
+ */
template <typename V>
struct convert : public Function_v2v< convert<V> >
{
typedef V result;
+ /// Convert a value of type \c W towards type \c V thanks to
+ /// convert::from_to().
template <typename W>
V operator()(const W& w) const;
};
diff --git a/milena/mln/fun/v2v/hsl_to_rgb.hh b/milena/mln/fun/v2v/hsl_to_rgb.hh
index 4470681..25f5d10 100644
--- a/milena/mln/fun/v2v/hsl_to_rgb.hh
+++ b/milena/mln/fun/v2v/hsl_to_rgb.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2011, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -54,10 +54,11 @@ namespace mln
namespace v2v
{
- /// \brief Convert hsl values to rgb.
- ///
- /// \ingroup modfunv2v
- //
+ /*!
+ \brief Convert hsl values to rgb.
+
+ \ingroup modfunv2v convert
+ */
template <typename T_rgb>
struct f_hsl_to_rgb_ : public Function_v2v< f_hsl_to_rgb_<T_rgb> >
{
diff --git a/milena/mln/fun/v2v/qt_rgb_to_int_u.hh b/milena/mln/fun/v2v/qt_rgb_to_int_u.hh
index 17292fb..3a60763 100644
--- a/milena/mln/fun/v2v/qt_rgb_to_int_u.hh
+++ b/milena/mln/fun/v2v/qt_rgb_to_int_u.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2013 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -43,6 +44,11 @@ namespace mln
namespace v2v
{
+ /*!
+ \brief Convert value::qt::rgb32 values to value::int_u8.
+
+ \ingroup modfunv2v convert
+ */
template <unsigned n>
struct qt_rgb_to_int_u : Function_v2v< qt_rgb_to_int_u<n> >
{
diff --git a/milena/mln/fun/v2v/rgb8_to_rgbn.hh b/milena/mln/fun/v2v/rgb8_to_rgbn.hh
index 74b713e..d4cab2e 100644
--- a/milena/mln/fun/v2v/rgb8_to_rgbn.hh
+++ b/milena/mln/fun/v2v/rgb8_to_rgbn.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2010, 2012, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -47,25 +47,26 @@ namespace mln
{
- /// \brief Convert a rgb8 value to a rgn, n < 8.
- ///
- /// \param n defines the output quantification used for the transformation.
- ///
- /// \ingroup modfunv2v
- //
+ /*! \brief Convert a rgb8 value to a rgn, n < 8.
+
+ \tparam n defines the output quantification used for the transformation.
+
+ \ingroup modfunv2v convert
+ */
template <unsigned n>
struct rgb8_to_rgbn : Function_v2v< rgb8_to_rgbn<n> >
{
typedef value::rgb8 argument;
typedef value::rgb<n> result;
- /// \brief Convert a rgb8 value to a rgn, n < 8.
- ///
- /// \param[in] c the rgb8 value to convert.
- ///
- /// Conversion is done by computing the size by which we
- /// divide each rgb component.
- //
+ /*!
+ \brief Convert a rgb8 value to a rgn, n < 8.
+
+ \param[in] c the rgb8 value to convert.
+
+ Conversion is done by computing the size by which we
+ divide each rgb component.
+ */
result operator()(const argument& c) const;
};
diff --git a/milena/mln/fun/v2v/rgb_to_hsl.hh b/milena/mln/fun/v2v/rgb_to_hsl.hh
index 11339fd..177069f 100644
--- a/milena/mln/fun/v2v/rgb_to_hsl.hh
+++ b/milena/mln/fun/v2v/rgb_to_hsl.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2011, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -27,6 +27,10 @@
#ifndef MLN_FUN_V2V_RGB_TO_HSL_HH
# define MLN_FUN_V2V_RGB_TO_HSL_HH
+/// \file
+///
+/// \brief Conversion function from value::rgb to value::hsl_.
+
# include <cmath>
# include <mln/math/round.hh>
@@ -51,6 +55,13 @@ namespace mln
namespace v2v
{
+ /*!
+ \brief conversion function from value:rgb to value::hsl_.
+
+ \tparam T_hsl The desired output hsl type.
+
+ \ingroup modfunv2v convert
+ */
template <typename T_hsl>
struct f_rgb_to_hsl_ : public Function_v2v< f_rgb_to_hsl_<T_hsl> >
{
@@ -63,8 +74,20 @@ namespace mln
};
+ /*!
+ \brief Type of a default conversion function from value::rgb
+ to value::hsl_f.
+
+ \ingroup modfunv2v convert
+ */
typedef f_rgb_to_hsl_<value::hsl_f> f_rgb_to_hsl_f_t;
+ /*!
+ \brief Predefined conversion functor converting from value::rgb
+ to value::hsl_f.
+
+ \ingroup modfunv2v convert
+ */
extern f_rgb_to_hsl_f_t f_rgb_to_hsl_f;
diff --git a/milena/mln/fun/v2v/rgb_to_int_u.hh b/milena/mln/fun/v2v/rgb_to_int_u.hh
index 1be1ae2..a6a6feb 100644
--- a/milena/mln/fun/v2v/rgb_to_int_u.hh
+++ b/milena/mln/fun/v2v/rgb_to_int_u.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -24,6 +24,9 @@
// exception does not however invalidate any other reasons why the
// executable file might be covered by the GNU General Public License.
+/// \file
+///
+/// \brief Conversion function from value::rgb to value::int_u.
#ifndef MLN_FUN_V2V_RGB_TO_INT_U_HH
# define MLN_FUN_V2V_RGB_TO_INT_U_HH
@@ -41,6 +44,14 @@ namespace mln
namespace v2v
{
+ /*!
+ \brief Conversion function from value::rgb to value::int_u.
+
+ \tparam n Defines the number of bits of the integer
+ destination type.
+
+ \ingroup modfunv2v convert
+ */
template <unsigned n>
struct rgb_to_int_u : Function_v2v< rgb_to_int_u<n> >
{
diff --git a/milena/mln/fun/v2v/rgb_to_luma.hh b/milena/mln/fun/v2v/rgb_to_luma.hh
index 304a798..92c603a 100644
--- a/milena/mln/fun/v2v/rgb_to_luma.hh
+++ b/milena/mln/fun/v2v/rgb_to_luma.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2011, 2013 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -23,6 +24,10 @@
// exception does not however invalidate any other reasons why the
// executable file might be covered by the GNU General Public License.
+/// \file
+///
+/// \brief Conversion function from value::rgb to integer value type.
+
#ifndef MLN_FUN_V2V_RGB_TO_LUMA_HH
# define MLN_FUN_V2V_RGB_TO_LUMA_HH
@@ -37,6 +42,12 @@ namespace mln
namespace v2v
{
+ /*!
+ \brief Conversion function from a RGB value to an integer
+ value type.
+
+ \ingroup modfunv2v convert
+ */
template <typename T_luma>
struct rgb_to_luma : public Function_v2v< rgb_to_luma<T_luma> >
{
--
1.7.2.5
1
0
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/newdoc has been updated
via a8d117672fb512482f7a098499a41e99a53fa445 (commit)
via 00a1e3480ea7c57d1b82d336a658127223f7c173 (commit)
from 61eb85aae63899be7b13c45c08e022bb6cd223ac (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
a8d1176 Add references to from_to_ overloads in documentation.
00a1e34 Explain how to iterate over an image in tutorial.
-----------------------------------------------------------------------
Summary of changes:
milena/ChangeLog | 49 ++++++++++++++++++++
milena/doc/examples/split/tuto3_rw_image-3.cc.raw | 6 +-
milena/doc/examples/split/tuto3_rw_image-4.cc.raw | 2 +-
milena/doc/examples/split/tuto3_rw_image-5.cc.raw | 5 +-
milena/doc/examples/split/tuto3_rw_image-6.cc.raw | 3 +-
milena/doc/examples/split/tuto3_rw_image-7.cc.raw | 2 +-
...3_rw_image-7.cc.raw => tuto3_rw_image-8.cc.raw} | 0
milena/doc/examples/tuto3_rw_image.cc | 6 ++
milena/doc/tutorial.tex | 31 ++++++++-----
milena/mln/algebra/h_mat.hh | 9 ++-
milena/mln/algebra/quat.hh | 13 ++++-
milena/mln/algebra/vec.hh | 32 ++++++++++---
milena/mln/convert/from_to.hh | 40 +++++++++++++++-
milena/mln/convert/impl/from_double_to_value.hh | 15 +++++-
milena/mln/convert/impl/from_float_to_value.hh | 20 ++++++--
milena/mln/convert/impl/from_unsigned_to_value.hh | 14 ++++--
milena/mln/core/alias/neighb2d.hh | 10 +++-
milena/mln/core/alias/neighb3d.hh | 5 ++-
milena/mln/core/alias/window1d.hh | 9 ++-
milena/mln/core/alias/window2d.hh | 12 ++++-
milena/mln/core/alias/window3d.hh | 5 ++-
milena/mln/core/concept/gpoint.hh | 10 +++-
milena/mln/core/image/#image2d# | 1 +
milena/mln/core/image/image1d.hh | 2 +-
milena/mln/core/image/image2d.hh | 2 +-
milena/mln/core/image/image3d.hh | 2 +-
milena/mln/core/mixed_neighb.hh | 12 +++--
milena/mln/core/neighb.hh | 12 +++--
milena/mln/core/w_window.hh | 12 +++--
milena/mln/fun/i2v/array.hh | 17 +++++--
milena/mln/histo/array.hh | 11 +++--
milena/mln/util/array.hh | 23 +++++++--
milena/mln/util/object_id.hh | 5 ++-
milena/mln/value/hsl.hh | 40 ++++++++++------
milena/mln/value/int_u.hh | 30 ++++++++++--
milena/mln/value/label.hh | 25 ++++++++--
milena/mln/value/qt/rgb32.hh | 10 +++-
milena/mln/value/rgb.hh | 20 ++++++--
38 files changed, 401 insertions(+), 121 deletions(-)
copy milena/doc/examples/split/{tuto3_rw_image-7.cc.raw => tuto3_rw_image-8.cc.raw} (100%)
create mode 100644 milena/mln/core/image/#image2d#
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

olena: olena-2.0-553-ga8d1176 Add references to from_to_ overloads in documentation.
by Guillaume Lazzara 19 Apr '13
by Guillaume Lazzara 19 Apr '13
19 Apr '13
* mln/algebra/h_mat.hh,
* mln/algebra/quat.hh,
* mln/algebra/vec.hh,
* mln/convert/from_to.hh,
* mln/convert/impl/from_double_to_value.hh,
* mln/convert/impl/from_float_to_value.hh,
* mln/convert/impl/from_unsigned_to_value.hh,
* mln/core/alias/neighb2d.hh,
* mln/core/alias/neighb3d.hh,
* mln/core/alias/window1d.hh,
* mln/core/alias/window2d.hh,
* mln/core/alias/window3d.hh,
* mln/core/concept/gpoint.hh,
* mln/core/image/#image2d#,
* mln/core/image/image1d.hh,
* mln/core/image/image2d.hh,
* mln/core/image/image3d.hh,
* mln/core/mixed_neighb.hh,
* mln/core/neighb.hh,
* mln/core/w_window.hh,
* mln/fun/i2v/array.hh,
* mln/histo/array.hh,
* mln/util/array.hh,
* mln/util/object_id.hh,
* mln/value/hsl.hh,
* mln/value/int_u.hh,
* mln/value/label.hh,
* mln/value/qt/rgb32.hh,
* mln/value/rgb.hh: Add to from_to_ group.
---
milena/ChangeLog | 34 +++++++++++++++++
milena/mln/algebra/h_mat.hh | 9 +++--
milena/mln/algebra/quat.hh | 13 +++++--
milena/mln/algebra/vec.hh | 32 +++++++++++++----
milena/mln/convert/from_to.hh | 40 +++++++++++++++++++-
milena/mln/convert/impl/from_double_to_value.hh | 15 ++++++--
milena/mln/convert/impl/from_float_to_value.hh | 20 ++++++++--
milena/mln/convert/impl/from_unsigned_to_value.hh | 14 +++++--
milena/mln/core/alias/neighb2d.hh | 10 ++++-
milena/mln/core/alias/neighb3d.hh | 5 ++-
milena/mln/core/alias/window1d.hh | 9 +++--
milena/mln/core/alias/window2d.hh | 12 +++++--
milena/mln/core/alias/window3d.hh | 5 ++-
milena/mln/core/concept/gpoint.hh | 10 ++++-
milena/mln/core/image/#image2d# | 1 +
milena/mln/core/image/image1d.hh | 2 +-
milena/mln/core/image/image2d.hh | 2 +-
milena/mln/core/image/image3d.hh | 2 +-
milena/mln/core/mixed_neighb.hh | 12 ++++--
milena/mln/core/neighb.hh | 12 ++++--
milena/mln/core/w_window.hh | 12 ++++--
milena/mln/fun/i2v/array.hh | 17 +++++++--
milena/mln/histo/array.hh | 11 ++++--
milena/mln/util/array.hh | 23 +++++++++---
milena/mln/util/object_id.hh | 5 ++-
milena/mln/value/hsl.hh | 40 ++++++++++++--------
milena/mln/value/int_u.hh | 30 ++++++++++++---
milena/mln/value/label.hh | 25 ++++++++++---
milena/mln/value/qt/rgb32.hh | 10 ++++-
milena/mln/value/rgb.hh | 20 ++++++++--
30 files changed, 351 insertions(+), 101 deletions(-)
create mode 100644 milena/mln/core/image/#image2d#
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 6c15ccc..3f29bbc 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,39 @@
2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Add references to from_to_ overloads in documentation.
+
+ * mln/algebra/h_mat.hh,
+ * mln/algebra/quat.hh,
+ * mln/algebra/vec.hh,
+ * mln/convert/from_to.hh,
+ * mln/convert/impl/from_double_to_value.hh,
+ * mln/convert/impl/from_float_to_value.hh,
+ * mln/convert/impl/from_unsigned_to_value.hh,
+ * mln/core/alias/neighb2d.hh,
+ * mln/core/alias/neighb3d.hh,
+ * mln/core/alias/window1d.hh,
+ * mln/core/alias/window2d.hh,
+ * mln/core/alias/window3d.hh,
+ * mln/core/concept/gpoint.hh,
+ * mln/core/image/#image2d#,
+ * mln/core/image/image1d.hh,
+ * mln/core/image/image2d.hh,
+ * mln/core/image/image3d.hh,
+ * mln/core/mixed_neighb.hh,
+ * mln/core/neighb.hh,
+ * mln/core/w_window.hh,
+ * mln/fun/i2v/array.hh,
+ * mln/histo/array.hh,
+ * mln/util/array.hh,
+ * mln/util/object_id.hh,
+ * mln/value/hsl.hh,
+ * mln/value/int_u.hh,
+ * mln/value/label.hh,
+ * mln/value/qt/rgb32.hh,
+ * mln/value/rgb.hh: Add to from_to_ group.
+
+2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Explain how to iterate over an image in tutorial.
* doc/examples/split/tuto3_rw_image-3.cc.raw,
diff --git a/milena/mln/algebra/h_mat.hh b/milena/mln/algebra/h_mat.hh
index 4a9a61d..115bcf0 100644
--- a/milena/mln/algebra/h_mat.hh
+++ b/milena/mln/algebra/h_mat.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -73,7 +73,10 @@ namespace mln
};
- /// \internal Conversion: h_mat -> quat
+ /*!
+ \brief Conversion: h_mat -> quat
+ \ingroup fromto
+ */
template <typename C>
void from_to_(const algebra::h_mat<3,C>& from, algebra::quat& to);
diff --git a/milena/mln/algebra/quat.hh b/milena/mln/algebra/quat.hh
index 2ba89e4..9e60beb 100644
--- a/milena/mln/algebra/quat.hh
+++ b/milena/mln/algebra/quat.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -266,7 +266,10 @@ namespace mln
quat slerp_5(const quat& p, const quat& q, float h);
- /// \internal Conversion: quaternion -> (angle_degrees, axis).
+ /*!
+ \brief Conversion: quaternion -> (angle_degrees, axis).
+ \ingroup fromto
+ */
template <typename C>
void from_to_(const quat& from, mln::util::couple<C, algebra::vec<3,C> >& to);
@@ -276,6 +279,10 @@ namespace mln
namespace make
{
+ /*!
+ \brief Construct a quaternion.
+ \relates mln::algebra::quat
+ */
template <typename C>
mln::algebra::quat
quat(double angle, const mln::algebra::vec<3,C>& axis);
diff --git a/milena/mln/algebra/vec.hh b/milena/mln/algebra/vec.hh
index 0177254..b02bf24 100644
--- a/milena/mln/algebra/vec.hh
+++ b/milena/mln/algebra/vec.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2006, 2008, 2009, 2011, 2012 EPITA Research and
+// Copyright (C) 2006, 2008, 2009, 2011, 2012, 2013 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -272,33 +272,51 @@ namespace mln
};
- /// \internal Conversion: vec -> rgb.
+ /*!
+ \brief Conversion: vec -> rgb.
+ \ingroup fromto
+ */
template <typename T, unsigned m>
void from_to_(const vec<3,T>& from, value::rgb<m>& to_);
- /// \internal Conversion: vec<1,C1> -> point<G,C2>
+ /*!
+ \brief Conversion: vec<1,C1> -> point<G,C2>
+ \ingroup fromto
+ */
template <typename C1, typename G, typename C2>
inline
void
from_to_(const vec<1,C1>& from, point<G,C2>& to);
- /// \internal Conversion: vec<n,C1> -> point<G,C2>
+ /*!
+ \brief Conversion: vec<n,C1> -> point<G,C2>
+ \ingroup fromto
+ */
template <unsigned n, typename C1, typename G, typename C2>
void
from_to_(const vec<n,C1>& from, point<G,C2>& to);
- /// \internal Conversion: vec<1,C1> -> point<G,C1>
+ /*!
+ \brief Conversion: vec<1,C1> -> point<G,C1>
+ \ingroup fromto
+ */
template <typename C1, typename G>
inline
void
from_to_(const vec<1,C1>& from, point<G,C1>& to);
- /// \internal Conversion: vec<n,C1> -> point<G,C1>
+ /*!
+ \brief Conversion: vec<n,C1> -> point<G,C1>
+ \ingroup fromto
+ */
template <unsigned n, typename C1, typename G>
void
from_to_(const vec<n,C1>& from, point<G,C1>& to);
- /// \internal Conversion: vec -> gpoint
+ /*!
+ \brief Conversion: vec -> gpoint
+ \ingroup fromto
+ */
template <unsigned n, typename T, typename P>
void
from_to_(const vec<n,T>& from, Gpoint<P>& to);
diff --git a/milena/mln/convert/from_to.hh b/milena/mln/convert/from_to.hh
index a3ec6d4..32a471d 100644
--- a/milena/mln/convert/from_to.hh
+++ b/milena/mln/convert/from_to.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009, 2010, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2010, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -58,6 +58,42 @@ namespace mln
namespace convert
{
+ /*! \brief Value conversion routine.
+
+ This is a generic function to convert an object towards another
+ one.
+
+ It relies on predefined conversion functions. Many are defined
+ by default and listed in \ref from_to_ module.
+
+ This conversion system is extensible. If more conversions are
+ needed, new ones can be added by implementing an overload of
+ from_to_(). This overload must be defined in the same namespace
+ as the first argument.
+
+ Here is an example of a new conversion from value::rgb8 to
+ value::int_u8.
+
+ \code
+ namespace value
+ {
+ template <unsigned m>
+ void from_to_(const value::rgb8& from, value::int_u8& to)
+ {
+ to = from.red() + from.green() + from.blue();
+ }
+ }
+ \endcode
+
+ Once this overload declared, one can safely write:
+ \code
+ value::rgb8 color(128,155,255);
+ value::int_8 gl;
+ convert::from_to(color, gl);
+ \endcode
+
+ \ingroup convert
+ */
template <typename F, typename T>
void
from_to(const F& from, T& to);
diff --git a/milena/mln/convert/impl/from_double_to_value.hh b/milena/mln/convert/impl/from_double_to_value.hh
index 9b70f8e..1c22860 100644
--- a/milena/mln/convert/impl/from_double_to_value.hh
+++ b/milena/mln/convert/impl/from_double_to_value.hh
@@ -45,14 +45,23 @@
namespace mln
{
- /// \internal Conversion: double-> Value
+ /*!
+ \brief Conversion: double-> Value
+ \ingroup fromto
+ */
template <typename V>
void from_to_(const double& from, Value<V>& to);
- /// \internal Conversion: double-> unsigned
+ /*!
+ \brief Conversion: double-> unsigned
+ \ingroup fromto
+ */
void from_to_(const double& from, unsigned& to);
- /// \internal Conversion: double-> int
+ /*!
+ \brief Conversion: double-> int
+ \ingroup fromto
+ */
void from_to_(const double& from, int& to);
diff --git a/milena/mln/convert/impl/from_float_to_value.hh b/milena/mln/convert/impl/from_float_to_value.hh
index 8d87f38..2b5bb85 100644
--- a/milena/mln/convert/impl/from_float_to_value.hh
+++ b/milena/mln/convert/impl/from_float_to_value.hh
@@ -45,17 +45,29 @@
namespace mln
{
- /// \internal Conversion: float-> Value
+ /*!
+ \brief Conversion: float-> Value
+ \ingroup fromto
+ */
template <typename V>
void from_to_(const float& from, Value<V>& to);
- /// \internal Conversion: float-> unsigned
+ /*!
+ \brief Conversion: float-> unsigned
+ \ingroup fromto
+ */
void from_to_(const float& from, unsigned& to);
- /// \internal Conversion: float-> int
+ /*!
+ \brief Conversion: float-> int
+ \ingroup fromto
+ */
void from_to_(const float& from, int& to);
- /// \internal Conversion: float-> short
+ /*!
+ \brief Conversion: float-> short
+ \ingroup fromto
+ */
void from_to_(const float& from, short& to);
diff --git a/milena/mln/convert/impl/from_unsigned_to_value.hh b/milena/mln/convert/impl/from_unsigned_to_value.hh
index 383f989..4c137f6 100644
--- a/milena/mln/convert/impl/from_unsigned_to_value.hh
+++ b/milena/mln/convert/impl/from_unsigned_to_value.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010, 2011, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2009, 2010, 2011, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -46,11 +46,17 @@ namespace mln
{
- /// \internal Conversion: unsigned-> Value
+ /*!
+ \brief Conversion: unsigned-> Value
+ \ingroup fromto
+ */
template <typename V>
void from_to_(const unsigned& from, Value<V>& to);
- /// \internal Conversion: unsigned -> bool
+ /*!
+ \brief Conversion: unsigned -> bool
+ \ingroup fromto
+ */
void from_to_(const unsigned& from, bool& to);
diff --git a/milena/mln/core/alias/neighb2d.hh b/milena/mln/core/alias/neighb2d.hh
index 31275f2..4283e83 100644
--- a/milena/mln/core/alias/neighb2d.hh
+++ b/milena/mln/core/alias/neighb2d.hh
@@ -207,11 +207,17 @@ namespace mln
neighb< win::multiple<window2d, mln::fun::p2b::chess> > c6_2d();
- /// \internal Conversion: bool[] -> neighb2d
+ /*!
+ \brief Conversion: bool[] -> neighb2d
+ \ingroup fromto
+ */
template <unsigned S>
void from_to_(const bool (&values)[S], neighb2d& nbh);
- /// \internal Conversion: bool[][] -> neighb2d
+ /*!
+ \brief Conversion: bool[][] -> neighb2d
+ \ingroup fromto
+ */
template <unsigned R, unsigned C>
void from_to_(bool const (&values)[R][C], neighb2d& nbh);
diff --git a/milena/mln/core/alias/neighb3d.hh b/milena/mln/core/alias/neighb3d.hh
index e902466..3419323 100644
--- a/milena/mln/core/alias/neighb3d.hh
+++ b/milena/mln/core/alias/neighb3d.hh
@@ -276,7 +276,10 @@ namespace mln
const neighb3d& c26();
- /// \internal Conversion: bool[] -> neighb3d
+ /*!
+ \brief Conversion: bool[] -> neighb3d
+ \ingroup fromto
+ */
template <unsigned S>
void from_to_(const bool (&values)[S], neighb3d& nbh);
diff --git a/milena/mln/core/alias/window1d.hh b/milena/mln/core/alias/window1d.hh
index d9c312f..a22859a 100644
--- a/milena/mln/core/alias/window1d.hh
+++ b/milena/mln/core/alias/window1d.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -93,7 +93,10 @@ namespace mln
/// \endcond
- /// \internal Conversion: bool[] -> window1d
+ /*!
+ \brief Conversion: bool[] -> window1d
+ \ingroup fromto
+ */
template <unsigned M>
void from_to_(const bool (&values)[M], window1d& win);
diff --git a/milena/mln/core/alias/window2d.hh b/milena/mln/core/alias/window2d.hh
index 49c8e2a..6c0c3e2 100644
--- a/milena/mln/core/alias/window2d.hh
+++ b/milena/mln/core/alias/window2d.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2010, 2012 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2010, 2012, 2013 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -125,11 +125,17 @@ namespace mln
const window2d& win_c8p();
- /// \internal Conversion: bool[] -> window2d
+ /*!
+ \brief Conversion: bool[] -> window2d
+ \ingroup fromto
+ */
template <unsigned S>
void from_to_(const bool (&values)[S], window2d& win);
- /// \internal Conversion: bool[][] -> window2d
+ /*!
+ \brief Conversion: bool[][] -> window2d
+ \ingroup fromto
+ */
template <unsigned R, unsigned C>
void from_to_(const bool (&values)[R][C], window2d& win);
diff --git a/milena/mln/core/alias/window3d.hh b/milena/mln/core/alias/window3d.hh
index 81ff2de..c4409c7 100644
--- a/milena/mln/core/alias/window3d.hh
+++ b/milena/mln/core/alias/window3d.hh
@@ -143,7 +143,10 @@ namespace mln
const window3d& win_c8p_3d();
- /// \internal Conversion: bool[] -> window3d
+ /*!
+ \brief Conversion: bool[] -> window3d
+ \ingroup fromto
+ */
template <unsigned M>
void from_to_(bool const (&values)[M], window3d& win);
diff --git a/milena/mln/core/concept/gpoint.hh b/milena/mln/core/concept/gpoint.hh
index 2c78226..59e17e7 100644
--- a/milena/mln/core/concept/gpoint.hh
+++ b/milena/mln/core/concept/gpoint.hh
@@ -271,12 +271,18 @@ namespace mln
// FIXME : add operators and traits?
- /// \internal Conversion: gpoint -> mln_delta
+ /*!
+ \brief Conversion: gpoint -> mln_delta
+ \ingroup fromto
+ */
template <typename P>
void
from_to_(const Gpoint<P>& from, mln_delta(P)& to);
- /// \internal Conversion: gpoint -> algebra::vec
+ /*!
+ \brief Conversion: gpoint -> algebra::vec
+ \ingroup fromto
+ */
template <typename P, unsigned n, typename T>
void
from_to_(const Gpoint<P>& from, algebra::vec<n,T>& to);
diff --git a/milena/mln/core/image/#image2d# b/milena/mln/core/image/#image2d#
new file mode 100644
index 0000000..501a6bb
--- /dev/null
+++ b/milena/mln/core/image/#image2d#
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/milena/mln/core/image/image1d.hh b/milena/mln/core/image/image1d.hh
index aaa1ec2..ce73205 100644
--- a/milena/mln/core/image/image1d.hh
+++ b/milena/mln/core/image/image1d.hh
@@ -127,7 +127,7 @@ namespace mln
/// Basic 1D image class.
///
- /// The parameter \c T is the type of pixel values. This image class
+ /// The parameter \c V is the type of pixel values. This image class
/// stores data in memory and has a virtual border with constant
/// thickness before and after data.
///
diff --git a/milena/mln/core/image/image2d.hh b/milena/mln/core/image/image2d.hh
index 830057d..490c261 100644
--- a/milena/mln/core/image/image2d.hh
+++ b/milena/mln/core/image/image2d.hh
@@ -124,7 +124,7 @@ namespace mln
/// Basic 2D image class.
///
- /// The parameter \c T is the type of pixel values. This image class
+ /// The parameter \c V is the type of pixel values. This image class
/// stores data in memory and has a virtual border with constant
/// thickness around data.
///
diff --git a/milena/mln/core/image/image3d.hh b/milena/mln/core/image/image3d.hh
index d4e14ee..be13c35 100644
--- a/milena/mln/core/image/image3d.hh
+++ b/milena/mln/core/image/image3d.hh
@@ -123,7 +123,7 @@ namespace mln
/// Basic 3D image class.
///
- /// The parameter \c T is the type of pixel values. This image class
+ /// The parameter \c V is the type of pixel values. This image class
/// stores data in memory and has a virtual border with constant
/// thickness around data.
///
diff --git a/milena/mln/core/mixed_neighb.hh b/milena/mln/core/mixed_neighb.hh
index e95e0e9..40036d3 100644
--- a/milena/mln/core/mixed_neighb.hh
+++ b/milena/mln/core/mixed_neighb.hh
@@ -83,17 +83,21 @@ namespace mln
};
- /// \cond INTERNAL_API
- /// Conversion: mixed_neighb<W> -> W
+ /*!
+ \brief Conversion: mixed_neighb<W> -> W
+ \ingroup fromto
+ */
template <typename W>
void
from_to_(const mln::mixed_neighb<W>& from, W& to);
- /// Conversion: mixed_neighb<W> -> W
+ /*!
+ \brief Conversion: mixed_neighb<W> -> W
+ \ingroup fromto
+ */
template <typename W>
void
from_to_(const W& from, mln::mixed_neighb<W>& to);
- /// \endcond
// mixed_neighb_fwd_niter<W>
diff --git a/milena/mln/core/neighb.hh b/milena/mln/core/neighb.hh
index 93e17f2..bfb7055 100644
--- a/milena/mln/core/neighb.hh
+++ b/milena/mln/core/neighb.hh
@@ -81,17 +81,21 @@ namespace mln
};
- /// \cond INTERNAL_API
- /// Conversions: neighb<W> -> W
+ /*!
+ \brief Conversions: neighb<W> -> W
+ \ingroup fromto
+ */
template <typename W>
void
from_to_(const mln::neighb<W>& from, W& to);
- /// Conversions: W -> neighb<W>
+ /*!
+ \brief Conversions: W -> neighb<W>
+ \ingroup fromto
+ */
template <typename W>
void
from_to_(const W& from, mln::neighb<W>& to);
- /// \endcond
// neighb_fwd_niter<W>
diff --git a/milena/mln/core/w_window.hh b/milena/mln/core/w_window.hh
index fd608e5..1c8a62c 100644
--- a/milena/mln/core/w_window.hh
+++ b/milena/mln/core/w_window.hh
@@ -141,15 +141,19 @@ namespace mln
template <typename D, typename Wl, typename Wr>
bool operator==(const w_window<D,Wl>& lhs, const w_window<D,Wr>& rhs);
- /// \cond INTERNAL_API
- /// Conversions: w_window -> image
+ /*!
+ \brief Conversions: w_window -> image
+ \ingroup fromto
+ */
template <typename D, typename W, typename I>
void from_to_(const w_window<D,W>& from, Image<I>& to);
- /// Conversions: weight[] -> w_window
+ /*!
+ \brief Conversions: weight[] -> w_window
+ \ingroup fromto
+ */
template <typename V, unsigned S, typename D, typename W>
void from_to_(const V (&weight)[S], w_window<D,W>& to);
- /// \endcond
diff --git a/milena/mln/fun/i2v/array.hh b/milena/mln/fun/i2v/array.hh
index a0e392a..8f7168f 100644
--- a/milena/mln/fun/i2v/array.hh
+++ b/milena/mln/fun/i2v/array.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2012, 2013 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -130,7 +130,10 @@ namespace mln
const array<T>& a);
- /// \internal Conversion: fun::i2v::array -> util::array
+ /*!
+ \brief Conversion: fun::i2v::array -> util::array
+ \ingroup fromto
+ */
template <typename T1, typename T2>
void
from_to_(const fun::i2v::array<T1>& from, util::array<T2>& to);
@@ -145,13 +148,19 @@ namespace mln
namespace std
{
- /// \internal Conversion: std::vectorfun::i2v::array<T> -> fun::i2v::array<T>
+ /*!
+ \brief Conversion: std::vectorfun::i2v::array<T> -> fun::i2v::array<T>
+ \ingroup fromto
+ */
template <typename T>
inline
void
from_to_(const vector<T>& from, mln::fun::i2v::array<T>& to);
- /// \internal Conversion: std::vector<T> -> mln::fun::i2v::array<U>
+ /*!
+ \brief Conversion: std::vector<T> -> mln::fun::i2v::array<U>
+ \ingroup fromto
+ */
template <typename T, typename U>
inline
void
diff --git a/milena/mln/histo/array.hh b/milena/mln/histo/array.hh
index b60bad3..4abe08c 100644
--- a/milena/mln/histo/array.hh
+++ b/milena/mln/histo/array.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012, 2013 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -45,7 +45,7 @@ namespace mln
{
// Forward declaration
- template <typename T> struct image1d;
+ template <typename V> struct image1d;
namespace histo
{
@@ -84,7 +84,10 @@ namespace mln
template <typename T>
std::ostream& operator<<(std::ostream& ostr, const array<T>& h);
- /// \internal Conversion: histo::array -> image1d.
+ /*!
+ \brief Conversion: histo::array -> image1d.
+ \ingroup fromto
+ */
template <typename V, typename T>
void from_to_(const array<V>& from, image1d<T>& to);
diff --git a/milena/mln/util/array.hh b/milena/mln/util/array.hh
index 3fd987d..4469806 100644
--- a/milena/mln/util/array.hh
+++ b/milena/mln/util/array.hh
@@ -208,28 +208,39 @@ namespace mln
const array<T>& rhs);
- /// \cond INTERNAL_API
- /// Conversion: array -> array
+ /*!
+ \brief Conversion: array -> array
+ \ingroup fromto
+ */
template <typename T1, typename T2>
void
from_to_(const array<T1>& from, array<T2>& to);
- /// Conversion: array<T> -> fun::i2v::array<T>
+ /*!
+ \brief Conversion: array<T> -> fun::i2v::array<T>
+ \ingroup fromto
+ */
template <typename T>
inline
void
from_to_(const array<T>& from, fun::i2v::array<T>& to);
- /// Conversion: array<T> -> fun::i2v::array<U>
+ /*!
+ \brief Conversion: array<T> -> fun::i2v::array<U>
+ \ingroup fromto
+ */
template <typename T, typename U>
inline
void
from_to_(const array<T>& from, fun::i2v::array<U>& to);
- ///Conversion: util::array -> image1d.
+ /*!
+ \brief Conversion: util::array -> image1d.
+ \ingroup fromto
+ */
template <typename V, typename T>
void from_to_(const util::array<V>& from, image1d<T>& to);
- /// \endcond
+
// array_fwd_iter<T>
diff --git a/milena/mln/util/object_id.hh b/milena/mln/util/object_id.hh
index a63bb73..0f50c3b 100644
--- a/milena/mln/util/object_id.hh
+++ b/milena/mln/util/object_id.hh
@@ -91,7 +91,10 @@ namespace mln
bool
operator<(const object_id<Tag,V>& lhs, const object_id<Tag,V>& rhs);
- /// \internal Conversion: object_id<Tag,V> -> V.
+ /*!
+ \brief Conversion: object_id<Tag,V> -> V.
+ \ingroup fromto
+ */
template <typename Tag, typename V>
void from_to_(const util::object_id<Tag,V>& from, V& to_);
diff --git a/milena/mln/value/hsl.hh b/milena/mln/value/hsl.hh
index 2cbcbe0..9cef0ba 100644
--- a/milena/mln/value/hsl.hh
+++ b/milena/mln/value/hsl.hh
@@ -213,54 +213,62 @@ namespace mln
/// \param[in] c An rgb.
///
/// \return The modified output stream \p ostr.
+ /// \relates hsl_
template <typename H, typename S, typename L>
std::ostream& operator<<(std::ostream& ostr, const hsl_<H,S,L>& c);
- /// Addition.
- /// {
+ /*! \brief Addition with HSL.
+ \relates hsl_
+ */
template <typename H, typename S, typename L>
hsl_<H,S,L>
operator+(const hsl_<H,S,L>& lhs, const hsl_<H,S,L>& rhs);
- /// \}
- /// Subtraction.
- /// \{
+ /*! \brief Substraction with HSL.
+ \relates hsl_
+ */
template <typename H, typename S, typename L>
hsl_<H,S,L>
operator-(const hsl_<H,S,L>& lhs, const hsl_<H,S,L>& rhs);
- /// \}
- /// Product.
- /// \{
+ /*! \brief Product with HSL.
+ \relates hsl_
+ */
template <typename H, typename S, typename L, typename S2>
hsl_<H,S,L>
operator*(const hsl_<H,S,L>& lhs, const mln::value::scalar_<S2>& s);
- /// \}
- /// Division.
- /// \{
+ /*! \brief Division with HSL.
+ \relates hsl_
+ */
template <typename H, typename S, typename L, typename S2>
hsl_<H,S,L>
operator/(const hsl_<H,S,L>& lhs, const mln::value::scalar_<S2>& s);
/// \}
- /// Comparison.
- /// \{
+ /*! \brief Comparison with HSL.
+ \relates hsl_
+ */
template <typename H, typename S, typename L>
bool
operator==(const hsl_<H,S,L>& lhs, const hsl_<H,S,L>& rhs);
- /// \}
/// \cond INTERNAL_API
// Conversions
- /// \internal Conversion: hsl -> qt::rgb32.
+ /*!
+ \brief Conversion: hsl -> qt::rgb32.
+ \ingroup fromto
+ */
template <typename H, typename S, typename L>
void from_to_(const hsl_<H,S,L>& from, qt::rgb32& to);
- /// \internal Conversion: hsl -> rgb8.
+ /*!
+ \brief Conversion: hsl -> rgb8.
+ \ingroup fromto
+ */
template <typename H, typename S, typename L>
void from_to_(const value::hsl_<H,S,L>&, value::rgb<8>& to);
/// \endcond
diff --git a/milena/mln/value/int_u.hh b/milena/mln/value/int_u.hh
index 8e1e0ec..cfe2252 100644
--- a/milena/mln/value/int_u.hh
+++ b/milena/mln/value/int_u.hh
@@ -188,31 +188,49 @@ namespace mln
// Conversions
- /// \internal Conversion: int_u -> unsigned.
+ /*!
+ \brief Conversion: int_u -> unsigned.
+ \ingroup fromto
+ */
template <unsigned n>
void from_to_(const int_u<n>& from, unsigned& to_);
- /// \internal Conversion: int_u -> bool.
+ /*!
+ \brief Conversion: int_u -> bool.
+ \ingroup fromto
+ */
template <unsigned n>
void from_to_(const int_u<n>& from, bool& to_);
- /// \internal Conversion: int_u -> float.
+ /*!
+ \brief Conversion: int_u -> float.
+ \ingroup fromto
+ */
template <unsigned n>
void from_to_(const int_u<n>& from, float& to_);
- /// \internal Conversion: int_u -> double.
+ /*!
+ \brief Conversion: int_u -> double.
+ \ingroup fromto
+ */
template <unsigned n>
void
from_to_(const int_u<n>& from, double& to_);
- /// \internal Conversion: Conversion: int_u -> rgb.
+ /*!
+ \brief Conversion: Conversion: int_u -> rgb.
+ \ingroup fromto
+ */
template <unsigned m>
void from_to_(const int_u<m>& from, qt::rgb32& to);
- /// \internal Conversion: int_u -> rgb.
+ /*!
+ \brief Conversion: int_u -> rgb.
+ \ingroup fromto
+ */
template <unsigned m>
void from_to_(const int_u<m>& from, rgb<m>& to);
diff --git a/milena/mln/value/label.hh b/milena/mln/value/label.hh
index b43a927..b928099 100644
--- a/milena/mln/value/label.hh
+++ b/milena/mln/value/label.hh
@@ -163,24 +163,39 @@ namespace mln
std::ostream& operator<<(std::ostream& ostr, const label<n>& l);
- /// \internal Conversion: int_u -> label.
+ /*!
+ \brief Conversion: int_u -> label.
+ \ingroup fromto
+ */
template <unsigned n>
void from_to_(const value::int_u<n>& from, value::label<n>& to_);
- /// \internal Conversion: label -> int_u.
+ /*!
+ \brief Conversion: label -> int_u.
+ \ingroup fromto
+ */
template <unsigned n>
void from_to_(const value::label<n>& from, value::int_u<n>& to_);
- /// \internal Conversion: int_u -> label.
+ /*!
+ \brief Conversion: int_u -> label.
+ \ingroup fromto
+ */
template <unsigned n, unsigned m>
void from_to_(const value::int_u<n>& from, value::label<m>& to_);
- /// \internal Conversion: label -> bool.
+ /*!
+ \brief Conversion: label -> bool.
+ \ingroup fromto
+ */
template <unsigned n>
void from_to_(const value::label<n>& from, bool& to_);
- /// \internal Conversion: label -> unsigned.
+ /*!
+ \brief Conversion: label -> unsigned.
+ \ingroup fromto
+ */
template <unsigned n>
void from_to_(const value::label<n>& from, unsigned& to_);
diff --git a/milena/mln/value/qt/rgb32.hh b/milena/mln/value/qt/rgb32.hh
index 96404b8..329d01d 100644
--- a/milena/mln/value/qt/rgb32.hh
+++ b/milena/mln/value/qt/rgb32.hh
@@ -330,10 +330,16 @@ namespace mln
/// \}
- /// \internal Conversion: Conversion: #value::qt::rgb32 -> bool.
+ /*!
+ \brief Conversion: Conversion: #value::qt::rgb32 -> bool.
+ \ingroup fromto
+ */
void from_to_(const rgb32& from, bool& to);
- /// \internal Conversion: bool -> #value::qt::rgb32.
+ /*!
+ \brief Conversion: bool -> #value::qt::rgb32.
+ \ingroup fromto
+ */
void from_to_(const bool& from, value::qt::rgb32& to);
} // end of namespace mln::value::qt
diff --git a/milena/mln/value/rgb.hh b/milena/mln/value/rgb.hh
index b29b479..1a38c18 100644
--- a/milena/mln/value/rgb.hh
+++ b/milena/mln/value/rgb.hh
@@ -360,19 +360,31 @@ namespace mln
namespace value
{
- /// \internal Conversion: rgb -> bool.
+ /*!
+ \brief Conversion: rgb -> bool.
+ \ingroup fromto
+ */
template <unsigned m>
void from_to_(const value::rgb<m>& from, bool& to);
- /// \internal Conversion: rgb to hsl_
+ /*!
+ \brief Conversion: rgb to hsl_
+ \ingroup fromto
+ */
void
from_to_(const rgb<16>& from, hsl_<float,float,float>& to);
- /// \internal Conversion: rgb to hsl_
+ /*!
+ \brief Conversion: rgb to hsl_
+ \ingroup fromto
+ */
void
from_to_(const rgb<8>& from, hsl_<float,float,float>& to);
- /// \internal Conversion: bool -> rgb.
+ /*!
+ \brief Conversion: bool -> rgb.
+ \ingroup fromto
+ */
template <unsigned m>
void from_to_(bool from, value::rgb<m>& to);
--
1.7.2.5
1
0

olena: olena-2.0-552-g00a1e34 Explain how to iterate over an image in tutorial.
by Guillaume Lazzara 19 Apr '13
by Guillaume Lazzara 19 Apr '13
19 Apr '13
* doc/examples/split/tuto3_rw_image-3.cc.raw,
* doc/examples/split/tuto3_rw_image-4.cc.raw,
* doc/examples/split/tuto3_rw_image-5.cc.raw,
* doc/examples/split/tuto3_rw_image-6.cc.raw,
* doc/examples/split/tuto3_rw_image-7.cc.raw,
* doc/examples/split/tuto3_rw_image-8.cc.raw: Regen.
* doc/examples/tuto3_rw_image.cc: Add an example with iterators.
* doc/tutorial.tex: Add more explanations on iterators.
---
milena/ChangeLog | 15 +++++++++
milena/doc/examples/split/tuto3_rw_image-3.cc.raw | 6 ++--
milena/doc/examples/split/tuto3_rw_image-4.cc.raw | 2 +-
milena/doc/examples/split/tuto3_rw_image-5.cc.raw | 5 ++-
milena/doc/examples/split/tuto3_rw_image-6.cc.raw | 3 +-
milena/doc/examples/split/tuto3_rw_image-7.cc.raw | 2 +-
...3_rw_image-7.cc.raw => tuto3_rw_image-8.cc.raw} | 0
milena/doc/examples/tuto3_rw_image.cc | 6 ++++
milena/doc/tutorial.tex | 31 ++++++++++++-------
9 files changed, 50 insertions(+), 20 deletions(-)
copy milena/doc/examples/split/{tuto3_rw_image-7.cc.raw => tuto3_rw_image-8.cc.raw} (100%)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index c4a23a0..6c15ccc 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,20 @@
2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Explain how to iterate over an image in tutorial.
+
+ * doc/examples/split/tuto3_rw_image-3.cc.raw,
+ * doc/examples/split/tuto3_rw_image-4.cc.raw,
+ * doc/examples/split/tuto3_rw_image-5.cc.raw,
+ * doc/examples/split/tuto3_rw_image-6.cc.raw,
+ * doc/examples/split/tuto3_rw_image-7.cc.raw,
+ * doc/examples/split/tuto3_rw_image-8.cc.raw: Regen.
+
+ * doc/examples/tuto3_rw_image.cc: Add an example with iterators.
+
+ * doc/tutorial.tex: Add more explanations on iterators.
+
+2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Introduce image transformation module in documentation.
* doc/mln/main.dox: Create new group.
diff --git a/milena/doc/examples/split/tuto3_rw_image-3.cc.raw b/milena/doc/examples/split/tuto3_rw_image-3.cc.raw
index f25ab40..88b5a64 100644
--- a/milena/doc/examples/split/tuto3_rw_image-3.cc.raw
+++ b/milena/doc/examples/split/tuto3_rw_image-3.cc.raw
@@ -1,3 +1,3 @@
- for (def::coord row = 20; row < 30; ++row)
- for (def::coord col = 20; col < 30; ++col)
- ima(point2d(row, col)) = literal::blue;
+ mln_piter(image2d<value::rgb8>) p(ima.domain());
+ for_all(p)
+ ima(p) = literal::red;
diff --git a/milena/doc/examples/split/tuto3_rw_image-4.cc.raw b/milena/doc/examples/split/tuto3_rw_image-4.cc.raw
index 06559c5..f25ab40 100644
--- a/milena/doc/examples/split/tuto3_rw_image-4.cc.raw
+++ b/milena/doc/examples/split/tuto3_rw_image-4.cc.raw
@@ -1,3 +1,3 @@
for (def::coord row = 20; row < 30; ++row)
for (def::coord col = 20; col < 30; ++col)
- opt::at(ima, row, col) = literal::blue;
+ ima(point2d(row, col)) = literal::blue;
diff --git a/milena/doc/examples/split/tuto3_rw_image-5.cc.raw b/milena/doc/examples/split/tuto3_rw_image-5.cc.raw
index d98037c..06559c5 100644
--- a/milena/doc/examples/split/tuto3_rw_image-5.cc.raw
+++ b/milena/doc/examples/split/tuto3_rw_image-5.cc.raw
@@ -1,2 +1,3 @@
- image2d<value::rgb8> lena;
- io::ppm::load(lena, MLN_IMG_DIR "/small.ppm");
+ for (def::coord row = 20; row < 30; ++row)
+ for (def::coord col = 20; col < 30; ++col)
+ opt::at(ima, row, col) = literal::blue;
diff --git a/milena/doc/examples/split/tuto3_rw_image-6.cc.raw b/milena/doc/examples/split/tuto3_rw_image-6.cc.raw
index 10eb29f..d98037c 100644
--- a/milena/doc/examples/split/tuto3_rw_image-6.cc.raw
+++ b/milena/doc/examples/split/tuto3_rw_image-6.cc.raw
@@ -1 +1,2 @@
- data::fill(ima, lena);
+ image2d<value::rgb8> lena;
+ io::ppm::load(lena, MLN_IMG_DIR "/small.ppm");
diff --git a/milena/doc/examples/split/tuto3_rw_image-7.cc.raw b/milena/doc/examples/split/tuto3_rw_image-7.cc.raw
index d362105..10eb29f 100644
--- a/milena/doc/examples/split/tuto3_rw_image-7.cc.raw
+++ b/milena/doc/examples/split/tuto3_rw_image-7.cc.raw
@@ -1 +1 @@
- data::paste(ima, lena);
+ data::fill(ima, lena);
diff --git a/milena/doc/examples/split/tuto3_rw_image-7.cc.raw b/milena/doc/examples/split/tuto3_rw_image-8.cc.raw
similarity index 100%
copy from milena/doc/examples/split/tuto3_rw_image-7.cc.raw
copy to milena/doc/examples/split/tuto3_rw_image-8.cc.raw
diff --git a/milena/doc/examples/tuto3_rw_image.cc b/milena/doc/examples/tuto3_rw_image.cc
index 14ba056..6e84f32 100644
--- a/milena/doc/examples/tuto3_rw_image.cc
+++ b/milena/doc/examples/tuto3_rw_image.cc
@@ -49,6 +49,12 @@ int main()
// \}
// \{
+ mln_piter(image2d<value::rgb8>) p(ima.domain());
+ for_all(p)
+ ima(p) = literal::red;
+ // \}
+
+ // \{
for (def::coord row = 20; row < 30; ++row)
for (def::coord col = 20; col < 30; ++col)
ima(point2d(row, col)) = literal::blue;
diff --git a/milena/doc/tutorial.tex b/milena/doc/tutorial.tex
index e67a9da..3e016ed 100644
--- a/milena/doc/tutorial.tex
+++ b/milena/doc/tutorial.tex
@@ -1474,13 +1474,20 @@ After this step you should know how to:
First create an empty color image with a \var{box2d} of 40x40 as domain.
\doxycode[1]{tuto3_rw_image}
-If you want to initialize the image with the color red, simply call data::fill as follows:
+If you want to initialize the image with the color red, you can
+iterate over all the image pixels using iterators:
+\doxycode[3]{tuto3_rw_image}
+
+Or simply call data::fill as follows:
\doxycode[2]{tuto3_rw_image}
-Updating a site value is also possible using \code{operator()} or the
-\code{opt::at()} routine. Here we create a blue square of 10x10 pixels from site
-(20, 20) to (30, 30).
-\doxycode[3]{tuto3_rw_image}
+Updating a site value is also possible using the \code{opt::at()}
+routine. Here we create a blue square of 10x10 pixels from site (20,
+20) to (30, 30).
+\doxycode[5]{tuto3_rw_image}
+
+The following code with image2d::operator() is also possible but may
+be slower because of the creation of a point2d.
\doxycode[4]{tuto3_rw_image}
The corresponding image: \\
@@ -1489,27 +1496,27 @@ The corresponding image: \\
An image can also be initialized/modified thanks to another image.
Let's load a new image.
-\doxycode[5]{tuto3_rw_image}
+\doxycode[6]{tuto3_rw_image}
\var{lena} looks like: \\
\doxyimg{small-enlarged}{3cm}
If we want to initialize \var{ima} with \var{lena}, we can use \code{data::fill}:
-\doxycode[6]{tuto3_rw_image}
+\doxycode[7]{tuto3_rw_image}
Output: \\
\doxyfigure[2]{tuto3_rw_image}{3cm} \\
-Note that to fill an image with some data, the image domain \must be smaller
-or equal to the data.
+Note that to fill an image with some data, the image domain \must be
+smaller or equal to the data.
Likewise, it is possible to paste data from an image to another:
-\doxycode[7]{tuto3_rw_image}
+\doxycode[8]{tuto3_rw_image}
Output: \\
\doxyfigure[3]{tuto3_rw_image}{3cm}
-More details can be found in sections \doxyref{imaaccessmodval}, \doxyref{fillop} and \doxyref{pasteop} in
-the reference guide.
+More details can be found in sections \doxyref{imaaccessmodval},
+\doxyref{fillop} and \doxyref{pasteop} in the reference guide.
\vspace{2cm}
\begin{center}
--
1.7.2.5
1
0
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/newdoc has been updated
via 61eb85aae63899be7b13c45c08e022bb6cd223ac (commit)
from b14fad47f31cd31e47452c2997c4e80377eb7669 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
61eb85a Introduce image transformation module in documentation.
-----------------------------------------------------------------------
Summary of changes:
milena/ChangeLog | 17 +++++++++++++++++
milena/doc/mln/main.dox | 7 +++++++
milena/mln/geom/crop.hh | 6 +++---
milena/mln/geom/crop_without_localization.hh | 6 +++---
milena/mln/geom/horizontal_symmetry.hh | 6 +++---
milena/mln/geom/rotate.hh | 10 +++++-----
milena/mln/geom/translate.hh | 8 ++++----
milena/mln/geom/vertical_symmetry.hh | 6 +++---
milena/mln/registration/icp.hh | 3 +++
milena/mln/subsampling/antialiased.hh | 12 ++++++++++--
milena/mln/upscaling/art/scale2x.hh | 6 +++---
milena/mln/upscaling/art/scale3x.hh | 6 +++---
12 files changed, 64 insertions(+), 29 deletions(-)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

olena-2.0-551-g61eb85a Introduce image transformation module in documentation.
by Guillaume Lazzara 19 Apr '13
by Guillaume Lazzara 19 Apr '13
19 Apr '13
* doc/mln/main.dox: Create new group.
* mln/geom/crop.hh,
* mln/geom/crop_without_localization.hh,
* mln/geom/horizontal_symmetry.hh,
* mln/geom/rotate.hh,
* mln/geom/translate.hh,
* mln/geom/vertical_symmetry.hh,
* mln/registration/icp.hh,
* mln/subsampling/antialiased.hh,
* mln/upscaling/art/scale2x.hh,
* mln/upscaling/art/scale3x.hh: move to this new group.
---
milena/ChangeLog | 17 +++++++++++++++++
milena/doc/mln/main.dox | 7 +++++++
milena/mln/geom/crop.hh | 6 +++---
milena/mln/geom/crop_without_localization.hh | 6 +++---
milena/mln/geom/horizontal_symmetry.hh | 6 +++---
milena/mln/geom/rotate.hh | 10 +++++-----
milena/mln/geom/translate.hh | 8 ++++----
milena/mln/geom/vertical_symmetry.hh | 6 +++---
milena/mln/registration/icp.hh | 3 +++
milena/mln/subsampling/antialiased.hh | 12 ++++++++++--
milena/mln/upscaling/art/scale2x.hh | 6 +++---
milena/mln/upscaling/art/scale3x.hh | 6 +++---
12 files changed, 64 insertions(+), 29 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index e081229..c4a23a0 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,22 @@
2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Introduce image transformation module in documentation.
+
+ * doc/mln/main.dox: Create new group.
+
+ * mln/geom/crop.hh,
+ * mln/geom/crop_without_localization.hh,
+ * mln/geom/horizontal_symmetry.hh,
+ * mln/geom/rotate.hh,
+ * mln/geom/translate.hh,
+ * mln/geom/vertical_symmetry.hh,
+ * mln/registration/icp.hh,
+ * mln/subsampling/antialiased.hh,
+ * mln/upscaling/art/scale2x.hh,
+ * mln/upscaling/art/scale3x.hh: move to this new group.
+
+2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Make template parameter name more consistant with naming
conventions.
diff --git a/milena/doc/mln/main.dox b/milena/doc/mln/main.dox
index 8cf0f87..8ee0e92 100644
--- a/milena/doc/mln/main.dox
+++ b/milena/doc/mln/main.dox
@@ -95,3 +95,10 @@
*
* \ingroup modroutines
*/
+
+/*! \defgroup mlntransformation Image Transformation
+ *
+ * \brief All transformation algorithms.
+ *
+ * \ingroup modroutines
+ */
diff --git a/milena/mln/geom/crop.hh b/milena/mln/geom/crop.hh
index 38841f7..7f557be 100644
--- a/milena/mln/geom/crop.hh
+++ b/milena/mln/geom/crop.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2011, 2012 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2011, 2012, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,7 +43,7 @@ namespace mln
/*! \brief Crop an image
- \ingroup mlngeom
+ \ingroup mlntransformation
*/
template <typename I, typename B>
mln_concrete(I) crop(const Image<I>& input, const Box<B>& b);
diff --git a/milena/mln/geom/crop_without_localization.hh b/milena/mln/geom/crop_without_localization.hh
index 9236d33..b2a5858 100644
--- a/milena/mln/geom/crop_without_localization.hh
+++ b/milena/mln/geom/crop_without_localization.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2011, 2012 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2011, 2012, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -45,7 +45,7 @@ namespace mln
/*! \brief Crop an image. Localization between input and output
* may not be preserved.
- \ingroup mlngeom
+ \ingroup mlntransformation
*/
template <typename I, typename B>
mln_concrete(I) crop_without_localization(const Image<I>& input,
diff --git a/milena/mln/geom/horizontal_symmetry.hh b/milena/mln/geom/horizontal_symmetry.hh
index cff3479..558c26d 100644
--- a/milena/mln/geom/horizontal_symmetry.hh
+++ b/milena/mln/geom/horizontal_symmetry.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2010, 2012, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,7 +43,7 @@ namespace mln
/*! \brief Perfoms a horizontal symmetry.
- \ingroup mlngeom
+ \ingroup mlntransformation
*/
template <typename I>
mln_concrete(I)
diff --git a/milena/mln/geom/rotate.hh b/milena/mln/geom/rotate.hh
index c7b5b3a..ce0dbef 100644
--- a/milena/mln/geom/rotate.hh
+++ b/milena/mln/geom/rotate.hh
@@ -79,7 +79,7 @@ namespace mln
\return An image with the same domain as \p input.
- \ingroup mlngeom
+ \ingroup mlntransformation
*/
template <typename I, typename Ext, typename S>
mln_concrete(I)
@@ -89,7 +89,7 @@ namespace mln
/*! \overload
- \ingroup mlngeom
+ \ingroup mlntransformation
*/
template <typename I, typename Ext>
mln_concrete(I)
@@ -99,7 +99,7 @@ namespace mln
/*! \overload
Use literal::zero as default value for the extension.
- \ingroup mlngeom
+ \ingroup mlntransformation
*/
template <typename I>
mln_concrete(I)
@@ -111,7 +111,7 @@ namespace mln
FIXME: the return type may be too generic and may lead to
invalid covariance.
- \ingroup mlngeom
+ \ingroup mlntransformation
*/
template <typename B>
B
@@ -121,7 +121,7 @@ namespace mln
The rotation center \p ref is set to box.pcenter().
- \ingroup mlngeom
+ \ingroup mlntransformation
*/
template <typename B>
B
diff --git a/milena/mln/geom/translate.hh b/milena/mln/geom/translate.hh
index a949a8c..73a0f72 100644
--- a/milena/mln/geom/translate.hh
+++ b/milena/mln/geom/translate.hh
@@ -64,11 +64,11 @@ namespace mln
of the domain before the translation.
\param[in] output_domain The domain of the output image. An
invalid domain, causes the routine
- to use the translated input_ domain.
+ to use the translated input domain.
\return An image with the same domain as \p input.
- \ingroup mlngeom
+ \ingroup mlntransformation
*/
template <typename I, typename V, typename Ext, typename S>
mln_concrete(I)
@@ -79,7 +79,7 @@ namespace mln
/*! \overload
- \ingroup mlngeom
+ \ingroup mlntransformation
*/
template <typename I, typename V, typename Ext>
mln_concrete(I)
@@ -91,7 +91,7 @@ namespace mln
/*! \overload
Use literal::zero as default value for the extension.
- \ingroup mlngeom
+ \ingroup mlntransformation
*/
template <typename I, typename V>
mln_concrete(I)
diff --git a/milena/mln/geom/vertical_symmetry.hh b/milena/mln/geom/vertical_symmetry.hh
index 019b866..9ae2885 100644
--- a/milena/mln/geom/vertical_symmetry.hh
+++ b/milena/mln/geom/vertical_symmetry.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2010, 2012, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,7 +43,7 @@ namespace mln
/*! \brief Perfoms a vertical symmetry.
- \ingroup mlngeom
+ \ingroup mlntransformation
*/
template <typename I>
mln_concrete(I)
diff --git a/milena/mln/registration/icp.hh b/milena/mln/registration/icp.hh
index 7c82202..1176802 100644
--- a/milena/mln/registration/icp.hh
+++ b/milena/mln/registration/icp.hh
@@ -109,6 +109,7 @@ namespace mln
*
* This implementation is based on \cite besl1992pami.
*
+ * \ingroup mlntransformation
*/
template <typename P, typename F>
std::pair<algebra::quat,mln_vec(P)>
@@ -128,6 +129,8 @@ namespace mln
*
* \return the rigid transformation which may be use later to create
* a registered image.
+ *
+ * \ingroup mlntransformation
*/
template <typename P, typename F>
composed< translation<P::dim,float>,rotation<P::dim,float> >
diff --git a/milena/mln/subsampling/antialiased.hh b/milena/mln/subsampling/antialiased.hh
index 378f452..1bf5f57 100644
--- a/milena/mln/subsampling/antialiased.hh
+++ b/milena/mln/subsampling/antialiased.hh
@@ -51,7 +51,11 @@ namespace mln
\param[in] output_domain Force output domain.
\param[in] border_thickness Force output border thickness.
- \ingroup mlngeom
+ \p output_domain should be large enough to store all the image
+ values. It can be larger than the minimum size required to store
+ all the image values.
+
+ \ingroup mlntransformation
*/
template <typename I>
inline
@@ -63,7 +67,11 @@ namespace mln
/*! \overload
- \ingroup mlngeom
+
+ The output_domain is set to the minimum domain size required to
+ store all the image values. This is the common use case.
+
+ \ingroup mlntransformation
*/
template <typename I>
mln_concrete(I)
diff --git a/milena/mln/upscaling/art/scale2x.hh b/milena/mln/upscaling/art/scale2x.hh
index e4a5ae8..2d50bee 100644
--- a/milena/mln/upscaling/art/scale2x.hh
+++ b/milena/mln/upscaling/art/scale2x.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2012, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -59,7 +59,7 @@ namespace mln
Source:
http://en.wikipedia.org/wiki/Pixel_art_scaling_algorithms
- \ingroup mlngeom
+ \ingroup mlntransformation
*/
template <typename I>
mln_concrete(I)
diff --git a/milena/mln/upscaling/art/scale3x.hh b/milena/mln/upscaling/art/scale3x.hh
index 5bd94b6..4400a79 100644
--- a/milena/mln/upscaling/art/scale3x.hh
+++ b/milena/mln/upscaling/art/scale3x.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2012, 2013 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -59,7 +59,7 @@ namespace mln
Source:
http://en.wikipedia.org/wiki/Pixel_art_scaling_algorithms
- \ingroup mlngeom
+ \ingroup mlntransformation
*/
template <typename I>
mln_concrete(I)
--
1.7.2.5
1
0
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch exp/newdoc has been updated
via b14fad47f31cd31e47452c2997c4e80377eb7669 (commit)
via 1cd17e32b4fc61239195c688394cd92c3fc44167 (commit)
via efabb3bcb01ae366f463abf4fa14303efce4cda7 (commit)
via 276ad3db3217651981534e7a5908c0b8954d2502 (commit)
via bd478ecf1a53fd1c42b3c267f220aab3f146c4ca (commit)
via 81824c6b2a74d526744302b38a5479989c961f76 (commit)
via 92344248afe3b83428d1db46b156e745451e5ce5 (commit)
via ce97be8f1743324174f965410d1249994eba3e8d (commit)
via 289bcac105fb22c53d37d73a32c1f1402bc5c358 (commit)
via 83d9bff14f8b49b346c6342855d612a37c58cfd0 (commit)
via aa8db8d1be7bdf624312762a1630355d3fec543a (commit)
via e2f4e925bc23a4698abe15108d0ec754bbf67c29 (commit)
via 07333d2c000f65cfabcc4702b704b5abf4126278 (commit)
via 1a302adfd37c3aebe33a477d64cb0304150e37c9 (commit)
via b0051dcaccff406bf3176e17f4abfb95a71822dd (commit)
via 13b61491d6933f69e26cb421e1448f094351cae9 (commit)
via 77d7b3a938fe16dc7216117a80158007706e1236 (commit)
via 9cf87e52f51dbc3344e7aca36a884b8ae0892bed (commit)
via ce8691742261a97e214f5e99024e319cc9e761e2 (commit)
via 9df9980fe8d9d1b2e7cd68ef41aa6bad00f261c0 (commit)
via 002e0e957be01c8a22605d884b9b1dd591e1ee5b (commit)
via 592a16814171acc776241e80db25673125619bda (commit)
via 979d54b458e41fc3bac8f347742d6a42a03df2a1 (commit)
via 22f1827a91aba6dd05a98e784d53d4e76a1498cd (commit)
via 733ef50fa2606d41c09badbe0f2204d16a806d61 (commit)
via 02fa89bb503205bdda6c35b477db63d637e36d31 (commit)
via 1b8c3754d59e04b11e38b19232b138e8cc42f8eb (commit)
via 11438e15a022b02513161e8191679c4409d6b4be (commit)
via 07973346bd57c8bef7e0346c28b6469da5db91e2 (commit)
via b3c468886a96090e094f3c7d79e48e489954997f (commit)
via 81e04f2a8a3166a165634524c0a73d7e9dc4f952 (commit)
via 0987e7f285f366e8129e1c1d439367e269932279 (commit)
via 17105bad97c497797a9f5ac257aca1b25c9a3678 (commit)
via 1c93a61f5b62f6ca9d96b8349d5140874adc0bce (commit)
via 3a7edf0e93669104e45a36ee5face28103dd3cd8 (commit)
via cfaf93d08cc8b366906aeffc7fca9a4a3ee7ec72 (commit)
via 7b919388ab17f9e0f6ce5b6c19755a05760737da (commit)
via 61a8584dff43f330bab0a81207b4326d2c73ab1e (commit)
via 57c088c4a0139017d368dfe6f82c85108645daba (commit)
via 26507619401189aa3f0009a4e90f288028806930 (commit)
via ab7704c3b8725fe5526f0c04ddd89f5058aeec90 (commit)
via 720b4ac09e8e1ce997da5f3a3055dd5e9506a310 (commit)
via d76275d6454849a89f1a8e443856b39ddb889efd (commit)
via fec02485ded083e6fa7220192b53aaf82c587da9 (commit)
via 87a4a347258b9acf3cb1c662e5327a15250c642c (commit)
via ac8d6ba7597e20b07f1b7401cdcf5e926c22dca1 (commit)
via dde0e23d75e77e157992b656322044fad5c1f9e1 (commit)
via 6750f67b683f4d2a3d77f2413f8282466806807b (commit)
via 26b7669e890316c16cdf04ef1ccd8bdcd68b00f1 (commit)
via af9984876b7de257a610bfddec7b20235b026850 (commit)
via a35bff38b91abc202b9a18ba45922423c3c85662 (commit)
via 5a67b47545170fd6ad5ce94bd1cb5b7edca55e9b (commit)
via 731ab1a14efd7c99632127b3f7515bfb2d53c98b (commit)
via 375b4e61b2c1bf292088f7ff3b5f020180a72770 (commit)
via 6487a9dba1b813f2d50df08d397ec3080e0be7bb (commit)
via 90aac13355f5f5518d291a41a81550471d75c97a (commit)
via 5afba3842bb7cf3e22d63a13326e3907a4a9c972 (commit)
via 4a0ee16f50566efb2180ae81764141bed236563b (commit)
via a1c740d02538ff9dd3f68b07cd561c67af3cabdc (commit)
via d6ac69cac5c35e0a47ace3f3b749c661e4c235b0 (commit)
via bc91dfb5dd05ce8b4f6b68f7f4eec1926b3aef0f (commit)
via 73774f40bae141b0b7cf507d6df8893279a46ea7 (commit)
via c173d75dba1a8d8a03c8fee43947145d2570ab64 (commit)
via 52ab07c654f83ee4968524f7e372599b762df21d (commit)
via 6a7f9e5a35954f24d74bd276193ddd257b230cac (commit)
via 8b40c86f5258ba437638b5e5d5d538ff3dcbe1c1 (commit)
via 3e5f8ace4ca6039eb22a587f463ec41014c66eec (commit)
via e048c0b0d60d75ca4458f7235179dfa283580fb2 (commit)
via 7c236c79dc621193afcf23c2ad0689a280b9e868 (commit)
via 42ff098b62214a8e3ff9984c6c554b051a93ad2e (commit)
via 04402f0a54a522e695cb3e492edc9cc9d280daf4 (commit)
via 0b442682e8f59c4e411ff0590b203bb1dcf04668 (commit)
via 5528729cfe130744aa8aa7d317af9d3a58146a2b (commit)
via cf3ad8f314f476fcac9768d2663d9afcd7661ef4 (commit)
via c57275b2a386c1fc291b4e1e800023eed552942d (commit)
via 409c1433fbb3845715a9f5b817f65d70ad161d90 (commit)
via 09c6148c1a2c9eda201e638b1ab6f5ebc7082745 (commit)
via c72cffc104bdffa902ebbdedc993ad5ddae8af5d (commit)
via cdcfe668b182ed328bae6dbd0d14528f72c50d4d (commit)
via c0f8681d2958afb11d3b4f5585de4804bc6524d4 (commit)
via 2f40e47c6660deb2d8f12c2ad403fffff6b44eb1 (commit)
via e3089252d712c2b0839f9798a98a99f690f959e2 (commit)
via b5d61ebe4059d8e89e1a40d7fd26545219172813 (commit)
via 5e4d3053fa3f8c92e02cbef811673b7c2a79040a (commit)
via 272ccdacb752b2352c26decdd648cbcf85b42b53 (commit)
via 73c3a74aea4d833e899baf0d69cd88e2c597908f (commit)
via dc7c3b9944d4b691b2099f10fba965714f82014f (commit)
via 5cd01f612dd0d318156ed7f7d369153f52a084d9 (commit)
via 5f3a088f08e99c16191c8e9461ae7052e9db8562 (commit)
via ea9c608068f019514e068fa629b18e53085ae5a3 (commit)
via d7ed1add8edcb87c4f347ad8ba4857057b3e05dc (commit)
via 2d4989772890ec1e0cb12f9036e8965066eaa866 (commit)
via 13dc18679d5dc70e9e678d0ea653e67254ecadb2 (commit)
via dac3105f148502b55ddf0130389af6c099e07a16 (commit)
via 6323abc221199973f4ba5e85e8ca4f8def31a374 (commit)
via 973a00494322c776a9dff16acce72f0f52480039 (commit)
via 1a77aaae579961af4febf45e7210595753a1d155 (commit)
via 66f08d0c354d1d55afd75438f6a0b1a4552b5ad2 (commit)
via 22dd51887a8e6df6a74c5e3249a815265e974572 (commit)
via d86fc9a3c534f3b71711d1daea4c46a081863f41 (commit)
via 055f40a10996f1d64c9c2577f395a46409b49e2c (commit)
via a74409363a9941dec0c4a86205cb5f22bdc2dab2 (commit)
via e0089be56aed528efb113d4f804adc7b0eeca65d (commit)
via c6262b2dd178ba0b4cb6e6b9135d3006b287b98b (commit)
via d8058ce8214e68759c706366cb5d331d9eb38f91 (commit)
via fd193702df57265383453bbf942b1fa651ed3caf (commit)
via 5d57444eef6406777b20a7ea545a2491d58ea0d0 (commit)
via 00f9215f95b48cba5b7518eb0ec8c2ccc50368dd (commit)
via c1877f8b356b8a6ba234852313828f06b61bf771 (commit)
via 62fccd14b6863c79ec96ef7102ff0f2bd38b4812 (commit)
via 2fe026c16ad4d9df4266c16993684576ba8b495d (commit)
via f92264244ca22751936f2f909ab911a2e6d9753f (commit)
via 81bdc8aae8645f38551682ac4ac8e2657cc7b3d9 (commit)
via b375ab3e82b52e4a07a4590c02272c718f8ffa6c (commit)
via 4938c8d839f9d4994cf577d8dd57906636d9d25d (commit)
via 1a432a30f9344628f2082772d29ac4b8f03a0cd3 (commit)
via 27abe98ff8779d1e01e11c55f740b079f69b3c35 (commit)
via e5b58eb213b3a88a2be6934e9e8f1e3e55d8bd64 (commit)
via 7e08fb78a5055a9adf5fba277a9a0c429b20ce5f (commit)
via 2d8786ecfd45afcdf0bac86ddbcb0e3029f17f2f (commit)
via 9a0159551ff9e29e5c8c52e1f791db137f44c670 (commit)
via 66cb484adc91ca65c034f198baae67fe20e83262 (commit)
via eef02666ee55a78e5c4fe8510149b26718f43f65 (commit)
via 1750bc523cdc01e1717bc168644a16524b77fa1e (commit)
via 961ef463d342b373a63c1c570568e44e564012b9 (commit)
via ae155c6e37215fcd722f44a82573729e89647108 (commit)
via 92262d2499f2eb25a2aa6919ac58c240d66a10d4 (commit)
via 5dd49fd54cb0aefc62307d2c44bb2aa2bad9bc13 (commit)
via 16506fd482cea6aae09c272d70c0cd12c9d11703 (commit)
via ca6ca83dc3fae9efe685fe774df68ddf6793acbe (commit)
via 48849ed3b8a9749bb310f12cccf70bdc8429c61a (commit)
via 1ec09726a5670c541c9ea5f57b832a6374ca09c0 (commit)
via 9a540a39c053b5a730edb6ccff5d9871bdfa1274 (commit)
via c621ab07ea277fd211c6905aa581918891ba2174 (commit)
via 7c5e9ccb89f6f8b2d9ca6a2531386aef2201bd1a (commit)
via b6f55689cb59716f61c6331c3e3483185c42a410 (commit)
via 28448a695a1c10a090f7d03c395fdf203fe6cb7e (commit)
via ce984130f0fcb7959a6b62dd0f1e819e5d66728e (commit)
via 357035117860ee79ae50a628f4e91e496905e6fc (commit)
via 4b986216fbc85d5f86db7b55a85a28a9d25608f2 (commit)
via 1995b37c1c05412c38ae84ba0528e5510d379409 (commit)
via e45787c19b8816a54b4a57f514eae3a7c0a5a219 (commit)
via 3164abc5750dc9dbf92c86a4b6d006a26126c8ec (commit)
via e435b9ba61dddbb786e339dbef3d593316c0d3e8 (commit)
via d48b8a4ae1e70487c3d8cd3370090e8ab132eb98 (commit)
via 24d3d373e86a8db51b64e2b2ff640cbec1486455 (commit)
via 153144dc8928d799662d0398a48e06eec842a8ed (commit)
via 4da0078b5a812846e1d6be5a78b22dcb15b2c448 (commit)
via e4ad8e3807e7e42cdeeb9e24cd0419b87852dd3c (commit)
via 64b6e9d0c557c719707c6ee057fc96160a1fd38e (commit)
via 40eaf23f6c4f0798ff624b6efd24214f63ccc947 (commit)
via 65886835663c0a8f85aa56071b1ca0b61dfee5dc (commit)
via 2a9b240ff2100b6f9d02969deb754f58d701e251 (commit)
via 62dbacde6331505524aa418e00c4ec111f679799 (commit)
via effa1b7572027494c649d84e43bd0d066b8317e4 (commit)
via 1d131cfacc87cbe0485582a92da949908d46f41f (commit)
via af1e2e373ae8d18c3ccef3297aa00547af4ba28e (commit)
via cb4de64dddfb5e43bc9a5ba57ffede6cb54a8256 (commit)
via 85cf60236cf2f22ca0a263056bb0952321275174 (commit)
via 59845993406e6a7db4a4dee30fc2798011d63931 (commit)
via 57bfad3c334cbb4e891bf3330531f68b739b5c4a (commit)
via 3f878aba04012c1069a3ecc4f240a7c87f76729c (commit)
via 22a49ac2882aba28798e8eaf02e8f161f4f0edc3 (commit)
via 9352b4dd5c97cc913eabcc31277270c7aa2b9729 (commit)
via 993220a95e21a684ee0a378873f8702b45d8a852 (commit)
via 766aeea463fc2ec7c091dae0e300f9baa9716675 (commit)
via 1ee4cecf9d02cb75521fb65fc734c27a0c7d9592 (commit)
from 8587fe0a3705ed9c0d0c13fe4920e1fd2be79166 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
b14fad4 Make template parameter name more consistant with naming conventions.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 194 ++++-
GScribo/BUGS | 1 -
GScribo/GScribo.pro | 83 --
GScribo/GScribo.pro.user | 405 -------
GScribo/GScribo.pro.user.1.3 | 283 -----
GScribo/PagesWidget/pagesdelegate.cpp | 20 -
GScribo/PagesWidget/pagesdelegate.h | 18 -
GScribo/PagesWidget/pagesmodel.cpp | 55 -
GScribo/PagesWidget/pagesmodel.h | 43 -
GScribo/PagesWidget/pageswidget.cpp | 49 -
GScribo/PagesWidget/pageswidget.h | 55 -
GScribo/Preferences/generaloptions.cpp | 44 -
GScribo/Preferences/generaloptions.h | 34 -
GScribo/Preferences/generaloptions.ui | 100 --
GScribo/Preferences/ocroptions.cpp | 53 -
GScribo/Preferences/ocroptions.h | 33 -
GScribo/Preferences/ocroptions.ui | 62 --
GScribo/Preferences/optionwidget.h | 15 -
GScribo/Preferences/preferencesdialog.cpp | 98 --
GScribo/Preferences/preferencesdialog.h | 42 -
GScribo/Preferences/preferencesdialog.ui | 121 --
GScribo/Preferences/preprocessingoptions.cpp | 45 -
GScribo/Preferences/preprocessingoptions.h | 32 -
GScribo/Preferences/preprocessingoptions.ui | 76 --
GScribo/Preferences/segmentationoptions.cpp | 33 -
GScribo/Preferences/segmentationoptions.h | 31 -
GScribo/Preferences/segmentationoptions.ui | 52 -
GScribo/Processing/preprocess.cpp | 11 -
GScribo/Processing/preprocess.h | 26 -
GScribo/Processing/process.cpp | 21 -
GScribo/Processing/process.h | 29 -
GScribo/Processing/progressdialog.cpp | 16 -
GScribo/Processing/progressdialog.h | 22 -
GScribo/Processing/runner.cpp | 183 ----
GScribo/Processing/runner.h | 58 -
GScribo/Rendering/abstractregionitem.h | 13 -
GScribo/Rendering/backgroundtexture.h | 12 -
GScribo/Rendering/graphicsview.cpp | 150 ---
GScribo/Rendering/graphicsview.h | 43 -
GScribo/Rendering/regionitem.cpp | 59 -
GScribo/Rendering/regionitem.h | 80 --
GScribo/Rendering/rootgraphicsitem.h | 30 -
GScribo/Rendering/scene.cpp | 273 -----
GScribo/Rendering/scene.h | 118 --
GScribo/Rendering/selection.cpp | 36 -
GScribo/Rendering/selection.h | 20 -
GScribo/TODO | 100 --
GScribo/XmlWidget/attributesmodel.cpp | 69 --
GScribo/XmlWidget/attributesmodel.h | 48 -
GScribo/XmlWidget/selectionproxy.h | 47 -
GScribo/XmlWidget/xmlattributes.cpp | 23 -
GScribo/XmlWidget/xmlattributes.h | 33 -
GScribo/XmlWidget/xmldelegate.h | 30 -
GScribo/XmlWidget/xmlitem.cpp | 43 -
GScribo/XmlWidget/xmlitem.h | 90 --
GScribo/XmlWidget/xmlmodel.cpp | 87 --
GScribo/XmlWidget/xmlmodel.h | 44 -
GScribo/XmlWidget/xmlview.cpp | 88 --
GScribo/XmlWidget/xmlview.h | 79 --
GScribo/XmlWidget/xmlwidget.cpp | 34 -
GScribo/XmlWidget/xmlwidget.h | 54 -
GScribo/aboutdialog.h | 25 -
GScribo/aboutdialog.ui | 136 ---
GScribo/configs.h | 134 ---
GScribo/dir.h | 7 -
GScribo/dockwidget.h | 22 -
GScribo/main.cpp | 23 -
GScribo/mainwindow.cpp | 415 -------
GScribo/mainwindow.h | 120 --
GScribo/mainwindow.ui | 35 -
GScribo/region.h | 56 -
GScribo/regionwidget.cpp | 70 --
GScribo/regionwidget.h | 40 -
GScribo/variantpointer.h | 19 -
GScribo/xml.cpp | 206 ----
GScribo/xml.h | 93 --
Makefile.am | 30 +-
NEWS | 18 +-
configure.ac | 19 +-
distrib/macports/Portfile.in | 4 +-
doc/Doxyfile.in | 8 +-
doc/Makefile.am | 25 +-
doc/doc.bib | 40 +-
doc/header.html | 2 +-
doc/mainpage.dox | 4 +-
milena/ChangeLog | 1147 ++++++++++++++++++++
milena/apps/mesh-segm-skel/Makefile.am | 2 +-
.../mesh-segm-skel/mesh-complex-max-curv-segm.cc | 7 +-
milena/apps/mesh-segm-skel/mesh-complex-segm.cc | 7 +-
milena/apps/morphers/Makefile.am | 2 +
milena/apps/morphers/image2d-skel.hh | 8 +-
.../apps/papers/levillain.09.ismm/classif-graph.cc | 4 +-
milena/apps/papers/levillain.09.ismm/io.hh | 4 -
milena/doc/Doxyfile.in | 60 +-
milena/doc/DoxygenLayout.xml | 4 +-
milena/doc/Makefile.am | 80 +-
milena/doc/benchmark/canvas.cc | 6 +-
milena/doc/examples.dox | 14 +
milena/doc/examples/multi_files_f1.cc.raw | 6 +
milena/doc/examples/multi_files_f2.cc.raw | 6 +
milena/doc/examples/multi_files_main.cc.raw | 16 +
milena/doc/examples/multiple_def.cc.raw | 9 +
.../examples/split/tuto3_first_routine-1.cc.raw | 3 +-
.../examples/split/tuto3_first_routine-3.cc.raw | 2 +-
.../examples/split/tuto3_first_routine-8.cc.raw | 1 -
milena/doc/examples/split/tuto3_trace-1.cc.raw | 2 +-
milena/doc/examples/split/tuto3_trace-2.cc.raw | 2 +-
milena/doc/examples/trash/tuto_bis.cc | 11 +-
milena/doc/examples/trash/tuto_one.cc | 4 +-
milena/doc/examples/tuto3/first_routine.cc | 6 +-
milena/doc/examples/tuto3/trace.cc | 6 +-
milena/doc/examples/typenametemplate.cc.raw | 1 +
milena/doc/examples/undef_global_vars.cc.raw | 1 +
milena/doc/examples/wrongvaluetype.cc.raw | 2 +
milena/doc/img/2dgrid.png | Bin 0 -> 6092 bytes
milena/doc/mainpage.dox | 1 -
milena/doc/mln/convert.dox | 13 +
milena/doc/mln/core/alias/box1d.dox | 25 +
milena/doc/mln/core/alias/box2d.dox | 25 +
milena/doc/mln/core/alias/box2d_h.dox | 25 +
milena/doc/mln/core/alias/box3d.dox | 26 +
milena/doc/mln/core/alias/complex_geometry.dox | 31 +
milena/doc/mln/core/alias/complex_image.dox | 88 ++
milena/doc/mln/core/alias/dpoint1d.dox | 30 +
milena/doc/mln/core/alias/dpoint2d.dox | 27 +
milena/doc/mln/core/alias/dpoint3d.dox | 27 +
milena/doc/mln/core/alias/neighb1d.dox | 16 +
milena/doc/mln/core/alias/neighb2d.dox | 16 +
milena/doc/mln/core/alias/neighb3d.dox | 16 +
milena/doc/mln/core/alias/p_run2d.dox | 18 +
milena/doc/mln/core/alias/p_runs2d.dox | 12 +
milena/doc/mln/core/alias/point1d.dox | 61 +
milena/doc/mln/core/alias/point2d.dox | 61 +
milena/doc/mln/core/alias/point2d_h.dox | 63 ++
milena/doc/mln/core/alias/point3d.dox | 62 ++
milena/doc/mln/core/alias/vec2d.dox | 48 +
milena/doc/mln/core/alias/vec3d.dox | 48 +
milena/doc/mln/core/alias/w_window1d_float.dox | 12 +
milena/doc/mln/core/alias/w_window1d_int.dox | 12 +
milena/doc/mln/core/alias/w_window2d_float.dox | 12 +
milena/doc/mln/core/alias/w_window2d_int.dox | 12 +
milena/doc/mln/core/alias/w_window3d_float.dox | 12 +
milena/doc/mln/core/alias/w_window3d_int.dox | 12 +
milena/doc/mln/core/alias/window1d.dox | 12 +
milena/doc/mln/core/alias/window2d.dox | 12 +
milena/doc/mln/core/alias/window3d.dox | 12 +
milena/doc/mln/core/concept/concept.dox | 6 +
milena/doc/mln/io/io.dox | 7 +
milena/doc/mln/labeling/labeling.dox | 6 +
milena/doc/mln/value/hsl.dox | 37 +
milena/doc/mln/value/int_s16.dox | 24 +
milena/doc/mln/value/int_s24.dox | 24 +
milena/doc/mln/value/int_s32.dox | 24 +
milena/doc/mln/value/int_s8.dox | 24 +
milena/doc/mln/value/int_u12.dox | 24 +
milena/doc/mln/value/int_u16.dox | 24 +
milena/doc/mln/value/int_u24.dox | 24 +
milena/doc/mln/value/int_u32.dox | 24 +
milena/doc/mln/value/int_u8.dox | 24 +
milena/doc/mln/value/label_16.dox | 21 +
milena/doc/mln/value/label_32.dox | 21 +
milena/doc/mln/value/label_8.dox | 21 +
milena/doc/mln/value/rgb16.dox | 69 ++
milena/doc/mln/value/rgb8.dox | 69 ++
milena/doc/mln/value/value.dox | 43 +
milena/doc/mln/win/disk2d.dox | 17 +
milena/doc/mln/win/hline2d.dox | 17 +
milena/doc/mln/win/segment1d.dox | 17 +
milena/doc/mln/win/sline3d.dox | 17 +
milena/doc/mln/win/sphere3d.dox | 17 +
milena/doc/mln/win/vline2d.dox | 17 +
milena/doc/ref-guide.tex | 69 +-
milena/headers.mk | 22 +-
milena/mln/accu/compute.hh | 9 +-
milena/mln/accu/image/init.hh | 9 +-
milena/mln/accu/image/set_value.hh | 18 +-
milena/mln/accu/image/take.hh | 18 +-
milena/mln/accu/image/take_as_init.hh | 18 +-
milena/mln/accu/image/take_n_times.hh | 18 +-
milena/mln/accu/image/to_result.hh | 9 +-
milena/mln/accu/image/untake.hh | 18 +-
milena/mln/accu/stat/histo3d_rgb.hh | 13 +-
milena/mln/accu/transform.hh | 12 +-
milena/mln/accu/transform_diagonal.hh | 6 +-
milena/mln/accu/transform_directional.hh | 6 +-
milena/mln/accu/transform_line.hh | 15 +-
milena/mln/accu/transform_snake.hh | 6 +-
milena/mln/accu/transform_stop.hh | 12 +-
milena/mln/all.hh | 2 +-
milena/mln/arith/diff_abs.hh | 3 +-
milena/mln/arith/div.hh | 18 +-
milena/mln/arith/div.spe.hh | 6 +-
milena/mln/arith/min.hh | 16 +-
milena/mln/arith/min.spe.hh | 6 +-
milena/mln/arith/minus.hh | 33 +-
milena/mln/arith/plus.hh | 36 +-
milena/mln/arith/revert.hh | 9 +-
milena/mln/arith/revert.spe.hh | 8 +-
milena/mln/arith/times.hh | 18 +-
milena/mln/arith/times.spe.hh | 6 +-
milena/mln/binarization/binarization.hh | 6 +-
milena/mln/binarization/threshold.hh | 3 +-
milena/mln/border/adjust.hh | 3 +-
milena/mln/border/duplicate.hh | 12 +-
milena/mln/border/equalize.hh | 6 +-
milena/mln/border/fill.hh | 9 +-
milena/mln/border/find.hh | 3 +-
milena/mln/border/get.hh | 9 +-
milena/mln/border/mirror.hh | 15 +-
milena/mln/border/resize.hh | 3 +-
milena/mln/border/resize_equal.hh | 3 +-
milena/mln/canvas/browsing/backdiagonal2d.hh | 10 +-
milena/mln/canvas/browsing/diagonal2d.hh | 3 +-
.../canvas/browsing/dir_struct_elt_incr_update.hh | 3 +-
milena/mln/canvas/browsing/directional.hh | 3 +-
milena/mln/canvas/browsing/fwd.hh | 3 +-
milena/mln/canvas/browsing/hyper_directional.hh | 3 +-
.../canvas/browsing/internal/graph_first_search.hh | 3 +-
milena/mln/canvas/browsing/snake_fwd.hh | 3 +-
milena/mln/canvas/browsing/snake_generic.hh | 3 +-
milena/mln/canvas/browsing/snake_vert.hh | 3 +-
milena/mln/canvas/distance_front.hh | 9 +-
milena/mln/canvas/distance_geodesic.hh | 9 +-
milena/mln/canvas/labeling/blobs.hh | 7 +-
milena/mln/canvas/labeling/generic.hh | 12 +-
milena/mln/canvas/labeling/sorted.hh | 8 +-
milena/mln/canvas/labeling/video.hh | 10 +-
milena/mln/canvas/morpho/attribute_filter.hh | 6 +-
milena/mln/clustering/kmean_rgb.hh | 61 +-
milena/mln/convert/to.hh | 7 +-
milena/mln/convert/to_image.hh | 10 +-
milena/mln/convert/to_qimage.hh | 3 +-
milena/mln/convert/to_qimage_nocopy.hh | 3 +-
milena/mln/core/alias/box1d.hh | 43 +-
milena/mln/core/alias/box2d.hh | 50 +-
milena/mln/core/alias/box3d.hh | 53 +-
milena/mln/core/alias/complex_geometry.hh | 35 +-
milena/mln/core/alias/complex_image.hh | 121 ++-
milena/mln/core/alias/dpoint1d.hh | 39 +-
milena/mln/core/alias/dpoint2d.hh | 42 +-
milena/mln/core/alias/dpoint3d.hh | 42 +-
milena/mln/core/alias/neighb1d.hh | 71 ++-
milena/mln/core/alias/neighb2d.hh | 97 ++-
milena/mln/core/alias/neighb3d.hh | 98 ++-
milena/mln/core/alias/p_run2d.hh | 14 +-
milena/mln/core/alias/p_runs2d.hh | 14 +-
milena/mln/core/alias/point1d.hh | 28 +-
milena/mln/core/alias/point2d.hh | 30 +-
milena/mln/core/alias/point3d.hh | 30 +-
milena/mln/core/alias/vec2d.hh | 26 +-
milena/mln/core/alias/vec3d.hh | 25 +-
milena/mln/core/alias/w_window1d_float.hh | 19 +-
milena/mln/core/alias/w_window1d_int.hh | 19 +-
milena/mln/core/alias/w_window2d_float.hh | 19 +-
milena/mln/core/alias/w_window2d_int.hh | 19 +-
milena/mln/core/alias/w_window3d_float.hh | 19 +-
milena/mln/core/alias/w_window3d_int.hh | 19 +-
milena/mln/core/alias/window1d.hh | 55 +-
milena/mln/core/alias/window2d.hh | 55 +-
milena/mln/core/alias/window3d.hh | 59 +-
milena/mln/core/box_runend_piter.hh | 11 +-
milena/mln/core/box_runstart_piter.hh | 8 +
milena/mln/core/concept/accumulator.hh | 55 +-
milena/mln/core/concept/box.hh | 15 +-
milena/mln/core/concept/browsing.hh | 14 +-
milena/mln/core/concept/delta_point_site.hh | 15 +-
milena/mln/core/concept/dpoint.hh | 10 +-
milena/mln/core/concept/function.hh | 33 +-
milena/mln/core/concept/gdpoint.hh | 23 +-
milena/mln/core/concept/generalized_pixel.hh | 25 +-
milena/mln/core/concept/gpoint.hh | 26 +-
milena/mln/core/concept/graph.hh | 17 +-
milena/mln/core/concept/image.hh | 24 +-
milena/mln/core/concept/iterator.hh | 13 +-
milena/mln/core/concept/literal.hh | 14 +-
milena/mln/core/concept/mesh.hh | 11 +-
milena/mln/core/concept/meta_accumulator.hh | 16 +-
milena/mln/core/concept/meta_function.hh | 20 +-
milena/mln/core/concept/neighborhood.hh | 27 +-
milena/mln/core/concept/object.hh | 19 +-
milena/mln/core/concept/pixel_iterator.hh | 19 +-
milena/mln/core/concept/point.hh | 22 +-
milena/mln/core/concept/point_site.hh | 53 +-
milena/mln/core/concept/proxy.hh | 19 +-
milena/mln/core/concept/pseudo_site.hh | 21 +-
milena/mln/core/concept/regular_grid.hh | 8 +-
milena/mln/core/concept/site.hh | 13 +-
milena/mln/core/concept/site_iterator.hh | 22 +-
milena/mln/core/concept/site_proxy.hh | 23 +-
milena/mln/core/concept/site_set.hh | 21 +-
milena/mln/core/concept/value.hh | 17 +-
milena/mln/core/concept/value_iterator.hh | 20 +-
milena/mln/core/concept/value_set.hh | 19 +-
milena/mln/core/concept/weighted_window.hh | 21 +-
milena/mln/core/concept/window.hh | 28 +-
milena/mln/core/dpoints_pixter.hh | 16 +-
milena/mln/core/dpsites_piter.hh | 14 +-
milena/mln/core/faces_psite.hh | 7 +-
milena/mln/core/image/ch_piter.hh | 6 +-
milena/mln/core/image/complex_image.hh | 8 +-
.../mln/core/image/complex_neighborhood_piter.hh | 6 +-
milena/mln/core/image/complex_window_piter.hh | 6 +-
milena/mln/core/image/dmorph/extended.hh | 10 +-
milena/mln/core/image/dmorph/extension_fun.hh | 11 +-
milena/mln/core/image/dmorph/extension_ima.hh | 10 +-
milena/mln/core/image/dmorph/extension_val.hh | 9 +-
milena/mln/core/image/dmorph/hexa.hh | 9 +-
milena/mln/core/image/dmorph/hexa_piter.hh | 7 +-
milena/mln/core/image/dmorph/image_if.hh | 7 +-
milena/mln/core/image/dmorph/p2p_image.hh | 5 +-
milena/mln/core/image/dmorph/slice_image.hh | 7 +-
milena/mln/core/image/dmorph/sub_image.hh | 11 +-
milena/mln/core/image/dmorph/sub_image_if.hh | 8 +-
milena/mln/core/image/dmorph/transformed_image.hh | 5 +-
milena/mln/core/image/dmorph/unproject_image.hh | 7 +-
milena/mln/core/image/edge_image.hh | 9 +-
milena/mln/core/image/flat_image.hh | 12 +-
milena/mln/core/image/graph_window_if_piter.hh | 13 +-
milena/mln/core/image/graph_window_piter.hh | 10 +-
milena/mln/core/image/image1d.hh | 288 +++---
milena/mln/core/image/image2d.hh | 316 +++---
milena/mln/core/image/image3d.hh | 304 +++---
milena/mln/core/image/imorph/decorated_image.hh | 9 +-
milena/mln/core/image/imorph/interpolated.hh | 7 +-
milena/mln/core/image/imorph/labeled_image.hh | 11 +-
milena/mln/core/image/imorph/lazy_image.hh | 5 +-
milena/mln/core/image/imorph/plain.hh | 5 +-
milena/mln/core/image/imorph/safe.hh | 5 +-
milena/mln/core/image/imorph/tr_image.hh | 5 +-
milena/mln/core/image/vertex_image.hh | 7 +-
milena/mln/core/image/vmorph/cast_image.hh | 7 +-
milena/mln/core/image/vmorph/fun_image.hh | 5 +-
milena/mln/core/image/vmorph/thru_image.hh | 7 +-
milena/mln/core/image/vmorph/violent_cast_image.hh | 5 +-
milena/mln/core/internal/check/image_fastest.hh | 26 +-
milena/mln/core/internal/classical_window_base.hh | 5 +-
milena/mln/core/internal/coord_impl.hh | 40 +-
milena/mln/core/internal/graph_psite_base.hh | 5 +-
milena/mln/core/internal/image_base.hh | 15 +-
milena/mln/core/internal/image_identity.hh | 5 +-
milena/mln/core/internal/image_morpher.hh | 13 +-
milena/mln/core/internal/labeled_image_base.hh | 4 +-
milena/mln/core/internal/neighb_base.hh | 8 +-
milena/mln/core/internal/neighb_niter_base.hh | 8 +-
milena/mln/core/internal/p_complex_piter_base.hh | 5 +-
milena/mln/core/internal/piter_adaptor.hh | 13 +-
milena/mln/core/internal/pseudo_site_base.hh | 3 +-
milena/mln/core/internal/run_image.hh | 5 +-
milena/mln/core/internal/set_of.hh | 7 +-
milena/mln/core/internal/site_iterator_base.hh | 7 +-
.../core/internal/site_relative_iterator_base.hh | 9 +-
milena/mln/core/internal/site_set_base.hh | 5 +-
milena/mln/core/internal/site_set_impl.hh | 3 +-
milena/mln/core/internal/site_set_iterator_base.hh | 12 +-
milena/mln/core/internal/window_base.hh | 12 +-
milena/mln/core/mixed_neighb.hh | 11 +-
milena/mln/core/neighb.hh | 10 +-
milena/mln/core/pixter1d.hh | 8 +-
milena/mln/core/pixter2d.hh | 12 +-
milena/mln/core/pixter3d.hh | 10 +-
milena/mln/core/point.hh | 12 +-
milena/mln/core/routine/duplicate.hh | 3 +-
milena/mln/core/routine/init.hh | 3 +-
milena/mln/core/routine/initialize.hh | 7 +-
milena/mln/core/site_set/box.hh | 3 +-
milena/mln/core/site_set/box_piter.hh | 10 +-
milena/mln/core/site_set/complex_psite.hh | 14 +-
milena/mln/core/site_set/p_array.hh | 25 +-
milena/mln/core/site_set/p_centered.hh | 6 +-
milena/mln/core/site_set/p_complex_piter.hh | 6 +-
milena/mln/core/site_set/p_double.hh | 15 +-
milena/mln/core/site_set/p_edges_psite.hh | 6 +-
milena/mln/core/site_set/p_faces.hh | 4 +-
milena/mln/core/site_set/p_graph_piter.hh | 9 +-
milena/mln/core/site_set/p_if.hh | 5 +-
milena/mln/core/site_set/p_if_piter.hh | 7 +-
milena/mln/core/site_set/p_image.hh | 11 +-
milena/mln/core/site_set/p_key.hh | 10 +-
milena/mln/core/site_set/p_line2d.hh | 3 +-
milena/mln/core/site_set/p_mutable_array_of.hh | 10 +-
milena/mln/core/site_set/p_priority.hh | 8 +-
milena/mln/core/site_set/p_run.hh | 7 +-
milena/mln/core/site_set/p_run_piter.hh | 10 +-
milena/mln/core/site_set/p_set_of.hh | 7 +-
milena/mln/core/site_set/p_transformed.hh | 6 +-
milena/mln/core/site_set/p_transformed_piter.hh | 7 +-
milena/mln/core/site_set/p_vaccess.hh | 6 +-
milena/mln/core/site_set/p_vertices_psite.hh | 6 +-
milena/mln/core/w_window.hh | 11 +-
milena/mln/core/window.hh | 8 +-
milena/mln/data/abs.hh | 6 +-
milena/mln/data/apply.hh | 6 +-
milena/mln/data/apply.spe.hh | 3 +-
milena/mln/data/approx/median.hh | 6 +-
milena/mln/data/compare.hh | 9 +-
milena/mln/data/compute.hh | 3 +-
milena/mln/data/compute_in_window.hh | 23 +-
milena/mln/data/convert.hh | 9 +-
milena/mln/data/fill.hh | 3 +-
milena/mln/data/fill_with_image.hh | 6 +-
milena/mln/data/fill_with_image.spe.hh | 12 +-
milena/mln/data/fill_with_value.hh | 6 +-
milena/mln/data/fill_with_value.spe.hh | 9 +-
milena/mln/data/median.hh | 9 +-
milena/mln/data/memcpy_.hh | 6 +-
milena/mln/data/memset_.hh | 9 +-
milena/mln/data/paste.hh | 6 +-
milena/mln/data/paste.spe.hh | 12 +-
milena/mln/data/paste_without_localization.hh | 15 +-
milena/mln/data/replace.hh | 6 +-
milena/mln/data/saturate.hh | 9 +-
milena/mln/data/sort_offsets.hh | 18 +-
milena/mln/data/split.hh | 3 +-
milena/mln/data/stretch.hh | 12 +-
milena/mln/data/to_enc.hh | 3 +-
milena/mln/data/transform.hh | 12 +-
milena/mln/data/transform.spe.hh | 24 +-
milena/mln/data/transform_inplace.hh | 30 +-
milena/mln/data/update.hh | 9 +-
milena/mln/data/wrap.hh | 3 +-
milena/mln/debug/draw_graph.hh | 26 +-
milena/mln/debug/iota.hh | 3 +-
milena/mln/debug/mosaic.hh | 3 +-
milena/mln/debug/println.hh | 3 +-
milena/mln/debug/put_word.hh | 4 +-
milena/mln/debug/slices_2d.hh | 6 +-
milena/mln/debug/superpose.hh | 3 +-
milena/mln/debug/trace.hh | 218 ++++
milena/mln/debug/z_order.hh | 3 +-
milena/mln/draw/dashed_line.hh | 8 +-
milena/mln/draw/line.hh | 8 +-
milena/mln/essential/routine.hh | 5 +-
milena/mln/extension/adjust.hh | 12 +-
milena/mln/extension/adjust_duplicate.hh | 12 +-
milena/mln/extension/adjust_fill.hh | 12 +-
milena/mln/extension/duplicate.hh | 3 +-
milena/mln/extension/fill.hh | 3 +-
milena/mln/fun/v2b/always_false.hh | 74 ++
milena/mln/fun/v2b/always_true.hh | 74 ++
milena/mln/fun/v2v/round_sat.hh | 4 +-
milena/mln/fun/x2x/composed.hh | 3 +-
milena/mln/geom/chamfer.hh | 3 +-
milena/mln/geom/crop.hh | 3 +-
milena/mln/geom/crop_without_localization.hh | 3 +-
milena/mln/geom/horizontal_symmetry.hh | 3 +-
milena/mln/geom/max_ind.hh | 3 +-
milena/mln/geom/min_ind.hh | 3 +-
milena/mln/geom/ninds.hh | 3 +-
milena/mln/geom/nsites.hh | 3 +-
milena/mln/geom/rotate.hh | 6 +-
milena/mln/geom/seeds2tiling.hh | 6 +-
milena/mln/geom/seeds2tiling_roundness.hh | 6 +-
milena/mln/geom/translate.hh | 3 +-
milena/mln/geom/vertical_symmetry.hh | 3 +-
milena/mln/graph/compute.hh | 3 +-
milena/mln/graph/labeling.hh | 3 +-
milena/mln/graph/to_neighb.hh | 3 +-
milena/mln/graph/to_win.hh | 3 +-
milena/mln/histo/compute.hh | 3 +-
milena/mln/histo/equalize.hh | 3 +-
milena/mln/io/cloud/load.hh | 3 +-
milena/mln/io/cloud/save.hh | 3 +-
milena/mln/io/dicom/get_header.hh | 3 +-
milena/mln/io/dicom/load.hh | 9 +-
milena/mln/io/dump/get_header.hh | 3 +-
milena/mln/io/dump/load.hh | 3 +-
milena/mln/io/dump/save.hh | 3 +-
milena/mln/io/fits/load.hh | 3 +-
milena/mln/io/fld/load.hh | 3 +-
milena/mln/io/fld/save.hh | 3 +-
milena/mln/io/magick/internal/init_magick.hh | 71 ++
milena/mln/io/magick/load.hh | 35 +-
milena/mln/io/magick/save.hh | 40 +-
milena/mln/io/off/load.hh | 9 +-
milena/mln/io/off/save.hh | 12 +-
milena/mln/io/pbm/load.hh | 3 +-
milena/mln/io/pbm/save.hh | 3 +-
milena/mln/io/pbms/load.hh | 3 +-
milena/mln/io/pdf/get_header.hh | 15 +-
milena/mln/io/pdf/load.hh | 106 ++-
milena/mln/io/pfm/load.hh | 3 +-
milena/mln/io/pfm/save.hh | 3 +-
milena/mln/io/pgm/load.hh | 6 +-
milena/mln/io/pgm/save.hh | 3 +-
milena/mln/io/pgms/load.hh | 3 +-
milena/mln/io/plot/load.hh | 3 +-
milena/mln/io/plot/save.hh | 9 +-
milena/mln/io/pnm/load.hh | 6 +-
milena/mln/io/pnm/save.hh | 3 +-
milena/mln/io/pnms/load.hh | 6 +-
milena/mln/io/ppm/load.hh | 6 +-
milena/mln/io/ppms/load.hh | 3 +-
milena/mln/io/raw/get_header.hh | 3 +-
milena/mln/io/raw/load.hh | 3 +-
milena/mln/io/raw/save.hh | 3 +-
milena/mln/io/tiff/load.hh | 3 +-
milena/mln/io/txt/save.hh | 3 +-
milena/mln/labeling/background.hh | 7 +-
milena/mln/labeling/blobs.hh | 3 +-
milena/mln/labeling/blobs_and_compute.hh | 3 +-
milena/mln/labeling/colorize.hh | 50 +-
milena/mln/labeling/compute.hh | 130 ++--
milena/mln/labeling/compute_image.hh | 83 +-
milena/mln/labeling/fill_holes.hh | 3 +-
milena/mln/labeling/flat_zones.hh | 21 +-
milena/mln/labeling/foreground.hh | 11 +-
milena/mln/labeling/mean_values.hh | 20 +-
milena/mln/labeling/n_max.hh | 78 +-
milena/mln/labeling/pack.hh | 40 +-
milena/mln/labeling/regional_maxima.hh | 22 +-
milena/mln/labeling/regional_minima.hh | 22 +-
milena/mln/labeling/relabel.hh | 83 +-
milena/mln/labeling/superpose.hh | 8 +-
milena/mln/labeling/value.hh | 27 +-
milena/mln/labeling/value.spe.hh | 3 +-
milena/mln/labeling/value_and_compute.hh | 25 +-
milena/mln/labeling/wrap.hh | 38 +-
milena/mln/linear/.#ch_convolve.hh | 1 -
milena/mln/linear/convolve.hh | 9 +-
milena/mln/linear/convolve_2x1d.hh | 3 +-
milena/mln/linear/convolve_directional.hh | 3 +-
milena/mln/linear/gaussian_1d.hh | 3 +-
milena/mln/linear/gaussian_directional_2d.hh | 3 +-
milena/mln/linear/lap.hh | 12 +-
milena/mln/linear/log.hh | 39 +-
milena/mln/linear/sobel_2d.hh | 12 +-
milena/mln/logical/and.hh | 6 +-
milena/mln/logical/and_not.hh | 6 +-
milena/mln/logical/not.hh | 6 +-
milena/mln/logical/not.spe.hh | 6 +-
milena/mln/logical/or.hh | 6 +-
milena/mln/logical/xor.hh | 6 +-
milena/mln/make/dual_neighb.hh | 3 +-
milena/mln/make/dummy_p_edges.hh | 3 +-
milena/mln/make/dummy_p_vertices.hh | 3 +-
milena/mln/make/edge_image.hh | 18 +-
milena/mln/make/influence_zone_adjacency_graph.hh | 6 +-
milena/mln/make/p_edges_with_mass_centers.hh | 3 +-
milena/mln/make/p_vertices_with_mass_centers.hh | 3 +-
milena/mln/make/rag_and_labeled_wsl.hh | 6 +-
milena/mln/make/region_adjacency_graph.hh | 10 +-
milena/mln/make/relabelfun.hh | 6 +-
milena/mln/make/vertex_image.hh | 6 +-
milena/mln/make/w_window.hh | 3 +-
milena/mln/morpho/algebraic_filter.hh | 3 +-
milena/mln/morpho/all.hh | 1 -
milena/mln/morpho/approx/dilation.hh | 9 +-
milena/mln/morpho/approx/erosion.hh | 9 +-
milena/mln/morpho/closing/algebraic.hh | 3 +-
milena/mln/morpho/closing/approx/structural.hh | 3 +-
milena/mln/morpho/closing/area.hh | 3 +-
milena/mln/morpho/closing/area_on_vertices.hh | 3 +-
milena/mln/morpho/closing/height.hh | 3 +-
milena/mln/morpho/closing/leveling.hh | 3 +-
milena/mln/morpho/closing/structural.hh | 3 +-
milena/mln/morpho/closing/sum.hh | 3 +-
milena/mln/morpho/closing/volume.hh | 3 +-
milena/mln/morpho/complementation.hh | 6 +-
milena/mln/morpho/contrast.hh | 3 +-
milena/mln/morpho/dilation.hh | 9 +-
milena/mln/morpho/elementary/closing.hh | 3 +-
milena/mln/morpho/elementary/dilation.hh | 3 +-
milena/mln/morpho/elementary/erosion.hh | 3 +-
milena/mln/morpho/elementary/gradient.hh | 12 +-
milena/mln/morpho/elementary/gradient_external.hh | 3 +-
milena/mln/morpho/elementary/gradient_internal.hh | 3 +-
milena/mln/morpho/elementary/laplacian.hh | 3 +-
milena/mln/morpho/elementary/like_ero_fun.hh | 6 +-
milena/mln/morpho/elementary/like_ero_set.hh | 6 +-
milena/mln/morpho/elementary/opening.hh | 3 +-
milena/mln/morpho/elementary/top_hat.hh | 9 +-
milena/mln/morpho/erosion.hh | 9 +-
milena/mln/morpho/essential.hh | 1 -
milena/mln/morpho/general.hh | 9 +-
milena/mln/morpho/general.spe.hh | 21 +-
milena/mln/morpho/gradient.hh | 9 +-
milena/mln/morpho/hit_or_miss.hh | 21 +-
milena/mln/morpho/laplacian.hh | 6 +-
milena/mln/morpho/leveling_filter.hh | 3 +-
milena/mln/morpho/line_gradient.hh | 3 +-
milena/mln/morpho/meyer_wst.hh | 222 ----
milena/mln/morpho/min.hh | 6 +-
milena/mln/morpho/minus.hh | 3 +-
milena/mln/morpho/opening/algebraic.hh | 3 +-
milena/mln/morpho/opening/approx/structural.hh | 3 +-
milena/mln/morpho/opening/area.hh | 3 +-
milena/mln/morpho/opening/area_on_vertices.hh | 3 +-
milena/mln/morpho/opening/height.hh | 3 +-
milena/mln/morpho/opening/leveling.hh | 3 +-
milena/mln/morpho/opening/structural.hh | 3 +-
milena/mln/morpho/opening/volume.hh | 3 +-
milena/mln/morpho/plus.hh | 3 +-
milena/mln/morpho/rank_filter.hh | 12 +-
.../reconstruction/by_dilation/union_find.hh | 11 +-
.../morpho/reconstruction/by_erosion/union_find.hh | 10 +-
milena/mln/morpho/skeleton_constrained.hh | 9 +-
milena/mln/morpho/thick_miss.hh | 3 +-
milena/mln/morpho/thickening.hh | 3 +-
milena/mln/morpho/thin_fit.hh | 3 +-
milena/mln/morpho/thinning.hh | 3 +-
milena/mln/morpho/top_hat.hh | 9 +-
milena/mln/morpho/tree/component_tree.hh | 6 +-
milena/mln/morpho/tree/compute_attribute_image.hh | 6 +-
milena/mln/morpho/tree/compute_parent.hh | 6 +-
milena/mln/morpho/tree/dual_input_tree.hh | 3 +-
milena/mln/morpho/tree/filter/direct.hh | 3 +-
milena/mln/morpho/tree/filter/filter.hh | 3 +-
milena/mln/morpho/tree/filter/max.hh | 3 +-
milena/mln/morpho/tree/filter/min.hh | 3 +-
milena/mln/morpho/tree/filter/subtractive.hh | 3 +-
milena/mln/morpho/tree/impl/dual_hqueue.hh | 3 +-
milena/mln/morpho/tree/impl/dual_union_find.hh | 3 +-
milena/mln/morpho/tree/max.hh | 3 +-
milena/mln/morpho/watershed/flooding.hh | 9 +-
milena/mln/morpho/watershed/superpose.hh | 3 +-
milena/mln/opt/at.hh | 5 +-
milena/mln/registration/all.hh | 49 +
milena/mln/registration/icp.hh | 12 +-
milena/mln/set/card.hh | 9 +-
milena/mln/set/compute.hh | 9 +-
milena/mln/set/compute_with_weights.hh | 15 +-
milena/mln/set/diff.hh | 3 +-
milena/mln/set/get.hh | 3 +-
milena/mln/set/has.hh | 3 +-
milena/mln/set/inter.hh | 3 +-
milena/mln/set/sym_diff.hh | 3 +-
milena/mln/set/uni.hh | 3 +-
milena/mln/set/unique.hh | 3 +-
milena/mln/subsampling/antialiased.hh | 13 +-
milena/mln/test/positive.hh | 3 +-
milena/mln/test/predicate.hh | 9 +-
milena/mln/topo/complex.hh | 44 +-
milena/mln/topo/skeleton/crest.hh | 9 +-
milena/mln/trace/all.hh | 52 -
milena/mln/trace/entering.hh | 89 --
milena/mln/trace/essential.hh | 36 -
milena/mln/trace/exiting.hh | 118 --
milena/mln/trace/quiet.hh | 84 --
milena/mln/trace/resume.hh | 60 -
milena/mln/trace/stop.hh | 63 --
milena/mln/trace/warning.hh | 64 --
milena/mln/trait/ch_value.hh | 66 ++-
milena/mln/trait/concrete.hh | 65 ++-
.../distance_and_closest_point_geodesic.hh | 6 +-
.../distance_and_influence_zone_geodesic.hh | 3 +-
milena/mln/transform/distance_front.hh | 3 +-
milena/mln/transform/distance_geodesic.hh | 3 +-
milena/mln/transform/hough.hh | 3 +-
milena/mln/transform/influence_zone_front.hh | 3 +-
milena/mln/transform/influence_zone_geodesic.hh | 6 +-
.../transform/influence_zone_geodesic_saturated.hh | 3 +-
milena/mln/upscaling/art/scale2x.hh | 3 +-
milena/mln/upscaling/art/scale3x.hh | 3 +-
milena/mln/util/array.hh | 20 +-
milena/mln/util/timer.hh | 15 +-
milena/mln/util/tree_fast_to_image.hh | 6 +-
milena/mln/util/tree_to_fast.hh | 8 +-
milena/mln/util/tree_to_image.hh | 21 +-
milena/mln/value/builtin/symbolics.hh | 6 +-
milena/mln/value/hsl.hh | 24 +-
milena/mln/value/int_s.hh | 9 +-
milena/mln/value/int_s16.hh | 15 +-
milena/mln/value/int_s24.hh | 15 +-
milena/mln/value/int_s32.hh | 15 +-
milena/mln/value/int_s8.hh | 16 +-
milena/mln/value/int_u.hh | 12 +-
milena/mln/value/int_u12.hh | 15 +-
milena/mln/value/int_u16.hh | 15 +-
milena/mln/value/int_u24.hh | 15 +-
milena/mln/value/int_u32.hh | 15 +-
milena/mln/value/int_u8.hh | 15 +-
milena/mln/value/internal/gray_f.hxx | 8 +-
milena/mln/value/label.hh | 15 +-
milena/mln/value/label_16.hh | 15 +-
milena/mln/value/label_32.hh | 9 +-
milena/mln/value/label_8.hh | 15 +-
milena/mln/value/qt/rgb32.hh | 15 +-
milena/mln/value/rgb.hh | 10 +-
milena/mln/value/rgb16.hh | 17 +-
milena/mln/value/rgb8.hh | 17 +-
milena/mln/win/diff.hh | 3 +-
milena/mln/win/disk2d.hh | 19 +-
milena/mln/win/hline2d.hh | 11 +-
milena/mln/win/inter.hh | 3 +-
milena/mln/win/rectangle2d.hh | 13 +-
milena/mln/win/segment1d.hh | 11 +-
milena/mln/win/shift.hh | 3 +-
milena/mln/win/sline3d.hh | 11 +-
milena/mln/win/sphere3d.hh | 18 +-
milena/mln/win/sym.hh | 6 +-
milena/mln/win/vline2d.hh | 11 +-
milena/mln/world/binary_2d/enlarge.hh | 3 +-
milena/mln/world/binary_2d/subsample.hh | 27 +-
milena/mln/world/inter_pixel/compute.hh | 3 +-
.../mln/world/inter_pixel/dim2/make_edge_image.hh | 3 +-
milena/mln/world/inter_pixel/full2image.hh | 3 +-
milena/mln/world/inter_pixel/immerse.hh | 3 +-
milena/mln/world/rgb/invert.hh | 9 +-
milena/mln/world/rgb/invert.spe.hh | 9 +-
milena/tests/accu/site_set/rectangularity.cc | 4 +-
milena/tests/algebra/mat.cc | 19 +-
milena/tests/arith/diff_abs.cc | 2 +-
milena/tests/arith/minus.cc | 2 +-
milena/tests/arith/plus.cc | 4 +-
milena/tests/arith/revert.cc | 2 +-
milena/tests/arith/times.cc | 2 +-
milena/tests/core/image/edge_image.cc | 146 ++--
milena/tests/core/image/line_graph_image.cc | 140 ++--
milena/tests/core/other/var.cc | 8 +-
milena/tests/data.hh.in | 3 +
milena/tests/data/fill_with_image.cc | 4 +-
milena/tests/data/paste.cc | 4 +-
milena/tests/geom/nsites.cc | 2 +-
milena/tests/io/fld/fld1d.cc | 9 +-
milena/tests/io/fld/fld2d.cc | 21 +-
milena/tests/io/fld/fld3d.cc | 9 +-
milena/tests/io/magick/load.cc | 18 +-
milena/tests/io/magick/save.cc | 19 +-
milena/tests/labeling/Makefile.am | 8 +-
milena/tests/labeling/foreground.cc | 34 +-
milena/tests/labeling/foreground.ref.pgm | Bin 0 -> 81654 bytes
milena/tests/labeling/n_max.cc | 5 +-
milena/tests/linear/gaussian.cc | 6 +-
milena/tests/morpho/Makefile.am | 8 +-
.../morpho/artificial_line_graph_image_wst.cc | 19 +-
milena/tests/morpho/closing/algebraic.cc | 2 +-
milena/tests/morpho/elementary/closing.cc | 2 +-
milena/tests/morpho/elementary/dilation.cc | 2 +-
milena/tests/morpho/elementary/erosion.cc | 2 +-
milena/tests/morpho/elementary/opening.cc | 2 +-
milena/tests/morpho/elementary/top_hat.cc | 2 +-
milena/tests/morpho/general.cc | 4 +-
milena/tests/morpho/graph_image_morpho.cc | 2 +-
milena/tests/morpho/graph_image_wst.cc | 15 +-
milena/tests/morpho/lena_line_graph_image_wst1.cc | 18 +-
milena/tests/morpho/lena_line_graph_image_wst2.cc | 19 +-
milena/tests/morpho/line_graph_image_morpho.cc | 49 +-
milena/tests/morpho/line_graph_image_wst.cc | 57 +-
milena/tests/morpho/meyer_wst.cc | 56 -
milena/tests/morpho/meyer_wst_long.cc | 73 --
milena/tests/morpho/opening/algebraic.cc | 2 +-
milena/tests/morpho/top_hat.cc | 2 +-
milena/tests/opt/at.cc | 4 +-
milena/tests/opt/element.cc | 4 +-
milena/tests/opt/value.cc | 5 +-
milena/tests/trait/op/plus.cc | 6 +-
milena/tests/unit_test/Makefile.am | 1 +
milena/tests/unit_test/cond_tests_magickxx | 1 +
milena/tests/unit_test/cond_tests_poppler | 2 +
milena/tests/unit_test/unit-tests.mk | 33 +-
milena/tools/area_flooding.cc | 7 +-
scribo/ChangeLog | 705 ++++++++++++
scribo/common.mk | 8 +-
scribo/demo/viewer/image_region.hh | 6 +-
scribo/demo/viewer/main.cc | 2 -
scribo/demo/xml2doc/main.cc | 28 +-
scribo/doc/Doxyfile.in | 36 +-
scribo/doc/DoxygenLayout.xml | 2 +-
scribo/doc/Makefile.am | 22 +-
scribo/doc/scribo/binarization/binarization.dox | 8 +-
scribo/doc/scribo/binarization/kim.dox | 23 +
scribo/doc/scribo/binarization/otsu.dox | 11 +-
scribo/doc/scribo/binarization/wolf.dox | 6 +
scribo/doc/scribo/filter/component_groups.dox | 2 +-
scribo/doc/scribo/filter/component_links.dox | 2 +-
scribo/doc/scribo/filter/components.dox | 2 +-
scribo/doc/scribo/filter/elements.dox | 2 +-
scribo/doc/scribo/filter/line_links.dox | 4 +-
scribo/doc/scribo/filter/paragraphs.dox | 4 +-
scribo/doc/scribo/layout/layout.dox | 6 +
scribo/doc/scribo/namespaces.dox | 7 +
scribo/doc/scribo/primitive/extract/components.dox | 7 +
scribo/doc/scribo/primitive/extract/extract.dox | 7 +
scribo/doc/scribo/primitive/extract/separators.dox | 8 +-
scribo/headers.mk | 31 +-
scribo/scribo/binarization/all.hh | 6 +
scribo/scribo/binarization/global_threshold.hh | 3 +-
.../scribo/binarization/global_threshold_auto.hh | 5 +-
.../internal/global_max_stddev_functor.hh | 110 ++
.../binarization/internal/local_threshold_core.hh | 33 +-
.../binarization/internal/niblack_formula.hh | 2 +-
.../binarization/internal/niblack_functor.hh | 14 +-
.../binarization/internal/niblack_functor_fast.hh | 12 +
.../internal/niblack_threshold_functor.hh | 18 +-
.../binarization/internal/sauvola_functor.hh | 18 +
.../binarization/internal/sauvola_ms_functor.hh | 18 +-
.../internal/sauvola_threshold_functor.hh | 22 +-
.../scribo/binarization/internal/singh_formula.hh | 13 +-
.../scribo/binarization/internal/singh_functor.hh | 14 +
.../scribo/binarization/internal/wolf_functor.hh | 17 +-
.../binarization/internal/wolf_functor_fast.hh | 15 +
scribo/scribo/binarization/kim.hh | 25 +-
scribo/scribo/binarization/local_threshold.hh | 9 +-
scribo/scribo/binarization/niblack.hh | 3 +-
scribo/scribo/binarization/niblack_fast.hh | 23 +-
scribo/scribo/binarization/niblack_threshold.hh | 17 +-
scribo/scribo/binarization/otsu.hh | 10 +-
scribo/scribo/binarization/otsu_threshold.hh | 15 +-
scribo/scribo/binarization/sauvola.hh | 3 +-
scribo/scribo/binarization/sauvola_ms.hh | 75 +-
scribo/scribo/binarization/sauvola_ms_split.hh | 22 +-
scribo/scribo/binarization/sauvola_threshold.hh | 5 +-
scribo/scribo/binarization/singh.hh | 13 +-
scribo/scribo/binarization/wolf.hh | 60 +-
scribo/scribo/binarization/wolf_fast.hh | 56 +-
scribo/scribo/canvas/integral_browsing.hh | 14 +-
scribo/scribo/convert/from_base64.hh | 9 +-
scribo/scribo/convert/to_base64.hh | 3 +-
scribo/scribo/core/central_sites.hh | 3 +-
scribo/scribo/core/component_info.hh | 17 +-
scribo/scribo/core/component_set.hh | 190 +++-
scribo/scribo/core/concept/serializable.hh | 9 +-
scribo/scribo/core/document.hh | 58 +-
scribo/scribo/core/erase_objects.hh | 3 +-
scribo/scribo/core/init_integral_image.hh | 3 +-
scribo/scribo/core/line_info.hh | 4 +-
scribo/scribo/core/line_set.hh | 23 +-
scribo/scribo/core/object_links.hh | 61 +-
scribo/scribo/core/paragraph_info.hh | 4 +-
scribo/scribo/core/paragraph_set.hh | 7 +
scribo/scribo/core/tag/component.hh | 56 +-
scribo/scribo/debug/alignment_decision_image.hh | 3 +-
scribo/scribo/debug/bboxes_enlarged_image.hh | 3 +-
scribo/scribo/debug/bboxes_image.hh | 9 +-
scribo/scribo/debug/char_space_image.hh | 3 +-
scribo/scribo/debug/decision_image.hh | 6 +-
scribo/scribo/debug/highlight_text_area.hh | 12 +-
scribo/scribo/debug/line_info_image.hh | 3 +-
scribo/scribo/debug/linked_bboxes_image.hh | 9 +-
scribo/scribo/debug/links_decision_image.hh | 3 +-
scribo/scribo/debug/links_image.hh | 8 +-
scribo/scribo/debug/logger.hh | 70 +-
.../scribo/debug/looks_like_a_text_line_image.hh | 3 +-
scribo/scribo/debug/mean_and_base_lines_image.hh | 3 +-
scribo/scribo/debug/save_comp_diff.hh | 3 +-
scribo/scribo/debug/save_label_image.hh | 3 +-
scribo/scribo/debug/save_table_image.hh | 6 +-
scribo/scribo/debug/text_areas_image.hh | 3 +-
scribo/scribo/draw/bounding_box_links.hh | 9 +-
scribo/scribo/draw/bounding_boxes.hh | 6 +-
scribo/scribo/draw/groups_bboxes.hh | 3 +-
scribo/scribo/draw/line_components.hh | 3 +-
scribo/scribo/estim/components_features.hh | 3 +-
scribo/scribo/estim/font_boldness.hh | 12 +-
scribo/scribo/estim/font_color.hh | 9 +-
scribo/scribo/estim/internal/compute_skeleton.hh | 3 +-
scribo/scribo/estim/object_groups_mean_width.hh | 3 +-
scribo/scribo/filter/common/objects_photo.hh | 3 +-
scribo/scribo/filter/images_in_paragraph.hh | 5 +-
scribo/scribo/filter/internal/alignment_angle.hh | 11 +-
scribo/scribo/filter/internal/component_aligned.hh | 3 +-
scribo/scribo/filter/internal/compute.hh | 6 +-
scribo/scribo/filter/object_groups_mean_width.hh | 3 +-
scribo/scribo/filter/object_groups_size_ratio.hh | 3 +-
scribo/scribo/filter/object_groups_small.hh | 3 +-
scribo/scribo/filter/object_groups_with_holes.hh | 7 +-
scribo/scribo/filter/object_links_aligned.hh | 3 +-
scribo/scribo/filter/object_links_bbox_h_ratio.hh | 3 +-
scribo/scribo/filter/object_links_bbox_overlap.hh | 3 +-
scribo/scribo/filter/object_links_bbox_ratio.hh | 3 +-
scribo/scribo/filter/object_links_bbox_w_ratio.hh | 3 +-
.../scribo/filter/object_links_bottom_aligned.hh | 3 +-
.../scribo/filter/object_links_center_aligned.hh | 3 +-
scribo/scribo/filter/object_links_left_aligned.hh | 3 +-
.../filter/object_links_non_aligned_simple.hh | 3 +-
scribo/scribo/filter/object_links_right_aligned.hh | 3 +-
scribo/scribo/filter/object_links_top_aligned.hh | 3 +-
scribo/scribo/filter/objects_h_thick.hh | 6 +-
scribo/scribo/filter/objects_h_thin.hh | 6 +-
scribo/scribo/filter/objects_in_borders.hh | 142 +++
scribo/scribo/filter/objects_large.hh | 6 +-
scribo/scribo/filter/objects_on_border.hh | 3 +-
scribo/scribo/filter/objects_size_ratio.hh | 3 +-
scribo/scribo/filter/objects_small.hh | 6 +-
scribo/scribo/filter/objects_thick.hh | 6 +-
scribo/scribo/filter/objects_thin.hh | 6 +-
scribo/scribo/filter/objects_v_thick.hh | 6 +-
scribo/scribo/filter/objects_v_thin.hh | 6 +-
scribo/scribo/filter/objects_with_holes.hh | 8 +-
scribo/scribo/filter/paragraphs_bbox_overlap.hh | 3 +-
scribo/scribo/filter/paragraphs_in_borders.hh | 53 +-
scribo/scribo/filter/paragraphs_in_image.hh | 3 +-
scribo/scribo/filter/separators_in_borders.hh | 66 +-
scribo/scribo/filter/separators_in_element.hh | 3 +-
scribo/scribo/filter/separators_in_paragraph.hh | 3 +-
scribo/scribo/filter/separators_vert_in_borders.hh | 54 +-
scribo/scribo/io/img/save.hh | 8 +-
scribo/scribo/io/text_boxes/save.hh | 3 +-
scribo/scribo/io/xml/internal/save_image_to_xml.hh | 3 +-
scribo/scribo/io/xml/save.hh | 6 +-
scribo/scribo/layout/xy_cut.hh | 32 +-
scribo/scribo/make/debug_filename.hh | 8 +-
scribo/scribo/make/influence_zone_graph.hh | 3 +-
scribo/scribo/make/text_blocks_image.hh | 3 +-
scribo/scribo/make/text_components_image.hh | 8 +-
scribo/scribo/postprocessing/fill_object_holes.hh | 16 +-
.../postprocessing/images_to_drop_capital.hh | 3 +-
scribo/scribo/preprocessing/crop.hh | 3 +-
.../preprocessing/crop_without_localization.hh | 3 +-
scribo/scribo/preprocessing/denoise.hh | 3 +-
scribo/scribo/preprocessing/denoise_bg.hh | 3 +-
scribo/scribo/preprocessing/denoise_fg.hh | 3 +-
scribo/scribo/preprocessing/deskew.hh | 5 +-
scribo/scribo/preprocessing/deskew_crop.hh | 3 +-
.../scribo/preprocessing/homogeneous_contrast.hh | 3 +-
scribo/scribo/preprocessing/rotate_90.hh | 3 +-
scribo/scribo/preprocessing/split_bg_fg.hh | 12 +-
scribo/scribo/primitive/extract/alignments.hh | 11 +-
scribo/scribo/primitive/extract/canvas.hh | 3 +-
scribo/scribo/primitive/extract/cells.hh | 3 +-
scribo/scribo/primitive/extract/components.hh | 46 +-
.../primitive/extract/horizontal_separators.hh | 3 +-
scribo/scribo/primitive/extract/internal/union.hh | 2 +-
.../scribo/primitive/extract/lines_discontinued.hh | 3 +-
.../primitive/extract/lines_h_discontinued.hh | 3 +-
scribo/scribo/primitive/extract/lines_h_pattern.hh | 3 +-
scribo/scribo/primitive/extract/lines_h_single.hh | 12 +-
scribo/scribo/primitive/extract/lines_h_thick.hh | 3 +-
.../primitive/extract/lines_h_thick_and_single.hh | 3 +-
.../primitive/extract/lines_h_thick_and_thin.hh | 3 +-
scribo/scribo/primitive/extract/lines_pattern.hh | 9 +-
scribo/scribo/primitive/extract/lines_thick.hh | 3 +-
.../primitive/extract/lines_v_discontinued.hh | 3 +-
scribo/scribo/primitive/extract/lines_v_pattern.hh | 3 +-
scribo/scribo/primitive/extract/lines_v_single.hh | 8 +-
scribo/scribo/primitive/extract/lines_v_thick.hh | 3 +-
.../primitive/extract/lines_v_thick_and_single.hh | 3 +-
scribo/scribo/primitive/extract/non_text.hh | 9 +-
scribo/scribo/primitive/extract/non_text_hdoc.hh | 5 +-
scribo/scribo/primitive/extract/non_text_kmean.hh | 5 +-
scribo/scribo/primitive/extract/separators.hh | 3 +-
.../primitive/extract/separators_nonvisible.hh | 3 +-
.../primitive/extract/vertical_separators.hh | 3 +-
scribo/scribo/primitive/group/apply.hh | 6 +-
scribo/scribo/primitive/group/from_double_link.hh | 3 +-
.../scribo/primitive/group/from_double_link_any.hh | 3 +-
scribo/scribo/primitive/group/from_graph.hh | 3 +-
scribo/scribo/primitive/group/from_single_link.hh | 3 +-
scribo/scribo/primitive/identify.hh | 8 +-
.../scribo/primitive/internal/find_graph_link.hh | 3 +-
scribo/scribo/primitive/internal/rd.hh | 6 +-
.../scribo/primitive/internal/update_graph_link.hh | 3 +-
scribo/scribo/primitive/link/compute.hh | 3 +-
scribo/scribo/primitive/link/compute_several.hh | 3 +-
.../primitive/link/internal/compute_anchor.hh | 4 +-
.../primitive/link/internal/find_several_links.hh | 4 +-
.../primitive/link/internal/link_functor_base.hh | 2 +-
scribo/scribo/primitive/link/merge_double_link.hh | 3 +-
.../link/merge_double_link_closest_aligned.hh | 5 +-
scribo/scribo/primitive/link/with_graph.hh | 3 +-
scribo/scribo/primitive/link/with_rag.hh | 3 +-
.../scribo/primitive/link/with_several_graphes.hh | 3 +-
.../primitive/link/with_several_left_links.hh | 3 +-
.../link/with_several_right_closest_links.hh | 3 +-
.../primitive/link/with_several_right_links.hh | 3 +-
.../link/with_several_right_links_overlap.hh | 3 +-
.../scribo/primitive/link/with_single_down_link.hh | 3 +-
.../scribo/primitive/link/with_single_left_link.hh | 3 +-
.../link/with_single_left_link_dmax_ratio.hh | 3 +-
.../with_single_left_link_dmax_ratio_aligned.hh | 14 +-
.../primitive/link/with_single_right_link.hh | 3 +-
.../link/with_single_right_link_bottom.hh | 3 +-
.../link/with_single_right_link_dmax_ratio.hh | 3 +-
.../with_single_right_link_dmax_ratio_aligned.hh | 3 +-
.../primitive/link/with_single_right_link_top.hh | 3 +-
.../scribo/primitive/link/with_single_up_link.hh | 3 +-
scribo/scribo/primitive/merge/components.hh | 3 +-
.../primitive/regroup/from_single_left_link.hh | 3 +-
.../regroup/from_single_left_link_wrt_h_ratio.hh | 3 +-
scribo/scribo/primitive/remove/separators.hh | 3 +-
scribo/scribo/subsampling/bilinear.hh | 7 +-
scribo/scribo/subsampling/integral.hh | 12 +-
scribo/scribo/subsampling/integral_single_image.hh | 12 +-
scribo/scribo/table/align_lines_horizontaly.hh | 3 +-
scribo/scribo/table/align_lines_verticaly.hh | 3 +-
scribo/scribo/table/connect_horizontal_lines.hh | 3 +-
scribo/scribo/table/connect_vertical_lines.hh | 3 +-
scribo/scribo/table/erase.hh | 3 +-
scribo/scribo/table/extract.hh | 3 +-
scribo/scribo/table/internal/align_lines.hh | 3 +-
scribo/scribo/table/internal/connect_lines.hh | 3 +-
scribo/scribo/table/internal/repair_lines.hh | 3 +-
scribo/scribo/table/rebuild.hh | 3 +-
scribo/scribo/table/repair_horizontal_lines.hh | 3 +-
scribo/scribo/table/repair_vertical_lines.hh | 3 +-
scribo/scribo/text/clean.hh | 3 +-
scribo/scribo/text/clean_inplace.hh | 3 +-
scribo/scribo/text/extract_lines.hh | 6 +-
scribo/scribo/text/extract_lines_with_features.hh | 3 +-
scribo/scribo/text/extract_lines_wo_merge.hh | 3 +-
scribo/scribo/text/extract_paragraphs_hdoc.hh | 5 +-
scribo/scribo/text/link_lines.hh | 8 +-
scribo/scribo/text/look_like_text_lines.hh | 6 +-
scribo/scribo/text/merging_hdoc.hh | 112 +--
scribo/scribo/text/paragraphs_closing.hh | 3 +-
scribo/scribo/text/recognition.hh | 12 +-
.../internal/text_in_doc_preprocess_functor.hh | 2 +-
scribo/scribo/toolchain/nepomuk/text_extraction.hh | 3 +-
scribo/scribo/toolchain/text_in_doc_preprocess.hh | 5 +-
scribo/scribo/toolchain/text_in_picture.hh | 3 +-
scribo/scribo/upsampling/bs2x.hh | 3 +-
scribo/scribo/upsampling/eagle.hh | 3 +-
scribo/scribo/util/box_intersection.hh | 3 +-
scribo/scribo/util/box_is_included.hh | 3 +-
scribo/scribo/util/component_precise_outline.hh | 13 +-
scribo/scribo/util/compute_sub_domains.hh | 3 +-
scribo/scribo/util/hex_to_color.hh | 3 +-
scribo/scribo/util/init_integral_image.hh | 12 +-
scribo/src/afp/regroup.hh | 5 +-
scribo/src/binarization/global_threshold.cc | 9 +-
scribo/src/binarization/kim.cc | 7 +-
scribo/src/binarization/niblack.cc | 5 +-
scribo/src/binarization/otsu.cc | 5 +-
.../src/binarization/pgm_global_threshold_auto.cc | 3 +-
.../binarization/pgm_niblack_threshold_image.cc | 3 +-
scribo/src/binarization/sauvola.cc | 9 +-
scribo/src/binarization/sauvola_debug.cc | 3 +-
scribo/src/binarization/sauvola_ms.cc | 8 +-
scribo/src/binarization/sauvola_ms_debug.cc | 12 +-
scribo/src/binarization/sauvola_ms_fg.cc | 8 +-
scribo/src/binarization/sauvola_ms_split.cc | 6 +-
scribo/src/binarization/singh.cc | 8 +-
scribo/src/binarization/wolf.cc | 5 +-
scribo/src/content_in_doc.cc | 5 +-
scribo/src/content_in_hdoc.cc | 5 +-
scribo/src/contest/DAE-2011/content_in_doc_dae.cc | 9 +-
scribo/src/contest/DAE-2011/content_in_hdoc_dae.cc | 9 +-
scribo/src/contest/Makefile.am | 6 +-
scribo/src/contest/hbr-2013/Makefile.am | 33 +
scribo/src/contest/hbr-2013/content_in_hdoc_hbr.cc | 148 +++
.../contest/hdlac-2011/content_in_hdoc_hdlac.cc | 7 +-
scribo/src/contest/hnla-2013/Makefile.am | 33 +
.../src/contest/hnla-2013/content_in_hdoc_hnla.cc | 149 +++
scribo/src/debug/highlight_text_area.cc | 3 +-
scribo/src/debug/show_components_boldness.cc | 5 +-
scribo/src/debug/show_components_color.cc | 6 +-
.../src/debug/show_info_median_inter_characters.cc | 3 +-
scribo/src/debug/show_info_x_height.cc | 3 +-
scribo/src/debug/show_lines_boldness.cc | 3 +-
scribo/src/debug/show_objects_large.cc | 2 +-
scribo/src/debug/show_objects_large_small.cc | 2 +-
scribo/src/debug/show_objects_small.cc | 2 +-
scribo/src/debug/show_objects_thick.cc | 2 +-
scribo/src/debug/show_objects_thin.cc | 2 +-
scribo/src/debug/show_paragraph_blocks.cc | 3 +-
scribo/src/debug/show_separators.cc | 3 +-
scribo/src/debug/show_stoppers.cc | 3 +-
scribo/src/debug/show_text_lines.cc | 3 +-
scribo/src/debug/show_text_lines_wo_seps.cc | 3 +-
scribo/src/filter/objects_large.cc | 3 +-
scribo/src/filter/objects_small.cc | 3 +-
scribo/src/filter/objects_thick.cc | 3 +-
scribo/src/filter/objects_thin.cc | 3 +-
scribo/src/filter/objects_with_holes.cc | 3 +-
scribo/src/filter/objects_with_holes_pgm.cc | 3 +-
scribo/src/misc/negate.cc | 7 +-
scribo/src/misc/superpose.cc | 7 +-
scribo/src/non_text_components.cc | 9 +-
scribo/src/pbm_text_in_doc.cc | 3 +-
scribo/src/postprocessing/fill_object_holes.cc | 3 +-
scribo/src/preprocessing/denoise_bg.cc | 3 +-
scribo/src/preprocessing/denoise_fg.cc | 3 +-
scribo/src/preprocessing/preprocess.cc | 3 +-
scribo/src/preprocessing/rotate.cc | 5 +-
scribo/src/preprocessing/rotate_90.cc | 5 +-
scribo/src/preprocessing/split_bg_fg.cc | 7 +-
scribo/src/preprocessing/subsample.cc | 3 +-
scribo/src/preprocessing/unskew.cc | 7 +-
scribo/src/primitive/extract/alignments.cc | 3 +-
.../src/primitive/extract/discontinued_hlines.cc | 3 +-
scribo/src/primitive/extract/discontinued_lines.cc | 3 +-
.../src/primitive/extract/discontinued_vlines.cc | 3 +-
scribo/src/primitive/extract/lines_pattern.cc | 5 +-
.../src/primitive/extract/separators_nonvisible.cc | 3 +-
scribo/src/primitive/extract/thick_hlines.cc | 3 +-
scribo/src/primitive/extract/thick_vlines.cc | 3 +-
.../src/primitive/find/find_discontinued_lines.cc | 3 +-
scribo/src/primitive/find/find_pattern_lines.cc | 3 +-
scribo/src/primitive/find/find_single_lines.cc | 3 +-
.../primitive/find/find_thick_and_single_lines.cc | 3 +-
scribo/src/primitive/find/find_thick_lines.cc | 3 +-
scribo/src/primitive/remove/separators.cc | 3 +-
scribo/src/table/erase.cc | 3 +-
scribo/src/table/extract.cc | 3 +-
scribo/src/text/cleantxt.cc | 3 +-
scribo/src/text/pbm_lines_recognition.cc | 3 +-
scribo/src/text/pbm_recognition.cc | 3 +-
scribo/src/text_in_doc_preprocess.cc | 6 +-
scribo/src/text_in_picture.cc | 7 +-
scribo/src/text_in_picture_dual.cc | 8 +-
scribo/src/text_recognition_in_picture.cc | 7 +-
scribo/src/util/component_precise_outline.cc | 3 +-
scribo/tests/Makefile.am | 4 +
scribo/tests/binarization/Makefile.am | 7 +-
scribo/tests/binarization/niblack.cc | 16 +-
scribo/tests/binarization/wolf.cc | 16 +-
scribo/tests/primitive/extract/Makefile.am | 3 +-
scribo/tests/unit_test/unit-tests.mk | 2 +
swilena/ChangeLog | 299 +++++
swilena/Makefile.am | 12 +-
swilena/box.ixx | 2 +-
swilena/box2d.i | 7 +-
swilena/box_piter.ixx | 3 +-
swilena/complex.ixx | 330 ++++++
swilena/complex2.i | 111 ++
swilena/concat.ixx | 4 +-
swilena/image2d.ixx | 30 +-
swilena/image2d_int.i | 5 +-
swilena/image2d_int_u8.i | 12 +-
swilena/image2d_point2d.i | 53 +
swilena/image2d_rgb8.i | 63 ++
swilena/int_u.ixx | 24 +-
swilena/int_u32.i | 40 -
swilena/morpho.ixx | 43 +-
swilena/ppm.ixx | 57 +
swilena/python-utils.ixx | 3 +-
swilena/python/Makefile.am | 202 +++-
swilena/python/complex2-misc.py | 99 ++
swilena/python/data.py | 26 -
swilena/python/data.py.in | 26 +
swilena/python/installcheck.mk | 116 ++
swilena/python/ltihooks.py | 60 -
swilena/python/max-tree.py | 57 +
swilena/python/morpho-segm.py | 8 +-
swilena/python/sps-gdb-local.in | 6 +
swilena/python/sps-local.in | 2 +-
swilena/python/swilena.py | 13 +-
swilena/rgb.ixx | 159 +++
swilena/rgb8.i | 40 +
swilena/run.in | 50 +-
1130 files changed, 12571 insertions(+), 11486 deletions(-)
delete mode 100644 GScribo/BUGS
delete mode 100644 GScribo/GScribo.pro
delete mode 100644 GScribo/GScribo.pro.user
delete mode 100644 GScribo/GScribo.pro.user.1.3
delete mode 100644 GScribo/PagesWidget/pagesdelegate.cpp
delete mode 100644 GScribo/PagesWidget/pagesdelegate.h
delete mode 100644 GScribo/PagesWidget/pagesmodel.cpp
delete mode 100644 GScribo/PagesWidget/pagesmodel.h
delete mode 100644 GScribo/PagesWidget/pageswidget.cpp
delete mode 100644 GScribo/PagesWidget/pageswidget.h
delete mode 100644 GScribo/Preferences/generaloptions.cpp
delete mode 100644 GScribo/Preferences/generaloptions.h
delete mode 100644 GScribo/Preferences/generaloptions.ui
delete mode 100644 GScribo/Preferences/ocroptions.cpp
delete mode 100644 GScribo/Preferences/ocroptions.h
delete mode 100644 GScribo/Preferences/ocroptions.ui
delete mode 100644 GScribo/Preferences/optionwidget.h
delete mode 100644 GScribo/Preferences/preferencesdialog.cpp
delete mode 100644 GScribo/Preferences/preferencesdialog.h
delete mode 100644 GScribo/Preferences/preferencesdialog.ui
delete mode 100644 GScribo/Preferences/preprocessingoptions.cpp
delete mode 100644 GScribo/Preferences/preprocessingoptions.h
delete mode 100644 GScribo/Preferences/preprocessingoptions.ui
delete mode 100644 GScribo/Preferences/segmentationoptions.cpp
delete mode 100644 GScribo/Preferences/segmentationoptions.h
delete mode 100644 GScribo/Preferences/segmentationoptions.ui
delete mode 100644 GScribo/Processing/preprocess.cpp
delete mode 100644 GScribo/Processing/preprocess.h
delete mode 100644 GScribo/Processing/process.cpp
delete mode 100644 GScribo/Processing/process.h
delete mode 100644 GScribo/Processing/progressdialog.cpp
delete mode 100644 GScribo/Processing/progressdialog.h
delete mode 100644 GScribo/Processing/runner.cpp
delete mode 100644 GScribo/Processing/runner.h
delete mode 100644 GScribo/Rendering/abstractregionitem.h
delete mode 100644 GScribo/Rendering/backgroundtexture.h
delete mode 100644 GScribo/Rendering/graphicsview.cpp
delete mode 100644 GScribo/Rendering/graphicsview.h
delete mode 100644 GScribo/Rendering/regionitem.cpp
delete mode 100644 GScribo/Rendering/regionitem.h
delete mode 100644 GScribo/Rendering/rootgraphicsitem.h
delete mode 100644 GScribo/Rendering/scene.cpp
delete mode 100644 GScribo/Rendering/scene.h
delete mode 100644 GScribo/Rendering/selection.cpp
delete mode 100644 GScribo/Rendering/selection.h
delete mode 100644 GScribo/TODO
delete mode 100644 GScribo/XmlWidget/attributesmodel.cpp
delete mode 100644 GScribo/XmlWidget/attributesmodel.h
delete mode 100644 GScribo/XmlWidget/selectionproxy.h
delete mode 100644 GScribo/XmlWidget/xmlattributes.cpp
delete mode 100644 GScribo/XmlWidget/xmlattributes.h
delete mode 100644 GScribo/XmlWidget/xmldelegate.h
delete mode 100644 GScribo/XmlWidget/xmlitem.cpp
delete mode 100644 GScribo/XmlWidget/xmlitem.h
delete mode 100644 GScribo/XmlWidget/xmlmodel.cpp
delete mode 100644 GScribo/XmlWidget/xmlmodel.h
delete mode 100644 GScribo/XmlWidget/xmlview.cpp
delete mode 100644 GScribo/XmlWidget/xmlview.h
delete mode 100644 GScribo/XmlWidget/xmlwidget.cpp
delete mode 100644 GScribo/XmlWidget/xmlwidget.h
delete mode 100644 GScribo/aboutdialog.h
delete mode 100644 GScribo/aboutdialog.ui
delete mode 100644 GScribo/configs.h
delete mode 100644 GScribo/dir.h
delete mode 100644 GScribo/dockwidget.h
delete mode 100644 GScribo/main.cpp
delete mode 100644 GScribo/mainwindow.cpp
delete mode 100644 GScribo/mainwindow.h
delete mode 100644 GScribo/mainwindow.ui
delete mode 100644 GScribo/region.h
delete mode 100644 GScribo/regionwidget.cpp
delete mode 100644 GScribo/regionwidget.h
delete mode 100644 GScribo/variantpointer.h
delete mode 100644 GScribo/xml.cpp
delete mode 100644 GScribo/xml.h
create mode 100644 milena/doc/examples.dox
create mode 100644 milena/doc/examples/multi_files_f1.cc.raw
create mode 100644 milena/doc/examples/multi_files_f2.cc.raw
create mode 100644 milena/doc/examples/multi_files_main.cc.raw
create mode 100644 milena/doc/examples/multiple_def.cc.raw
create mode 100644 milena/doc/examples/typenametemplate.cc.raw
create mode 100644 milena/doc/examples/undef_global_vars.cc.raw
create mode 100644 milena/doc/examples/wrongvaluetype.cc.raw
create mode 100644 milena/doc/img/2dgrid.png
create mode 100644 milena/doc/mln/convert.dox
create mode 100644 milena/doc/mln/core/alias/box1d.dox
create mode 100644 milena/doc/mln/core/alias/box2d.dox
create mode 100644 milena/doc/mln/core/alias/box2d_h.dox
create mode 100644 milena/doc/mln/core/alias/box3d.dox
create mode 100644 milena/doc/mln/core/alias/complex_geometry.dox
create mode 100644 milena/doc/mln/core/alias/complex_image.dox
create mode 100644 milena/doc/mln/core/alias/dpoint1d.dox
create mode 100644 milena/doc/mln/core/alias/dpoint2d.dox
create mode 100644 milena/doc/mln/core/alias/dpoint3d.dox
create mode 100644 milena/doc/mln/core/alias/neighb1d.dox
create mode 100644 milena/doc/mln/core/alias/neighb2d.dox
create mode 100644 milena/doc/mln/core/alias/neighb3d.dox
create mode 100644 milena/doc/mln/core/alias/p_run2d.dox
create mode 100644 milena/doc/mln/core/alias/p_runs2d.dox
create mode 100644 milena/doc/mln/core/alias/point1d.dox
create mode 100644 milena/doc/mln/core/alias/point2d.dox
create mode 100644 milena/doc/mln/core/alias/point2d_h.dox
create mode 100644 milena/doc/mln/core/alias/point3d.dox
create mode 100644 milena/doc/mln/core/alias/vec2d.dox
create mode 100644 milena/doc/mln/core/alias/vec3d.dox
create mode 100644 milena/doc/mln/core/alias/w_window1d_float.dox
create mode 100644 milena/doc/mln/core/alias/w_window1d_int.dox
create mode 100644 milena/doc/mln/core/alias/w_window2d_float.dox
create mode 100644 milena/doc/mln/core/alias/w_window2d_int.dox
create mode 100644 milena/doc/mln/core/alias/w_window3d_float.dox
create mode 100644 milena/doc/mln/core/alias/w_window3d_int.dox
create mode 100644 milena/doc/mln/core/alias/window1d.dox
create mode 100644 milena/doc/mln/core/alias/window2d.dox
create mode 100644 milena/doc/mln/core/alias/window3d.dox
create mode 100644 milena/doc/mln/core/concept/concept.dox
create mode 100644 milena/doc/mln/labeling/labeling.dox
create mode 100644 milena/doc/mln/value/hsl.dox
create mode 100644 milena/doc/mln/value/int_s16.dox
create mode 100644 milena/doc/mln/value/int_s24.dox
create mode 100644 milena/doc/mln/value/int_s32.dox
create mode 100644 milena/doc/mln/value/int_s8.dox
create mode 100644 milena/doc/mln/value/int_u12.dox
create mode 100644 milena/doc/mln/value/int_u16.dox
create mode 100644 milena/doc/mln/value/int_u24.dox
create mode 100644 milena/doc/mln/value/int_u32.dox
create mode 100644 milena/doc/mln/value/int_u8.dox
create mode 100644 milena/doc/mln/value/label_16.dox
create mode 100644 milena/doc/mln/value/label_32.dox
create mode 100644 milena/doc/mln/value/label_8.dox
create mode 100644 milena/doc/mln/value/rgb16.dox
create mode 100644 milena/doc/mln/value/rgb8.dox
create mode 100644 milena/doc/mln/value/value.dox
create mode 100644 milena/doc/mln/win/disk2d.dox
create mode 100644 milena/doc/mln/win/hline2d.dox
create mode 100644 milena/doc/mln/win/segment1d.dox
create mode 100644 milena/doc/mln/win/sline3d.dox
create mode 100644 milena/doc/mln/win/sphere3d.dox
create mode 100644 milena/doc/mln/win/vline2d.dox
create mode 100644 milena/mln/debug/trace.hh
create mode 100755 milena/mln/fun/v2b/always_false.hh
create mode 100755 milena/mln/fun/v2b/always_true.hh
create mode 100644 milena/mln/io/magick/internal/init_magick.hh
delete mode 120000 milena/mln/linear/.#ch_convolve.hh
delete mode 100644 milena/mln/morpho/meyer_wst.hh
create mode 100644 milena/mln/registration/all.hh
delete mode 100644 milena/mln/trace/all.hh
delete mode 100644 milena/mln/trace/entering.hh
delete mode 100644 milena/mln/trace/essential.hh
delete mode 100644 milena/mln/trace/exiting.hh
delete mode 100644 milena/mln/trace/quiet.hh
delete mode 100644 milena/mln/trace/resume.hh
delete mode 100644 milena/mln/trace/stop.hh
delete mode 100644 milena/mln/trace/warning.hh
create mode 100644 milena/tests/labeling/foreground.ref.pgm
delete mode 100644 milena/tests/morpho/meyer_wst.cc
delete mode 100644 milena/tests/morpho/meyer_wst_long.cc
create mode 100644 milena/tests/unit_test/cond_tests_poppler
create mode 100644 scribo/doc/scribo/binarization/kim.dox
create mode 100644 scribo/doc/scribo/binarization/wolf.dox
create mode 100644 scribo/doc/scribo/layout/layout.dox
create mode 100644 scribo/doc/scribo/namespaces.dox
create mode 100644 scribo/doc/scribo/primitive/extract/components.dox
create mode 100644 scribo/doc/scribo/primitive/extract/extract.dox
create mode 100644 scribo/scribo/binarization/internal/global_max_stddev_functor.hh
create mode 100644 scribo/scribo/filter/objects_in_borders.hh
create mode 100644 scribo/src/contest/hbr-2013/Makefile.am
create mode 100644 scribo/src/contest/hbr-2013/content_in_hdoc_hbr.cc
create mode 100644 scribo/src/contest/hnla-2013/Makefile.am
create mode 100644 scribo/src/contest/hnla-2013/content_in_hdoc_hnla.cc
create mode 100644 swilena/complex.ixx
create mode 100644 swilena/complex2.i
create mode 100644 swilena/image2d_point2d.i
create mode 100644 swilena/image2d_rgb8.i
delete mode 100644 swilena/int_u32.i
create mode 100644 swilena/ppm.ixx
create mode 100644 swilena/python/complex2-misc.py
delete mode 100644 swilena/python/data.py
create mode 100644 swilena/python/data.py.in
create mode 100644 swilena/python/installcheck.mk
delete mode 100644 swilena/python/ltihooks.py
create mode 100644 swilena/python/max-tree.py
create mode 100644 swilena/python/sps-gdb-local.in
create mode 100644 swilena/rgb.ixx
create mode 100644 swilena/rgb8.i
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0

olena-2.0-550-gb14fad4 Make template parameter name more consistant with naming conventions.
by Guillaume Lazzara 19 Apr '13
by Guillaume Lazzara 19 Apr '13
19 Apr '13
* mln/core/image/image1d.hh,
* mln/core/image/image2d.hh,
* mln/core/image/image3d.hh: Here.
---
milena/ChangeLog | 9 ++
milena/mln/core/image/image1d.hh | 278 ++++++++++++++++++------------------
milena/mln/core/image/image2d.hh | 290 +++++++++++++++++++-------------------
milena/mln/core/image/image3d.hh | 290 +++++++++++++++++++-------------------
4 files changed, 438 insertions(+), 429 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index edf3a65..e081229 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,12 @@
+2013-04-19 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Make template parameter name more consistant with naming
+ conventions.
+
+ * mln/core/image/image1d.hh,
+ * mln/core/image/image2d.hh,
+ * mln/core/image/image3d.hh: Here.
+
2013-04-17 Guillaume Lazzara <z(a)lrde.epita.fr>
* doc/mln/convert.dox: Fix from_to_ module name.
diff --git a/milena/mln/core/image/image1d.hh b/milena/mln/core/image/image1d.hh
index 0cac67d..aaa1ec2 100644
--- a/milena/mln/core/image/image1d.hh
+++ b/milena/mln/core/image/image1d.hh
@@ -52,7 +52,7 @@ namespace mln
{
// Forward declaration.
- template <typename T> struct image1d;
+ template <typename V> struct image1d;
namespace internal
@@ -60,16 +60,16 @@ namespace mln
/*!
\internal
- \brief Data structure for \c mln::image1d<T>.
+ \brief Data structure for \c mln::image1d<V>.
*/
- template <typename T>
- struct data< image1d<T> >
+ template <typename V>
+ struct data< image1d<V> >
{
data(const box1d& b, unsigned bdr);
~data();
- T* buffer_;
- T* array_;
+ V* buffer_;
+ V* array_;
box1d b_; // theoretical box
unsigned bdr_;
@@ -78,7 +78,7 @@ namespace mln
void update_vb_();
void allocate_();
void deallocate_();
- void swap_ (data< image1d<T> >& other_);
+ void swap_ (data< image1d<V> >& other_);
void reallocate_(unsigned new_border);
};
@@ -89,8 +89,8 @@ namespace mln
namespace trait
{
- template <typename T>
- struct image_< image1d<T> > : default_image_< T, image1d<T> >
+ template <typename V>
+ struct image_< image1d<V> > : default_image_< V, image1d<V> >
{
// misc
typedef trait::image::category::primary category;
@@ -122,7 +122,7 @@ namespace mln
// Forward declaration.
- template <typename T> struct image1d;
+ template <typename V> struct image1d;
/// Basic 1D image class.
@@ -133,23 +133,23 @@ namespace mln
///
/// \ingroup modimageconcrete
//
- template <typename T>
+ template <typename V>
struct image1d :
- public internal::image_primary< T, box1d, image1d<T> >
+ public internal::image_primary< V, box1d, image1d<V> >
{
- typedef internal::image_primary< T, mln::box1d, image1d<T> > super_;
+ typedef internal::image_primary< V, mln::box1d, image1d<V> > super_;
/// Value associated type.
- typedef T value;
+ typedef V value;
/// Return type of read-only access.
- typedef const T& rvalue;
+ typedef const V& rvalue;
/// Return type of read-write access.
- typedef T& lvalue;
+ typedef V& lvalue;
/// Skeleton.
- typedef image1d< tag::value_<T> > skeleton;
+ typedef image1d< tag::value_<V> > skeleton;
/// Constructor without argument.
@@ -185,10 +185,10 @@ namespace mln
unsigned border() const;
/// Read-only access to the image value located at point \p p.
- const T& operator()(const point1d& p) const;
+ const V& operator()(const point1d& p) const;
/// Read-write access to the image value located at point \p p.
- T& operator()(const point1d& p);
+ V& operator()(const point1d& p);
// Specific methods:
@@ -197,10 +197,10 @@ namespace mln
/// \cond INTERNAL_API
/// Read-only access to the image value located at (\p offset).
- const T& at_(def::coord offset) const;
+ const V& at_(def::coord offset) const;
/// Read-write access to the image value located at (\p offset).
- T& at_(def::coord offset);
+ V& at_(def::coord offset);
/// Give the number of offsets.
unsigned ninds() const;
@@ -220,18 +220,18 @@ namespace mln
point1d point_at_offset(unsigned i) const;
/// Give a hook to the value buffer.
- const T* buffer() const;
+ const V* buffer() const;
/// Give a hook to the value buffer.
- T* buffer();
+ V* buffer();
/// Read-only access to the \p i-th image value (including the
/// border).
- const T& element(unsigned i) const;
+ const V& element(unsigned i) const;
/// Read-write access to the \p i-th image value (including the
/// border).
- T& element(unsigned i);
+ V& element(unsigned i);
/// Give the number of cells (points including border ones).
unsigned nelements() const;
@@ -244,22 +244,22 @@ namespace mln
};
- template <typename T, typename J>
- void init_(tag::image_t, mln::image1d<T>& target, const J& model);
+ template <typename V, typename J>
+ void init_(tag::image_t, mln::image1d<V>& target, const J& model);
# ifndef MLN_INCLUDE_ONLY
// init_
- template <typename T>
+ template <typename V>
inline
- void init_(tag::border_t, unsigned& b, const image1d<T>& model)
+ void init_(tag::border_t, unsigned& b, const image1d<V>& model)
{
b = model.border();
}
- template <typename T, typename J>
+ template <typename V, typename J>
inline
- void init_(tag::image_t, image1d<T>& target, const J& model)
+ void init_(tag::image_t, image1d<V>& target, const J& model)
{
box1d b;
init_(tag::bbox, b, model);
@@ -268,14 +268,14 @@ namespace mln
target.init_(b, bdr);
}
- // internal::data< image1d<T> >
+ // internal::data< image1d<V> >
namespace internal
{
- template <typename T>
+ template <typename V>
inline
- data< image1d<T> >::data(const box1d& b, unsigned bdr)
+ data< image1d<V> >::data(const box1d& b, unsigned bdr)
: buffer_(0),
array_ (0),
b_ (b),
@@ -284,17 +284,17 @@ namespace mln
allocate_();
}
- template <typename T>
+ template <typename V>
inline
- data< image1d<T> >::~data()
+ data< image1d<V> >::~data()
{
deallocate_();
}
- template <typename T>
+ template <typename V>
inline
void
- data< image1d<T> >::update_vb_()
+ data< image1d<V> >::update_vb_()
{
dpoint1d dp(all_to(bdr_));
@@ -302,23 +302,23 @@ namespace mln
vb_.pmax() = b_.pmax() + dp;
}
- template <typename T>
+ template <typename V>
inline
void
- data< image1d<T> >::allocate_()
+ data< image1d<V> >::allocate_()
{
update_vb_();
unsigned
ni = vb_.len(0);
- buffer_ = new T[ni];
+ buffer_ = new V[ni];
array_ = buffer_ - vb_.pmin().ind();
mln_postcondition(vb_.len(0) == b_.len(0) + 2 * bdr_);
}
- template <typename T>
+ template <typename V>
inline
void
- data< image1d<T> >::deallocate_()
+ data< image1d<V> >::deallocate_()
{
if (buffer_)
{
@@ -328,212 +328,212 @@ namespace mln
}
- template <typename T>
+ template <typename V>
inline
void
- data< image1d<T> >::swap_(data< image1d<T> >& other_)
+ data< image1d<V> >::swap_(data< image1d<V> >& other_)
{
- data< image1d<T> > self_ = *this;
+ data< image1d<V> > self_ = *this;
*this = other_;
other_ = self_;
}
- template <typename T>
+ template <typename V>
inline
void
- data< image1d<T> >::reallocate_(unsigned new_border)
+ data< image1d<V> >::reallocate_(unsigned new_border)
{
- data< image1d<T> >& tmp = *(new data< image1d<T> >(this->b_, new_border));
+ data< image1d<V> >& tmp = *(new data< image1d<V> >(this->b_, new_border));
this->swap_(tmp);
}
} // end of namespace mln::internal
- // image1d<T>
+ // image1d<V>
- template <typename T>
+ template <typename V>
inline
- image1d<T>::image1d()
+ image1d<V>::image1d()
{
}
- template <typename T>
+ template <typename V>
inline
- image1d<T>::image1d(const box1d& b, unsigned bdr)
+ image1d<V>::image1d(const box1d& b, unsigned bdr)
{
init_(b, bdr);
}
- template <typename T>
+ template <typename V>
inline
- image1d<T>::image1d(unsigned ninds, unsigned bdr)
+ image1d<V>::image1d(unsigned ninds, unsigned bdr)
{
mln_precondition(ninds != 0);
init_(make::box1d(ninds), bdr);
}
- template <typename T>
+ template <typename V>
inline
void
- image1d<T>::init_(const box1d& b, unsigned bdr)
+ image1d<V>::init_(const box1d& b, unsigned bdr)
{
mln_precondition(! this->is_valid());
- this->data_ = new internal::data< image1d<T> >(b, bdr);
+ this->data_ = new internal::data< image1d<V> >(b, bdr);
}
- template <typename T>
+ template <typename V>
inline
const box1d&
- image1d<T>::domain() const
+ image1d<V>::domain() const
{
mln_precondition(this->is_valid());
return this->data_->b_;
}
- template <typename T>
+ template <typename V>
inline
const box1d&
- image1d<T>::bbox() const
+ image1d<V>::bbox() const
{
mln_precondition(this->is_valid());
return this->data_->b_;
}
- template <typename T>
+ template <typename V>
inline
const box1d&
- image1d<T>::vbbox() const
+ image1d<V>::vbbox() const
{
mln_precondition(this->is_valid());
return this->data_->vb_;
}
- template <typename T>
+ template <typename V>
inline
unsigned
- image1d<T>::border() const
+ image1d<V>::border() const
{
mln_precondition(this->is_valid());
return this->data_->bdr_;
}
- template <typename T>
+ template <typename V>
inline
unsigned
- image1d<T>::nelements() const
+ image1d<V>::nelements() const
{
mln_precondition(this->is_valid());
return this->data_->vb_.nsites();
}
- template <typename T>
+ template <typename V>
inline
bool
- image1d<T>::has(const point1d& p) const
+ image1d<V>::has(const point1d& p) const
{
mln_precondition(this->is_valid());
return this->data_->vb_.has(p);
}
- template <typename T>
+ template <typename V>
inline
- const T&
- image1d<T>::operator()(const point1d& p) const
+ const V&
+ image1d<V>::operator()(const point1d& p) const
{
mln_precondition(this->has(p));
return this->data_->array_[p.ind()];
}
- template <typename T>
+ template <typename V>
inline
- T&
- image1d<T>::operator()(const point1d& p)
+ V&
+ image1d<V>::operator()(const point1d& p)
{
mln_precondition(this->has(p));
return this->data_->array_[p.ind()];
}
- template <typename T>
+ template <typename V>
inline
- const T&
- image1d<T>::at_(def::coord offset) const
+ const V&
+ image1d<V>::at_(def::coord offset) const
{
mln_precondition(this->has(point1d(offset)));
return this->data_->array_[offset];
}
- template <typename T>
+ template <typename V>
inline
unsigned
- image1d<T>::ninds() const
+ image1d<V>::ninds() const
{
mln_precondition(this->is_valid());
return this->data_->b_.len(0);
}
- template <typename T>
+ template <typename V>
inline
- T&
- image1d<T>::at_(def::coord offset)
+ V&
+ image1d<V>::at_(def::coord offset)
{
mln_precondition(this->has(point1d(offset)));
return this->data_->array_[offset];
}
- template <typename T>
+ template <typename V>
inline
- const T&
- image1d<T>::element(unsigned i) const
+ const V&
+ image1d<V>::element(unsigned i) const
{
mln_precondition(i < nelements());
return this->data_->buffer_[i];
}
- template <typename T>
+ template <typename V>
inline
- T&
- image1d<T>::element(unsigned i)
+ V&
+ image1d<V>::element(unsigned i)
{
mln_precondition(i < nelements());
return this->data_->buffer_[i];
}
- template <typename T>
+ template <typename V>
inline
- const T*
- image1d<T>::buffer() const
+ const V*
+ image1d<V>::buffer() const
{
mln_precondition(this->is_valid());
return this->data_->buffer_;
}
- template <typename T>
+ template <typename V>
inline
- T*
- image1d<T>::buffer()
+ V*
+ image1d<V>::buffer()
{
mln_precondition(this->is_valid());
return this->data_->buffer_;
}
- template <typename T>
+ template <typename V>
inline
int
- image1d<T>::delta_offset(const dpoint1d& dp) const
+ image1d<V>::delta_offset(const dpoint1d& dp) const
{
mln_precondition(this->is_valid());
int o = dp[0];
return o;
}
- template <typename T>
+ template <typename V>
inline
point1d
- image1d<T>::point_at_offset(unsigned i) const
+ image1d<V>::point_at_offset(unsigned i) const
{
mln_precondition(i < nelements());
def::coord ind = static_cast<def::coord>(i + this->data_->vb_.min_ind());
@@ -542,10 +542,10 @@ namespace mln
return p;
}
- template <typename T>
+ template <typename V>
inline
void
- image1d<T>::resize_(unsigned new_border)
+ image1d<V>::resize_(unsigned new_border)
{
this->data_->reallocate_(new_border);
}
@@ -571,80 +571,80 @@ namespace mln
// pixter
- template <typename T>
- struct fwd_pixter< image1d<T> >
+ template <typename V>
+ struct fwd_pixter< image1d<V> >
{
- typedef fwd_pixter1d< image1d<T> > ret;
+ typedef fwd_pixter1d< image1d<V> > ret;
};
- template <typename T>
- struct fwd_pixter< const image1d<T> >
+ template <typename V>
+ struct fwd_pixter< const image1d<V> >
{
- typedef fwd_pixter1d< const image1d<T> > ret;
+ typedef fwd_pixter1d< const image1d<V> > ret;
};
- template <typename T>
- struct bkd_pixter< image1d<T> >
+ template <typename V>
+ struct bkd_pixter< image1d<V> >
{
- typedef bkd_pixter1d< image1d<T> > ret;
+ typedef bkd_pixter1d< image1d<V> > ret;
};
- template <typename T>
- struct bkd_pixter< const image1d<T> >
+ template <typename V>
+ struct bkd_pixter< const image1d<V> >
{
- typedef bkd_pixter1d< const image1d<T> > ret;
+ typedef bkd_pixter1d< const image1d<V> > ret;
};
// qixter
- template <typename T, typename W>
- struct fwd_qixter< image1d<T>, W >
+ template <typename V, typename W>
+ struct fwd_qixter< image1d<V>, W >
{
- typedef dpoints_fwd_pixter< image1d<T> > ret;
+ typedef dpoints_fwd_pixter< image1d<V> > ret;
};
- template <typename T, typename W>
- struct fwd_qixter< const image1d<T>, W >
+ template <typename V, typename W>
+ struct fwd_qixter< const image1d<V>, W >
{
- typedef dpoints_fwd_pixter< const image1d<T> > ret;
+ typedef dpoints_fwd_pixter< const image1d<V> > ret;
};
- template <typename T, typename W>
- struct bkd_qixter< image1d<T>, W >
+ template <typename V, typename W>
+ struct bkd_qixter< image1d<V>, W >
{
- typedef dpoints_bkd_pixter< image1d<T> > ret;
+ typedef dpoints_bkd_pixter< image1d<V> > ret;
};
- template <typename T, typename W>
- struct bkd_qixter< const image1d<T>, W >
+ template <typename V, typename W>
+ struct bkd_qixter< const image1d<V>, W >
{
- typedef dpoints_bkd_pixter< const image1d<T> > ret;
+ typedef dpoints_bkd_pixter< const image1d<V> > ret;
};
// nixter
- template <typename T, typename W>
- struct fwd_nixter< image1d<T>, W >
+ template <typename V, typename W>
+ struct fwd_nixter< image1d<V>, W >
{
- typedef dpoints_fwd_pixter< image1d<T> > ret;
+ typedef dpoints_fwd_pixter< image1d<V> > ret;
};
- template <typename T, typename W>
- struct fwd_nixter< const image1d<T>, W >
+ template <typename V, typename W>
+ struct fwd_nixter< const image1d<V>, W >
{
- typedef dpoints_fwd_pixter< const image1d<T> > ret;
+ typedef dpoints_fwd_pixter< const image1d<V> > ret;
};
- template <typename T, typename W>
- struct bkd_nixter< image1d<T>, W >
+ template <typename V, typename W>
+ struct bkd_nixter< image1d<V>, W >
{
- typedef dpoints_bkd_pixter< image1d<T> > ret;
+ typedef dpoints_bkd_pixter< image1d<V> > ret;
};
- template <typename T, typename W>
- struct bkd_nixter< const image1d<T>, W >
+ template <typename V, typename W>
+ struct bkd_nixter< const image1d<V>, W >
{
- typedef dpoints_bkd_pixter< const image1d<T> > ret;
+ typedef dpoints_bkd_pixter< const image1d<V> > ret;
};
} // end of namespace mln::trait
diff --git a/milena/mln/core/image/image2d.hh b/milena/mln/core/image/image2d.hh
index 7ef0102..830057d 100644
--- a/milena/mln/core/image/image2d.hh
+++ b/milena/mln/core/image/image2d.hh
@@ -56,23 +56,23 @@ namespace mln
{
// Forward declaration.
- template <typename T> class image2d;
+ template <typename V> class image2d;
namespace internal
{
/*!
- \brief Data structure for \c mln::image2d<T>.
+ \brief Data structure for \c mln::image2d<V>.
*/
- template <typename T>
- struct data< image2d<T> >
+ template <typename V>
+ struct data< image2d<V> >
{
data(const box2d& b, unsigned bdr);
~data();
- T* buffer_;
- T** array_;
+ V* buffer_;
+ V** array_;
box2d b_; // theoretical box
unsigned bdr_;
@@ -81,7 +81,7 @@ namespace mln
void update_vb_();
void allocate_();
void deallocate_();
- void swap_(data< image2d<T> >& other_);
+ void swap_(data< image2d<V> >& other_);
void reallocate_(unsigned new_border);
};
@@ -90,8 +90,8 @@ namespace mln
namespace trait
{
- template <typename T>
- struct image_< image2d<T> > : default_image_< T, image2d<T> >
+ template <typename V>
+ struct image_< image2d<V> > : default_image_< V, image2d<V> >
{
// misc
typedef trait::image::category::primary category;
@@ -130,24 +130,24 @@ namespace mln
///
/// \ingroup modimageconcrete
//
- template <typename T>
- class image2d : public internal::image_primary< T, mln::box2d, image2d<T> >
+ template <typename V>
+ class image2d : public internal::image_primary< V, mln::box2d, image2d<V> >
{
- typedef internal::image_primary< T, mln::box2d, image2d<T> > super_;
+ typedef internal::image_primary< V, mln::box2d, image2d<V> > super_;
public:
/// Value associated type.
- typedef T value;
+ typedef V value;
/// Return type of read-only access.
- typedef const T& rvalue;
+ typedef const V& rvalue;
/// Return type of read-write access.
- typedef T& lvalue;
+ typedef V& lvalue;
/// Skeleton.
- typedef image2d< tag::value_<T> > skeleton;
+ typedef image2d< tag::value_<V> > skeleton;
/// Constructor without argument.
@@ -181,14 +181,14 @@ namespace mln
const box2d& vbbox() const;
/// Read-only access to the image value located at point \p p.
- const T& operator()(const point2d& p) const;
+ const V& operator()(const point2d& p) const;
/// Read-write access to the image value located at point \p p.
- T& operator()(const point2d& p);
+ V& operator()(const point2d& p);
template <typename P>
- T& alt(const P& p)
+ V& alt(const P& p)
{
typedef def::coord coord_t;
mln_precondition(this->has(p));
@@ -212,9 +212,9 @@ namespace mln
/// \cond INTERNAL_API
/// Read-only access to the image value located at (\p row, \p col).
- const T& at_(mln::def::coord row, mln::def::coord col) const;
+ const V& at_(mln::def::coord row, mln::def::coord col) const;
/// Read-write access to the image value located at (\p row, \p col).
- T& at_(mln::def::coord row, mln::def::coord col);
+ V& at_(mln::def::coord row, mln::def::coord col);
/// \endcond
@@ -238,10 +238,10 @@ namespace mln
unsigned nelements() const;
/// Read-only access to the image value located at offset \p i.
- const T& element(unsigned i) const;
+ const V& element(unsigned i) const;
/// Read-write access to the image value located at offset \p i.
- T& element(unsigned i);
+ V& element(unsigned i);
/// Give the delta-offset corresponding to the delta-point \p dp.
int delta_offset(const dpoint2d& dp) const;
@@ -250,10 +250,10 @@ namespace mln
point2d point_at_offset(unsigned i) const;
/// Give a hook to the value buffer.
- const T* buffer() const;
+ const V* buffer() const;
/// Give a hook to the value buffer.
- T* buffer();
+ V* buffer();
/// \cond INTERNAL_API
@@ -268,11 +268,11 @@ namespace mln
/// \cond INTERNAL_API
- template <typename T>
- void init_(tag::border_t, unsigned& bdr, const image2d<T>& model);
+ template <typename V>
+ void init_(tag::border_t, unsigned& bdr, const image2d<V>& model);
- template <typename T, typename J>
- void init_(tag::image_t, mln::image2d<T>& target, const J& model);
+ template <typename V, typename J>
+ void init_(tag::image_t, mln::image2d<V>& target, const J& model);
/// \endcond
@@ -281,16 +281,16 @@ namespace mln
// init_
- template <typename T>
+ template <typename V>
inline
- void init_(tag::border_t, unsigned& bdr, const image2d<T>& model)
+ void init_(tag::border_t, unsigned& bdr, const image2d<V>& model)
{
bdr = model.border();
}
- template <typename T, typename J>
+ template <typename V, typename J>
inline
- void init_(tag::image_t, image2d<T>& target, const J& model)
+ void init_(tag::image_t, image2d<V>& target, const J& model)
{
box2d b;
init_(tag::bbox, b, model);
@@ -300,13 +300,13 @@ namespace mln
}
- // internal::data< image2d<T> >
+ // internal::data< image2d<V> >
namespace internal
{
- template <typename T>
+ template <typename V>
inline
- data< image2d<T> >::data(const box2d& b, unsigned bdr)
+ data< image2d<V> >::data(const box2d& b, unsigned bdr)
: buffer_(0),
array_ (0),
b_ (b),
@@ -315,34 +315,34 @@ namespace mln
allocate_();
}
- template <typename T>
+ template <typename V>
inline
- data< image2d<T> >::~data()
+ data< image2d<V> >::~data()
{
deallocate_();
}
- template <typename T>
+ template <typename V>
inline
void
- data< image2d<T> >::update_vb_()
+ data< image2d<V> >::update_vb_()
{
vb_.pmin() = b_.pmin() - dpoint2d(all_to(bdr_));
vb_.pmax() = b_.pmax() + dpoint2d(all_to(bdr_));
}
- template <typename T>
+ template <typename V>
inline
void
- data< image2d<T> >::allocate_()
+ data< image2d<V> >::allocate_()
{
update_vb_();
unsigned
nr = vb_.len(0),
nc = vb_.len(1);
- buffer_ = new T[nr * nc];
- array_ = new T*[nr];
- T* buf = buffer_ - vb_.pmin().col();
+ buffer_ = new V[nr * nc];
+ array_ = new V*[nr];
+ V* buf = buffer_ - vb_.pmin().col();
for (unsigned i = 0; i < nr; ++i)
{
array_[i] = buf;
@@ -353,10 +353,10 @@ namespace mln
mln_postcondition(vb_.len(1) == b_.len(1) + 2 * bdr_);
}
- template <typename T>
+ template <typename V>
inline
void
- data< image2d<T> >::deallocate_()
+ data< image2d<V> >::deallocate_()
{
if (buffer_)
{
@@ -371,22 +371,22 @@ namespace mln
}
}
- template <typename T>
+ template <typename V>
inline
void
- data< image2d<T> >::swap_(data< image2d<T> >& other_)
+ data< image2d<V> >::swap_(data< image2d<V> >& other_)
{
- data< image2d<T> > self_ = *this;
+ data< image2d<V> > self_ = *this;
*this = other_;
other_ = self_;
}
- template <typename T>
+ template <typename V>
inline
void
- data< image2d<T> >::reallocate_(unsigned new_border)
+ data< image2d<V> >::reallocate_(unsigned new_border)
{
- data< image2d<T> >& tmp = *(new data< image2d<T> >(this->b_, new_border));
+ data< image2d<V> >& tmp = *(new data< image2d<V> >(this->b_, new_border));
this->swap_(tmp);
}
@@ -394,86 +394,86 @@ namespace mln
} // end of namespace mln::internal
- // image2d<T>
+ // image2d<V>
- template <typename T>
+ template <typename V>
inline
- image2d<T>::image2d()
+ image2d<V>::image2d()
{
}
- template <typename T>
+ template <typename V>
inline
- image2d<T>::image2d(int nrows, int ncols, unsigned bdr)
+ image2d<V>::image2d(int nrows, int ncols, unsigned bdr)
{
init_(make::box2d(nrows, ncols), bdr);
}
- template <typename T>
+ template <typename V>
inline
- image2d<T>::image2d(const box2d& b, unsigned bdr)
+ image2d<V>::image2d(const box2d& b, unsigned bdr)
{
init_(b, bdr);
}
- template <typename T>
+ template <typename V>
inline
void
- image2d<T>::init_(const box2d& b, unsigned bdr)
+ image2d<V>::init_(const box2d& b, unsigned bdr)
{
mln_precondition(! this->is_valid());
- this->data_ = new internal::data< image2d<T> >(b, bdr);
+ this->data_ = new internal::data< image2d<V> >(b, bdr);
}
- template <typename T>
+ template <typename V>
inline
const box2d&
- image2d<T>::domain() const
+ image2d<V>::domain() const
{
mln_precondition(this->is_valid());
return this->data_->b_;
}
- template <typename T>
+ template <typename V>
inline
const box2d&
- image2d<T>::bbox() const
+ image2d<V>::bbox() const
{
mln_precondition(this->is_valid());
return this->data_->b_;
}
- template <typename T>
+ template <typename V>
inline
const box2d&
- image2d<T>::vbbox() const
+ image2d<V>::vbbox() const
{
mln_precondition(this->is_valid());
return this->data_->vb_;
}
- template <typename T>
+ template <typename V>
inline
bool
- image2d<T>::has(const point2d& p) const
+ image2d<V>::has(const point2d& p) const
{
mln_precondition(this->is_valid());
return this->data_->vb_.has(p);
}
- template <typename T>
+ template <typename V>
inline
- const T&
- image2d<T>::operator()(const point2d& p) const
+ const V&
+ image2d<V>::operator()(const point2d& p) const
{
mln_precondition(this->has(p));
return this->data_->array_[p.row()][p.col()];
}
- template <typename T>
+ template <typename V>
inline
- T&
- image2d<T>::operator()(const point2d& p)
+ V&
+ image2d<V>::operator()(const point2d& p)
{
mln_precondition(this->has(p));
return this->data_->array_[p.row()][p.col()];
@@ -482,37 +482,37 @@ namespace mln
// Specific methods:
- template <typename T>
+ template <typename V>
inline
- const T&
- image2d<T>::at_(mln::def::coord row, mln::def::coord col) const
+ const V&
+ image2d<V>::at_(mln::def::coord row, mln::def::coord col) const
{
mln_precondition(this->has(point2d(row, col)));
return this->data_->array_[row][col];
}
- template <typename T>
+ template <typename V>
inline
- T&
- image2d<T>::at_(mln::def::coord row, mln::def::coord col)
+ V&
+ image2d<V>::at_(mln::def::coord row, mln::def::coord col)
{
mln_precondition(this->has(point2d(row, col)));
return this->data_->array_[row][col];
}
- template <typename T>
+ template <typename V>
inline
unsigned
- image2d<T>::nrows() const
+ image2d<V>::nrows() const
{
mln_precondition(this->is_valid());
return this->data_->b_.len(0);
}
- template <typename T>
+ template <typename V>
inline
unsigned
- image2d<T>::ncols() const
+ image2d<V>::ncols() const
{
mln_precondition(this->is_valid());
return this->data_->b_.len(1);
@@ -521,74 +521,74 @@ namespace mln
// As a fastest image:
- template <typename T>
+ template <typename V>
inline
unsigned
- image2d<T>::border() const
+ image2d<V>::border() const
{
mln_precondition(this->is_valid());
return this->data_->bdr_;
}
- template <typename T>
+ template <typename V>
inline
unsigned
- image2d<T>::nelements() const
+ image2d<V>::nelements() const
{
mln_precondition(this->is_valid());
return this->data_->vb_.nsites();
}
- template <typename T>
+ template <typename V>
inline
- const T&
- image2d<T>::element(unsigned i) const
+ const V&
+ image2d<V>::element(unsigned i) const
{
mln_precondition(i < nelements());
return *(this->data_->buffer_ + i);
}
- template <typename T>
+ template <typename V>
inline
- T&
- image2d<T>::element(unsigned i)
+ V&
+ image2d<V>::element(unsigned i)
{
mln_precondition(i < nelements());
return *(this->data_->buffer_ + i);
}
- template <typename T>
+ template <typename V>
inline
- const T*
- image2d<T>::buffer() const
+ const V*
+ image2d<V>::buffer() const
{
mln_precondition(this->is_valid());
return this->data_->buffer_;
}
- template <typename T>
+ template <typename V>
inline
- T*
- image2d<T>::buffer()
+ V*
+ image2d<V>::buffer()
{
mln_precondition(this->is_valid());
return this->data_->buffer_;
}
- template <typename T>
+ template <typename V>
inline
int
- image2d<T>::delta_offset(const dpoint2d& dp) const
+ image2d<V>::delta_offset(const dpoint2d& dp) const
{
mln_precondition(this->is_valid());
int o = dp[0] * this->data_->vb_.len(1) + dp[1];
return o;
}
- template <typename T>
+ template <typename V>
inline
point2d
- image2d<T>::point_at_offset(unsigned i) const
+ image2d<V>::point_at_offset(unsigned i) const
{
mln_precondition(i < nelements());
def::coord
@@ -601,10 +601,10 @@ namespace mln
// Extra.
- template <typename T>
+ template <typename V>
inline
void
- image2d<T>::resize_(unsigned new_border)
+ image2d<V>::resize_(unsigned new_border)
{
mln_precondition(this->is_valid());
this->data_->reallocate_(new_border);
@@ -630,80 +630,80 @@ namespace mln
// pixter
- template <typename T>
- struct fwd_pixter< image2d<T> >
+ template <typename V>
+ struct fwd_pixter< image2d<V> >
{
- typedef fwd_pixter2d< image2d<T> > ret;
+ typedef fwd_pixter2d< image2d<V> > ret;
};
- template <typename T>
- struct fwd_pixter< const image2d<T> >
+ template <typename V>
+ struct fwd_pixter< const image2d<V> >
{
- typedef fwd_pixter2d< const image2d<T> > ret;
+ typedef fwd_pixter2d< const image2d<V> > ret;
};
- template <typename T>
- struct bkd_pixter< image2d<T> >
+ template <typename V>
+ struct bkd_pixter< image2d<V> >
{
- typedef bkd_pixter2d< image2d<T> > ret;
+ typedef bkd_pixter2d< image2d<V> > ret;
};
- template <typename T>
- struct bkd_pixter< const image2d<T> >
+ template <typename V>
+ struct bkd_pixter< const image2d<V> >
{
- typedef bkd_pixter2d< const image2d<T> > ret;
+ typedef bkd_pixter2d< const image2d<V> > ret;
};
// qixter
- template <typename T, typename W>
- struct fwd_qixter< image2d<T>, W >
+ template <typename V, typename W>
+ struct fwd_qixter< image2d<V>, W >
{
- typedef dpoints_fwd_pixter< image2d<T> > ret;
+ typedef dpoints_fwd_pixter< image2d<V> > ret;
};
- template <typename T, typename W>
- struct fwd_qixter< const image2d<T>, W >
+ template <typename V, typename W>
+ struct fwd_qixter< const image2d<V>, W >
{
- typedef dpoints_fwd_pixter< const image2d<T> > ret;
+ typedef dpoints_fwd_pixter< const image2d<V> > ret;
};
- template <typename T, typename W>
- struct bkd_qixter< image2d<T>, W >
+ template <typename V, typename W>
+ struct bkd_qixter< image2d<V>, W >
{
- typedef dpoints_bkd_pixter< image2d<T> > ret;
+ typedef dpoints_bkd_pixter< image2d<V> > ret;
};
- template <typename T, typename W>
- struct bkd_qixter< const image2d<T>, W >
+ template <typename V, typename W>
+ struct bkd_qixter< const image2d<V>, W >
{
- typedef dpoints_bkd_pixter< const image2d<T> > ret;
+ typedef dpoints_bkd_pixter< const image2d<V> > ret;
};
// nixter
- template <typename T, typename N>
- struct fwd_nixter< image2d<T>, N >
+ template <typename V, typename N>
+ struct fwd_nixter< image2d<V>, N >
{
- typedef dpoints_fwd_pixter< image2d<T> > ret;
+ typedef dpoints_fwd_pixter< image2d<V> > ret;
};
- template <typename T, typename N>
- struct fwd_nixter< const image2d<T>, N >
+ template <typename V, typename N>
+ struct fwd_nixter< const image2d<V>, N >
{
- typedef dpoints_fwd_pixter< const image2d<T> > ret;
+ typedef dpoints_fwd_pixter< const image2d<V> > ret;
};
- template <typename T, typename N>
- struct bkd_nixter< image2d<T>, N >
+ template <typename V, typename N>
+ struct bkd_nixter< image2d<V>, N >
{
- typedef dpoints_bkd_pixter< image2d<T> > ret;
+ typedef dpoints_bkd_pixter< image2d<V> > ret;
};
- template <typename T, typename N>
- struct bkd_nixter< const image2d<T>, N >
+ template <typename V, typename N>
+ struct bkd_nixter< const image2d<V>, N >
{
- typedef dpoints_bkd_pixter< const image2d<T> > ret;
+ typedef dpoints_bkd_pixter< const image2d<V> > ret;
};
} // end of namespace mln::trait
diff --git a/milena/mln/core/image/image3d.hh b/milena/mln/core/image/image3d.hh
index 20831c5..d4e14ee 100644
--- a/milena/mln/core/image/image3d.hh
+++ b/milena/mln/core/image/image3d.hh
@@ -51,7 +51,7 @@ namespace mln
{
// Forward declaration.
- template <typename T> struct image3d;
+ template <typename V> struct image3d;
@@ -60,16 +60,16 @@ namespace mln
/*!
\internal
- \brief Data structure for \c mln::image3d<T>.
+ \brief Data structure for \c mln::image3d<V>.
*/
- template <typename T>
- struct data< image3d<T> >
+ template <typename V>
+ struct data< image3d<V> >
{
data(const box3d& b, unsigned bdr);
~data();
- T* buffer_;
- T*** array_;
+ V* buffer_;
+ V*** array_;
box3d b_; // theoretical box
unsigned bdr_;
@@ -78,7 +78,7 @@ namespace mln
void update_vb_();
void allocate_();
void deallocate_();
- void swap_ (data< image3d<T> >& other_);
+ void swap_ (data< image3d<V> >& other_);
void reallocate_(unsigned new_border);
};
@@ -89,8 +89,8 @@ namespace mln
namespace trait
{
- template <typename T>
- struct image_< image3d<T> > : default_image_< T, image3d<T> >
+ template <typename V>
+ struct image_< image3d<V> > : default_image_< V, image3d<V> >
{
// misc
typedef trait::image::category::primary category;
@@ -129,8 +129,8 @@ namespace mln
///
/// \ingroup modimageconcrete
//
- template <typename T>
- struct image3d : public internal::image_primary< T, box3d, image3d<T> >
+ template <typename V>
+ struct image3d : public internal::image_primary< V, box3d, image3d<V> >
{
// Warning: just to make effective types appear in Doxygen:
typedef box3d pset;
@@ -144,20 +144,20 @@ namespace mln
/// Super type
- typedef internal::image_primary< T, box3d, image3d<T> > super_;
+ typedef internal::image_primary< V, box3d, image3d<V> > super_;
/// Value associated type.
- typedef T value;
+ typedef V value;
/// Return type of read-only access.
- typedef const T& rvalue;
+ typedef const V& rvalue;
/// Return type of read-write access.
- typedef T& lvalue;
+ typedef V& lvalue;
/// Skeleton.
- typedef image3d< tag::value_<T> > skeleton;
+ typedef image3d< tag::value_<V> > skeleton;
/// Constructor without argument.
image3d();
@@ -196,26 +196,26 @@ namespace mln
unsigned nelements() const;
/// Read-only access to the image value located at point \p p.
- const T& operator()(const point3d& p) const;
+ const V& operator()(const point3d& p) const;
/// Read-write access to the image value located at point \p p.
- T& operator()(const point3d& p);
+ V& operator()(const point3d& p);
/// Read-only access to the image value located at offset \p i.
- const T& element(unsigned i) const;
+ const V& element(unsigned i) const;
/// Read-write access to the image value located at offset \p i.
- T& element(unsigned i);
+ V& element(unsigned i);
/// \cond INTERNAL_API
/// Read-only access to the image value located at (\p sli, \p
/// row, \p col).
- const T& at_(def::coord sli, def::coord row, def::coord col) const;
+ const V& at_(def::coord sli, def::coord row, def::coord col) const;
/// Read-write access to the image value located at (\p sli, \p
/// row, \p col).
- T& at_(def::coord sli, def::coord row, def::coord col);
+ V& at_(def::coord sli, def::coord row, def::coord col);
/// \endcond
@@ -238,10 +238,10 @@ namespace mln
point3d point_at_offset(unsigned o) const;
/// Give a hook to the value buffer.
- const T* buffer() const;
+ const V* buffer() const;
/// Give a hook to the value buffer.
- T* buffer();
+ V* buffer();
/// \cond INTERNAL_API
@@ -256,8 +256,8 @@ namespace mln
};
- template <typename T, typename J>
- void init_(tag::image_t, mln::image3d<T>& target, const J& model);
+ template <typename V, typename J>
+ void init_(tag::image_t, mln::image3d<V>& target, const J& model);
@@ -265,16 +265,16 @@ namespace mln
// init_
- template <typename T>
+ template <typename V>
inline
- void init_(tag::border_t, unsigned& b, const image3d<T>& model)
+ void init_(tag::border_t, unsigned& b, const image3d<V>& model)
{
b = model.border();
}
- template <typename T, typename J>
+ template <typename V, typename J>
inline
- void init_(tag::image_t, image3d<T>& target, const J& model)
+ void init_(tag::image_t, image3d<V>& target, const J& model)
{
box3d b;
init_(tag::bbox, b, model);
@@ -284,14 +284,14 @@ namespace mln
}
- // internal::data< image3d<T> >
+ // internal::data< image3d<V> >
namespace internal
{
- template <typename T>
+ template <typename V>
inline
- data< image3d<T> >::data(const box3d& b, unsigned bdr)
+ data< image3d<V> >::data(const box3d& b, unsigned bdr)
: buffer_(0),
array_ (0),
b_ (b),
@@ -300,38 +300,38 @@ namespace mln
allocate_();
}
- template <typename T>
+ template <typename V>
inline
- data< image3d<T> >::~data()
+ data< image3d<V> >::~data()
{
deallocate_();
}
- template <typename T>
+ template <typename V>
inline
void
- data< image3d<T> >::update_vb_()
+ data< image3d<V> >::update_vb_()
{
vb_.pmin() = b_.pmin() - dpoint3d(all_to(bdr_));
vb_.pmax() = b_.pmax() + dpoint3d(all_to(bdr_));
}
- template <typename T>
+ template <typename V>
inline
void
- data< image3d<T> >::allocate_()
+ data< image3d<V> >::allocate_()
{
update_vb_();
unsigned
ns = vb_.len(0),
nr = vb_.len(1),
nc = vb_.len(2);
- buffer_ = new T[nr * nc * ns];
- array_ = new T**[ns];
- T* buf = buffer_ - vb_.pmin().col();
+ buffer_ = new V[nr * nc * ns];
+ array_ = new V**[ns];
+ V* buf = buffer_ - vb_.pmin().col();
for (unsigned i = 0; i < ns; ++i)
{
- T** tmp = new T*[nr];
+ V** tmp = new V*[nr];
array_[i] = tmp;
for (unsigned j = 0; j < nr; ++j)
{
@@ -344,10 +344,10 @@ namespace mln
mln_postcondition(vb_.len(0) == b_.len(0) + 2 * bdr_);
}
- template <typename T>
+ template <typename V>
inline
void
- data< image3d<T> >::deallocate_()
+ data< image3d<V> >::deallocate_()
{
if (buffer_)
{
@@ -371,216 +371,216 @@ namespace mln
}
}
- template <typename T>
+ template <typename V>
inline
void
- data< image3d<T> >::swap_(data< image3d<T> >& other_)
+ data< image3d<V> >::swap_(data< image3d<V> >& other_)
{
- data< image3d<T> > self_ = *this;
+ data< image3d<V> > self_ = *this;
*this = other_;
other_ = self_;
}
- template <typename T>
+ template <typename V>
inline
void
- data< image3d<T> >::reallocate_(unsigned new_border)
+ data< image3d<V> >::reallocate_(unsigned new_border)
{
- data< image3d<T> >& tmp = *(new data< image3d<T> >(this->b_, new_border));
+ data< image3d<V> >& tmp = *(new data< image3d<V> >(this->b_, new_border));
this->swap_(tmp);
}
} // end of namespace mln::internal
- // image3d<T>
+ // image3d<V>
- template <typename T>
+ template <typename V>
inline
- image3d<T>::image3d()
+ image3d<V>::image3d()
{
}
- template <typename T>
+ template <typename V>
inline
- image3d<T>::image3d(const box3d& b, unsigned bdr)
+ image3d<V>::image3d(const box3d& b, unsigned bdr)
{
init_(b, bdr);
}
- template <typename T>
+ template <typename V>
inline
- image3d<T>::image3d(int nslis, int nrows, int ncols, unsigned bdr)
+ image3d<V>::image3d(int nslis, int nrows, int ncols, unsigned bdr)
{
init_(make::box3d(nslis, nrows, ncols), bdr);
}
- template <typename T>
+ template <typename V>
inline
void
- image3d<T>::init_(const box3d& b, unsigned bdr)
+ image3d<V>::init_(const box3d& b, unsigned bdr)
{
mln_precondition(! this->is_valid());
- this->data_ = new internal::data< image3d<T> >(b, bdr);
+ this->data_ = new internal::data< image3d<V> >(b, bdr);
}
- template <typename T>
+ template <typename V>
inline
const box3d&
- image3d<T>::domain() const
+ image3d<V>::domain() const
{
mln_precondition(this->is_valid());
return data_->b_;
}
- template <typename T>
+ template <typename V>
inline
const box3d&
- image3d<T>::bbox() const
+ image3d<V>::bbox() const
{
mln_precondition(this->is_valid());
return data_->b_;
}
- template <typename T>
+ template <typename V>
inline
const box3d&
- image3d<T>::vbbox() const
+ image3d<V>::vbbox() const
{
mln_precondition(this->is_valid());
return data_->vb_;
}
- template <typename T>
+ template <typename V>
inline
unsigned
- image3d<T>::border() const
+ image3d<V>::border() const
{
mln_precondition(this->is_valid());
return data_->bdr_;
}
- template <typename T>
+ template <typename V>
inline
unsigned
- image3d<T>::nelements() const
+ image3d<V>::nelements() const
{
mln_precondition(this->is_valid());
return data_->vb_.nsites();
}
- template <typename T>
+ template <typename V>
inline
bool
- image3d<T>::has(const point3d& p) const
+ image3d<V>::has(const point3d& p) const
{
mln_precondition(this->is_valid());
return data_->vb_.has(p);
}
- template <typename T>
+ template <typename V>
inline
- const T&
- image3d<T>::operator()(const point3d& p) const
+ const V&
+ image3d<V>::operator()(const point3d& p) const
{
mln_precondition(this->has(p));
return data_->array_[p.sli()][p.row()][p.col()];
}
- template <typename T>
+ template <typename V>
inline
- T&
- image3d<T>::operator()(const point3d& p)
+ V&
+ image3d<V>::operator()(const point3d& p)
{
mln_precondition(this->has(p));
return data_->array_[p.sli()][p.row()][p.col()];
}
- template <typename T>
+ template <typename V>
inline
- const T&
- image3d<T>::element(unsigned i) const
+ const V&
+ image3d<V>::element(unsigned i) const
{
mln_precondition(i < nelements());
return *(data_->buffer_ + i);
}
- template <typename T>
+ template <typename V>
inline
- T&
- image3d<T>::element(unsigned i)
+ V&
+ image3d<V>::element(unsigned i)
{
mln_precondition(i < nelements());
return *(data_->buffer_ + i);
}
- template <typename T>
+ template <typename V>
inline
- const T&
- image3d<T>::at_(def::coord sli, def::coord row, def::coord col) const
+ const V&
+ image3d<V>::at_(def::coord sli, def::coord row, def::coord col) const
{
mln_precondition(this->has(point3d(sli, row, col)));
return data_->array_[sli][row][col];
}
- template <typename T>
+ template <typename V>
inline
- T&
- image3d<T>::at_(def::coord sli, def::coord row, def::coord col)
+ V&
+ image3d<V>::at_(def::coord sli, def::coord row, def::coord col)
{
mln_precondition(this->has(point3d(sli, row, col)));
return data_->array_[sli][row][col];
}
- template <typename T>
+ template <typename V>
inline
unsigned
- image3d<T>::nslis() const
+ image3d<V>::nslis() const
{
mln_precondition(this->is_valid());
return this->data_->b_.len(0);
}
- template <typename T>
+ template <typename V>
inline
unsigned
- image3d<T>::nrows() const
+ image3d<V>::nrows() const
{
mln_precondition(this->is_valid());
return this->data_->b_.len(1);
}
- template <typename T>
+ template <typename V>
inline
unsigned
- image3d<T>::ncols() const
+ image3d<V>::ncols() const
{
mln_precondition(this->is_valid());
return this->data_->b_.len(2);
}
- template <typename T>
+ template <typename V>
inline
- const T*
- image3d<T>::buffer() const
+ const V*
+ image3d<V>::buffer() const
{
mln_precondition(this->is_valid());
return data_->buffer_;
}
- template <typename T>
+ template <typename V>
inline
- T*
- image3d<T>::buffer()
+ V*
+ image3d<V>::buffer()
{
mln_precondition(this->is_valid());
return data_->buffer_;
}
- template <typename T>
+ template <typename V>
inline
int
- image3d<T>::delta_offset(const dpoint3d& dp) const
+ image3d<V>::delta_offset(const dpoint3d& dp) const
{
mln_precondition(this->is_valid());
int o = (dp[0] * this->data_->vb_.len(1)
@@ -588,10 +588,10 @@ namespace mln
return o;
}
- template <typename T>
+ template <typename V>
inline
point3d
- image3d<T>::point_at_offset(unsigned o) const
+ image3d<V>::point_at_offset(unsigned o) const
{
mln_precondition(o < nelements());
def::coord
@@ -603,10 +603,10 @@ namespace mln
return p;
}
- template <typename T>
+ template <typename V>
inline
void
- image3d<T>::resize_(unsigned new_border)
+ image3d<V>::resize_(unsigned new_border)
{
this->data_->reallocate_(new_border);
}
@@ -631,80 +631,80 @@ namespace mln
// pixter
- template <typename T>
- struct fwd_pixter< image3d<T> >
+ template <typename V>
+ struct fwd_pixter< image3d<V> >
{
- typedef fwd_pixter3d< image3d<T> > ret;
+ typedef fwd_pixter3d< image3d<V> > ret;
};
- template <typename T>
- struct fwd_pixter< const image3d<T> >
+ template <typename V>
+ struct fwd_pixter< const image3d<V> >
{
- typedef fwd_pixter3d< const image3d<T> > ret;
+ typedef fwd_pixter3d< const image3d<V> > ret;
};
- template <typename T>
- struct bkd_pixter< image3d<T> >
+ template <typename V>
+ struct bkd_pixter< image3d<V> >
{
- typedef bkd_pixter3d< image3d<T> > ret;
+ typedef bkd_pixter3d< image3d<V> > ret;
};
- template <typename T>
- struct bkd_pixter< const image3d<T> >
+ template <typename V>
+ struct bkd_pixter< const image3d<V> >
{
- typedef bkd_pixter3d< const image3d<T> > ret;
+ typedef bkd_pixter3d< const image3d<V> > ret;
};
// qixter
- template <typename T, typename W>
- struct fwd_qixter< image3d<T>, W >
+ template <typename V, typename W>
+ struct fwd_qixter< image3d<V>, W >
{
- typedef dpoints_fwd_pixter< image3d<T> > ret;
+ typedef dpoints_fwd_pixter< image3d<V> > ret;
};
- template <typename T, typename W>
- struct fwd_qixter< const image3d<T>, W >
+ template <typename V, typename W>
+ struct fwd_qixter< const image3d<V>, W >
{
- typedef dpoints_fwd_pixter< const image3d<T> > ret;
+ typedef dpoints_fwd_pixter< const image3d<V> > ret;
};
- template <typename T, typename W>
- struct bkd_qixter< image3d<T>, W >
+ template <typename V, typename W>
+ struct bkd_qixter< image3d<V>, W >
{
- typedef dpoints_bkd_pixter< image3d<T> > ret;
+ typedef dpoints_bkd_pixter< image3d<V> > ret;
};
- template <typename T, typename W>
- struct bkd_qixter< const image3d<T>, W >
+ template <typename V, typename W>
+ struct bkd_qixter< const image3d<V>, W >
{
- typedef dpoints_bkd_pixter< const image3d<T> > ret;
+ typedef dpoints_bkd_pixter< const image3d<V> > ret;
};
// nixter
- template <typename T, typename W>
- struct fwd_nixter< image3d<T>, W >
+ template <typename V, typename W>
+ struct fwd_nixter< image3d<V>, W >
{
- typedef dpoints_fwd_pixter< image3d<T> > ret;
+ typedef dpoints_fwd_pixter< image3d<V> > ret;
};
- template <typename T, typename W>
- struct fwd_nixter< const image3d<T>, W >
+ template <typename V, typename W>
+ struct fwd_nixter< const image3d<V>, W >
{
- typedef dpoints_fwd_pixter< const image3d<T> > ret;
+ typedef dpoints_fwd_pixter< const image3d<V> > ret;
};
- template <typename T, typename W>
- struct bkd_nixter< image3d<T>, W >
+ template <typename V, typename W>
+ struct bkd_nixter< image3d<V>, W >
{
- typedef dpoints_bkd_pixter< image3d<T> > ret;
+ typedef dpoints_bkd_pixter< image3d<V> > ret;
};
- template <typename T, typename W>
- struct bkd_nixter< const image3d<T>, W >
+ template <typename V, typename W>
+ struct bkd_nixter< const image3d<V>, W >
{
- typedef dpoints_bkd_pixter< const image3d<T> > ret;
+ typedef dpoints_bkd_pixter< const image3d<V> > ret;
};
} // end of namespace mln::trait
--
1.7.2.5
1
0