#208: Fix dependencies of the HTML documentation generation?
----------------------+-----------------------------------------------------
Reporter: levill_r | Owner: Olena Team
Type: defect | Status: new
Priority: minor | Milestone: Olena 1.1
Component: Milena | Version: 1.0
Keywords: doc |
----------------------+-----------------------------------------------------
The generation of the HTML documentation requires a file named `html.sty`,
which is not provided by HeVeA, but by latex2html. Is that right? I
thought we only had a dependency on the former, not the latter.
--
Ticket URL: <https://trac.lrde.org/olena/ticket/208>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#219: Add \internal in the documentation of internal code
---------------------+------------------------------------------------------
Reporter: lazzara | Owner: Olena Team
Type: defect | Status: new
Priority: major | Milestone: Olena 1.1
Component: Milena | Version: 1.0
Keywords: |
---------------------+------------------------------------------------------
Currently, in order to not expose the internal code in the user
documentation, everything in the internal and trait namespaces is ignored
during the doc generation.
The main issue is that inherited members are not shown in the
documentation of the classes exposed to the user.
The only way to ask Doxygen to show inherited members and not to show
internal documentation is to add \internal in the documentation of
internal code.
--
Ticket URL: <https://trac.lrde.org/olena/ticket/219>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#235: Support GraphicsMagick++ and drop support for ImageMagick++
-------------------------+--------------------------------------------------
Reporter: levill_r | Owner: Olena Team
Type: proposal | Status: new
Priority: major | Milestone: Olena 1.1
Component: Milena | Version: 1.0
Keywords: io external |
-------------------------+--------------------------------------------------
!GraphicsMagick (http://www.graphicsmagick.org/) seems to provide a
framework more modern than !ImageMagick's (http://www.imagemagick.org), in
particular regarding multi-core support.
Moreover Fabien has discovered weird behaviors (#210) and Buildbot has
also recently exhibited run time errors that did not surface before
(https://buildfarm.lrde.org/buildfarm/oln/builders/i486-linux-gnu-
gcc-4.1/builds/539/steps/check/logs/stdio) -- though I don't know who's
the culprit here.
--
Ticket URL: <https://trac.lrde.org/olena/ticket/235>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
* doc/Makefile.am: Update dependencies.
* doc/about.dox,
* doc/doxygen.css,
* doc/license.dox,
* doc/license_commercial.dox,
* doc/licensing.dox,
* doc/mainpage.dox: Improve titles and presentation.
* doc/supported_platforms.dox: New.
---
ChangeLog | 15 ++++++++++++
doc/Makefile.am | 4 +-
doc/about.dox | 2 +-
doc/doxygen.css | 9 ++++++-
doc/license_commercial.dox | 7 -----
doc/{license.dox => licensing.dox} | 5 +++-
doc/mainpage.dox | 33 ++++++++++++++++----------
doc/supported_platforms.dox | 45 ++++++++++++++++++++++++++++++++++++
8 files changed, 95 insertions(+), 25 deletions(-)
delete mode 100644 doc/license_commercial.dox
rename doc/{license.dox => licensing.dox} (67%)
create mode 100644 doc/supported_platforms.dox
diff --git a/ChangeLog b/ChangeLog
index 5297ebb..0c82c0b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,20 @@
2012-02-27 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Improve main documentation.
+
+ * doc/Makefile.am: Update dependencies.
+
+ * doc/about.dox,
+ * doc/doxygen.css,
+ * doc/license.dox,
+ * doc/license_commercial.dox,
+ * doc/licensing.dox,
+ * doc/mainpage.dox: Improve titles and presentation.
+
+ * doc/supported_platforms.dox: New.
+
+2012-02-27 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Fix documentation.
* doc/Doxyfile.in,
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 2feb4e0..f5ff45d 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -74,9 +74,9 @@ REFMAN_deps = $(srcdir)/footer.html \
$(srcdir)/doc.bib \
$(srcdir)/contributors.dox \
$(srcdir)/bibliography.dox \
- $(srcdir)/license.dox \
- $(srcdir)/license_commercial.dox \
+ $(srcdir)/licensing.dox \
$(srcdir)/online_resources.dox \
+ $(srcdir)/supported_platforms.dox \
$(srcdir)/get_sources.dox \
$(srcdir)/subdoc_footer.html \
contributors.html \
diff --git a/doc/about.dox b/doc/about.dox
index d2e10bb..5cadd8b 100644
--- a/doc/about.dox
+++ b/doc/about.dox
@@ -1,4 +1,4 @@
-/*! \page about What is Olena ?
+/*! \page about About Olena
Olena is a Free Software platform dedicated to efficient and generic image processing.
diff --git a/doc/doxygen.css b/doc/doxygen.css
index 104c7dd..bed4d81 100644
--- a/doc/doxygen.css
+++ b/doc/doxygen.css
@@ -848,9 +848,16 @@ dl.bug
table.itable th
{
font-size: 17px;
+
}
table.itable li
{
font-size: 16px;
-}
\ No newline at end of file
+}
+
+table.itable td
+{
+ font-size: 17px;
+ vertical-align: top;
+}
diff --git a/doc/license_commercial.dox b/doc/license_commercial.dox
deleted file mode 100644
index 05603fa..0000000
--- a/doc/license_commercial.dox
+++ /dev/null
@@ -1,7 +0,0 @@
-/*! \page commercial Commercial Use
-
- Even though Olena is released under GPL v2, using Olena in a close
- source commercial products may be possible.
-
- If you are interested, please contact us at olena(a)lrde.epita.fr
-*/
\ No newline at end of file
diff --git a/doc/license.dox b/doc/licensing.dox
similarity index 67%
rename from doc/license.dox
rename to doc/licensing.dox
index 55bb41d..dcef31c 100644
--- a/doc/license.dox
+++ b/doc/licensing.dox
@@ -1,9 +1,12 @@
-/*! \page gplv2 GNU General Public License (GPL)
+/*! \page licensing Licensing
+
Olena and its modules are Copyright (C) 2011 EPITA Research and
Development Laboratory (LRDE).
<br>Olena and its modules are released under GNU GPL v2.
+In some cases, it is possible to use Olena in non-GPL softwares. If
+you intend to do it, please contact us at olena(a)lrde.epita.fr
\section gplv2sec "The GNU General Public License (Version 2)"
diff --git a/doc/mainpage.dox b/doc/mainpage.dox
index 17b72cc..0f682c7 100644
--- a/doc/mainpage.dox
+++ b/doc/mainpage.dox
@@ -8,13 +8,15 @@
<tr>
<th>General Presentation</th>
<th>Modules</th>
- <th>Applications</th>
+ <th>Contributing</th>
</tr>
<tr>
<td>
\li \ref about
\li <a class="el" href="http://www.lrde.epita.fr/cgi-bin/twiki/view/Olena/Publications">Bibliography</a>
\li \ref contributors
+ \li \ref supportedplatforms
+ \li \ref licensing
</td>
<td>
\li \ref moduleslist
@@ -23,29 +25,34 @@
\li Swilena
</td>
<td>
- \li <a class="el" href="http://www.lrde.epita.fr/cgi-bin/twiki/view/Olena/Demos">Online Demos</a>
- \li Papers Related Programs
- \li Olena Powered Programs
+ \li Report Bugs and Make Suggestions
+ \li \ref getsources
+ \li \ref onlineres
</td>
</tr>
<tr>
- <th>Contributing</th>
- <th>Licensing</th>
- <th> </th>
+ <th>Fundamentals</th>
+ <th>Core Features</th>
+ <th>Applications</th>
</tr>
<tr>
<td>
- \li Report Bugs and Make Suggestions
- \li \ref getsources
- \li \ref onlineres
+ \li SCOOP 2
+ \li Genericity and Performance in Olena
</td>
<td>
- \li \ref gplv2 "GNU GPL"
- \li \ref commercial "Commercial Use"
+ \li Image Manipulation
+ \li Image Morphers
+ \li Mathematical Morphology
+ \li Document Image Analysis
+ </td>
+ <td>
+ \li <a class="el" href="http://www.lrde.epita.fr/cgi-bin/twiki/view/Olena/Demos">Online Demos</a>
+ \li Papers Related Programs
+ \li Olena Powered Programs
</td>
- <td> </td>
</tr>
</table>
diff --git a/doc/supported_platforms.dox b/doc/supported_platforms.dox
new file mode 100644
index 0000000..84e81e3
--- /dev/null
+++ b/doc/supported_platforms.dox
@@ -0,0 +1,45 @@
+/*! \page supportedplatforms Supported Platforms
+
+\section linux Linux
+
+Olena has been tested on the following ditributions:
+ \li Debian 5.0 et 6.0,
+ \li Mandriva 2010.x,
+ \li Ubuntu 11.x,
+
+and with the GNU compiler g++ 4.x.
+
+It should work on many other distributions. Feel free to test and tell
+us how it works at <a
+href=mailto:olena@lrde.epita.fr>olena(a)lrde.epita.fr</a>. Thanks!
+
+
+\section win Windows
+
+Olena has been compiled and tested successfully using <a
+href="http://www.cygwin.com">Cygwin</a>. The GNU compiler g++ and all
+the required dependencies must be installed.
+
+User-made programs can also be compiled with <a
+href="http://www.mingw.org">MinGW</a>. However, Olena package shall
+not compile because of missing dependencies.
+
+Currently, Microsoft Visual Studio is not supported.
+
+
+\section mac Mac
+
+Olena has been tested successfully on a x86_64 architecture with:
+ \li Mac OS X 10.5, "Snow Leopard",
+ \li Mac OS X 10.6, "Lion".
+Compilation has been made using Apple's version of gcc.
+
+Olena can also be compiled using compilers and dependencies provided
+by <a href="http://www.macports.org">MacPorts</a>.
+
+\warning in some cases, due to a bug in Apple's gcc, it is necessary
+to compile with the flag '-fno-strict-aliasing'. Otherwise, invalid
+code may be produced by the compiler and strange segmentation fault
+may occur.
+
+*/
\ No newline at end of file
--
1.7.2.5
* doc/Doxyfile.in,
* doc/Makefile.am: Handle correctly macros in symbol names.
* doc/mln/accu/accu.dox,
* doc/mln/canvas/canvas.dox,
* doc/mln/core/image/concrete.dox,
* doc/mln/core/image/domain_morpher.dox,
* doc/mln/core/image/identity_morpher.dox,
* doc/mln/core/image/images.dox,
* doc/mln/core/image/morphers.dox,
* doc/mln/core/image/value_morpher.dox,
* doc/mln/core/neighb.dox,
* doc/mln/data/data.dox,
* doc/mln/io/io.dox,
* doc/mln/main.dox,
* doc/mln/morpho/morpho.dox: Set up documentation groups.
* mln/accu/compute.hh,
* mln/algebra/h_mat.hh,
* mln/algebra/h_vec.hh,
* mln/algebra/mat.hh,
* mln/algebra/quat.hh,
* mln/algebra/vec.hh,
* mln/border/adjust.hh,
* mln/border/duplicate.hh,
* mln/border/equalize.hh,
* mln/border/fill.hh,
* mln/border/find.hh,
* mln/border/get.hh,
* mln/border/mirror.hh,
* mln/border/resize.hh,
* mln/border/resize_equal.hh,
* mln/border/thickness.hh,
* mln/canvas/browsing/backdiagonal2d.hh,
* mln/canvas/browsing/breadth_first_search.hh,
* mln/canvas/browsing/depth_first_search.hh,
* mln/canvas/browsing/diagonal2d.hh,
* mln/canvas/browsing/dir_struct_elt_incr_update.hh,
* mln/canvas/browsing/directional.hh,
* mln/canvas/browsing/fwd.hh,
* mln/canvas/browsing/hyper_directional.hh,
* mln/canvas/browsing/snake_fwd.hh,
* mln/canvas/browsing/snake_generic.hh,
* mln/canvas/browsing/snake_vert.hh,
* mln/canvas/chamfer.hh,
* mln/canvas/distance_front.hh,
* mln/canvas/distance_geodesic.hh,
* mln/canvas/labeling/blobs.hh,
* mln/canvas/labeling/generic.hh,
* mln/canvas/labeling/sorted.hh,
* mln/canvas/labeling/video.hh,
* mln/canvas/morpho/attribute_filter.hh,
* mln/clustering/kmean_rgb.hh,
* mln/convert/impl/from_double_to_value.hh,
* mln/convert/impl/from_float_to_value.hh,
* mln/core/concept/doc/point_iterator.hh,
* mln/core/image/graph_window_piter.hh,
* mln/core/internal/image_base.hh,
* mln/core/neighb.hh,
* mln/core/window.hh,
* mln/data/abs.hh,
* mln/data/apply.hh,
* mln/data/compare.hh,
* mln/data/compute.hh,
* mln/data/compute_in_window.hh,
* mln/data/convert.hh,
* mln/data/fast_median.hh,
* mln/data/fill.hh,
* mln/data/median.hh,
* mln/data/paste.hh,
* mln/data/paste_without_localization.hh,
* mln/data/replace.hh,
* mln/data/saturate.hh,
* mln/data/split.hh,
* mln/data/stretch.hh,
* mln/data/to_enc.hh,
* mln/data/transform.hh,
* mln/data/update.hh,
* mln/data/wrap.hh,
* mln/debug/draw_graph.hh,
* mln/debug/filename.hh,
* mln/debug/format.hh,
* mln/debug/histo.hh,
* mln/debug/iota.hh,
* mln/debug/mosaic.hh,
* mln/debug/println.hh,
* mln/debug/println_with_border.hh,
* mln/debug/put_word.hh,
* mln/debug/quiet.hh,
* mln/debug/slices_2d.hh,
* mln/debug/superpose.hh,
* mln/debug/z_order.hh,
* mln/draw/box.hh,
* mln/draw/box_plain.hh,
* mln/draw/dashed_line.hh,
* mln/draw/line.hh,
* mln/draw/plot.hh,
* mln/draw/polygon.hh,
* mln/draw/site_set.hh,
* mln/extension/adjust.hh,
* mln/extension/adjust_duplicate.hh,
* mln/extension/adjust_fill.hh,
* mln/extension/duplicate.hh,
* mln/extension/fill.hh,
* mln/fun/v2v/hsi_to_rgb.hh,
* mln/fun/v2v/hsl_to_rgb.hh,
* mln/fun/v2v/rgb8_to_rgbn.hh,
* mln/fun/v2v/round.hh,
* mln/fun/v2v/round_sat.hh,
* mln/fun/x2v/bilinear.hh,
* mln/fun/x2v/trilinear.hh,
* mln/geom/bbox.hh,
* mln/geom/chamfer.hh,
* mln/geom/complex_geometry.hh,
* mln/geom/crop.hh,
* mln/geom/crop_without_localization.hh,
* mln/geom/delta.hh,
* mln/geom/horizontal_symmetry.hh,
* mln/geom/max_col.hh,
* mln/geom/max_ind.hh,
* mln/geom/max_row.hh,
* mln/geom/max_sli.hh,
* mln/geom/min_col.hh,
* mln/geom/min_ind.hh,
* mln/geom/min_row.hh,
* mln/geom/min_sli.hh,
* mln/geom/ncols.hh,
* mln/geom/ninds.hh,
* mln/geom/nrows.hh,
* mln/geom/nsites.hh,
* mln/geom/nslis.hh,
* mln/geom/pmin_pmax.hh,
* mln/geom/rotate.hh,
* mln/geom/seeds2tiling.hh,
* mln/geom/seeds2tiling_roundness.hh,
* mln/geom/translate.hh,
* mln/geom/vertical_symmetry.hh,
* mln/io/cloud/load.hh,
* mln/io/cloud/save.hh,
* mln/io/dicom/get_header.hh,
* mln/io/dicom/load.hh,
* mln/io/dump/get_header.hh,
* mln/io/dump/load.hh,
* mln/io/dump/save.hh,
* mln/io/fits/load.hh,
* mln/io/fld/header.hh,
* mln/io/fld/load.hh,
* mln/io/fld/load_header.hh,
* mln/io/fld/max_components.hh,
* mln/io/fld/save.hh,
* mln/io/fld/write_header.hh,
* mln/io/magick/load.hh,
* mln/io/magick/save.hh,
* mln/io/off/load.hh,
* mln/io/off/save.hh,
* mln/io/pbm/load.hh,
* mln/io/pbm/save.hh,
* mln/io/pbms/load.hh,
* mln/io/pfm/load.hh,
* mln/io/pgm/load.hh,
* mln/io/pgm/save.hh,
* mln/io/pgms/load.hh,
* mln/io/plot/load.hh,
* mln/io/plot/save.hh,
* mln/io/ppm/load.hh,
* mln/io/ppm/save.hh,
* mln/io/ppms/load.hh,
* mln/io/raw/get_header.hh,
* mln/io/raw/load.hh,
* mln/io/raw/save.hh,
* mln/io/tiff/load.hh,
* mln/io/txt/save.hh,
* mln/labeling/compute.hh,
* mln/labeling/value_and_compute.hh,
* mln/linear/#ch_convolve.hh#,
* mln/linear/.#ch_convolve.hh,
* mln/linear/convolve.hh,
* mln/linear/convolve_2x1d.hh,
* mln/linear/convolve_directional.hh,
* mln/linear/gaussian.hh,
* mln/linear/gaussian_1d.hh,
* mln/linear/gaussian_directional_2d.hh,
* mln/linear/lap.hh,
* mln/linear/local/convolve.hh,
* mln/linear/log.hh,
* mln/linear/sobel_2d.hh,
* mln/logical/and.hh,
* mln/logical/and_not.hh,
* mln/logical/not.hh,
* mln/logical/or.hh,
* mln/logical/xor.hh,
* mln/make/influence_zone_adjacency_graph.hh,
* mln/math/abs.hh,
* mln/math/acos.hh,
* mln/math/cos.hh,
* mln/math/diff_abs.hh,
* mln/math/jacobi.hh,
* mln/math/max.hh,
* mln/math/min.hh,
* mln/math/pi.hh,
* mln/math/round.hh,
* mln/math/round_sat.hh,
* mln/math/sign.hh,
* mln/math/sin.hh,
* mln/math/sqr.hh,
* mln/math/sqrt.hh,
* mln/morpho/Rd.hh,
* mln/morpho/algebraic_filter.hh,
* mln/morpho/approx/dilation.hh,
* mln/morpho/approx/erosion.hh,
* mln/morpho/closing/algebraic.hh,
* mln/morpho/closing/area.hh,
* mln/morpho/closing/area_on_vertices.hh,
* mln/morpho/closing/height.hh,
* mln/morpho/closing/leveling.hh,
* mln/morpho/closing/structural.hh,
* mln/morpho/closing/sum.hh,
* mln/morpho/closing/volume.hh,
* mln/morpho/complementation.hh,
* mln/morpho/contrast.hh,
* mln/morpho/dilation.hh,
* mln/morpho/erosion.hh,
* mln/morpho/gradient.hh,
* mln/morpho/hit_or_miss.hh,
* mln/morpho/laplacian.hh,
* mln/morpho/leveling_filter.hh,
* mln/morpho/line_gradient.hh,
* mln/morpho/meyer_wst.hh,
* mln/morpho/min.hh,
* mln/morpho/minus.hh,
* mln/morpho/opening/algebraic.hh,
* mln/morpho/opening/approx/structural.hh,
* mln/morpho/opening/area.hh,
* mln/morpho/opening/area_on_vertices.hh,
* mln/morpho/opening/height.hh,
* mln/morpho/opening/leveling.hh,
* mln/morpho/opening/structural.hh,
* mln/morpho/opening/volume.hh,
* mln/morpho/plus.hh,
* mln/morpho/rank_filter.hh,
* mln/morpho/skeleton_constrained.hh,
* mln/morpho/thick_miss.hh,
* mln/morpho/thickening.hh,
* mln/morpho/thin_fit.hh,
* mln/morpho/thinning.hh,
* mln/morpho/top_hat.hh,
* mln/morpho/watershed/flooding.hh,
* mln/norm/l1.hh,
* mln/norm/l2.hh,
* mln/norm/linfty.hh,
* mln/subsampling/antialiased.hh,
* mln/subsampling/gaussian_subsampling.hh,
* mln/subsampling/subsampling.hh,
* mln/topo/is_simple_2d.hh,
* mln/topo/skeleton/is_simple_point.hh,
* mln/transform/distance_and_closest_point_geodesic.hh,
* mln/transform/distance_and_influence_zone_geodesic.hh,
* mln/transform/distance_front.hh,
* mln/transform/distance_geodesic.hh,
* mln/transform/hough.hh,
* mln/transform/influence_zone_front.hh,
* mln/transform/influence_zone_geodesic.hh,
* mln/transform/influence_zone_geodesic_saturated.hh,
* mln/upscaling/art/scale2x.hh,
* mln/upscaling/art/scale3x.hh,
* mln/world/rgb/invert.hh: Add into documentation groups.
---
milena/ChangeLog | 271 ++++++++++++++++++++
milena/doc/Doxyfile.in | 45 +++-
milena/doc/Makefile.am | 3 +-
milena/doc/mln/accu/accu.dox | 16 ++
milena/doc/mln/canvas/canvas.dox | 27 ++
milena/doc/mln/core/image/concrete.dox | 6 +
milena/doc/mln/core/image/domain_morpher.dox | 6 +
milena/doc/mln/core/image/identity_morpher.dox | 6 +
milena/doc/mln/core/image/images.dox | 35 ---
milena/doc/mln/core/image/morphers.dox | 6 +
milena/doc/mln/core/image/value_morpher.dox | 6 +
milena/doc/mln/core/neighb.dox | 8 +
milena/doc/mln/data/data.dox | 6 +
milena/doc/mln/io/io.dox | 110 ++++++++
milena/doc/mln/main.dox | 83 ++++++-
milena/doc/mln/morpho/morpho.dox | 27 ++
milena/mln/accu/compute.hh | 53 +++--
milena/mln/algebra/h_mat.hh | 5 +-
milena/mln/algebra/h_vec.hh | 6 +-
milena/mln/algebra/mat.hh | 27 +-
milena/mln/algebra/quat.hh | 6 +-
milena/mln/algebra/vec.hh | 8 +-
milena/mln/border/adjust.hh | 9 +-
milena/mln/border/duplicate.hh | 8 +-
milena/mln/border/equalize.hh | 10 +-
milena/mln/border/fill.hh | 10 +-
milena/mln/border/find.hh | 6 +-
milena/mln/border/get.hh | 5 +-
milena/mln/border/mirror.hh | 14 +-
milena/mln/border/resize.hh | 9 +-
milena/mln/border/resize_equal.hh | 9 +-
milena/mln/border/thickness.hh | 8 +-
milena/mln/canvas/browsing/backdiagonal2d.hh | 7 +-
milena/mln/canvas/browsing/breadth_first_search.hh | 10 +-
milena/mln/canvas/browsing/depth_first_search.hh | 10 +-
milena/mln/canvas/browsing/diagonal2d.hh | 8 +-
.../canvas/browsing/dir_struct_elt_incr_update.hh | 10 +-
milena/mln/canvas/browsing/directional.hh | 7 +-
milena/mln/canvas/browsing/fwd.hh | 9 +-
milena/mln/canvas/browsing/hyper_directional.hh | 9 +-
milena/mln/canvas/browsing/snake_fwd.hh | 8 +-
milena/mln/canvas/browsing/snake_generic.hh | 8 +-
milena/mln/canvas/browsing/snake_vert.hh | 10 +-
milena/mln/canvas/chamfer.hh | 4 +-
milena/mln/canvas/distance_front.hh | 11 +-
milena/mln/canvas/distance_geodesic.hh | 7 +-
milena/mln/canvas/labeling/blobs.hh | 8 +-
milena/mln/canvas/labeling/generic.hh | 11 +-
milena/mln/canvas/labeling/sorted.hh | 8 +-
milena/mln/canvas/labeling/video.hh | 7 +-
milena/mln/canvas/morpho/attribute_filter.hh | 9 +-
milena/mln/clustering/kmean_rgb.hh | 23 +-
milena/mln/convert/impl/from_double_to_value.hh | 8 +-
milena/mln/convert/impl/from_float_to_value.hh | 12 +-
milena/mln/core/concept/doc/point_iterator.hh | 5 +-
milena/mln/core/image/graph_window_piter.hh | 6 +-
milena/mln/core/internal/image_base.hh | 6 +-
milena/mln/core/neighb.hh | 6 +-
milena/mln/core/window.hh | 4 +-
milena/mln/data/abs.hh | 13 +-
milena/mln/data/apply.hh | 7 +-
milena/mln/data/compare.hh | 58 +++--
milena/mln/data/compute.hh | 60 +++--
milena/mln/data/compute_in_window.hh | 25 +-
milena/mln/data/convert.hh | 15 +-
milena/mln/data/fast_median.hh | 9 +-
milena/mln/data/fill.hh | 7 +-
milena/mln/data/median.hh | 9 +-
milena/mln/data/paste.hh | 37 ++--
milena/mln/data/paste_without_localization.hh | 20 +-
milena/mln/data/replace.hh | 8 +-
milena/mln/data/saturate.hh | 15 +-
milena/mln/data/split.hh | 17 +-
milena/mln/data/stretch.hh | 8 +-
milena/mln/data/to_enc.hh | 5 +-
milena/mln/data/transform.hh | 10 +-
milena/mln/data/update.hh | 8 +-
milena/mln/data/wrap.hh | 9 +-
milena/mln/debug/draw_graph.hh | 64 +++---
milena/mln/debug/filename.hh | 31 ++-
milena/mln/debug/format.hh | 25 ++-
milena/mln/debug/histo.hh | 6 +-
milena/mln/debug/iota.hh | 15 +-
milena/mln/debug/mosaic.hh | 5 +-
milena/mln/debug/println.hh | 13 +-
milena/mln/debug/println_with_border.hh | 7 +-
milena/mln/debug/put_word.hh | 9 +-
milena/mln/debug/quiet.hh | 8 +-
milena/mln/debug/slices_2d.hh | 14 +-
milena/mln/debug/superpose.hh | 39 ++--
milena/mln/debug/z_order.hh | 8 +-
milena/mln/draw/box.hh | 25 +-
milena/mln/draw/box_plain.hh | 26 +-
milena/mln/draw/dashed_line.hh | 33 ++-
milena/mln/draw/line.hh | 32 ++-
milena/mln/draw/plot.hh | 22 +-
milena/mln/draw/polygon.hh | 31 ++-
milena/mln/draw/site_set.hh | 25 +-
milena/mln/extension/adjust.hh | 31 ++-
milena/mln/extension/adjust_duplicate.hh | 20 ++-
milena/mln/extension/adjust_fill.hh | 20 ++-
milena/mln/extension/duplicate.hh | 10 +-
milena/mln/extension/fill.hh | 9 +-
milena/mln/fun/v2v/hsi_to_rgb.hh | 12 +-
milena/mln/fun/v2v/hsl_to_rgb.hh | 12 +-
milena/mln/fun/v2v/rgb8_to_rgbn.hh | 7 +-
milena/mln/fun/v2v/round.hh | 77 ++++++
milena/mln/fun/v2v/round_sat.hh | 84 ++++++
milena/mln/fun/x2v/bilinear.hh | 2 +-
milena/mln/fun/x2v/trilinear.hh | 16 +-
milena/mln/geom/bbox.hh | 25 ++-
milena/mln/geom/chamfer.hh | 9 +-
milena/mln/geom/complex_geometry.hh | 7 +-
milena/mln/geom/crop.hh | 7 +-
milena/mln/geom/crop_without_localization.hh | 8 +-
milena/mln/geom/delta.hh | 18 +-
milena/mln/geom/horizontal_symmetry.hh | 9 +-
milena/mln/geom/max_col.hh | 14 +-
milena/mln/geom/max_ind.hh | 8 +-
milena/mln/geom/max_row.hh | 14 +-
milena/mln/geom/max_sli.hh | 7 +-
milena/mln/geom/min_col.hh | 14 +-
milena/mln/geom/min_ind.hh | 8 +-
milena/mln/geom/min_row.hh | 14 +-
milena/mln/geom/min_sli.hh | 7 +-
milena/mln/geom/ncols.hh | 12 +-
milena/mln/geom/ninds.hh | 8 +-
milena/mln/geom/nrows.hh | 12 +-
milena/mln/geom/nsites.hh | 8 +-
milena/mln/geom/nslis.hh | 9 +-
milena/mln/geom/pmin_pmax.hh | 34 ++-
milena/mln/geom/rotate.hh | 70 +++--
milena/mln/geom/seeds2tiling.hh | 25 +-
milena/mln/geom/seeds2tiling_roundness.hh | 31 ++-
milena/mln/geom/translate.hh | 45 ++--
milena/mln/geom/vertical_symmetry.hh | 9 +-
milena/mln/io/cloud/load.hh | 14 +-
milena/mln/io/cloud/save.hh | 14 +-
milena/mln/io/dicom/get_header.hh | 13 +-
milena/mln/io/dicom/load.hh | 7 +-
milena/mln/io/dump/get_header.hh | 9 +-
milena/mln/io/dump/load.hh | 14 +-
milena/mln/io/dump/save.hh | 15 +-
milena/mln/io/fits/load.hh | 31 ++-
milena/mln/io/fld/header.hh | 9 +-
milena/mln/io/fld/load.hh | 16 +-
milena/mln/io/fld/load_header.hh | 16 +-
milena/mln/io/fld/max_components.hh | 6 +-
milena/mln/io/fld/save.hh | 4 +
milena/mln/io/fld/write_header.hh | 15 +-
milena/mln/io/magick/load.hh | 12 +-
milena/mln/io/magick/save.hh | 13 +-
milena/mln/io/off/load.hh | 24 ++-
milena/mln/io/off/save.hh | 30 ++-
milena/mln/io/pbm/load.hh | 31 ++-
milena/mln/io/pbm/save.hh | 6 +-
milena/mln/io/pbms/load.hh | 16 +-
milena/mln/io/pfm/load.hh | 31 ++-
milena/mln/io/pgm/load.hh | 35 ++-
milena/mln/io/pgm/save.hh | 6 +-
milena/mln/io/pgms/load.hh | 17 +-
milena/mln/io/plot/load.hh | 34 +--
milena/mln/io/plot/save.hh | 16 +-
milena/mln/io/ppm/load.hh | 36 ++-
milena/mln/io/ppm/save.hh | 7 +-
milena/mln/io/ppms/load.hh | 16 +-
milena/mln/io/raw/get_header.hh | 13 +-
milena/mln/io/raw/load.hh | 24 +-
milena/mln/io/raw/save.hh | 25 +-
milena/mln/io/tiff/load.hh | 9 +-
milena/mln/io/txt/save.hh | 15 +-
milena/mln/labeling/compute.hh | 61 +-----
milena/mln/labeling/value_and_compute.hh | 4 +-
milena/mln/linear/#ch_convolve.hh# | 103 ++++++++
milena/mln/linear/.#ch_convolve.hh | 1 +
milena/mln/linear/convolve.hh | 28 ++-
milena/mln/linear/convolve_2x1d.hh | 19 +-
milena/mln/linear/convolve_directional.hh | 27 +-
milena/mln/linear/gaussian.hh | 17 +-
milena/mln/linear/gaussian_1d.hh | 7 +-
milena/mln/linear/gaussian_directional_2d.hh | 7 +-
milena/mln/linear/lap.hh | 13 +-
milena/mln/linear/local/convolve.hh | 39 ++--
milena/mln/linear/log.hh | 13 +-
milena/mln/linear/sobel_2d.hh | 17 +-
milena/mln/logical/and.hh | 7 +-
milena/mln/logical/and_not.hh | 13 +-
milena/mln/logical/not.hh | 11 +-
milena/mln/logical/or.hh | 13 +-
milena/mln/logical/xor.hh | 13 +-
milena/mln/make/influence_zone_adjacency_graph.hh | 4 +-
milena/mln/math/abs.hh | 25 ++-
milena/mln/math/acos.hh | 6 +-
milena/mln/math/cos.hh | 6 +-
milena/mln/math/diff_abs.hh | 7 +-
milena/mln/math/jacobi.hh | 5 +-
milena/mln/math/max.hh | 6 +-
milena/mln/math/min.hh | 6 +-
milena/mln/math/pi.hh | 8 +-
milena/mln/math/round.hh | 49 +++-
milena/mln/math/round_sat.hh | 63 +++--
milena/mln/math/sign.hh | 6 +-
milena/mln/math/sin.hh | 8 +-
milena/mln/math/sqr.hh | 6 +-
milena/mln/math/sqrt.hh | 6 +-
milena/mln/morpho/Rd.hh | 9 +-
milena/mln/morpho/algebraic_filter.hh | 5 +-
milena/mln/morpho/approx/dilation.hh | 20 +-
milena/mln/morpho/approx/erosion.hh | 20 +-
milena/mln/morpho/closing/algebraic.hh | 7 +-
milena/mln/morpho/closing/area.hh | 8 +-
milena/mln/morpho/closing/area_on_vertices.hh | 23 +-
milena/mln/morpho/closing/height.hh | 5 +-
milena/mln/morpho/closing/leveling.hh | 8 +-
milena/mln/morpho/closing/structural.hh | 13 +-
milena/mln/morpho/closing/sum.hh | 8 +-
milena/mln/morpho/closing/volume.hh | 8 +-
milena/mln/morpho/complementation.hh | 17 +-
milena/mln/morpho/contrast.hh | 9 +-
milena/mln/morpho/dilation.hh | 8 +-
milena/mln/morpho/erosion.hh | 7 +-
milena/mln/morpho/gradient.hh | 30 ++-
milena/mln/morpho/hit_or_miss.hh | 29 ++-
milena/mln/morpho/laplacian.hh | 12 +-
milena/mln/morpho/leveling_filter.hh | 7 +-
milena/mln/morpho/line_gradient.hh | 10 +-
milena/mln/morpho/meyer_wst.hh | 19 +-
milena/mln/morpho/min.hh | 17 +-
milena/mln/morpho/minus.hh | 10 +-
milena/mln/morpho/opening/algebraic.hh | 27 ++-
milena/mln/morpho/opening/approx/structural.hh | 12 +-
milena/mln/morpho/opening/area.hh | 8 +-
milena/mln/morpho/opening/area_on_vertices.hh | 23 +-
milena/mln/morpho/opening/height.hh | 8 +-
milena/mln/morpho/opening/leveling.hh | 27 ++-
milena/mln/morpho/opening/structural.hh | 12 +-
milena/mln/morpho/opening/volume.hh | 8 +-
milena/mln/morpho/plus.hh | 9 +-
milena/mln/morpho/rank_filter.hh | 8 +-
milena/mln/morpho/skeleton_constrained.hh | 8 +-
milena/mln/morpho/thick_miss.hh | 7 +-
milena/mln/morpho/thickening.hh | 11 +-
milena/mln/morpho/thin_fit.hh | 9 +-
milena/mln/morpho/thinning.hh | 13 +-
milena/mln/morpho/top_hat.hh | 40 ++--
milena/mln/morpho/watershed/flooding.hh | 64 +++--
milena/mln/norm/l1.hh | 11 +-
milena/mln/norm/l2.hh | 15 +-
milena/mln/norm/linfty.hh | 12 +-
milena/mln/subsampling/antialiased.hh | 6 +-
milena/mln/subsampling/gaussian_subsampling.hh | 6 +-
milena/mln/subsampling/subsampling.hh | 8 +-
milena/mln/topo/is_simple_2d.hh | 6 +-
milena/mln/topo/skeleton/is_simple_point.hh | 6 +-
.../distance_and_closest_point_geodesic.hh | 55 +++--
.../distance_and_influence_zone_geodesic.hh | 28 ++-
milena/mln/transform/distance_front.hh | 7 +-
milena/mln/transform/distance_geodesic.hh | 7 +-
milena/mln/transform/hough.hh | 30 ++-
milena/mln/transform/influence_zone_front.hh | 11 +-
milena/mln/transform/influence_zone_geodesic.hh | 18 +-
.../transform/influence_zone_geodesic_saturated.hh | 29 ++-
milena/mln/upscaling/art/scale2x.hh | 4 +-
milena/mln/upscaling/art/scale3x.hh | 4 +-
milena/mln/world/rgb/invert.hh | 5 +-
265 files changed, 3208 insertions(+), 1481 deletions(-)
create mode 100644 milena/doc/mln/canvas/canvas.dox
create mode 100644 milena/doc/mln/core/image/concrete.dox
create mode 100644 milena/doc/mln/core/image/domain_morpher.dox
create mode 100644 milena/doc/mln/core/image/identity_morpher.dox
create mode 100644 milena/doc/mln/core/image/morphers.dox
create mode 100644 milena/doc/mln/core/image/value_morpher.dox
create mode 100644 milena/doc/mln/data/data.dox
create mode 100644 milena/doc/mln/io/io.dox
create mode 100644 milena/doc/mln/morpho/morpho.dox
create mode 100644 milena/mln/fun/v2v/round.hh
create mode 100644 milena/mln/fun/v2v/round_sat.hh
create mode 100644 milena/mln/linear/#ch_convolve.hh#
create mode 120000 milena/mln/linear/.#ch_convolve.hh
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 11e5a48..c5042e4 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,276 @@
2012-02-27 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Set up documentation groups in Milena documentation.
+
+ * doc/Doxyfile.in,
+ * doc/Makefile.am: Handle correctly macros in symbol names.
+
+ * doc/mln/accu/accu.dox,
+ * doc/mln/canvas/canvas.dox,
+ * doc/mln/core/image/concrete.dox,
+ * doc/mln/core/image/domain_morpher.dox,
+ * doc/mln/core/image/identity_morpher.dox,
+ * doc/mln/core/image/images.dox,
+ * doc/mln/core/image/morphers.dox,
+ * doc/mln/core/image/value_morpher.dox,
+ * doc/mln/core/neighb.dox,
+ * doc/mln/data/data.dox,
+ * doc/mln/io/io.dox,
+ * doc/mln/main.dox,
+ * doc/mln/morpho/morpho.dox: Set up documentation groups.
+
+ * mln/accu/compute.hh,
+ * mln/algebra/h_mat.hh,
+ * mln/algebra/h_vec.hh,
+ * mln/algebra/mat.hh,
+ * mln/algebra/quat.hh,
+ * mln/algebra/vec.hh,
+ * mln/border/adjust.hh,
+ * mln/border/duplicate.hh,
+ * mln/border/equalize.hh,
+ * mln/border/fill.hh,
+ * mln/border/find.hh,
+ * mln/border/get.hh,
+ * mln/border/mirror.hh,
+ * mln/border/resize.hh,
+ * mln/border/resize_equal.hh,
+ * mln/border/thickness.hh,
+ * mln/canvas/browsing/backdiagonal2d.hh,
+ * mln/canvas/browsing/breadth_first_search.hh,
+ * mln/canvas/browsing/depth_first_search.hh,
+ * mln/canvas/browsing/diagonal2d.hh,
+ * mln/canvas/browsing/dir_struct_elt_incr_update.hh,
+ * mln/canvas/browsing/directional.hh,
+ * mln/canvas/browsing/fwd.hh,
+ * mln/canvas/browsing/hyper_directional.hh,
+ * mln/canvas/browsing/snake_fwd.hh,
+ * mln/canvas/browsing/snake_generic.hh,
+ * mln/canvas/browsing/snake_vert.hh,
+ * mln/canvas/chamfer.hh,
+ * mln/canvas/distance_front.hh,
+ * mln/canvas/distance_geodesic.hh,
+ * mln/canvas/labeling/blobs.hh,
+ * mln/canvas/labeling/generic.hh,
+ * mln/canvas/labeling/sorted.hh,
+ * mln/canvas/labeling/video.hh,
+ * mln/canvas/morpho/attribute_filter.hh,
+ * mln/clustering/kmean_rgb.hh,
+ * mln/convert/impl/from_double_to_value.hh,
+ * mln/convert/impl/from_float_to_value.hh,
+ * mln/core/concept/doc/point_iterator.hh,
+ * mln/core/image/graph_window_piter.hh,
+ * mln/core/internal/image_base.hh,
+ * mln/core/neighb.hh,
+ * mln/core/window.hh,
+ * mln/data/abs.hh,
+ * mln/data/apply.hh,
+ * mln/data/compare.hh,
+ * mln/data/compute.hh,
+ * mln/data/compute_in_window.hh,
+ * mln/data/convert.hh,
+ * mln/data/fast_median.hh,
+ * mln/data/fill.hh,
+ * mln/data/median.hh,
+ * mln/data/paste.hh,
+ * mln/data/paste_without_localization.hh,
+ * mln/data/replace.hh,
+ * mln/data/saturate.hh,
+ * mln/data/split.hh,
+ * mln/data/stretch.hh,
+ * mln/data/to_enc.hh,
+ * mln/data/transform.hh,
+ * mln/data/update.hh,
+ * mln/data/wrap.hh,
+ * mln/debug/draw_graph.hh,
+ * mln/debug/filename.hh,
+ * mln/debug/format.hh,
+ * mln/debug/histo.hh,
+ * mln/debug/iota.hh,
+ * mln/debug/mosaic.hh,
+ * mln/debug/println.hh,
+ * mln/debug/println_with_border.hh,
+ * mln/debug/put_word.hh,
+ * mln/debug/quiet.hh,
+ * mln/debug/slices_2d.hh,
+ * mln/debug/superpose.hh,
+ * mln/debug/z_order.hh,
+ * mln/draw/box.hh,
+ * mln/draw/box_plain.hh,
+ * mln/draw/dashed_line.hh,
+ * mln/draw/line.hh,
+ * mln/draw/plot.hh,
+ * mln/draw/polygon.hh,
+ * mln/draw/site_set.hh,
+ * mln/extension/adjust.hh,
+ * mln/extension/adjust_duplicate.hh,
+ * mln/extension/adjust_fill.hh,
+ * mln/extension/duplicate.hh,
+ * mln/extension/fill.hh,
+ * mln/fun/v2v/hsi_to_rgb.hh,
+ * mln/fun/v2v/hsl_to_rgb.hh,
+ * mln/fun/v2v/rgb8_to_rgbn.hh,
+ * mln/fun/v2v/round.hh,
+ * mln/fun/v2v/round_sat.hh,
+ * mln/fun/x2v/bilinear.hh,
+ * mln/fun/x2v/trilinear.hh,
+ * mln/geom/bbox.hh,
+ * mln/geom/chamfer.hh,
+ * mln/geom/complex_geometry.hh,
+ * mln/geom/crop.hh,
+ * mln/geom/crop_without_localization.hh,
+ * mln/geom/delta.hh,
+ * mln/geom/horizontal_symmetry.hh,
+ * mln/geom/max_col.hh,
+ * mln/geom/max_ind.hh,
+ * mln/geom/max_row.hh,
+ * mln/geom/max_sli.hh,
+ * mln/geom/min_col.hh,
+ * mln/geom/min_ind.hh,
+ * mln/geom/min_row.hh,
+ * mln/geom/min_sli.hh,
+ * mln/geom/ncols.hh,
+ * mln/geom/ninds.hh,
+ * mln/geom/nrows.hh,
+ * mln/geom/nsites.hh,
+ * mln/geom/nslis.hh,
+ * mln/geom/pmin_pmax.hh,
+ * mln/geom/rotate.hh,
+ * mln/geom/seeds2tiling.hh,
+ * mln/geom/seeds2tiling_roundness.hh,
+ * mln/geom/translate.hh,
+ * mln/geom/vertical_symmetry.hh,
+ * mln/io/cloud/load.hh,
+ * mln/io/cloud/save.hh,
+ * mln/io/dicom/get_header.hh,
+ * mln/io/dicom/load.hh,
+ * mln/io/dump/get_header.hh,
+ * mln/io/dump/load.hh,
+ * mln/io/dump/save.hh,
+ * mln/io/fits/load.hh,
+ * mln/io/fld/header.hh,
+ * mln/io/fld/load.hh,
+ * mln/io/fld/load_header.hh,
+ * mln/io/fld/max_components.hh,
+ * mln/io/fld/save.hh,
+ * mln/io/fld/write_header.hh,
+ * mln/io/magick/load.hh,
+ * mln/io/magick/save.hh,
+ * mln/io/off/load.hh,
+ * mln/io/off/save.hh,
+ * mln/io/pbm/load.hh,
+ * mln/io/pbm/save.hh,
+ * mln/io/pbms/load.hh,
+ * mln/io/pfm/load.hh,
+ * mln/io/pgm/load.hh,
+ * mln/io/pgm/save.hh,
+ * mln/io/pgms/load.hh,
+ * mln/io/plot/load.hh,
+ * mln/io/plot/save.hh,
+ * mln/io/ppm/load.hh,
+ * mln/io/ppm/save.hh,
+ * mln/io/ppms/load.hh,
+ * mln/io/raw/get_header.hh,
+ * mln/io/raw/load.hh,
+ * mln/io/raw/save.hh,
+ * mln/io/tiff/load.hh,
+ * mln/io/txt/save.hh,
+ * mln/labeling/compute.hh,
+ * mln/labeling/value_and_compute.hh,
+ * mln/linear/#ch_convolve.hh#,
+ * mln/linear/.#ch_convolve.hh,
+ * mln/linear/convolve.hh,
+ * mln/linear/convolve_2x1d.hh,
+ * mln/linear/convolve_directional.hh,
+ * mln/linear/gaussian.hh,
+ * mln/linear/gaussian_1d.hh,
+ * mln/linear/gaussian_directional_2d.hh,
+ * mln/linear/lap.hh,
+ * mln/linear/local/convolve.hh,
+ * mln/linear/log.hh,
+ * mln/linear/sobel_2d.hh,
+ * mln/logical/and.hh,
+ * mln/logical/and_not.hh,
+ * mln/logical/not.hh,
+ * mln/logical/or.hh,
+ * mln/logical/xor.hh,
+ * mln/make/influence_zone_adjacency_graph.hh,
+ * mln/math/abs.hh,
+ * mln/math/acos.hh,
+ * mln/math/cos.hh,
+ * mln/math/diff_abs.hh,
+ * mln/math/jacobi.hh,
+ * mln/math/max.hh,
+ * mln/math/min.hh,
+ * mln/math/pi.hh,
+ * mln/math/round.hh,
+ * mln/math/round_sat.hh,
+ * mln/math/sign.hh,
+ * mln/math/sin.hh,
+ * mln/math/sqr.hh,
+ * mln/math/sqrt.hh,
+ * mln/morpho/Rd.hh,
+ * mln/morpho/algebraic_filter.hh,
+ * mln/morpho/approx/dilation.hh,
+ * mln/morpho/approx/erosion.hh,
+ * mln/morpho/closing/algebraic.hh,
+ * mln/morpho/closing/area.hh,
+ * mln/morpho/closing/area_on_vertices.hh,
+ * mln/morpho/closing/height.hh,
+ * mln/morpho/closing/leveling.hh,
+ * mln/morpho/closing/structural.hh,
+ * mln/morpho/closing/sum.hh,
+ * mln/morpho/closing/volume.hh,
+ * mln/morpho/complementation.hh,
+ * mln/morpho/contrast.hh,
+ * mln/morpho/dilation.hh,
+ * mln/morpho/erosion.hh,
+ * mln/morpho/gradient.hh,
+ * mln/morpho/hit_or_miss.hh,
+ * mln/morpho/laplacian.hh,
+ * mln/morpho/leveling_filter.hh,
+ * mln/morpho/line_gradient.hh,
+ * mln/morpho/meyer_wst.hh,
+ * mln/morpho/min.hh,
+ * mln/morpho/minus.hh,
+ * mln/morpho/opening/algebraic.hh,
+ * mln/morpho/opening/approx/structural.hh,
+ * mln/morpho/opening/area.hh,
+ * mln/morpho/opening/area_on_vertices.hh,
+ * mln/morpho/opening/height.hh,
+ * mln/morpho/opening/leveling.hh,
+ * mln/morpho/opening/structural.hh,
+ * mln/morpho/opening/volume.hh,
+ * mln/morpho/plus.hh,
+ * mln/morpho/rank_filter.hh,
+ * mln/morpho/skeleton_constrained.hh,
+ * mln/morpho/thick_miss.hh,
+ * mln/morpho/thickening.hh,
+ * mln/morpho/thin_fit.hh,
+ * mln/morpho/thinning.hh,
+ * mln/morpho/top_hat.hh,
+ * mln/morpho/watershed/flooding.hh,
+ * mln/norm/l1.hh,
+ * mln/norm/l2.hh,
+ * mln/norm/linfty.hh,
+ * mln/subsampling/antialiased.hh,
+ * mln/subsampling/gaussian_subsampling.hh,
+ * mln/subsampling/subsampling.hh,
+ * mln/topo/is_simple_2d.hh,
+ * mln/topo/skeleton/is_simple_point.hh,
+ * mln/transform/distance_and_closest_point_geodesic.hh,
+ * mln/transform/distance_and_influence_zone_geodesic.hh,
+ * mln/transform/distance_front.hh,
+ * mln/transform/distance_geodesic.hh,
+ * mln/transform/hough.hh,
+ * mln/transform/influence_zone_front.hh,
+ * mln/transform/influence_zone_geodesic.hh,
+ * mln/transform/influence_zone_geodesic_saturated.hh,
+ * mln/upscaling/art/scale2x.hh,
+ * mln/upscaling/art/scale3x.hh,
+ * mln/world/rgb/invert.hh: Add into documentation groups.
+
+2012-02-27 Guillaume Lazzara <z(a)lrde.epita.fr>
+
* tests/unit_test/unit-tests.mk: Regen.
2012-02-27 Guillaume Lazzara <z(a)lrde.epita.fr>
diff --git a/milena/doc/Doxyfile.in b/milena/doc/Doxyfile.in
index 1d0125f..4b44d80 100644
--- a/milena/doc/Doxyfile.in
+++ b/milena/doc/Doxyfile.in
@@ -66,6 +66,7 @@ HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
+SORT_MEMBERS_CTORS_1ST = YES
SORT_BRIEF_DOCS = YES
SORT_BY_SCOPE_NAME = YES
GENERATE_TODOLIST = NO
@@ -108,7 +109,26 @@ EXCLUDE = @top_srcdir@/milena/sandbox \
@top_srcdir@/milena/tests/unit_test
EXCLUDE_SYMLINKS = YES
EXCLUDE_PATTERNS = *spe.hh
-EXCLUDE_SYMBOLS = *::internal* *_ mln::trait::*
+EXCLUDE_SYMBOLS = *_ \
+ *_dispatch \
+ mln::trait::* \
+ trait::* \
+ mln::*<void> \
+ mln::*< void > \
+ numeric_limits \
+ subject_impl \
+ subject_point_impl \
+ check_t \
+ ret \
+ It \
+ eval \
+ is_a \
+ composition_unary_impl_helper \
+ image_base \
+ binary_impl \
+ unary_impl \
+ proxy_impl \
+ T
EXAMPLE_PATH = @top_srcdir@/milena/doc/examples \
@top_srcdir@/milena/doc/outputs \
@top_srcdir@/milena/doc/examples/split \
@@ -219,7 +239,7 @@ ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
-INCLUDE_PATH =
+INCLUDE_PATH = "@boostcppflags@"
INCLUDE_FILE_PATTERNS =
PREDEFINED = "for_all(x)=for(x.start(); x.is_valid(); x.next())" \
"for_all_2(x1, x2)=for(x1.start(), x2.start(); x1.is_valid(); x1.next(), x2.next())" \
@@ -320,10 +340,17 @@ PREDEFINED = "for_all(x)=for(x.start(); x.is_valid(); x.next())" \
"mln_graph_element_(T)=T::graph_element" \
"mln_fun_vv2v(F, L, R)=mln::fun::vv2v::F< mln_value(L), mln_value(R) >" \
"mln_fun_vv2v_result(F, L, R)=typename mln_fun_vv2v(F, L, R)::result" \
- "mln_ch_fun_vv2v(F, L, R)=typename mln::trait::ch_value< L, typename mln_fun_vv2v(F, L, R)::result >::ret"
-
-
-
+ "mln_ch_fun_vv2v(F, L, R)=typename mln::trait::ch_value< L, typename mln_fun_vv2v(F, L, R)::result >::ret" \
+ "mln_meta_accu_result(A, T)=typename mln::internal::meta_accu_ret_result_helper<A,T>::result" \
+ "mln_meta_accu_result_(A, T)=mln::internal::meta_accu_ret_result_helper<A,T>::result" \
+ "mln_q_subject(T)=typename T::q_subject" \
+ "mln_q_subject(T)_=T::q_subject" \
+ "mlc_is_a(T, M)=mln::metal::is_a<T, M>" \
+ "mlc_is_a__1comma(Tleft, Tright, M)=mln::metal::is_a<Tleft, Tright, M>" \
+ "mlc_is_not_a(T, M)=mln::metal::is_not_a< T, M >" \
+ "mlc_converts_to(T, U)=mln::metal::converts_to< T, U >" \
+ "mlc_not_equal(T1, T2)=mln::metal::not_equal< T1, T2 >" \
+ "BOOST_PP_LOCAL_ITERATE()=<boost/preprocessor/iteration/detail/local.hpp>"
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
@@ -368,9 +395,9 @@ SEARCHENGINE = YES
# Configuration::additions related to the Qt help engine
#---------------------------------------------------------------------------
GENERATE_QHP = yes
-QHP_NAMESPACE = "fr.epita.lrde.olena.scribo"
-QHP_VIRTUAL_FOLDER = "scribo-2.0"
-QCH_FILE = "@builddir@/scribo.qch"
+QHP_NAMESPACE = "fr.epita.lrde.olena.milena"
+QHP_VIRTUAL_FOLDER = "milena-2.0"
+QCH_FILE = "@builddir@/milena.qch"
QHG_LOCATION = "qhelpgenerator"
diff --git a/milena/doc/Makefile.am b/milena/doc/Makefile.am
index fffa7bd..be34a97 100644
--- a/milena/doc/Makefile.am
+++ b/milena/doc/Makefile.am
@@ -213,7 +213,8 @@ edit = sed -e "s|@ID@|$$Id|" \
-e 's,@abs_top_srcdir\@,$(abs_top_srcdir),g' \
-e 's,@top_builddir\@,$(top_builddir),g' \
-e 's,@srcdir\@,$(srcdir),g' \
- -e 's,@builddir\@,$(builddir),g'
+ -e 's,@builddir\@,$(builddir),g' \
+ -e 's,@boostcppflags\@,$(BOOST_CPPFLAGS),g'
$(DOXYFILE_USER): $(srcdir)/$(DOXYFILE).in
Id=`grep '^\$$Id' $(top_srcdir)/milena/ChangeLog \
diff --git a/milena/doc/mln/accu/accu.dox b/milena/doc/mln/accu/accu.dox
index bce4846..0fd757b 100644
--- a/milena/doc/mln/accu/accu.dox
+++ b/milena/doc/mln/accu/accu.dox
@@ -1,3 +1,9 @@
+/*! \defgroup modaccu Accumulators
+ *
+ * \brief All accumulator types.
+ *
+ */
+
/*! \defgroup modaccusiteset On site sets
*
* \brief Accumulators working on site sets.
@@ -27,3 +33,13 @@
* \ingroup modaccu
*/
+
+
+
+/*! \defgroup mlnaccucompute Accumulator Computation
+ *
+ * \brief All routines related to Accumulator computation.
+ *
+ * \ingroup modroutines
+ */
+
diff --git a/milena/doc/mln/canvas/canvas.dox b/milena/doc/mln/canvas/canvas.dox
new file mode 100644
index 0000000..7219745
--- /dev/null
+++ b/milena/doc/mln/canvas/canvas.dox
@@ -0,0 +1,27 @@
+/*! \defgroup modcanvas Canvas
+ *
+ * \brief All canvas.
+ *
+ */
+
+
+/*! \defgroup modcanvasbrowsing Browsing Canvas
+ *
+ * \brief All browsing canvas.
+ *
+ * \ingroup modcanvas
+ */
+
+/*! \defgroup modcanvaslabeling Labeling Canvas
+ *
+ * \brief All labeling canvas.
+ *
+ * \ingroup modcanvas
+ */
+
+/*! \defgroup modcanvasmorpho Morphology Related Canvas
+ *
+ * \brief All Morphology related canvas.
+ *
+ * \ingroup modcanvas
+ */
diff --git a/milena/doc/mln/core/image/concrete.dox b/milena/doc/mln/core/image/concrete.dox
new file mode 100644
index 0000000..1fe3154
--- /dev/null
+++ b/milena/doc/mln/core/image/concrete.dox
@@ -0,0 +1,6 @@
+/*! \defgroup modimageconcrete Basic types
+ *
+ * \brief Concrete images.
+ *
+ * \ingroup modimage
+ */
diff --git a/milena/doc/mln/core/image/domain_morpher.dox b/milena/doc/mln/core/image/domain_morpher.dox
new file mode 100644
index 0000000..9942642
--- /dev/null
+++ b/milena/doc/mln/core/image/domain_morpher.dox
@@ -0,0 +1,6 @@
+/*! \defgroup modimagedomainmorpher Domain morphers
+ *
+ * \brief Morpher on image domain.
+ *
+ * \ingroup modimagemorpher
+ */
diff --git a/milena/doc/mln/core/image/identity_morpher.dox b/milena/doc/mln/core/image/identity_morpher.dox
new file mode 100644
index 0000000..438f444
--- /dev/null
+++ b/milena/doc/mln/core/image/identity_morpher.dox
@@ -0,0 +1,6 @@
+/*! \defgroup modimageidmorpher Identity morphers
+ *
+ * \brief Morpher adding new functionnalities.
+ *
+ * \ingroup modimagemorpher
+ */
diff --git a/milena/doc/mln/core/image/images.dox b/milena/doc/mln/core/image/images.dox
index 438410b..ac8508e 100644
--- a/milena/doc/mln/core/image/images.dox
+++ b/milena/doc/mln/core/image/images.dox
@@ -5,39 +5,4 @@
* \ingroup modtypes
*/
-/*! \defgroup modimageconcrete Basic types
- *
- * \brief Concrete images.
- *
- * \ingroup modimage
- */
-
-/*! \defgroup modimagemorpher Image morphers
- *
- * \brief Morpher on both image values and domain.
- *
- * \ingroup modimage
- */
-
-/*! \defgroup modimagevaluemorpher Values morphers
- *
- * \brief Morpher on image values.
- *
- * \ingroup modimage
- */
-
-/*! \defgroup modimagedomainmorpher Domain morphers
- *
- * \brief Morpher on image domain.
- *
- * \ingroup modimage
- */
-
-/*! \defgroup modimageidmorpher Identity morphers
- *
- * \brief Morpher adding new functionnalities.
- *
- * \ingroup modimage
- */
-
diff --git a/milena/doc/mln/core/image/morphers.dox b/milena/doc/mln/core/image/morphers.dox
new file mode 100644
index 0000000..5354898
--- /dev/null
+++ b/milena/doc/mln/core/image/morphers.dox
@@ -0,0 +1,6 @@
+/*! \defgroup modimagemorpher Image morphers
+ *
+ * \brief Morpher on both image values and domain.
+ *
+ * \ingroup modimage
+ */
diff --git a/milena/doc/mln/core/image/value_morpher.dox b/milena/doc/mln/core/image/value_morpher.dox
new file mode 100644
index 0000000..f034335
--- /dev/null
+++ b/milena/doc/mln/core/image/value_morpher.dox
@@ -0,0 +1,6 @@
+/*! \defgroup modimagevaluemorpher Values morphers
+ *
+ * \brief Morpher on image values.
+ *
+ * \ingroup modimagemorpher
+ */
diff --git a/milena/doc/mln/core/neighb.dox b/milena/doc/mln/core/neighb.dox
index ec9e07f..1156e3f 100644
--- a/milena/doc/mln/core/neighb.dox
+++ b/milena/doc/mln/core/neighb.dox
@@ -26,3 +26,11 @@
* \ingroup modneighb
*/
+
+/*! \defgroup modneighbnd N-D Neighborhoods
+ *
+ * \brief Predefined N-D neighborhoods.
+ *
+ * \ingroup modneighb
+ */
+
diff --git a/milena/doc/mln/data/data.dox b/milena/doc/mln/data/data.dox
new file mode 100644
index 0000000..71e174a
--- /dev/null
+++ b/milena/doc/mln/data/data.dox
@@ -0,0 +1,6 @@
+/*! \defgroup mlndata Data Manipulation
+ *
+ * \brief All routines related to Image Data Manipulation.
+ *
+ * \ingroup imagemanip
+ */
diff --git a/milena/doc/mln/io/io.dox b/milena/doc/mln/io/io.dox
new file mode 100644
index 0000000..cc2ae0d
--- /dev/null
+++ b/milena/doc/mln/io/io.dox
@@ -0,0 +1,110 @@
+/*! \defgroup iogroup I/O
+ *
+ * \brief All supported I/O.
+ *
+ */
+
+/*! \defgroup iocloud Cloud
+ *
+ * \brief Cloud I/O routines.
+ *
+ * \ingroup iogroup
+ */
+
+/*! \defgroup iodicom DICOM
+ *
+ * \brief DICOM I/O routines.
+ *
+ * \ingroup iogroup
+ */
+
+/*! \defgroup iodump Dump
+ *
+ * \brief Dump I/O routines.
+ *
+ * \ingroup iogroup
+ */
+
+/*! \defgroup iofits FITS
+ *
+ * \brief FITS I/O routines.
+ *
+ * \ingroup iogroup
+ */
+
+/*! \defgroup iofld FLD
+ *
+ * \brief FLD I/O routines.
+ *
+ * \ingroup iogroup
+ */
+
+/*! \defgroup iomagick ImageMagick
+ *
+ * \brief ImageMagick I/O routines.
+ *
+ * \ingroup iogroup
+ */
+
+/*! \defgroup iooff OFF
+ *
+ * \brief OFF I/O routines.
+ *
+ * \ingroup iogroup
+ */
+
+/*! \defgroup iopbm PBM
+ *
+ * \brief PBM I/O routines.
+ *
+ * \ingroup iogroup
+ */
+
+/*! \defgroup iopfm PFM
+ *
+ * \brief PFM I/O routines.
+ *
+ * \ingroup iogroup
+ */
+
+/*! \defgroup iopgm PGM
+ *
+ * \brief PGM I/O routines.
+ *
+ * \ingroup iogroup
+ */
+
+/*! \defgroup ioplot Plot
+ *
+ * \brief Plot I/O routines.
+ *
+ * \ingroup iogroup
+ */
+
+/*! \defgroup ioppm PPM
+ *
+ * \brief PPM I/O routines.
+ *
+ * \ingroup iogroup
+ */
+
+/*! \defgroup ioraw RAW
+ *
+ * \brief RAW I/O routines.
+ *
+ * \ingroup iogroup
+ */
+
+/*! \defgroup iotiff TIFF
+ *
+ * \brief TIFF I/O routines.
+ *
+ * \ingroup iogroup
+ */
+
+/*! \defgroup iotxt TXT
+ *
+ * \brief TXT I/O routines.
+ *
+ * \ingroup iogroup
+ */
diff --git a/milena/doc/mln/main.dox b/milena/doc/mln/main.dox
index 80dc6a3..8cf0f87 100644
--- a/milena/doc/mln/main.dox
+++ b/milena/doc/mln/main.dox
@@ -4,27 +4,94 @@
*
*/
-/*! \defgroup modaccu Accumulators
+/*! \defgroup modroutines Routines
*
- * \brief All accumulator types.
+ * \brief All algorithms/routines provided in Milena.
*
*/
-/*! \defgroup modroutines Routines
+
+/*! \defgroup modfun Functions
*
- * \brief All algorithms/routines provided in Milena.
+ * \brief All predefined functions.
*
*/
-/*! \defgroup modcanvas Canvas
+
+
+/*! \defgroup imagemanip Image Manipulation
*
- * \brief All canvas.
+ * \brief All algorithms/routines for image manipulation.
*
+ * \ingroup modroutines
*/
-/*! \defgroup modfun Functions
+/*! \defgroup mlnimageops Operators
*
- * \brief All predefined functions.
+ * \brief All operators applying to images.
+ *
+ * \ingroup imagemanip
+ */
+
+/*! \defgroup mlndatafilter Filters
+ *
+ * \brief All routines related to Image Filtering.
+ *
+ * \ingroup imagemanip
+ */
+
+/*! \defgroup mlngeom Geometry
+ *
+ * \brief All routines related to Image Geometry.
+ *
+ * \ingroup imagemanip
+ */
+
+/*! \defgroup mlnborderext Border and Extension
+ *
+ * \brief All routines related to Image Border and Extension.
*
+ * \ingroup imagemanip
*/
+/*! \defgroup mlndraw Drawing
+ *
+ * \brief All routines for drawing into images.
+ *
+ * \ingroup imagemanip
+ */
+
+/*! \defgroup mlndebug Debugging
+ *
+ * \brief All routines for debugging Milena based programs..
+ *
+ * \ingroup modroutines
+ */
+
+/*! \defgroup mlntransform Transform Methods
+ *
+ * \brief All transform algorithms.
+ *
+ * \ingroup modroutines
+ */
+
+/*! \defgroup mlnmath Mathematical Tools
+ *
+ * \brief All mathematical tools
+ *
+ * \ingroup modroutines
+ */
+
+/*! \defgroup mlnalgebratypes Algebra Structures
+ *
+ * \brief All algebra structures.
+ *
+ * \ingroup modtypes
+ */
+
+/*! \defgroup mlnlinear Linear Algebra Computation
+ *
+ * \brief All linear algebra algorithms.
+ *
+ * \ingroup modroutines
+ */
diff --git a/milena/doc/mln/morpho/morpho.dox b/milena/doc/mln/morpho/morpho.dox
new file mode 100644
index 0000000..f01c942
--- /dev/null
+++ b/milena/doc/mln/morpho/morpho.dox
@@ -0,0 +1,27 @@
+/*! \defgroup mlnmorpho Mathematical Morphology
+ *
+ * \brief Algorithms dedicated to Mathematical Morphology.
+ *
+ * \ingroup modroutines
+ */
+
+/*! \defgroup mlnmorphoclosing Morphological Closing
+ *
+ * \brief Variants of the Morphological Closing.
+ *
+ * \ingroup mlnmorpho
+ */
+
+/*! \defgroup mlnmorphoopening Morphological Opening
+ *
+ * \brief Variants of the Morphological Opening.
+ *
+ * \ingroup mlnmorpho
+ */
+
+/*! \defgroup mlnmorphowst Morphological Watershed
+ *
+ * \brief Variants of the Morphological Watershed.
+ *
+ * \ingroup mlnmorpho
+ */
diff --git a/milena/mln/accu/compute.hh b/milena/mln/accu/compute.hh
index bf513f9..eaa9cac 100644
--- a/milena/mln/accu/compute.hh
+++ b/milena/mln/accu/compute.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,33 +45,39 @@ namespace mln
namespace accu
{
- /// Make an accumulator compute the pixels of the image \p input.
- ///
- /// \param[in] a An accumulator.
- /// \param[in] input The input image.
- ///
- /// This routine runs: \n
- /// a.take(make::pix(input, p));
- /// on all pixels on the images.
- ///
- /// \warning This routine does not perform a.init().
- ///
+ /*! \brief Make an accumulator compute the pixels of the image \p
+ input.
+
+ \param[in] a An accumulator.
+ \param[in] input The input image.
+
+ This routine runs: \n
+ a.take(make::pix(input, p));
+ on all pixels on the images.
+
+ \warning This routine does not perform a.init().
+
+ \ingroup mlnaccucompute
+ */
template <typename A, typename I>
mln_result(A)
compute(const Accumulator<A>& a, const Image<I>& input);
- /// Make an accumulator compute the pixels of the image \p input.
- ///
- /// \param[in] a A meta accumulator.
- /// \param[in] input The input image.
- ///
- /// This routine runs: \n
- /// a.take(make::pix(input, p));
- /// on all pixels on the images.
- ///
- /// \warning This routine does not perform a.init().
- ///
+ /*! \brief Make an accumulator compute the pixels of the image \p
+ input.
+
+ \param[in] a A meta accumulator.
+ \param[in] input The input image.
+
+ This routine runs: \n
+ a.take(make::pix(input, p));
+ on all pixels on the images.
+
+ \warning This routine does not perform a.init().
+
+ \ingroup mlnaccucompute
+ */
template <typename A, typename I>
mln_meta_accu_result(A, util::pix<I>)
compute(const Meta_Accumulator<A>& a, const Image<I>& input);
diff --git a/milena/mln/algebra/h_mat.hh b/milena/mln/algebra/h_mat.hh
index 3d75a66..de331a9 100644
--- a/milena/mln/algebra/h_mat.hh
+++ b/milena/mln/algebra/h_mat.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,7 +44,7 @@ namespace mln
{
/*! \brief N-Dimensional matrix with homogeneous coordinates.
- *
+ \ingroup mlnalgebratypes
*/
template <unsigned d, typename T>
struct h_mat : public mat<d+1, d+1, T>
diff --git a/milena/mln/algebra/h_vec.hh b/milena/mln/algebra/h_vec.hh
index f772e55..786ec3a 100644
--- a/milena/mln/algebra/h_vec.hh
+++ b/milena/mln/algebra/h_vec.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -88,7 +88,7 @@ namespace mln
/*! \brief N-Dimensional vector with homogeneous coordinates.
- *
+ \ingroup mlnalgebratypes
*/
template <unsigned d, typename C>
class h_vec : public vec<d + 1, C>
diff --git a/milena/mln/algebra/mat.hh b/milena/mln/algebra/mat.hh
index 0fc08b4..895ecb0 100644
--- a/milena/mln/algebra/mat.hh
+++ b/milena/mln/algebra/mat.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2006, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2006, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -80,7 +81,9 @@ namespace mln
namespace algebra
{
-
+ /*! \brief NxM-dimensional matrix.
+ \ingroup mlnalgebratypes
+ */
template <unsigned n, unsigned m, typename T>
class mat : public Object< mat<n,m,T> >
{
@@ -123,7 +126,7 @@ namespace mln
mat<m,n,T> t() const;
/// Return the inverse of the matrix.
- /// Only compile on square matrix.
+ /// Only compile on square matrix.
mat<n,m,T> _1() const;
private:
@@ -225,7 +228,7 @@ namespace mln
{
typedef algebra::mat<m, m, mln_trait_op_times(T, U)> ret;
};
-
+
// mat * s
template < unsigned n, unsigned m, typename T,
@@ -245,7 +248,7 @@ namespace mln
// {
// typedef algebra::mat<n, m, mln_trait_binary(Name, T, S)> ret;
// };
-
+
// mat / s
template < unsigned n, unsigned m, typename T,
@@ -568,29 +571,29 @@ namespace mln
mln_precondition(d != 0);
return make<float>( det(make(m(1,1), m(1,2),
m(2,1), m(2,2))),
-
+
det(make(m(0,2), m(0,1),
m(2,2), m(2,1))),
-
+
det(make(m(0,1), m(0,2),
m(1,1), m(1,2))),
-
+
det(make(m(1,2), m(1,0),
m(2,2), m(2,0))),
-
+
det(make(m(0,0), m(0,2),
m(2,0), m(2,2))),
-
+
det(make(m(0,2), m(0,0),
m(1,2), m(1,0))),
det(make(m(1,0), m(1,1),
m(2,0), m(2,1))),
-
+
det(make(m(0,1), m(0,0),
m(2,1), m(2,0))),
-
+
det(make(m(0,0), m(0,1),
m(1,0), m(1,1)))
) / d;
diff --git a/milena/mln/algebra/quat.hh b/milena/mln/algebra/quat.hh
index 9ec725d..0d39bf6 100644
--- a/milena/mln/algebra/quat.hh
+++ b/milena/mln/algebra/quat.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -120,6 +121,9 @@ namespace mln
{
// FIXME value::Vectorial ??? value ???
+ /*! \brief Quaternion values.
+ \ingroup mlnalgebratypes
+ */
class quat
:
public value::Vectorial< quat >
diff --git a/milena/mln/algebra/vec.hh b/milena/mln/algebra/vec.hh
index bbe23c8..ce82890 100644
--- a/milena/mln/algebra/vec.hh
+++ b/milena/mln/algebra/vec.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2006, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2006, 2008, 2009, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -170,7 +170,9 @@ namespace mln
} // end of namespace mln::algebra::internal
-
+ /*! \brief N-dimensional vector.
+ \ingroup mlnalgebratypes
+ */
template <unsigned n, typename T>
class vec : public internal::vec_base_<n, T>
{
diff --git a/milena/mln/border/adjust.hh b/milena/mln/border/adjust.hh
index 7c7062b..075d1d0 100644
--- a/milena/mln/border/adjust.hh
+++ b/milena/mln/border/adjust.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,8 +41,8 @@ namespace mln
namespace border
{
- /*! Adjust the virtual (outer) border of image \p ima so that its
- * size is at least \p min_thickness.
+ /*! \brief Adjust the virtual (outer) border of image \p ima so
+ * that its size is at least \p min_thickness.
*
* \param[in,out] ima The image whose border is to be adjusted.
* \param[in] min_thickness The expected border minimum thickness.
@@ -50,6 +51,8 @@ namespace mln
*
* \warning If the image border is already larger than \p
* min_thickness, this routine is a no-op.
+ *
+ * \ingroup mlnborderext
*/
template <typename I>
void adjust(const Image<I>& ima, unsigned min_thickness);
diff --git a/milena/mln/border/duplicate.hh b/milena/mln/border/duplicate.hh
index 059dc77..9d5e43e 100644
--- a/milena/mln/border/duplicate.hh
+++ b/milena/mln/border/duplicate.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,7 +44,7 @@ namespace mln
namespace border
{
- /*! Assign the virtual (outer) border of image \p ima with the
+ /*! \brief Assign the virtual (outer) border of image \p ima with the
* duplicate of the inner border of this image.
*
* \param[in,out] ima The image whose border is to be duplicated.
@@ -52,6 +52,8 @@ namespace mln
* \pre \p ima has to be initialized.
*
* \todo Optimize with memcpy if possible.
+ *
+ * \ingroup mlnborderext
*/
template <typename I>
void duplicate(const Image<I>& ima);
diff --git a/milena/mln/border/equalize.hh b/milena/mln/border/equalize.hh
index 72f95aa..bf94408 100644
--- a/milena/mln/border/equalize.hh
+++ b/milena/mln/border/equalize.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,8 +42,9 @@ namespace mln
namespace border
{
- /*! Equalize the virtual (outer) border of images \p ima1 and \p
- * ima2 so that their size is equal and is at least \p min_thickness.
+ /*! \brief Equalize the virtual (outer) border of images \p ima1
+ * and \p ima2 so that their size is equal and is at least \p
+ * min_thickness.
*
* \param[in,out] ima1 The first image whose border is to be equalizeed.
* \param[in,out] ima2 The second image whose border is to be equalizeed.
@@ -54,6 +56,8 @@ namespace mln
* \warning If both image borders already have the same thickness
* and if this thickness is larger than \p min_thickness, this
* routine is a no-op.
+ *
+ * \ingroup mlnborderext
*/
template <typename I, typename J>
void equalize(const Image<I>& ima1, const Image<J>& ima2,
diff --git a/milena/mln/border/fill.hh b/milena/mln/border/fill.hh
index 5c04121..0c0b315 100644
--- a/milena/mln/border/fill.hh
+++ b/milena/mln/border/fill.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -45,8 +45,8 @@ namespace mln
namespace border
{
- /*! Fill the virtual (outer) border of image \p ima with the
- * single value \p v.
+ /*! \brief Fill the virtual (outer) border of image \p ima with
+ * the single value \p v.
*
* \param[in,out] ima The image whose border is to be filled.
* \param[in] v The value to assign to all border pixels.
@@ -54,6 +54,8 @@ namespace mln
* \pre \p ima has to be initialized.
*
* \todo Optimize with memset if possible.
+ *
+ * \ingroup mlnborderext
*/
template <typename I>
void fill(const Image<I>& ima, const mln_value(I)& v);
diff --git a/milena/mln/border/find.hh b/milena/mln/border/find.hh
index 3397224..0bab260 100644
--- a/milena/mln/border/find.hh
+++ b/milena/mln/border/find.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,13 +41,14 @@ namespace mln
namespace border
{
- /*! Find the virtual (outer) border thickness of image \p ima.
+ /*! \brief Find the virtual (outer) border thickness of image \p ima.
*
* \param[in] ima The image.
* \result The border thickness (0 if there is no border).
*
* \pre \p ima has to be initialized.
*
+ * \ingroup mlnborderext
*/
template <typename I>
unsigned find(const Image<I>& ima);
diff --git a/milena/mln/border/get.hh b/milena/mln/border/get.hh
index 3ff713a..44f0bf5 100644
--- a/milena/mln/border/get.hh
+++ b/milena/mln/border/get.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -45,6 +46,8 @@ namespace mln
* \result The border thickness (0 if there is no border).
*
* \pre \a ima has to be initialized.
+ *
+ * \ingroup mlnborderext
*/
template <typename I>
unsigned get(const Image<I>& ima);
diff --git a/milena/mln/border/mirror.hh b/milena/mln/border/mirror.hh
index adeb057..96b65e3 100644
--- a/milena/mln/border/mirror.hh
+++ b/milena/mln/border/mirror.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -32,10 +32,10 @@
/// Define function that fills border using nearer pixels with a
/// mirroring effect.
///
-/// \fixme 2D version is not correct if the border is larger than the
+/// \todo 2D version is not correct if the border is larger than the
/// image domain.
///
-/// \todo Awful code: rewrite it!
+/// \todo Awful code: rewrite it!
# include <mln/core/image/image1d.hh>
# include <mln/core/image/image2d.hh>
@@ -59,14 +59,16 @@ namespace mln
namespace border
{
- /*! Mirror the virtual (outer) border of image \p ima with the
- * (inner) level contents of this image.
+ /*! \brief Mirror the virtual (outer) border of image \p ima with
+ * the (inner) level contents of this image.
*
* \param[in,out] ima The image whose border is to be mirrored.
*
* \pre \p ima has to be initialized.
*
* \todo Implement 3d version + optimize with memset if possible.
+ *
+ * \ingroup mlnborderext
*/
template <typename I>
void mirror(const Image<I>& ima);
diff --git a/milena/mln/border/resize.hh b/milena/mln/border/resize.hh
index bbe89b1..2ad4342 100644
--- a/milena/mln/border/resize.hh
+++ b/milena/mln/border/resize.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -48,8 +49,8 @@ namespace mln
namespace border
{
- /*! Resize the virtual (outer) border of image \p ima to exactly
- * \p thickness.
+ /*! \brief Resize the virtual (outer) border of image \p ima to
+ * exactly \p thickness.
*
* \param[in,out] ima The image whose border is to be resized.
* \param[in] thickness The expected border thickness.
@@ -58,6 +59,8 @@ namespace mln
*
* \warning If the image border already has the expected
* thickness, this routine is a no-op.
+ *
+ * \ingroup mlnborderext
*/
template <typename I>
void resize(const Image<I>& ima, unsigned thickness);
diff --git a/milena/mln/border/resize_equal.hh b/milena/mln/border/resize_equal.hh
index 6f82460..c70a7fa 100644
--- a/milena/mln/border/resize_equal.hh
+++ b/milena/mln/border/resize_equal.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -41,6 +42,12 @@ namespace mln
{
// FIXEM: Doc!
+ /*! \brief Define a function that resizes the virtual border of a
+ * couple of images so that they eventually have the same border
+ * thickness.
+ *
+ * \ingroup mlnborderext
+ */
template <typename I, typename J>
void
resize_equal(const Image<I>& ima1, const Image<J>& ima2);
diff --git a/milena/mln/border/thickness.hh b/milena/mln/border/thickness.hh
index 1466e0c..54de6ec 100644
--- a/milena/mln/border/thickness.hh
+++ b/milena/mln/border/thickness.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -39,6 +40,11 @@ namespace mln
namespace border
{
+ /*! \brief Define the variable which specifies border thickness
+ * for image creation.
+ *
+ * \ingroup mlnborderext
+ */
extern unsigned thickness;
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/canvas/browsing/backdiagonal2d.hh b/milena/mln/canvas/browsing/backdiagonal2d.hh
index adfdecb..2648f97 100644
--- a/milena/mln/canvas/browsing/backdiagonal2d.hh
+++ b/milena/mln/canvas/browsing/backdiagonal2d.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -44,8 +44,8 @@ namespace mln
namespace browsing
{
- /// Browsing in a certain direction.
- /*!
+ /*! \brief Browsing in a certain direction.
+ *
* This canvas browse all the point of an image 'input' of type
* 'I' and of dimension 'dim' in the direction 'dir'.
*
@@ -79,6 +79,7 @@ namespace mln
* | 2 5 8
* | 1 3 6
*
+ * \ingroup modcanvasbrowsing
*/
struct backdiagonal2d_t : public Browsing< backdiagonal2d_t >
{
diff --git a/milena/mln/canvas/browsing/breadth_first_search.hh b/milena/mln/canvas/browsing/breadth_first_search.hh
index a7a8bce..379776b 100644
--- a/milena/mln/canvas/browsing/breadth_first_search.hh
+++ b/milena/mln/canvas/browsing/breadth_first_search.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2011 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2011, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -76,7 +76,11 @@ namespace mln
namespace browsing
{
- /// Breadth-first search algorithm for graph, on vertices.
+ /*! \brief Breadth-first search algorithm for graph, on
+ * vertices.
+ *
+ * \ingroup modcanvasbrowsing
+ */
struct breadth_first_search_t :
public internal::graph_first_search_t<breadth_first_search_t, std::queue>
{
diff --git a/milena/mln/canvas/browsing/depth_first_search.hh b/milena/mln/canvas/browsing/depth_first_search.hh
index 5aacdea..21a5831 100644
--- a/milena/mln/canvas/browsing/depth_first_search.hh
+++ b/milena/mln/canvas/browsing/depth_first_search.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009, 2010, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2010, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -76,7 +76,11 @@ namespace mln
namespace browsing
{
- /// Breadth-first search algorithm for graph, on vertices.
+ /*! \brief Breadth-first search algorithm for graph, on
+ * vertices.
+ *
+ * \ingroup modcanvasbrowsing
+ */
struct depth_first_search_t :
public internal::graph_first_search_t<depth_first_search_t, std::stack>
{
diff --git a/milena/mln/canvas/browsing/diagonal2d.hh b/milena/mln/canvas/browsing/diagonal2d.hh
index 313058a..6f7501f 100644
--- a/milena/mln/canvas/browsing/diagonal2d.hh
+++ b/milena/mln/canvas/browsing/diagonal2d.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -43,8 +43,8 @@ namespace mln
namespace browsing
{
- /// Browsing in a certain direction.
- /*!
+ /*! \brief Browsing in a certain direction.
+ *
* This canvas browse all the point of an image 'input' of type
* 'I' and of dimension 'dim' in the direction 'dir'.
*
@@ -78,6 +78,8 @@ namespace mln
* | 4 7 9
* L------>
*
+ *
+ * \ingroup modcanvasbrowsing
*/
struct diagonal2d_t : public Browsing< diagonal2d_t >
{
diff --git a/milena/mln/canvas/browsing/dir_struct_elt_incr_update.hh b/milena/mln/canvas/browsing/dir_struct_elt_incr_update.hh
index 6e6f3a1..2bc2fc9 100644
--- a/milena/mln/canvas/browsing/dir_struct_elt_incr_update.hh
+++ b/milena/mln/canvas/browsing/dir_struct_elt_incr_update.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,8 +44,8 @@ namespace mln
namespace browsing
{
- /// Browsing in a certain direction with a segment.
- /*!
+ /*! \brief Browsing in a certain direction with a segment.
+ *
* This canvas browse all the point of an image 'input' of type
* 'I', of dimension 'dim' in the direction 'dir' with
* considering weigh the 'length' nearest points.
@@ -83,6 +83,8 @@ namespace mln
* void final(); \n
* } \n
*
+ *
+ * \ingroup modcanvasbrowsing
*/
struct dir_struct_elt_incr_update_t : public Browsing< dir_struct_elt_incr_update_t >
{
diff --git a/milena/mln/canvas/browsing/directional.hh b/milena/mln/canvas/browsing/directional.hh
index 03b9956..8caad7c 100644
--- a/milena/mln/canvas/browsing/directional.hh
+++ b/milena/mln/canvas/browsing/directional.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -43,8 +43,8 @@ namespace mln
namespace browsing
{
- /// Browsing in a certain direction.
- /*!
+ /*! \brief Browsing in a certain direction.
+ *
* This canvas browse all the point of an image 'input' of type
* 'I' and of dimension 'dim' in the direction 'dir'.
*
@@ -86,6 +86,7 @@ namespace mln
* 9 0 0
*
*
+ * \ingroup modcanvasbrowsing
*/
struct directional_t : public Browsing< directional_t >
{
diff --git a/milena/mln/canvas/browsing/fwd.hh b/milena/mln/canvas/browsing/fwd.hh
index 63204bf..9c2800b 100644
--- a/milena/mln/canvas/browsing/fwd.hh
+++ b/milena/mln/canvas/browsing/fwd.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,8 +44,8 @@ namespace mln
namespace browsing
{
- /// Canvas for forward browsing
- /*!
+ /*! \brief Canvas for forward browsing
+ *
* This canvas browse all the points of an image 'input' of type
* 'I' from left to right and from top to bottom
*
@@ -69,6 +69,7 @@ namespace mln
* void final(); \n
* } \n
*
+ * \ingroup modcanvasbrowsing
*/
struct fwd_t : public Browsing< fwd_t >
{
diff --git a/milena/mln/canvas/browsing/hyper_directional.hh b/milena/mln/canvas/browsing/hyper_directional.hh
index 84e8e9c..86e45ee 100644
--- a/milena/mln/canvas/browsing/hyper_directional.hh
+++ b/milena/mln/canvas/browsing/hyper_directional.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,8 +43,8 @@ namespace mln
namespace browsing
{
- /// Browsing in a certain direction.
- /*!
+ /*! \brief Browsing in a certain direction.
+ *
* This canvas browse all the point of an image 'input' of type
* 'I' and of dimension 'dim' in the direction 'dir'.
*
@@ -71,6 +71,7 @@ namespace mln
* void final(); \n
* } \n
*
+ * \brief modcanvasbrowsing
*/
struct hyper_directional_t : public Browsing< hyper_directional_t >
{
diff --git a/milena/mln/canvas/browsing/snake_fwd.hh b/milena/mln/canvas/browsing/snake_fwd.hh
index 855723e..d40ad95 100644
--- a/milena/mln/canvas/browsing/snake_fwd.hh
+++ b/milena/mln/canvas/browsing/snake_fwd.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -44,8 +44,8 @@ namespace mln
namespace browsing
{
- /// Browsing in a snake-way, forward.
- /*!
+ /*! \brief Browsing in a snake-way, forward.
+ *
* This canvas browse all the point of an image 'input' like
* this :
*
@@ -79,6 +79,8 @@ namespace mln
* void bkd(); \n
* } \n
*
+ *
+ * \ingroup modcanvasbrowsing
*/
struct snake_fwd_t : public Browsing< snake_fwd_t >
diff --git a/milena/mln/canvas/browsing/snake_generic.hh b/milena/mln/canvas/browsing/snake_generic.hh
index b0ba22e..7360dbe 100644
--- a/milena/mln/canvas/browsing/snake_generic.hh
+++ b/milena/mln/canvas/browsing/snake_generic.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -44,8 +44,8 @@ namespace mln
namespace browsing
{
- /// Multidimentional Browsing in a given-way.
- /*!
+ /*! \brief Multidimentional Browsing in a given-way.
+ *
* F shall feature: \n
* { \n
* --- as attributes: \n
@@ -71,6 +71,8 @@ namespace mln
*
* moves[i] is called at each move following the delta psite dps[i]
*
+ *
+ * \ingroup modcanvasbrowsing
*/
struct snake_generic_t : public Browsing< snake_generic_t >
diff --git a/milena/mln/canvas/browsing/snake_vert.hh b/milena/mln/canvas/browsing/snake_vert.hh
index f4614e6..8f29b13 100644
--- a/milena/mln/canvas/browsing/snake_vert.hh
+++ b/milena/mln/canvas/browsing/snake_vert.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,8 +44,8 @@ namespace mln
namespace browsing
{
- /// Browsing in a snake-way, forward.
- /*!
+ /*! \brief Browsing in a snake-way, forward.
+ *
* This canvas browse all the point of an image 'input' like
* this :
*
@@ -79,6 +79,8 @@ namespace mln
* void fwd(); \n
* } \n
*
+ *
+ * \brief modcanvasbrowsing
*/
struct snake_vert_t : public Browsing< snake_vert_t >
diff --git a/milena/mln/canvas/chamfer.hh b/milena/mln/canvas/chamfer.hh
index 107f4a5..15c3058 100644
--- a/milena/mln/canvas/chamfer.hh
+++ b/milena/mln/canvas/chamfer.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,6 +43,7 @@ namespace mln
/*!
* \brief Compute chamfer distance.
*
+ * \ingroup modcanvas
*/
template <typename F>
struct chamfer
diff --git a/milena/mln/canvas/distance_front.hh b/milena/mln/canvas/distance_front.hh
index 058be14..25215e9 100644
--- a/milena/mln/canvas/distance_front.hh
+++ b/milena/mln/canvas/distance_front.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -45,7 +46,11 @@ namespace mln
namespace canvas
{
- /// Canvas of discrete distance computation by thick front propagation.
+ /*! \brief Canvas of discrete distance computation by thick front
+ * propagation.
+ *
+ * \ingroup modcanvas
+ */
template <typename I,
typename N, typename W, typename D,
typename F>
@@ -200,7 +205,7 @@ namespace mln
bucket_d.clear();
}
} // end of Propagation.
-
+
trace::exiting("canvas::impl::generic::distance_front");
return dmap;
}
diff --git a/milena/mln/canvas/distance_geodesic.hh b/milena/mln/canvas/distance_geodesic.hh
index e833f08..052c500 100644
--- a/milena/mln/canvas/distance_geodesic.hh
+++ b/milena/mln/canvas/distance_geodesic.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development Laboratory
// (LRDE)
//
// This file is part of Olena.
@@ -48,7 +48,10 @@ namespace mln
namespace canvas
{
- /// Discrete geodesic distance canvas.
+ /*! \brief Discrete geodesic distance canvas.
+ *
+ * \ingroup modcanvas
+ */
template <typename I, typename N, typename D,
typename F>
mln_ch_value(I, D)
diff --git a/milena/mln/canvas/labeling/blobs.hh b/milena/mln/canvas/labeling/blobs.hh
index fd68191..ee9e5ca 100644
--- a/milena/mln/canvas/labeling/blobs.hh
+++ b/milena/mln/canvas/labeling/blobs.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -65,10 +65,12 @@ namespace mln
A fast queue is used so that the algorithm is not recursive and
can handle large binary objects (blobs).
+
+ \ingroup modcanvaslabeling
*/
template <typename I, typename N, typename L, typename F>
mln_ch_value(I, L)
- blobs(const Image<I>& input_, const Neighborhood<N>& nbh_,
+ blobs(const Image<I>& input, const Neighborhood<N>& nbh,
L& nlabels, F& functor);
diff --git a/milena/mln/canvas/labeling/generic.hh b/milena/mln/canvas/labeling/generic.hh
index b701e42..6b753d0 100644
--- a/milena/mln/canvas/labeling/generic.hh
+++ b/milena/mln/canvas/labeling/generic.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -52,9 +53,11 @@ namespace mln
namespace generic
{
- /// Generic Connected component labeling of the object part in a
- /// binary image.
- //
+ /*! \brief Generic Connected component labeling of the
+ * object part in a binary image.
+ *
+ * \ingroup modcanvaslabeling
+ */
template <typename I, typename N, typename L,
typename S, typename F>
mln_ch_value(I, L)
diff --git a/milena/mln/canvas/labeling/sorted.hh b/milena/mln/canvas/labeling/sorted.hh
index 69f2181..7cc40f9 100644
--- a/milena/mln/canvas/labeling/sorted.hh
+++ b/milena/mln/canvas/labeling/sorted.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -54,6 +55,11 @@ namespace mln
namespace labeling
{
+ /*! \brief Fast connected component labeling of the object part
+ * in a binary image.
+ *
+ * \ingroup modcanvaslabeling
+ */
template <typename I, typename N, typename L, typename F>
inline
mln_ch_value(I, L)
diff --git a/milena/mln/canvas/labeling/video.hh b/milena/mln/canvas/labeling/video.hh
index b46e930..dc9997a 100644
--- a/milena/mln/canvas/labeling/video.hh
+++ b/milena/mln/canvas/labeling/video.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -52,6 +52,11 @@ namespace mln
namespace labeling
{
+ /*! \brief Fast connected component labeling of the object part
+ * in a binary image.
+ *
+ * \ingroup modcanvaslabeling
+ */
template <typename I, typename N, typename L, typename F>
mln_ch_value(I, L)
video(const Image<I>& input, const Neighborhood<N>& nbh,
diff --git a/milena/mln/canvas/morpho/attribute_filter.hh b/milena/mln/canvas/morpho/attribute_filter.hh
index 0e7cbb2..855d959 100644
--- a/milena/mln/canvas/morpho/attribute_filter.hh
+++ b/milena/mln/canvas/morpho/attribute_filter.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -54,8 +54,11 @@ namespace mln
namespace morpho
{
- // FIXME: Doc!
-
+ /*! \brief Connected filters dispatch (algebraic & leveling
+ * filters).
+ *
+ * \ingroup modcanvasmorpho
+ */
template <typename I, typename N, typename A>
mln_concrete(I)
attribute_filter(const Image<I>& input, const Neighborhood<N>& nbh,
diff --git a/milena/mln/clustering/kmean_rgb.hh b/milena/mln/clustering/kmean_rgb.hh
index daf6499..2d8b698 100644
--- a/milena/mln/clustering/kmean_rgb.hh
+++ b/milena/mln/clustering/kmean_rgb.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -28,16 +29,17 @@
/// \file
///
-/// \brief Implements the optimized kmean algorithm in the 3d-RGB space.
+/// \brief Implements the optimized kmean algorithm in the 3d-RGB
+/// space.
///
/// This algorithm is optimized in the way it proceeds directly with
-/// the rgb value inspite of the pixel attribute. The
-/// algorithm is independant from the image dimension. But, we have to
-/// compute one time the histogram. In fact, we move a recurrent cost
-/// by a fix cost in the complexity. This version is very adapted to
-/// images with small quantification. But, in 3d, the execution
-/// becomes very slow. It's just normal because the quantification is
-/// n bits per axis. So the actual histogram may be bigger than the image.
+/// the rgb value inspite of the pixel attribute. The algorithm is
+/// independant from the image dimension. But, we have to compute one
+/// time the histogram. In fact, we move a recurrent cost by a fix
+/// cost in the complexity. This version is very adapted to images
+/// with small quantification. But, in 3d, the execution becomes very
+/// slow. It's just normal because the quantification is n bits per
+/// axis. So the actual histogram may be bigger than the image.
///
/// Take care to the following point: The within variance is still a
/// scalar value because we take the distance between two points and
@@ -82,7 +84,8 @@
/// return 0;
/// }
///
-/// \fixme The execution shows a bug in printing outputs and it seems severe.
+/// \todo The execution shows a bug in printing outputs and it seems
+/// severe.
///
/// The last execution with the following set of parameters
/// {house.ppm,3,10,10} shows that if the binary starts correctly, it
diff --git a/milena/mln/convert/impl/from_double_to_value.hh b/milena/mln/convert/impl/from_double_to_value.hh
index fd2b32a..072e151 100644
--- a/milena/mln/convert/impl/from_double_to_value.hh
+++ b/milena/mln/convert/impl/from_double_to_value.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2009, 2010, 2011 EPITA Research and Development
+// Copyright (C) 2009, 2010, 2011, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -67,7 +67,7 @@ namespace mln
from_double_to_value(const double& from,
mln::value::Integer<V>& to)
{
- exact(to) = math::round<V>()(from);
+ exact(to) = math::round<V>(from);
}
// Case 2:
@@ -134,7 +134,7 @@ namespace mln
unsigned& to)
{
mln_precondition(from >= 0);
- to = math::round<unsigned>()(from);
+ to = math::round<unsigned>(from);
}
// double-> int
@@ -143,7 +143,7 @@ namespace mln
from_to_(const double& from,
int& to)
{
- to = math::round<int>()(from);
+ to = math::round<int>(from);
}
} // end of namespace mln::convert::over_load
diff --git a/milena/mln/convert/impl/from_float_to_value.hh b/milena/mln/convert/impl/from_float_to_value.hh
index aa880d8..bf0ff2b 100644
--- a/milena/mln/convert/impl/from_float_to_value.hh
+++ b/milena/mln/convert/impl/from_float_to_value.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009, 2010, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2010, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -67,7 +67,7 @@ namespace mln
from_float_to_value(const float& from,
mln::value::Integer<V>& to)
{
- exact(to) = math::round<V>()(from);
+ exact(to) = math::round<V>(from);
}
// Case 2:
@@ -134,7 +134,7 @@ namespace mln
unsigned& to)
{
mln_precondition(from >= 0);
- to = math::round<unsigned>()(from);
+ to = math::round<unsigned>(from);
}
// float-> int
@@ -143,7 +143,7 @@ namespace mln
from_to_(const float& from,
int& to)
{
- to = math::round<int>()(from);
+ to = math::round<int>(from);
}
// float-> short
@@ -152,7 +152,7 @@ namespace mln
from_to_(const float& from,
short& to)
{
- to = math::round<short>()(from);
+ to = math::round<short>(from);
}
diff --git a/milena/mln/core/concept/doc/point_iterator.hh b/milena/mln/core/concept/doc/point_iterator.hh
index 97e23e0..d2dd5bc 100644
--- a/milena/mln/core/concept/doc/point_iterator.hh
+++ b/milena/mln/core/concept/doc/point_iterator.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -35,7 +36,7 @@ namespace mln
*/
template <typename E>
struct Site_Iterator : public Iterator<E>,
- public Generalized_Point<E>
+ public Generalized_Pixel<E>
{
/*! \brief Point_Site associated type.
* \invariant This type has to derive from mln::Point_Site.
diff --git a/milena/mln/core/image/graph_window_piter.hh b/milena/mln/core/image/graph_window_piter.hh
index f6e8d08..ae86e8f 100644
--- a/milena/mln/core/image/graph_window_piter.hh
+++ b/milena/mln/core/image/graph_window_piter.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -31,7 +31,7 @@
///
/// Definition of a graph element iterator on a graph window.
///
-/// \fixme Split into graph_window_piter, graph_mixed_window_piter and
+/// \todo Split into graph_window_piter, graph_mixed_window_piter and
/// graph_window_piter_base.
# include <mln/core/concept/site_set.hh>
diff --git a/milena/mln/core/internal/image_base.hh b/milena/mln/core/internal/image_base.hh
index f1ba4f9..afe3bfc 100644
--- a/milena/mln/core/internal/image_base.hh
+++ b/milena/mln/core/internal/image_base.hh
@@ -33,6 +33,7 @@
///
/// \todo Provide coord iff the site is a grid point.
+
# include <mln/core/concept/image.hh>
# include <mln/core/grids.hh>
# include <mln/core/trait/qlf_value.hh>
@@ -72,11 +73,13 @@ namespace mln
};
+ /// \cond TEST
/// A base class for images.
///
/// Parameter \p T is the image value type.
/// Parameter \p S is the image site set type.
+ ///
//
template <typename T, typename S, typename E>
struct image_base
@@ -162,7 +165,7 @@ namespace mln
// Internal data, sharable by several images.
util::tracked_ptr< internal::data<E> > data_;
};
-
+ /// \endcond
# ifndef MLN_INCLUDE_ONLY
@@ -268,5 +271,4 @@ namespace mln
} // end of namespace mln
-
#endif // ! MLN_CORE_INTERNAL_IMAGE_BASE_HH
diff --git a/milena/mln/core/neighb.hh b/milena/mln/core/neighb.hh
index db31bea..31d0ebe 100644
--- a/milena/mln/core/neighb.hh
+++ b/milena/mln/core/neighb.hh
@@ -70,8 +70,10 @@ namespace mln
- /// Adapter class from window to neighborhood.
-
+ /*! \brief Adapter class from window to neighborhood.
+ *
+ * \ingroup modneighbnd
+ */
template <typename W>
class neighb
: public internal::neighb_base<W,neighb<W> >
diff --git a/milena/mln/core/window.hh b/milena/mln/core/window.hh
index 87f1940..a6d5373 100644
--- a/milena/mln/core/window.hh
+++ b/milena/mln/core/window.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -80,6 +80,8 @@ namespace mln
*
* This type of window is just like a set of delta-points. The
* parameter is \c D, type of delta-point.
+ *
+ * \ingroup modwinnd
*/
template <typename D>
class window : public internal::window_base< D, window<D> >
diff --git a/milena/mln/data/abs.hh b/milena/mln/data/abs.hh
index 02b2fb4..d4a710a 100644
--- a/milena/mln/data/abs.hh
+++ b/milena/mln/data/abs.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,18 +45,24 @@ namespace mln
{
- /*! Apply the absolute value (abs) function to image pixel values.
+ /*! \brief Apply the absolute value (abs) function to image pixel
+ * values.
*
* \param[in] input The input image.
* \param[out] output The output image.
+ *
+ * \ingroup mlndata
*/
template <typename I, typename O>
void abs(const Image<I>& input, Image<O>& output);
- /*! Apply the absolute value (abs) function to image pixel values.
+ /*! \brief Apply the absolute value (abs) function to image pixel
+ * values.
*
* \param[in,out] input The input image.
+ *
+ * \ingroup mlndata
*/
template <typename I>
void abs_inplace(Image<I>& input);
diff --git a/milena/mln/data/apply.hh b/milena/mln/data/apply.hh
index e621225..66a72ed 100644
--- a/milena/mln/data/apply.hh
+++ b/milena/mln/data/apply.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,7 +45,7 @@ namespace mln
namespace data
{
- /*! Apply a function-object to the image \p input.
+ /*! \brief Apply a function-object to the image \p input.
*
* \param[in,out] input The input image.
* \param[in] f The function-object.
@@ -56,6 +57,8 @@ namespace mln
* but it is faster since a single iterator is required.
*
* \todo Add versions for lowq images.
+ *
+ * \ingroup mlndata
*/
template <typename I, typename F>
void apply(Image<I>& input, const Function_v2v<F>& f);
diff --git a/milena/mln/data/compare.hh b/milena/mln/data/compare.hh
index 8a55739..f325c07 100644
--- a/milena/mln/data/compare.hh
+++ b/milena/mln/data/compare.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2007, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,38 +41,44 @@
namespace mln
{
- /// Point-wise test if the pixel values of \p lhs are equal to the
- /// pixel values of \p rhs.
- ///
- /// \param[in] lhs A first image.
- /// \param[in] rhs A second image.
- ///
- /// \pre lhs.domain == rhs.domain
- //
+ /*! \brief Point-wise test if the pixel values of \p lhs are equal
+ * to the pixel values of \p rhs.
+ *
+ * \param[in] lhs A first image.
+ * \param[in] rhs A second image.
+ *
+ * \pre lhs.domain == rhs.domain
+ *
+ * \ingroup mlnimageops
+ */
template <typename L, typename R>
bool operator == (const Image<L>& lhs, const Image<R>& rhs);
- /// Point-wise test if the pixel values of \p lhs are point-wise
- /// less than the pixel values of \p rhs.
- ///
- /// \param[in] lhs A first image.
- /// \param[in] rhs A second image.
- ///
- /// \pre lhs.domain == rhs.domain
- //
+ /*! \brief Point-wise test if the pixel values of \p lhs are point-wise
+ * less than the pixel values of \p rhs.
+ *
+ * \param[in] lhs A first image.
+ * \param[in] rhs A second image.
+ *
+ * \pre lhs.domain == rhs.domain
+ *
+ * \ingroup mlnimageops
+ */
template <typename L, typename R>
bool operator < (const Image<L>& lhs, const Image<R>& rhs);
- /// Point-wise test if the pixel values of \p lhs are point-wise
- /// less than or equal to the pixel values of \p rhs.
- ///
- /// \param[in] lhs A first image.
- /// \param[in] rhs A second image.
- ///
- /// \pre lhs.domain == rhs.domain
- //
+ /*! \brief Point-wise test if the pixel values of \p lhs are point-wise
+ * less than or equal to the pixel values of \p rhs.
+ *
+ * \param[in] lhs A first image.
+ * \param[in] rhs A second image.
+ *
+ * \pre lhs.domain == rhs.domain
+ *
+ * \ingroup mlnimageops
+ */
template <typename L, typename R> // required!
bool operator <= (const Image<L>& lhs, const Image<R>& rhs);
diff --git a/milena/mln/data/compute.hh b/milena/mln/data/compute.hh
index 6fe4925..3764add 100644
--- a/milena/mln/data/compute.hh
+++ b/milena/mln/data/compute.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -42,42 +42,48 @@ namespace mln
namespace data
{
- /// \brief Compute an accumulator onto the pixel values of the
- /// image \p input. Be ware that the given accumulator won't be
- /// modified and won't store any result.
- ///
- /// \param[in] a An accumulator.
- /// \param[in] input The input image.
- /// \return The accumulator result.
- ///
- /// It fully relies on data::update.
- //
+ /*! \brief Compute an accumulator onto the pixel values of the
+ * image \p input. Be ware that the given accumulator won't be
+ * modified and won't store any result.
+ *
+ * \param[in] a An accumulator.
+ * \param[in] input The input image.
+ * \return The accumulator result.
+ *
+ * It fully relies on data::update.
+ *
+ * \ingroup mlnaccucompute
+ */
template <typename A, typename I>
mln_result(A)
compute(const Accumulator<A>& a, const Image<I>& input);
- /// \brief Compute an accumulator onto the pixel values of the
- /// image \p input.
- ///
- /// \param[in, out] a An accumulator.
- /// \param[in] input The input image.
- /// \return The accumulator result.
- ///
- /// It fully relies on data::update.
- //
+ /*! \brief Compute an accumulator onto the pixel values of the
+ * image \p input.
+ *
+ * \param[in, out] a An accumulator.
+ * \param[in] input The input image.
+ * \return The accumulator result.
+ *
+ * It fully relies on data::update.
+ *
+ * \ingroup mlnaccucompute
+ */
template <typename A, typename I>
mln_result(A)
compute(Accumulator<A>& a, const Image<I>& input);
- /// \brief Compute an accumulator onto the pixel values of the
- /// image \p input.
- ///
- /// \param[in] a A meta-accumulator.
- /// \param[in] input The input image.
- /// \return The accumulator result.
- ///
+ /*! \brief Compute an accumulator onto the pixel values of the
+ * image \p input.
+ *
+ * \param[in] a A meta-accumulator.
+ * \param[in] input The input image.
+ * \return The accumulator result.
+ *
+ * \ingroup mlnaccucompute
+ */
template <typename A, typename I>
mln_meta_accu_result(A, mln_value(I))
compute(const Meta_Accumulator<A>& a, const Image<I>& input);
diff --git a/milena/mln/data/compute_in_window.hh b/milena/mln/data/compute_in_window.hh
index 297a923..3afcabe 100644
--- a/milena/mln/data/compute_in_window.hh
+++ b/milena/mln/data/compute_in_window.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2011, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -45,20 +46,24 @@ namespace mln
namespace data
{
-
- /// Compute an accumulator for each image pixel values using neighbor
- /// pixel values.
+ /*! \brief Compute an accumulator for each image pixel values
+ * using neighbor pixel values.
+ *
+ * \ingroup mlnaccucompute
+ */
template <typename A, typename I, typename W>
mln_ch_value(I, mln_result(A))
compute_in_window(const Accumulator<A>& a, const Image<I>& input,
const Window<W>& win);
- /// \overload
- ///
- /// \param[in] a A meta-accumulator.
- /// \param[in] input The input image.
- /// \return The accumulator result.
- ///
+ /*! \overload
+ *
+ * \param[in] a A meta-accumulator.
+ * \param[in] input The input image.
+ * \return The accumulator result.
+ *
+ * \ingroup mlnaccucompute
+ */
template <typename A, typename I, typename W>
mln_ch_value(I, mln_result(A))
compute_in_window(const Meta_Accumulator<A>& a, const Image<I>& input,
diff --git a/milena/mln/data/convert.hh b/milena/mln/data/convert.hh
index 848d893..4fa71d9 100644
--- a/milena/mln/data/convert.hh
+++ b/milena/mln/data/convert.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,11 +44,13 @@ namespace mln
namespace data
{
- /// 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.
- //
+ /*! \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
+ */
template <typename V, typename I>
mln_ch_value(I, V)
convert(const V& v, const Image<I>& input);
diff --git a/milena/mln/data/fast_median.hh b/milena/mln/data/fast_median.hh
index 71b9bf0..5399d74 100644
--- a/milena/mln/data/fast_median.hh
+++ b/milena/mln/data/fast_median.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -52,14 +53,16 @@ namespace mln
namespace data
{
- /*! Compute in \p output the median filter of image \p input by
- * the window \p win.
+ /*! \brief Compute in \p output the median filter of image \p
+ * input by the window \p win.
*
* \param[in] input The image to be filtered.
* \param[in] win The window.
* \param[in,out] output The output image.
*
* \pre \p input and \p output have to be initialized.
+ *
+ * \ingroup mlndatafilter
*/
template <typename I, typename W, typename O>
void fast_median(const Image<I>& input, const Window<W>& win,
diff --git a/milena/mln/data/fill.hh b/milena/mln/data/fill.hh
index b223a36..7536718 100644
--- a/milena/mln/data/fill.hh
+++ b/milena/mln/data/fill.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 EPITA Research and
// Development Laboratory (LRDE)
//
// This file is part of Olena.
@@ -47,12 +47,15 @@ namespace mln
namespace data
{
- /*! Fill the whole image \p ima with the data provided by \p aux.
+ /*! \brief Fill the whole image \p ima with the data provided by
+ * \p aux.
*
* \param[in,out] ima The image to be filled.
* \param[in] data The auxiliary data to fill the image \p ima.
*
* \pre \p ima has to be initialized.
+ *
+ * \ingroup mlndata
*/
template <typename I, typename D>
void fill(Image<I>& ima, const D& data);
diff --git a/milena/mln/data/median.hh b/milena/mln/data/median.hh
index ac30852..0a5248f 100644
--- a/milena/mln/data/median.hh
+++ b/milena/mln/data/median.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -51,13 +52,15 @@ namespace mln
namespace data
{
- /*! Compute in \p output the median filter of image \p input by
- * the window \p win.
+ /*! \brief Compute in \p output the median filter of image \p
+ * input by the window \p win.
*
* \param[in] input The image to be filtered.
* \param[in] win The window.
*
* \pre \p input have to be initialized.
+ *
+ * \ingroup mlndatafilter
*/
template <typename I, typename W>
mln_concrete(I)
diff --git a/milena/mln/data/paste.hh b/milena/mln/data/paste.hh
index 570a23b..45e2b3e 100644
--- a/milena/mln/data/paste.hh
+++ b/milena/mln/data/paste.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,22 +44,24 @@ namespace mln
namespace data
{
- /// \brief Paste the contents of image \p input into the image \p
- /// output.
- ///
- /// \param[in] input The input image providing pixels values.
- /// \param[in,out] output The image in which values are
- /// assigned.
- ///
- /// This routine runs: \n
- /// for all p of \p input, \p output(p) = \p input(p).
- ///
- /// \warning The definition domain of \p input has to be included in
- /// the one of \p output; so using mln::safe_image does not
- /// make pasting outside the output domain work.
- ///
- /// \pre \p input.domain <= \p output.domain
- ///
+ /*!\brief Paste the contents of image \p input into the image \p
+ * output.
+ *
+ * \param[in] input The input image providing pixels values.
+ * \param[in,out] output The image in which values are
+ * assigned.
+ *
+ * This routine runs: \n
+ * for all p of \p input, \p output(p) = \p input(p).
+ *
+ * \warning The definition domain of \p input has to be included in
+ * the one of \p output; so using mln::safe_image does not
+ * make pasting outside the output domain work.
+ *
+ * \pre \p input.domain <= \p output.domain
+ *
+ * \ingroup mlndata
+ */
template <typename I, typename J>
void paste(const Image<I>& input, Image<J>& output);
diff --git a/milena/mln/data/paste_without_localization.hh b/milena/mln/data/paste_without_localization.hh
index 667e7f1..437db09 100644
--- a/milena/mln/data/paste_without_localization.hh
+++ b/milena/mln/data/paste_without_localization.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,13 +43,15 @@ namespace mln
namespace data
{
- /// \brief Paste the contents of image \p input into the image \p
- /// output without taking into account the localization of sites.
- ///
- /// \param[in] input The input image providing pixels values.
- /// \param[in,out] output The image in which values are
- /// assigned.
- //
+ /*!\brief Paste the contents of image \p input into the image \p
+ * output without taking into account the localization of sites.
+ *
+ * \param[in] input The input image providing pixels values.
+ * \param[in,out] output The image in which values are
+ * assigned.
+ *
+ * \ingroup mlndata
+ */
template <typename I, typename J>
void paste_without_localization(const Image<I>& input, Image<J>& output);
diff --git a/milena/mln/data/replace.hh b/milena/mln/data/replace.hh
index 528e1bd..e72c561 100644
--- a/milena/mln/data/replace.hh
+++ b/milena/mln/data/replace.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,11 +45,14 @@ namespace mln
namespace data
{
- /*! Replace \p old_value by \p new_value in the image \p input
+ /*! \brief Replace \p old_value by \p new_value in the image \p
+ * input
*
* \param[in] input The input image.
* \param[in] old_value The value to be replaced...
* \param[in] new_value ...by this one.
+ *
+ * \ingroup mlndata
*/
template <typename I>
void replace(Image<I>& input,
diff --git a/milena/mln/data/saturate.hh b/milena/mln/data/saturate.hh
index a15734d..70995a3 100644
--- a/milena/mln/data/saturate.hh
+++ b/milena/mln/data/saturate.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,7 +43,7 @@ namespace mln
{
- /*! Apply the saturate function to image pixel values.
+ /*! \brief Apply the saturate function to image pixel values.
*
* \param[in] v A value of the output type.
* \param[in] input The input image.
@@ -50,17 +51,21 @@ namespace mln
* The saturation is based on the min and max values of the output
* value type. This assumes that the range of values in the input
* image is larger than the one of the output image.
+ *
+ * \ingroup mlndata
*/
template <typename V, typename I>
mln_ch_value(I, V)
saturate(V v, const Image<I>& input);
- /*! Apply the saturate function to image pixel values.
+ /*! \brief Apply the saturate function to image pixel values.
*
* \param[in] input The input image.
* \param[in] min The minimum output value.
* \param[in] max The maximum output value.
+ *
+ * \ingroup mlndata
*/
template <typename I, typename V>
mln_ch_value(I, V)
@@ -68,11 +73,13 @@ namespace mln
const V& min, const V& max);
- /*! Apply the saturate function to image pixel values.
+ /*! \brief Apply the saturate function to image pixel values.
*
* \param[in,out] input The input image.
* \param[in] min The minimum output value.
* \param[in] max The maximum output value
+ *
+ * \ingroup mlndata
*/
template <typename I>
void saturate_inplace(Image<I>& input,
diff --git a/milena/mln/data/split.hh b/milena/mln/data/split.hh
index 963b363..97606a8 100644
--- a/milena/mln/data/split.hh
+++ b/milena/mln/data/split.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -31,9 +32,9 @@
/// \file
///
-/// Split a color image into 3 images.
+/// Split a color RGB image into 3 images.
///
-/// \fixme interface not enough generic!
+/// \todo interface not enough generic!
namespace mln
{
@@ -41,9 +42,13 @@ namespace mln
namespace data
{
- template <typename I, typename J>
- void
- split(const Image<I>& input_, Image<J>& r_, Image<J>& g_, Image<J>& b_);
+ /*! \brief Split a color RGB image into 3 images.
+ *
+ * \ingroup mlndata
+ */
+ template <typename I, typename J>
+ void
+ split(const Image<I>& input, Image<J>& r, Image<J>& g, Image<J>& b);
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/data/stretch.hh b/milena/mln/data/stretch.hh
index 90ba8c6..7fdd838 100644
--- a/milena/mln/data/stretch.hh
+++ b/milena/mln/data/stretch.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -50,8 +50,8 @@ namespace mln
namespace data
{
- /*! Stretch the values of \p input so that they can be stored in
- * \p output.
+ /*! \brief Stretch the values of \p input so that they can be
+ * stored in \p output.
*
* \param[in] v A value to set the output value type.
* \param[in] input The input image.
@@ -59,6 +59,8 @@ namespace mln
* \return A stretch image with values of the same type as \p v.
*
* \pre input.is_valid
+ *
+ * \ingroup mlndata
*/
template <typename V, typename I>
mln_ch_value(I, V)
diff --git a/milena/mln/data/to_enc.hh b/milena/mln/data/to_enc.hh
index 3f85099..cd758f0 100644
--- a/milena/mln/data/to_enc.hh
+++ b/milena/mln/data/to_enc.hh
@@ -42,12 +42,15 @@ namespace mln
namespace data
{
- /*! Set the \p output image with the encoding values of the image \p input pixels.
+ /*! \brief Set the \p output image with the encoding values of the
+ * image \p input pixels.
*
* \param[in] input The input image.
* \param[out] output The result image.
*
* \pre \p output.domain >= \p input.domain
+ *
+ * \ingroup mlndata
*/
template <typename I, typename O>
void to_enc(const Image<I>& input, Image<O>& output);
diff --git a/milena/mln/data/transform.hh b/milena/mln/data/transform.hh
index 615591f..f2103ef 100644
--- a/milena/mln/data/transform.hh
+++ b/milena/mln/data/transform.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -48,7 +49,7 @@ namespace mln
namespace data
{
- /*! Transform the image \p input through a function \p f.
+ /*! \brief Transform the image \p input through a function \p f.
*
* \param[in] input The input image.
* \param[in] f The function.
@@ -56,13 +57,14 @@ namespace mln
* This routine runs: \n
* for all p of \p input, \p output(p) = \p f( \p input(p) ).
*
+ * \ingroup mlndata
*/
template <typename I, typename F>
mln_ch_value(I, mln_result(F))
transform(const Image<I>& input, const Function_v2v<F>& f);
- /*! Transform two images \p input1 \p input2 through a function \p f.
+ /*! \brief Transform two images \p input1 \p input2 through a function \p f.
*
* \param[in] input1 The 1st input image.
* \param[in] input2 The 2nd input image.
@@ -70,6 +72,8 @@ namespace mln
*
* This routine runs: \n
* for all p of \p input, \p output(p) = \p f( \p input1(p), \p input2(p) ).
+ *
+ * \ingroup mlndata
*/
template <typename I1, typename I2, typename F>
mln_ch_value(I1, mln_result(F))
diff --git a/milena/mln/data/update.hh b/milena/mln/data/update.hh
index 6d67a58..00480f0 100644
--- a/milena/mln/data/update.hh
+++ b/milena/mln/data/update.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,11 +42,14 @@ namespace mln
namespace data
{
- /*! Update an accumulator with the pixel values of the image \p input.
+ /*! \brief Update an accumulator with the pixel values of the
+ * image \p input.
*
* \param[in] a The accumulator.
* \param[in] input The input image.
* \return The accumulator result.
+ *
+ * \ingroup mlnaccucompute
*/
template <typename A, typename I>
mln_result(A)
diff --git a/milena/mln/data/wrap.hh b/milena/mln/data/wrap.hh
index 1e30f04..9336cea 100644
--- a/milena/mln/data/wrap.hh
+++ b/milena/mln/data/wrap.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2011 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -44,13 +45,15 @@ namespace mln
namespace data
{
- /*! \brief Routine to wrap values such as 0 -> 0 and [1, lmax] maps to [1,
- Lmax] (using modulus).
+ /*! \brief Routine to wrap values such as 0 -> 0 and [1, lmax]
+ maps to [1, Lmax] (using modulus).
\param[in] v The target value type.
\param[in] input Input image.
\return An image with wrapped values.
+
+ \ingroup mlndata
*/
template <typename V, typename I>
mln_ch_value(I, V)
diff --git a/milena/mln/debug/draw_graph.hh b/milena/mln/debug/draw_graph.hh
index 1bcbde6..cd7f1ab 100644
--- a/milena/mln/debug/draw_graph.hh
+++ b/milena/mln/debug/draw_graph.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -48,16 +48,18 @@ namespace mln
namespace debug
{
- /// Draw an image \p ima from a mln::p_vertices \p pv, with
- /// value \p vcolor for vertices, value \p ecolor for edges and 0 for
- /// the background.
- /*
- * \param[in,out] ima The image to be drawn.
- * \param[in] pv The p_vertices which contains vertices positions.
- * \param[in] vcolor The value to assign to pixels which contains
- * vertices.
- * \param[in] ecolor The value to assign to pixels which contains
- * edges.
+ /*! \brief Draw an image \p ima from a mln::p_vertices \p pv, with
+ value \p vcolor for vertices, value \p ecolor for edges and 0
+ for the background.
+
+ \param[in,out] ima The image to be drawn.
+ \param[in] pv The p_vertices which contains vertices positions.
+ \param[in] vcolor The value to assign to pixels which contains
+ vertices.
+ \param[in] ecolor The value to assign to pixels which contains
+ edges.
+
+ \ingroup mlndebug
*/
template <typename I, typename G, typename F>
void
@@ -65,15 +67,16 @@ namespace mln
mln_value(I) vcolor, mln_value(I) ecolor);
- /// Draw an image \p ima from a mln::p_vertices \p pv. Colors for vertices
- /// are defined through \p vcolor_f_. Colors for edges are defined though
- /// \p ecolor_f_.
- /*
- * \param[in,out] ima The image to be drawn.
- * \param[in] pv The p_vertices which contains vertices positions.
- * \param[in] vcolor_f_ A function returning a color value for vertices.
- * \param[in] ecolor_f_ A function returning a color value for edges.
- *
+ /*! \brief Draw an image \p ima from a mln::p_vertices \p
+ pv. Colors for vertices are defined through \p
+ vcolor_f_. Colors for edges are defined though \p ecolor_f_.
+
+ \param[in,out] ima The image to be drawn.
+ \param[in] pv The p_vertices which contains vertices positions.
+ \param[in] vcolor_f_ A function returning a color value for vertices.
+ \param[in] ecolor_f_ A function returning a color value for edges.
+
+ \ingroup mlndebug
*/
template <typename I, typename G, typename F, typename V, typename E>
void
@@ -81,15 +84,16 @@ namespace mln
const p_vertices<G, F>& pv,
const Function<V>& vcolor_f_, const Function<E>& ecolor_f_);
- /// Draw an image \p ima from a mln::p_vertices \p pv. Colors for vertices
- /// are defined through \p vcolor_f_. Colors for edges are defined though
- /// \p ecolor_f_.
- /*
- * \param[in,out] ima The image to be drawn.
- * \param[in] pv The p_vertices which contains vertices positions.
- * \param[in] vcolor_f_ A function returning a color value for vertices.
- * \param[in] ecolor_f_ A function returning a color value for edges.
- *
+ /*! \brief Draw an image \p ima from a mln::p_vertices \p
+ pv. Colors for vertices are defined through \p vcolor_f_. Colors
+ for edges are defined though \p ecolor_f_.
+
+ \param[in,out] ima The image to be drawn.
+ \param[in] pv The p_vertices which contains vertices positions.
+ \param[in] vcolor_f_ A function returning a color value for vertices.
+ \param[in] ecolor_f_ A function returning a color value for edges.
+
+ \ingroup mlndebug
*/
template <typename I, typename G, typename F, typename V, typename E>
inline
diff --git a/milena/mln/debug/filename.hh b/milena/mln/debug/filename.hh
index 954e516..90b1460 100644
--- a/milena/mln/debug/filename.hh
+++ b/milena/mln/debug/filename.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,18 +42,20 @@ namespace mln
namespace debug
{
- /// Constructs and returns a formatted output file name.
- /*!
- ** The file name is formatted as follow:
- **
- ** `filename_prefix`_`id`_`filename`
- **
- ** Where:
- ** - `filename_prefix` can be set through the global variable
- ** debug::internal::filename_prefix.
- ** - `postfix_id` is autoincremented by default. Its value can be
+ /*! \brief Constructs and returns a formatted output file name.
+
+ The file name is formatted as follow:
+
+ `filename_prefix`_`id`_`filename`
+
+ Where:
+ \li `filename_prefix` can be set through the global variable
+ debug::internal::filename_prefix.
+ \li `postfix_id` is autoincremented by default. Its value can be
forced.
- ** - `filename` is the given filename
+ \li `filename` is the given filename
+
+ \ingroup mlndebug
*/
std::string
filename(const std::string& filename, int id);
@@ -62,6 +64,9 @@ namespace mln
namespace internal
{
+ /*! \brief Filename prefix used for debug images.
+ \ingroup mlndebug
+ */
extern std::string filename_prefix;
} // end of namespace mln::debug::internal
diff --git a/milena/mln/debug/format.hh b/milena/mln/debug/format.hh
index ea9e98a..b734a16 100644
--- a/milena/mln/debug/format.hh
+++ b/milena/mln/debug/format.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,20 +39,28 @@ namespace mln
namespace debug
{
- /// Default version for formatting a value is a no-op.
+ /*! \brief Default version for formatting a value is a no-op.
+ \ingroup mlndebug
+ */
template <typename T>
const T& format(const T& v);
- /// Format a Boolean to print it nicely: "|" for true and "-" for
- /// false.
+ /*! \brief Format a Boolean to print it nicely: "|" for true and
+ "-" for false.
+ \ingroup mlndebug
+ */
char format(bool v);
- /// Format a signed char to print it properly, i.e., like an
- /// integer value.
+ /*! \brief Format a signed char to print it properly, i.e., like
+ an integer value.
+ \ingroup mlndebug
+ */
signed short format(signed char v);
- /// Format an unsigned char to print it properly, i.e., like an
- /// integer value.
+ /*! \brief Format an unsigned char to print it properly, i.e.,
+ like an integer value.
+ \ingroup mlndebug
+ */
unsigned short format(unsigned char v);
diff --git a/milena/mln/debug/histo.hh b/milena/mln/debug/histo.hh
index ae15479..d332cfb 100644
--- a/milena/mln/debug/histo.hh
+++ b/milena/mln/debug/histo.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -47,7 +48,10 @@ namespace mln
namespace debug
{
+ /*! \brief Save a histogram to a plot data file.
+ \ingroup mlndebug
+ */
template <typename T>
void
histo(const mln::histo::array<T>& h, const std::string& filename);
diff --git a/milena/mln/debug/iota.hh b/milena/mln/debug/iota.hh
index 3e569b9..b220c34 100644
--- a/milena/mln/debug/iota.hh
+++ b/milena/mln/debug/iota.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,10 +44,13 @@ namespace mln
namespace debug
{
- /*! Fill the image \p input with successive values.
- *
- * \param[in,out] input The image in which values are
- * assigned.
+ /*! \brief Fill the image \p input with successive values.
+
+ \param[in,out] input The image in which values are
+ assigned.
+ \param[in] base_index Start numbering from this value.
+
+ \ingroup mlndebug
*/
template <typename I>
void iota(Image<I>& input, unsigned base_index);
diff --git a/milena/mln/debug/mosaic.hh b/milena/mln/debug/mosaic.hh
index 02a43d0..a9450bf 100644
--- a/milena/mln/debug/mosaic.hh
+++ b/milena/mln/debug/mosaic.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -60,6 +61,8 @@ namespace mln
\return a single image where all the input images are displayed
as a mosaic.
+
+ \ingroup mlndebug
*/
template <typename I>
mln_concrete(I)
diff --git a/milena/mln/debug/println.hh b/milena/mln/debug/println.hh
index b437e81..1416405 100644
--- a/milena/mln/debug/println.hh
+++ b/milena/mln/debug/println.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -48,12 +49,16 @@ namespace mln
namespace debug
{
- /// Print the image \p input on the standard output.
+ /*! \brief Print the image \p input on the standard output.
+ \ingroup mlndebug
+ */
template <typename I>
void println(const Image<I>& input);
- /// Print the message \p msg and the image \p input on the
- /// standard output.
+ /*! \brief Print the message \p msg and the image \p input on the
+ standard output.
+ \ingroup mlndebug
+ */
template <typename I>
void println(const std::string& msg, const Image<I>& input);
diff --git a/milena/mln/debug/println_with_border.hh b/milena/mln/debug/println_with_border.hh
index 0099e57..8c5ff9f 100644
--- a/milena/mln/debug/println_with_border.hh
+++ b/milena/mln/debug/println_with_border.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -48,7 +49,9 @@ namespace mln
namespace debug
{
- /// Print the image \p input on the standard output.
+ /*! \brief Print the image \p input on the standard output.
+ \ingroup mlndebug
+ */
template <typename I>
void println_with_border(const Image<I>& input);
diff --git a/milena/mln/debug/put_word.hh b/milena/mln/debug/put_word.hh
index f0129a5..a263a2b 100644
--- a/milena/mln/debug/put_word.hh
+++ b/milena/mln/debug/put_word.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,8 +41,10 @@ namespace mln
namespace debug
{
- /// Put the \p word starting at location \p word_start in the
- /// image \p inout.
+ /*! \brief Put the \p word starting at location \p word_start in
+ the image \p inout.
+ \ingroup mlndebug
+ */
inline
void
put_word(image2d<char>& inout, const point2d& word_start,
diff --git a/milena/mln/debug/quiet.hh b/milena/mln/debug/quiet.hh
index 23c44dd..d6340c0 100644
--- a/milena/mln/debug/quiet.hh
+++ b/milena/mln/debug/quiet.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,6 +38,10 @@ namespace mln
namespace debug
{
+ /*! \brief Global variable telling whether the debug should be
+ printed or not.
+ \ingroup mlndebug
+ */
extern bool quiet;
diff --git a/milena/mln/debug/slices_2d.hh b/milena/mln/debug/slices_2d.hh
index b7d194f..dbe22b2 100644
--- a/milena/mln/debug/slices_2d.hh
+++ b/milena/mln/debug/slices_2d.hh
@@ -31,6 +31,8 @@
///
/// Create a 2D image of the slices of the 3D image \p input.
+/// \todo Does it do the same job as debug::mosaic ?
+
# include <cmath>
# include <mln/core/image/image2d.hh>
@@ -52,8 +54,10 @@ namespace mln
namespace debug
{
- /// Create a 2D image of the slices of the 3D image \p input.
- ///
+ /*! \brief Create a 2D image of the slices of the 3D image \p
+ input.
+ \ingroup mlndebug
+ */
template <typename I>
image2d<mln_value(I)>
slices_2d(const Image<I>& input,
@@ -61,8 +65,10 @@ namespace mln
const mln_value(I)& bg);
- /// Create a 2D image of the slices of the 3D image \p input.
- ///
+ /*! \brief Create a 2D image of the slices of the 3D image \p
+ input.
+ \ingroup mlndebug
+ */
template <typename I>
image2d<mln_value(I)>
slices_2d(const Image<I>& input,
diff --git a/milena/mln/debug/superpose.hh b/milena/mln/debug/superpose.hh
index f6f1d2d..448fbe1 100644
--- a/milena/mln/debug/superpose.hh
+++ b/milena/mln/debug/superpose.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -46,27 +47,31 @@ namespace mln
namespace debug
{
- /// Superpose two images.
- ///
- /// \param[in] input_ An image. Its value type must be convertible
- /// toward value::rgb8 thanks to a conversion
- /// operator or convert::from_to.
- /// \param[in] object_ A scalar or labeled image. Objects used for
- /// superposition.
- /// have their pixel values different from 0.
- /// \param[in] object_color The color used to draw the objects in
- /// \p object_.
- ///
- /// @pre \p input_ and \p object_ must have the same domain.
- ///
- /// \result A color image.
- //
+ /*! \brief Superpose two images.
+
+ \param[in] input_ An image. Its value type must be convertible
+ toward value::rgb8 thanks to a conversion
+ operator or convert::from_to.
+ \param[in] object_ A scalar or labeled image. Objects used for
+ superposition.
+ have their pixel values different from 0.
+ \param[in] object_color The color used to draw the objects in
+ \p object_.
+
+ @pre \p input_ and \p object_ must have the same domain.
+
+ \result A color image.
+
+ \ingroup mlndebug
+ */
template <typename I, typename J>
mln_ch_value(I,value::rgb8)
superpose(const Image<I>& input_, const Image<J>& object_,
const value::rgb8& object_color);
- /// \overload
+ /*! \overload
+ \ingroup mlndebug
+ */
template <typename I, typename J>
mln_ch_value(I,value::rgb8)
superpose(const Image<I>& input, const Image<J>& object);
diff --git a/milena/mln/debug/z_order.hh b/milena/mln/debug/z_order.hh
index 39872e4..b58993d 100644
--- a/milena/mln/debug/z_order.hh
+++ b/milena/mln/debug/z_order.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,12 +41,14 @@ namespace mln
namespace debug
{
- /*! Fill the image \p input with Z-order (curve) values.
+ /*! \brief Fill the image \p input with Z-order (curve) values.
\param[in,out] input The image in which values are
assigned.
Reference: http://en.wikipedia.org/wiki/Z-order_(curve)
+
+ \ingroup mlndebug
*/
template <typename I>
void z_order(Image<I>& input);
diff --git a/milena/mln/draw/box.hh b/milena/mln/draw/box.hh
index 8032172..d678a5b 100644
--- a/milena/mln/draw/box.hh
+++ b/milena/mln/draw/box.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -31,7 +31,7 @@
*
* \brief Draw a box in an image.
*
- * \fixme Rename as box_frame.hh
+ * \todo Rename as box_frame.hh
*/
# include <mln/core/concept/image.hh>
@@ -48,16 +48,17 @@ namespace mln
namespace draw
{
- /*! Draw a box at value \p v in image \p ima
- *
- * \param[in,out] ima The image to be drawn.
- * \param[in] b the boxto draw.
- * \param[in] v The value to assign to all drawn pixels.
- *
- * \pre \p ima has to be initialized.
- * \pre \p ima has \p beg.
- * \pre \p ima has \p end.
- *
+ /*! \brief Draw a box at value \p v in image \p ima
+
+ \param[in,out] ima The image to be drawn.
+ \param[in] b the boxto draw.
+ \param[in] v The value to assign to all drawn pixels.
+
+ \pre \p ima has to be initialized.
+ \pre \p ima has \p beg.
+ \pre \p ima has \p end.
+
+ \ingroup mlndraw
*/
template <typename I, typename B>
void box(Image<I>& ima,
diff --git a/milena/mln/draw/box_plain.hh b/milena/mln/draw/box_plain.hh
index ec5b865..3070336 100644
--- a/milena/mln/draw/box_plain.hh
+++ b/milena/mln/draw/box_plain.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -30,7 +31,7 @@
*
* \brief Draw a plain box in an image.
*
- * \fixme Rename as box.hh
+ * \todo Rename as box.hh
*/
# include <mln/core/concept/image.hh>
@@ -47,16 +48,17 @@ namespace mln
namespace draw
{
- /*! Draw a plain box at value \p v in image \p ima
- *
- * \param[in,out] ima The image to be drawn.
- * \param[in] b the box to draw.
- * \param[in] v The value to assign to all drawn pixels.
- *
- * \pre \p ima has to be initialized.
- * \pre \p ima has \p beg.
- * \pre \p ima has \p end.
- *
+ /*! \brief Draw a plain box at value \p v in image \p ima
+
+ \param[in,out] ima The image to be drawn.
+ \param[in] b the box to draw.
+ \param[in] v The value to assign to all drawn pixels.
+
+ \pre \p ima has to be initialized.
+ \pre \p ima has \p beg.
+ \pre \p ima has \p end.
+
+ \ingroup mlndraw
*/
template <typename I, typename B>
void box_plain(Image<I>& ima,
diff --git a/milena/mln/draw/dashed_line.hh b/milena/mln/draw/dashed_line.hh
index 4a31ae9..53aaff1 100644
--- a/milena/mln/draw/dashed_line.hh
+++ b/milena/mln/draw/dashed_line.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -28,8 +29,9 @@
/// \file
///
-/// Draw a dashed_line in an image.
-/// \fixme Add specializations for horizontal dashed_lines (use pointers/memset).
+/// \brief Draw a dashed_line in an image.
+/// \todo Add specializations for horizontal dashed_lines (use
+/// pointers/memset).
# include <mln/core/concept/function.hh>
# include <mln/core/concept/image.hh>
@@ -46,18 +48,19 @@ namespace mln
namespace draw
{
- /*! Draw a dashed line at level \p v in image \p ima between the
- * points \p beg and \p end.
- *
- * \param[in,out] ima The image to be drawn.
- * \param[in] beg The start point to drawn dashed_line.
- * \param[in] end The end point to drawn dashed_line.
- * \param[in] v The value to assign to all drawn pixels.
- *
- * \pre \p ima has to be initialized.
- * \pre \p ima has \p beg.
- * \pre \p ima has \p end.
- *
+ /*! \brief Draw a dashed line at level \p v in image \p ima
+ between the points \p beg and \p end.
+
+ \param[in,out] ima The image to be drawn.
+ \param[in] beg The start point to drawn dashed_line.
+ \param[in] end The end point to drawn dashed_line.
+ \param[in] v The value to assign to all drawn pixels.
+
+ \pre \p ima has to be initialized.
+ \pre \p ima has \p beg.
+ \pre \p ima has \p end.
+
+ \ingroup mlndraw
*/
template <typename I>
void dashed_line(Image<I>& ima,
diff --git a/milena/mln/draw/line.hh b/milena/mln/draw/line.hh
index 528dce3..f1ca1da 100644
--- a/milena/mln/draw/line.hh
+++ b/milena/mln/draw/line.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -29,8 +29,9 @@
/// \file
///
-/// Draw a line in an image.
-/// \fixme Add specializations for horizontal lines (use pointers/memset).
+/// \brief Draw a line in an image.
+/// \todo Add specializations for horizontal lines (use
+/// pointers/memset).
# include <mln/core/concept/image.hh>
# include <mln/core/site_set/p_line2d.hh>
@@ -46,18 +47,19 @@ namespace mln
namespace draw
{
- /*! Draw a line at level \p v in image \p ima between the points
- * \p beg and \p end.
- *
- * \param[in,out] ima The image to be drawn.
- * \param[in] beg The start point to drawn line.
- * \param[in] end The end point to drawn line.
- * \param[in] v The value to assign to all drawn pixels.
- *
- * \pre \p ima has to be initialized.
- * \pre \p ima has \p beg.
- * \pre \p ima has \p end.
- *
+ /*! \brief Draw a line at level \p v in image \p ima between the
+ points \p beg and \p end.
+
+ \param[in,out] ima The image to be drawn.
+ \param[in] beg The start point to drawn line.
+ \param[in] end The end point to drawn line.
+ \param[in] v The value to assign to all drawn pixels.
+
+ \pre \p ima has to be initialized.
+ \pre \p ima has \p beg.
+ \pre \p ima has \p end.
+
+ \ingroup mlndraw
*/
template <typename I>
void line(Image<I>& ima,
diff --git a/milena/mln/draw/plot.hh b/milena/mln/draw/plot.hh
index 3847d32..4c215f3 100644
--- a/milena/mln/draw/plot.hh
+++ b/milena/mln/draw/plot.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,15 +45,16 @@ namespace mln
namespace draw
{
- /*! Plot a point at level \p v in image \p ima
- *
- * \param[in,out] ima The image to be drawn.
- * \param[in] p The point to be plotted.
- * \param[in] v The value to assign to all drawn pixels.
- *
- * \pre \p ima has to be initialized.
- * \pre \p ima has \p p.
- *
+ /*! \brief Plot a point at level \p v in image \p ima
+
+ \param[in,out] ima The image to be drawn.
+ \param[in] p The point to be plotted.
+ \param[in] v The value to assign to all drawn pixels.
+
+ \pre \p ima has to be initialized.
+ \pre \p ima has \p p.
+
+ \ingroup mlndraw
*/
template <typename I>
void plot(Image<I>& ima,
diff --git a/milena/mln/draw/polygon.hh b/milena/mln/draw/polygon.hh
index 5c6c917..a23b476 100644
--- a/milena/mln/draw/polygon.hh
+++ b/milena/mln/draw/polygon.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2011, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -28,8 +29,9 @@
/// \file
///
-/// Draw a polygon in an image.
-/// \fixme Add specializations for horizontal polygons (use pointers/memset).
+/// \brief Draw a polygon in an image.
+/// \todo Add specializations for horizontal polygons (use
+/// pointers/memset).
# include <mln/core/concept/image.hh>
# include <mln/core/site_set/p_array.hh>
@@ -42,14 +44,16 @@ namespace mln
namespace draw
{
- /*! Draw a polygon at level \p v in image \p ima.
- *
- * \param[in,out] ima The image to be drawn.
- * \param[in] par The polygon site set.
- * \param[in] v The value to assign to all drawn pixels.
- *
- * \pre \p ima has to be initialized.
- *
+ /*! \brief Draw a polygon at level \p v in image \p ima.
+
+ \param[in,out] ima The image to be drawn.
+ \param[in] par The polygon site set.
+ \param[in] v The value to assign to all drawn pixels.
+ \param[in] output_ratio Subsampling ratio.
+
+ \pre \p ima has to be initialized.
+
+ \ingroup mlndraw
*/
template <typename I>
void polygon(Image<I>& ima,
@@ -57,7 +61,10 @@ namespace mln
const mln_value(I)& v,
unsigned output_ratio);
- // \overload
+ /*! \overload
+ output_ratio is set to 1 (no subsampling).
+ \ingroup mlndraw
+ */
template <typename I>
void polygon(Image<I>& ima,
const p_array<mln_site(I)>& par,
diff --git a/milena/mln/draw/site_set.hh b/milena/mln/draw/site_set.hh
index 1f0ab78..92bd55c 100644
--- a/milena/mln/draw/site_set.hh
+++ b/milena/mln/draw/site_set.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2011, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -41,16 +42,18 @@ namespace mln
namespace draw
{
- /*! Draw a sites with value \p v in image \p ima
- *
- * \param[in,out] ima The image to be drawn.
- * \param[in] b the site set to draw.
- * \param[in] v The value to assign to all drawn pixels.
- * \param[in] output_ratio size ratio between output image and the
- * image from which the bboxes were calculated.
- *
- * \pre \p s is included in \p ima domain.
- *
+ /*! \brief Draw a sites with value \p v in image \p ima
+
+ \param[in,out] ima The image to be drawn.
+ \param[in] s the site set to draw.
+ \param[in] v The value to assign to all drawn pixels.
+ \param[in] output_ratio size ratio between output image and the
+ image from which the bboxes were
+ calculated.
+
+ \pre \p s is included in \p ima domain.
+
+ \ingroup mlndraw
*/
template <typename I, typename S>
void site_set(Image<I>& ima,
diff --git a/milena/mln/extension/adjust.hh b/milena/mln/extension/adjust.hh
index 6f55e5b..23669ba 100644
--- a/milena/mln/extension/adjust.hh
+++ b/milena/mln/extension/adjust.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -45,23 +46,35 @@ namespace mln
namespace extension
{
- /// Adjust the domain extension of image \p ima with the
- /// size of the window \p win.
+ /*! \brief Adjust the domain extension of image \p ima with the
+ * size of the window \p win.
+ *
+ * \ingroup mlnborderext
+ */
template <typename I, typename W>
void adjust(const Image<I>& ima, const Window<W>& win);
- /// Adjust the domain extension of image \p ima with the
- /// size of the weighted window \p wwin.
+ /*! \brief Adjust the domain extension of image \p ima with the
+ * size of the weighted window \p wwin.
+ *
+ * \ingroup mlnborderext
+ */
template <typename I, typename W>
void adjust(const Image<I>& ima, const Weighted_Window<W>& wwin);
- /// Adjust the domain extension of image \p ima with the
- /// size of the neighborhood \p nbh.
+ /*! \brief Adjust the domain extension of image \p ima with the
+ * size of the neighborhood \p nbh.
+ *
+ * \ingroup mlnborderext
+ */
template <typename I, typename N>
void adjust(const Image<I>& ima, const Neighborhood<N>& nbh);
- /// Adjust the domain extension of image \p ima with the
- /// size \p delta.
+ /*! \brief Adjust the domain extension of image \p ima with the
+ * size \p delta.
+ *
+ * \ingroup mlnborderext
+ */
template <typename I>
void adjust(const Image<I>& ima, unsigned delta);
diff --git a/milena/mln/extension/adjust_duplicate.hh b/milena/mln/extension/adjust_duplicate.hh
index 0293040..9605dcf 100644
--- a/milena/mln/extension/adjust_duplicate.hh
+++ b/milena/mln/extension/adjust_duplicate.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,19 +44,34 @@ namespace mln
namespace extension
{
- /// Adjust then duplicate.
+ /*! \brief Adjust then duplicate.
+ *
+ * \ingroup mlnborderext
+ */
template <typename I, typename W>
void adjust_duplicate(const Image<I>& ima,
const Window<W>& win);
+ /*! \overload
+ *
+ * \ingroup mlnborderext
+ */
template <typename I, typename W>
void adjust_duplicate(const Image<I>& ima,
const Weighted_Window<W>& wwin);
+ /*! \overload
+ *
+ * \ingroup mlnborderext
+ */
template <typename I, typename N>
void adjust_duplicate(const Image<I>& ima,
const Neighborhood<N>& nbh);
+ /*! \overload
+ *
+ * \ingroup mlnborderext
+ */
template <typename I>
void adjust_duplicate(const Image<I>& ima,
unsigned delta);
diff --git a/milena/mln/extension/adjust_fill.hh b/milena/mln/extension/adjust_fill.hh
index 5b0268c..2de3743 100644
--- a/milena/mln/extension/adjust_fill.hh
+++ b/milena/mln/extension/adjust_fill.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,22 +43,37 @@ namespace mln
namespace extension
{
- /// Adjust then fill.
+ /*! \brief Adjust then fill.
+ *
+ * \ingroup mlnborderext
+ */
template <typename I, typename W>
void adjust_fill(const Image<I>& ima,
const Window<W>& win,
const mln_value(I)& val);
+ /*! \overload
+ *
+ * \ingroup mlnborderext
+ */
template <typename I, typename W>
void adjust_fill(const Image<I>& ima,
const Weighted_Window<W>& wwin,
const mln_value(I)& val);
+ /*! \overload
+ *
+ * \ingroup mlnborderext
+ */
template <typename I, typename N>
void adjust_fill(const Image<I>& ima,
const Neighborhood<N>& nbh,
const mln_value(I)& val);
+ /*! \overload
+ *
+ * \ingroup mlnborderext
+ */
template <typename I>
void adjust_fill(const Image<I>& ima,
unsigned delta,
diff --git a/milena/mln/extension/duplicate.hh b/milena/mln/extension/duplicate.hh
index 4d548a2..726e5a5 100644
--- a/milena/mln/extension/duplicate.hh
+++ b/milena/mln/extension/duplicate.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,8 +43,11 @@ namespace mln
namespace extension
{
- /// Assign the contents of the domain extension by duplicating the
- /// values of the inner boundary of image \p ima.
+ /*! \brief Assign the contents of the domain extension by duplicating the
+ * values of the inner boundary of image \p ima.
+ *
+ * \ingroup mlnborderext
+ */
template <typename I>
void duplicate(const Image<I>& ima);
diff --git a/milena/mln/extension/fill.hh b/milena/mln/extension/fill.hh
index 4375a24..229eef3 100644
--- a/milena/mln/extension/fill.hh
+++ b/milena/mln/extension/fill.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -45,8 +46,8 @@ namespace mln
namespace extension
{
- /*! Fill the domain extension of image \p ima with the
- * single value \p v.
+ /*! \brief Fill the domain extension of image \p ima with the
+ * single value \p val.
*
* \param[in,out] ima The image whose domain extension is to be filled.
* \param[in] val The value to assign.
@@ -54,6 +55,8 @@ namespace mln
* \pre \p ima has to be initialized.
*
* \todo Optimize with memset if possible.
+ *
+ * \ingroup mlnborderext
*/
template <typename I>
void fill(const Image<I>& ima, const mln_value(I)& val);
diff --git a/milena/mln/fun/v2v/hsi_to_rgb.hh b/milena/mln/fun/v2v/hsi_to_rgb.hh
index 0011e2b..74e907a 100644
--- a/milena/mln/fun/v2v/hsi_to_rgb.hh
+++ b/milena/mln/fun/v2v/hsi_to_rgb.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2011 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -97,10 +97,6 @@ namespace mln
typedef typename T_rgb::green_t green_t;
typedef typename T_rgb::blue_t blue_t;
- static math::round<red_t> to_r;
- static math::round<green_t> to_g;
- static math::round<blue_t> to_b;
-
static const float
sqrt3_3 = std::sqrt(3) / 3,
inv_sqrt6 = 1 / std::sqrt(6),
@@ -112,11 +108,11 @@ namespace mln
beta = hsi.sat() * std::sin(h);
- red_t r = to_r(sqrt3_3 * hsi.inty() + 2 * inv_sqrt6 * beta);
+ red_t r = math::round<red_t>(sqrt3_3 * hsi.inty() + 2 * inv_sqrt6 * beta);
green_t g =
- to_g(sqrt3_3 * hsi.inty() + inv_sqrt2 * alpha - inv_sqrt6 * beta);
+ math::round<green_t>(sqrt3_3 * hsi.inty() + inv_sqrt2 * alpha - inv_sqrt6 * beta);
blue_t b =
- to_b(sqrt3_3 * hsi.inty() - inv_sqrt2 * alpha - inv_sqrt6 * beta);
+ math::round<blue_t>(sqrt3_3 * hsi.inty() - inv_sqrt2 * alpha - inv_sqrt6 * beta);
T_rgb rgb(r, g, b);
diff --git a/milena/mln/fun/v2v/hsl_to_rgb.hh b/milena/mln/fun/v2v/hsl_to_rgb.hh
index dbedcf4..fb5e783 100644
--- a/milena/mln/fun/v2v/hsl_to_rgb.hh
+++ b/milena/mln/fun/v2v/hsl_to_rgb.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2011 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -115,10 +115,6 @@ namespace mln
typedef typename T_rgb::green_t green_t;
typedef typename T_rgb::blue_t blue_t;
- static math::round<red_t> to_r;
- static math::round<green_t> to_g;
- static math::round<blue_t> to_b;
-
const float q = (hsl.lum() < 0.5) ? hsl.lum() * (1.0 + hsl.sat()) :
hsl.lum() + hsl.sat() - (hsl.lum() * hsl.sat());
const float p = 2.0 * hsl.lum() - q;
@@ -176,9 +172,9 @@ namespace mln
blue = p;
// Each component is in [0, 1].
- red_t r = to_r(red * 255);
- green_t g = to_g(green * 255);
- blue_t b = to_b(blue * 255);
+ red_t r = math::round<red_t>(red * 255);
+ green_t g = math::round<green_t>(green * 255);
+ blue_t b = math::round<blue_t>(blue * 255);
T_rgb rgb_result(r, g, b);
diff --git a/milena/mln/fun/v2v/rgb8_to_rgbn.hh b/milena/mln/fun/v2v/rgb8_to_rgbn.hh
index f1f3611..74b713e 100644
--- a/milena/mln/fun/v2v/rgb8_to_rgbn.hh
+++ b/milena/mln/fun/v2v/rgb8_to_rgbn.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -60,7 +61,7 @@ namespace mln
/// \brief Convert a rgb8 value to a rgn, n < 8.
///
- /// \param[in] v the rgb8 value to convert.
+ /// \param[in] c the rgb8 value to convert.
///
/// Conversion is done by computing the size by which we
/// divide each rgb component.
@@ -74,7 +75,7 @@ namespace mln
/// \brief Convert a rgb8 value to a rgn, n < 8.
///
- /// \param n defines the output quantification used for the transformation.
+ /// \param c defines the output quantification used for the transformation.
///
/// \ingroup modfunv2v
//
diff --git a/milena/mln/fun/v2v/round.hh b/milena/mln/fun/v2v/round.hh
new file mode 100644
index 0000000..37d3451
--- /dev/null
+++ b/milena/mln/fun/v2v/round.hh
@@ -0,0 +1,77 @@
+// Copyright (C) 2012 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of Olena.
+//
+// Olena is free software: you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation, version 2 of the License.
+//
+// Olena is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Olena. If not, see <http://www.gnu.org/licenses/>.
+//
+// As a special exception, you may use this file as part of a free
+// software project without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to produce
+// an executable, this file does not by itself cause the resulting
+// executable to be covered by the GNU General Public License. This
+// exception does not however invalidate any other reasons why the
+// executable file might be covered by the GNU General Public License.
+
+#ifndef MLN_FUN_V2V_ROUND_HH
+# define MLN_FUN_V2V_ROUND_HH
+
+/// \file
+///
+/// Round the given value.
+
+# include <mln/core/concept/function.hh>
+
+
+namespace mln
+{
+
+ namespace fun
+ {
+
+ namespace v2v
+ {
+
+ /*! \brief Round the given value.
+ \ingroup modfun
+ */
+ template <typename R>
+ struct round : public Function_v2v< round<R> >
+ {
+ typedef R result;
+
+ template <typename T>
+ result operator()(const T& v) const;
+ };
+
+
+# ifndef MLN_INCLUDE_ONLY
+
+ template <typename R>
+ template <typename T>
+ inline
+ R round<R>::operator()(const T& v) const
+ {
+ return (long int)(v + 0.49999); // FIXME: !!!
+ }
+
+# endif // ! MLN_INCLUDE_ONLY
+
+ } // end of namespace mln::fun::v2v
+
+ } // end of namespace mln::fun
+
+} // end of namespace mln
+
+
+#endif // ! MLN_FUN_V2V_ROUND_HH
diff --git a/milena/mln/fun/v2v/round_sat.hh b/milena/mln/fun/v2v/round_sat.hh
new file mode 100644
index 0000000..ce8c6b4
--- /dev/null
+++ b/milena/mln/fun/v2v/round_sat.hh
@@ -0,0 +1,84 @@
+// Copyright (C) 2012 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of Olena.
+//
+// Olena is free software: you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation, version 2 of the License.
+//
+// Olena is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Olena. If not, see <http://www.gnu.org/licenses/>.
+//
+// As a special exception, you may use this file as part of a free
+// software project without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to produce
+// an executable, this file does not by itself cause the resulting
+// executable to be covered by the GNU General Public License. This
+// exception does not however invalidate any other reasons why the
+// executable file might be covered by the GNU General Public License.
+
+#ifndef MLN_FUN_V2V_ROUND_SAT_HH
+# define MLN_FUN_V2V_ROUND_SAT_HH
+
+/// \file
+///
+/// Round the given value considering its type as circular.
+
+# include <mln/core/concept/function.hh>
+
+
+namespace mln
+{
+
+ namespace fun
+ {
+
+ namespace v2v
+ {
+
+ /*! \brief Round the given value considering its type as
+ circular.
+ \ingroup modfun
+ */
+ template <typename R>
+ struct round_sat : public Function_v2v< round_sat<R> >
+ {
+ typedef R result;
+
+ template <typename T>
+ result operator()(const T& v) const;
+ };
+
+
+# ifndef MLN_INCLUDE_ONLY
+
+ template <typename R>
+ template <typename T>
+ inline
+ R round_sat<R>::operator()(const T& v) const
+ {
+ long int l = (long int)(v + 0.49999); // FIXME: !!!
+ return
+ l < mln_min(R)
+ ? mln_min(R)
+ : (l > mln_max(R)
+ ? mln_max(R)
+ : R(l));
+ }
+
+# endif // ! MLN_INCLUDE_ONLY
+
+ } // end of namespace mln::fun::v2v
+
+ } // end of namespace mln::fun
+
+} // end of namespace mln
+
+
+#endif // ! MLN_FUN_V2V_ROUND_SAT_HH
diff --git a/milena/mln/fun/x2v/bilinear.hh b/milena/mln/fun/x2v/bilinear.hh
index 0b2dbd2..313a369 100644
--- a/milena/mln/fun/x2v/bilinear.hh
+++ b/milena/mln/fun/x2v/bilinear.hh
@@ -146,7 +146,7 @@ namespace mln
double x2 = std::floor(x) + 1;
double y1 = std::floor(y);
double y2 = std::floor(y) + 1;
- def::coord z = math::round<float>()(v[3]);
+ def::coord z = math::round<float>(v[3]);
//Following access are supposed valid.
vsum q11 = ima(point3d(z, static_cast<unsigned>(x1), static_cast<unsigned>(y1)));
diff --git a/milena/mln/fun/x2v/trilinear.hh b/milena/mln/fun/x2v/trilinear.hh
index 1743355..bb08274 100644
--- a/milena/mln/fun/x2v/trilinear.hh
+++ b/milena/mln/fun/x2v/trilinear.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -87,13 +88,12 @@ namespace mln
double y = v[1]; // col
double z = v[2]; // sli
- math::round<double> f;
- unsigned x1 = f(std::floor(x));
- unsigned x2 = f(std::floor(x) + 1);
- unsigned y1 = f(std::floor(y));
- unsigned y2 = f(std::floor(y) + 1);
- unsigned z1 = f(std::floor(z));
- unsigned z2 = f(std::floor(z) + 1);
+ unsigned x1 = math::round<double>(std::floor(x));
+ unsigned x2 = math::round<double>(std::floor(x) + 1);
+ unsigned y1 = math::round<double>(std::floor(y));
+ unsigned y2 = math::round<double>(std::floor(y) + 1);
+ unsigned z1 = math::round<double>(std::floor(z));
+ unsigned z2 = math::round<double>(std::floor(z) + 1);
double xd = x - x1;
double yd = y - y1;
diff --git a/milena/mln/geom/bbox.hh b/milena/mln/geom/bbox.hh
index 2a727e0..3d6c00f 100644
--- a/milena/mln/geom/bbox.hh
+++ b/milena/mln/geom/bbox.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -54,21 +54,36 @@ namespace mln
namespace geom
{
- /// Compute the precise bounding box of a point set \p pset.
+ /*! \brief Compute the precise bounding box of a point set \p
+ pset.
+
+ \ingroup mlngeom
+ */
template <typename S>
box<mln_site(S)> bbox(const Site_Set<S>& pset);
- /// Compute the precise bounding box of a point set \p pset.
+ /*! \brief Compute the precise bounding box of a point set \p
+ pset.
+
+ \ingroup mlngeom
+ */
template <typename I>
box<mln_site(I)> bbox(const Image<I>& ima);
- /// Compute the precise bounding box of a window \p win.
+ /*! \brief Compute the precise bounding box of a window \p win.
+
+ \ingroup mlngeom
+ */
template <typename W>
box<mln_psite(W)> bbox(const Window<W>& win);
- /// Compute the precise bounding box of a weighted window \p win.
+ /*! \brief Compute the precise bounding box of a weighted window
+ \p win.
+
+ \ingroup mlngeom
+ */
template <typename W>
box<mln_psite(W)> bbox(const Weighted_Window<W>& win);
diff --git a/milena/mln/geom/chamfer.hh b/milena/mln/geom/chamfer.hh
index 8fb6cc8..74cfd3a 100644
--- a/milena/mln/geom/chamfer.hh
+++ b/milena/mln/geom/chamfer.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,7 +40,10 @@ namespace mln
namespace geom
{
- /// Apply chamfer algorithm to a binary image.
+ /*! \brief Apply chamfer algorithm to a binary image.
+
+ \ingroup mlngeom
+ */
template <typename I, typename W>
mln_ch_value(I, unsigned)
chamfer(const Image<I>& input_, const W& w_win_,
diff --git a/milena/mln/geom/complex_geometry.hh b/milena/mln/geom/complex_geometry.hh
index f1c604c..ef23c3e 100644
--- a/milena/mln/geom/complex_geometry.hh
+++ b/milena/mln/geom/complex_geometry.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -71,7 +72,7 @@ namespace mln
dimensions are computed.
\tparam D The dimension of the complex.
- \tparam P The type of the location of a 0-face.
+ \tparam P The type of the location of a 0-face.
Locations of 0-face are usually points (hence the \p P above),
but can possibly be any (default-constructible) values.
@@ -115,7 +116,7 @@ namespace mln
{
/// The data stored in a complex_geometry object.
///
- /// \tparam P The type of the location of a 0-face.
+ /// \tparam P The type of the location of a 0-face.
template <typename P>
struct complex_geometry_data
{
diff --git a/milena/mln/geom/crop.hh b/milena/mln/geom/crop.hh
index 99398a7..9c8127a 100644
--- a/milena/mln/geom/crop.hh
+++ b/milena/mln/geom/crop.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2011, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -40,6 +41,10 @@ namespace mln
namespace geom
{
+ /*! \brief Crop an image
+
+ \ingroup mlngeom
+ */
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 5ca5412..5f16ec1 100644
--- a/milena/mln/geom/crop_without_localization.hh
+++ b/milena/mln/geom/crop_without_localization.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2011 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2011, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -41,6 +42,11 @@ namespace mln
namespace geom
{
+ /*! \brief Crop an image. Localization between input and output
+ * may not be preserved.
+
+ \ingroup mlngeom
+ */
template <typename I, typename B>
mln_concrete(I) crop_without_localization(const Image<I>& input,
const Box<B>& b_in, const Box<B>& b_out);
diff --git a/milena/mln/geom/delta.hh b/milena/mln/geom/delta.hh
index d0eee90..d0c9f34 100644
--- a/milena/mln/geom/delta.hh
+++ b/milena/mln/geom/delta.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,15 +43,24 @@ namespace mln
namespace geom
{
- /// Compute the delta of a window \p win.
+ /*! \brief Compute the delta of a window \p win.
+
+ \ingroup mlngeom
+ */
template <typename W>
unsigned delta(const Window<W>& win);
- /// Compute the delta of a weighted window \p wwin.
+ /*! \brief Compute the delta of a weighted window \p wwin.
+
+ \ingroup mlngeom
+ */
template <typename W>
unsigned delta(const Weighted_Window<W>& wwin);
- /// Compute the delta of a neighborhood \p nbh.
+ /*! \brief Compute the delta of a neighborhood \p nbh.
+
+ \ingroup mlngeom
+ */
template <typename N>
unsigned delta(const Neighborhood<N>& nbh);
diff --git a/milena/mln/geom/horizontal_symmetry.hh b/milena/mln/geom/horizontal_symmetry.hh
index face8fe..3091f74 100644
--- a/milena/mln/geom/horizontal_symmetry.hh
+++ b/milena/mln/geom/horizontal_symmetry.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -40,8 +41,10 @@ namespace mln
namespace geom
{
- /// \brief Perfoms a horizontal symmetry.
- //
+ /*! \brief Perfoms a horizontal symmetry.
+
+ \ingroup mlngeom
+ */
template <typename I>
mln_concrete(I)
horizontal_symmetry(const Image<I>& input);
diff --git a/milena/mln/geom/max_col.hh b/milena/mln/geom/max_col.hh
index ba88090..8d3c9b9 100644
--- a/milena/mln/geom/max_col.hh
+++ b/milena/mln/geom/max_col.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,11 +41,17 @@ namespace mln
namespace geom
{
- /// Give the maximum column of an image.
+ /*! \brief Give the maximum column of an image.
+
+ \ingroup mlngeom
+ */
template <typename I>
mln_deduce(I, site, coord) max_col(const Image<I>& ima);
- /// Give the maximum col of an box 2d or 3d.
+ /*! \brief Give the maximum col of an box 2d or 3d.
+
+ \ingroup mlngeom
+ */
template <typename B>
mln_deduce(B, site, coord) max_col(const Box<B>& b);
diff --git a/milena/mln/geom/max_ind.hh b/milena/mln/geom/max_ind.hh
index 910b42a..241e2ee 100644
--- a/milena/mln/geom/max_ind.hh
+++ b/milena/mln/geom/max_ind.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -39,7 +40,10 @@ namespace mln
namespace geom
{
- /// Give the maximum ind of an image.
+ /*! \brief Give the maximum ind of an image.
+
+ \ingroup mlngeom
+ */
template <typename I>
mln_deduce(I, site, coord) max_ind(const Image<I>& ima);
diff --git a/milena/mln/geom/max_row.hh b/milena/mln/geom/max_row.hh
index cd79e94..84ebf87 100644
--- a/milena/mln/geom/max_row.hh
+++ b/milena/mln/geom/max_row.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,12 +41,18 @@ namespace mln
namespace geom
{
- /// Give the maximum row of an image.
+ /*! \brief Give the maximum row of an image.
+
+ \ingroup mlngeom
+ */
template <typename I>
mln_deduce(I, site, coord) max_row(const Image<I>& ima);
- /// Give the maximum row of an box 2d or 3d.
+ /*! \brief Give the maximum row of an box 2d or 3d.
+
+ \ingroup mlngeom
+ */
template <typename B>
mln_deduce(B, site, coord) max_row(const Box<B>& b);
diff --git a/milena/mln/geom/max_sli.hh b/milena/mln/geom/max_sli.hh
index cf4fc51..43d8a08 100644
--- a/milena/mln/geom/max_sli.hh
+++ b/milena/mln/geom/max_sli.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -41,7 +41,10 @@ namespace mln
namespace geom
{
- /// Give the maximum sli of an image.
+ /*! \brief Give the maximum sli of an image.
+
+ \ingroup mlngeom
+ */
template <typename I>
mln_deduce(I, site, coord) max_sli(const Image<I>& ima);
diff --git a/milena/mln/geom/min_col.hh b/milena/mln/geom/min_col.hh
index ddf43b4..d4e35b8 100644
--- a/milena/mln/geom/min_col.hh
+++ b/milena/mln/geom/min_col.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,11 +41,17 @@ namespace mln
namespace geom
{
- /// Give the minimum column of an image.
+ /*! \brief Give the minimum column of an image.
+
+ \ingroup mlngeom
+ */
template <typename I>
mln_deduce(I, site, coord) min_col(const Image<I>& ima);
- /// Give the minimum column of an box 2d or 3d.
+ /*! \brief Give the minimum column of an box 2d or 3d.
+
+ \ingroup mlngeom
+ */
template <typename B>
mln_deduce(B, site, coord) min_col(const Box<B>& b);
diff --git a/milena/mln/geom/min_ind.hh b/milena/mln/geom/min_ind.hh
index 60331b9..1edcbe3 100644
--- a/milena/mln/geom/min_ind.hh
+++ b/milena/mln/geom/min_ind.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -39,7 +40,10 @@ namespace mln
namespace geom
{
- /// Give the minimum ind of an image.
+ /*! \brief Give the minimum ind of an image.
+
+ \ingroup mlngeom
+ */
template <typename I>
mln_deduce(I, site, coord) min_ind(const Image<I>& ima);
diff --git a/milena/mln/geom/min_row.hh b/milena/mln/geom/min_row.hh
index 5503de2..91bec7d 100644
--- a/milena/mln/geom/min_row.hh
+++ b/milena/mln/geom/min_row.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,11 +44,17 @@ namespace mln
namespace geom
{
- /// Give the minimum row of an image.
+ /*! \brief Give the minimum row of an image.
+
+ \ingroup mlngeom
+ */
template <typename I>
mln_deduce(I, site, coord) min_row(const Image<I>& ima);
- /// Give the minimum row of an box 2d or 3d.
+ /*! \brief Give the minimum row of an box 2d or 3d.
+
+ \ingroup mlngeom
+ */
template <typename B>
mln_deduce(B, site, coord) min_row(const Box<B>& b);
diff --git a/milena/mln/geom/min_sli.hh b/milena/mln/geom/min_sli.hh
index 87d6571..ef7ba82 100644
--- a/milena/mln/geom/min_sli.hh
+++ b/milena/mln/geom/min_sli.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -41,7 +41,10 @@ namespace mln
namespace geom
{
- /// Give the minimum sli of an image.
+ /*! \brief Give the minimum sli of an image.
+
+ \ingroup mlngeom
+ */
template <typename I>
mln_deduce(I, site, coord) min_sli(const Image<I>& ima);
diff --git a/milena/mln/geom/ncols.hh b/milena/mln/geom/ncols.hh
index bc4a09b..f8c17e1 100644
--- a/milena/mln/geom/ncols.hh
+++ b/milena/mln/geom/ncols.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -41,11 +41,17 @@ namespace mln
namespace geom
{
- /// Give the number of columns of an image.
+ /*! \brief Give the number of columns of an image.
+
+ \ingroup mlngeom
+ */
template <typename I>
unsigned ncols(const Image<I>& ima);
- /// Give the number of cols of a box 2d or 3d.
+ /*! \brief Give the number of cols of a box 2d or 3d.
+
+ \ingroup mlngeom
+ */
template <typename B>
unsigned ncols(const Box<B>& b);
diff --git a/milena/mln/geom/ninds.hh b/milena/mln/geom/ninds.hh
index 4a4b2ab..c0acb4d 100644
--- a/milena/mln/geom/ninds.hh
+++ b/milena/mln/geom/ninds.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,7 +41,10 @@ namespace mln
namespace geom
{
- /// Give the number of inds of an image.
+ /*! \brief Give the number of inds of an image.
+
+ \ingroup mlngeom
+ */
template <typename I>
unsigned ninds(const Image<I>& ima);
diff --git a/milena/mln/geom/nrows.hh b/milena/mln/geom/nrows.hh
index 040ca57..ece8aa7 100644
--- a/milena/mln/geom/nrows.hh
+++ b/milena/mln/geom/nrows.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -41,11 +41,17 @@ namespace mln
namespace geom
{
- /// Give the number of rows of an image.
+ /*! \brief Give the number of rows of an image.
+
+ \ingroup mlngeom
+ */
template <typename I>
unsigned nrows(const Image<I>& ima);
- /// Give the number of rows of a box 2d or 3d.
+ /*! \brief Give the number of rows of a box 2d or 3d.
+
+ \ingroup mlngeom
+ */
template <typename B>
unsigned nrows(const Box<B>& b);
diff --git a/milena/mln/geom/nsites.hh b/milena/mln/geom/nsites.hh
index 9c7868f..434609c 100644
--- a/milena/mln/geom/nsites.hh
+++ b/milena/mln/geom/nsites.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,7 +41,10 @@ namespace mln
namespace geom
{
- /// Compute the number of sites of the image \p input.
+ /*! \brief Compute the number of sites of the image \p input.
+
+ \ingroup mlngeom
+ */
template <typename I>
unsigned nsites(const Image<I>& input);
diff --git a/milena/mln/geom/nslis.hh b/milena/mln/geom/nslis.hh
index f6de945..6f42456 100644
--- a/milena/mln/geom/nslis.hh
+++ b/milena/mln/geom/nslis.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,7 +41,10 @@ namespace mln
namespace geom
{
- /// Give the number of slices of an image.
+ /*! \brief Give the number of slices of an image.
+
+ \ingroup mlngeom
+ */
template <typename I>
unsigned nslis(const Image<I>& ima);
diff --git a/milena/mln/geom/pmin_pmax.hh b/milena/mln/geom/pmin_pmax.hh
index 27bf8e9..10ac2ff 100644
--- a/milena/mln/geom/pmin_pmax.hh
+++ b/milena/mln/geom/pmin_pmax.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -45,28 +46,41 @@ namespace mln
{
- /// Compute the minimum and maximum points of point set \p s.
+ /*! \brief Compute the minimum and maximum points of point set \p
+ s.
+
+ \ingroup mlngeom
+ */
template <typename S>
std::pair<mln_site(S), mln_site(S)>
pmin_pmax(const Site_Set<S>& s);
- /// Compute the minimum and maximum points, \p pmin and \p max,
- /// of point set \p s.
+ /*! \brief Compute the minimum and maximum points, \p pmin and \p
+ max, of point set \p s.
+
+ \ingroup mlngeom
+ */
template <typename S>
void
pmin_pmax(const Site_Set<S>& s, mln_site(S)& pmin, mln_site(S)& pmax);
- /// Compute the minimum and maximum points when browsing with
- /// iterator \p p.
+ /*! \brief Compute the minimum and maximum points when browsing
+ with iterator \p p.
+
+ \ingroup mlngeom
+ */
template <typename I>
std::pair<mln_site(I), mln_site(I)>
pmin_pmax(const Site_Iterator<I>& p);
- /// Compute the minimum and maximum points, \p pmin and \p max,
- /// when browsing with iterator \p p.
+ /*! \brief Compute the minimum and maximum points, \p pmin and \p
+ max, when browsing with iterator \p p.
+
+ \ingroup mlngeom
+ */
template <typename I>
void
pmin_pmax(const Site_Iterator<I>& p, mln_site(I)& pmin, mln_site(I)& pmax);
@@ -76,7 +90,7 @@ namespace mln
# ifndef MLN_INCLUDE_ONLY
- // Versions with point iterator.
+ // Versions with point iterator.
template <typename I>
inline
@@ -112,7 +126,7 @@ namespace mln
}
- // Versions with point set.
+ // Versions with point set.
namespace impl
{
diff --git a/milena/mln/geom/rotate.hh b/milena/mln/geom/rotate.hh
index 1ba8cb1..f5ce958 100644
--- a/milena/mln/geom/rotate.hh
+++ b/milena/mln/geom/rotate.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -62,53 +62,65 @@ namespace mln
namespace geom
{
- /// Perform a rotation from the center of an image.
- ///
- /// \param[in] input An image.
- /// \param[in] angle An angle in degrees.
- /// \param[in] extension Function, image or value which will be used
- /// as extension. This extension allows to map
- /// values to sites which where not part
- /// of the domain before the rotation.
- /// \param[in] output_domain The domain of the output image. An
- /// invalid domain, causes the routine
- /// to use a domain large enough to
- /// display the whole original image.
- ///
- /// \return An image with the same domain as \p input.
- //
+ /*! \brief Perform a rotation from the center of an image.
+
+ \param[in] input An image.
+ \param[in] angle An angle in degrees.
+ \param[in] extension Function, image or value which will be used
+ as extension. This extension allows to map
+ values to sites which where not part
+ of the domain before the rotation.
+ \param[in] output_domain The domain of the output image. An
+ invalid domain, causes the routine
+ to use a domain large enough to
+ display the whole original image.
+
+ \return An image with the same domain as \p input.
+
+ \ingroup mlngeom
+ */
template <typename I, typename Ext, typename S>
mln_concrete(I)
rotate(const Image<I>& input, double angle,
const Ext& extension, const Site_Set<S>& output_domain);
- /// \overload
+ /*! \overload
+
+ \ingroup mlngeom
+ */
template <typename I, typename Ext>
mln_concrete(I)
rotate(const Image<I>& input, double angle, const Ext& extension);
- /// \overload
- /// Use literal::zero as default value for the extension.
+ /*! \overload
+ Use literal::zero as default value for the extension.
+
+ \ingroup mlngeom
+ */
template <typename I>
mln_concrete(I)
rotate(const Image<I>& input, double angle);
- /// Rotate a box.
- ///
- /// FIXME: the return type may be too generic and may lead to
- /// invalid covariance.
- //
+ /*! \brief Rotate a box.
+
+ FIXME: the return type may be too generic and may lead to
+ invalid covariance.
+
+ \ingroup mlngeom
+ */
template <typename B>
B
rotate(const Box<B>& box_, double angle, const mln_site(B)& ref);
- /// \overload
- ///
- /// The rotation center \p ref is set to box.pcenter().
- //
+ /*! \overload
+
+ The rotation center \p ref is set to box.pcenter().
+
+ \ingroup mlngeom
+ */
template <typename B>
B
rotate(const Box<B>& box, double angle);
diff --git a/milena/mln/geom/seeds2tiling.hh b/milena/mln/geom/seeds2tiling.hh
index 4089f32..79e5794 100644
--- a/milena/mln/geom/seeds2tiling.hh
+++ b/milena/mln/geom/seeds2tiling.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -46,16 +47,18 @@ namespace mln
namespace geom
{
- /// Take a labeled image \p ima_ with seeds and extend them
- /// until creating tiles.
- ///
- /// \param[in,out] ima_ The labeled image with seed.
- /// \param[in] nbh The neighborhood to use on this algorithm.
- ///
- /// \return A tiled image.
- ///
- /// \pre \p ima_ has to be initialized.
- //
+ /*! \brief Take a labeled image \p ima_ with seeds and extend them
+ until creating tiles.
+
+ \param[in,out] ima_ The labeled image with seed.
+ \param[in] nbh The neighborhood to use on this algorithm.
+
+ \return A tiled image.
+
+ \pre \p ima_ has to be initialized.
+
+ \ingroup mlngeom
+ */
template <typename I, typename N>
mln_concrete(I) seeds2tiling (const Image<I>& ima_,
const Neighborhood<N>& nbh);
diff --git a/milena/mln/geom/seeds2tiling_roundness.hh b/milena/mln/geom/seeds2tiling_roundness.hh
index 214e553..5514abe 100644
--- a/milena/mln/geom/seeds2tiling_roundness.hh
+++ b/milena/mln/geom/seeds2tiling_roundness.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -49,24 +50,24 @@ namespace mln
namespace geom
{
- /// \brief Take a labeled image \p ima_ with seeds and extend them until
- /// creating tiles rounder than the primary version.
- ///
- /// \param[in,out] ima_ The labeled image with seed.
- /// \param[in] w_win The weight window using by geom::chamfer to
- /// compute distance.
- /// \param[in] max Unsigned using by geom::chamfer to compute
- /// the distance.
- /// \param[in] nbh_ The neighborhood to use on this algorithm.
- ///
- /// \pre \p ima_ has to be initialized.
- ///
- /// \{
+ /*! \brief Take a labeled image \p ima_ with seeds and extend them
+ until creating tiles rounder than the primary version.
+
+ \param[in,out] ima_ The labeled image with seed.
+ \param[in] w_win The weight window using by geom::chamfer to
+ compute distance.
+ \param[in] max Unsigned using by geom::chamfer to compute
+ the distance.
+ \param[in] nbh_ The neighborhood to use on this algorithm.
+
+ \pre \p ima_ has to be initialized.
+
+ \ingroup mlngeom
+ */
template <typename I, typename N>
I
seeds2tiling_roundness (Image<I>& ima_, const w_window2d_int& w_win,
unsigned max, const Neighborhood<N>& nbh_);
- /// \}
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/geom/translate.hh b/milena/mln/geom/translate.hh
index f41ebee..45a0306 100644
--- a/milena/mln/geom/translate.hh
+++ b/milena/mln/geom/translate.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -53,20 +54,22 @@ namespace mln
namespace geom
{
- /// Perform a translation from the center of an image.
- ///
- /// \param[in] input An image.
- /// \param[in] ref The translation vector.
- /// \param[in] extension Function, image or value which will be used
- /// as extension. This extension allows to map
- /// values to sites which where not part
- /// 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.
- ///
- /// \return An image with the same domain as \p input.
- //
+ /*! \brief Perform a translation from the center of an image.
+
+ \param[in] input An image.
+ \param[in] ref The translation vector.
+ \param[in] extension Function, image or value which will be used
+ as extension. This extension allows to map
+ values to sites which where not part
+ 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.
+
+ \return An image with the same domain as \p input.
+
+ \ingroup mlngeom
+ */
template <typename I, typename V, typename Ext, typename S>
mln_concrete(I)
translate(const Image<I>& input,
@@ -74,7 +77,10 @@ namespace mln
const Ext& extension, const Site_Set<S>& output_domain);
- /// \overload
+ /*! \overload
+
+ \ingroup mlngeom
+ */
template <typename I, typename V, typename Ext>
mln_concrete(I)
translate(const Image<I>& input,
@@ -82,8 +88,11 @@ namespace mln
const Ext& extension);
- /// \overload
- /// Use literal::zero as default value for the extension.
+ /*! \overload
+ Use literal::zero as default value for the extension.
+
+ \ingroup mlngeom
+ */
template <typename I, typename V>
mln_concrete(I)
translate(const Image<I>& input,
diff --git a/milena/mln/geom/vertical_symmetry.hh b/milena/mln/geom/vertical_symmetry.hh
index 91599c2..8aa6694 100644
--- a/milena/mln/geom/vertical_symmetry.hh
+++ b/milena/mln/geom/vertical_symmetry.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -40,8 +41,10 @@ namespace mln
namespace geom
{
- /// \brief Perfoms a vertical symmetry.
- //
+ /*! \brief Perfoms a vertical symmetry.
+
+ \ingroup mlngeom
+ */
template <typename I>
mln_concrete(I)
vertical_symmetry(const Image<I>& input);
diff --git a/milena/mln/io/cloud/load.hh b/milena/mln/io/cloud/load.hh
index 2dbe28b..abd5fa5 100644
--- a/milena/mln/io/cloud/load.hh
+++ b/milena/mln/io/cloud/load.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -53,10 +54,13 @@ namespace mln
namespace cloud
{
- /// Load a cloud of points.
- ///
- /// \param[in,out] arr the site set where to load the data.
- /// \param[in] filename file to load.
+ /*! \brief Load a cloud of points.
+ *
+ * \param[in,out] arr the site set where to load the data.
+ * \param[in] filename file to load.
+ *
+ * \ingroup iocloud
+ */
template <typename P>
void load(p_array<P>& arr, const std::string& filename);
diff --git a/milena/mln/io/cloud/save.hh b/milena/mln/io/cloud/save.hh
index 7d0ef7b..375f4ad 100644
--- a/milena/mln/io/cloud/save.hh
+++ b/milena/mln/io/cloud/save.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -45,10 +46,13 @@ namespace mln
namespace cloud
{
- /// Load a cloud of points
- ///
- /// \param[in] arr the cloud of points to save.
- /// \param[in] filename the destination.
+ /*! \brief Load a cloud of points
+ *
+ * \param[in] arr the cloud of points to save.
+ * \param[in] filename the destination.
+ *
+ * \ingroup iocloud
+ */
template <typename P>
void save(const p_array<P>& arr, const std::string& filename);
diff --git a/milena/mln/io/dicom/get_header.hh b/milena/mln/io/dicom/get_header.hh
index 8ebe375..87b0238 100644
--- a/milena/mln/io/dicom/get_header.hh
+++ b/milena/mln/io/dicom/get_header.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -55,7 +56,10 @@ namespace mln
namespace dicom
{
- /// Store dicom file header.
+ /*! \brief Store dicom file header.
+ *
+ * \ingroup iodicom
+ */
struct dicom_header
{
// The number of dimensions.
@@ -66,7 +70,10 @@ namespace mln
};
- /// Retrieve header in a dicom file.
+ /*! \brief Retrieve header from a dicom file.
+ *
+ * \ingroup iodicom
+ */
dicom_header get_header(const std::string& filename);
diff --git a/milena/mln/io/dicom/load.hh b/milena/mln/io/dicom/load.hh
index ece9b9d..26c2232 100644
--- a/milena/mln/io/dicom/load.hh
+++ b/milena/mln/io/dicom/load.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2011 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2011, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -51,7 +51,7 @@ namespace mln
namespace dicom
{
- /*! Load a DICOM file in a Milena image.
+ /*! \brief Load a DICOM file in a Milena image.
\param[out] ima A reference to the image which will receive
data.
@@ -62,6 +62,7 @@ namespace mln
-lgdcmCommon -lgdcmDICT -lgdcmDSED -lgdcmIOD -lgdcmMSFF -lgdcmjpeg12 -lgdcmjpeg16 -lgdcmjpeg8
+ \ingroup iodicom
*/
template <typename I>
void load(Image<I>& ima,
diff --git a/milena/mln/io/dump/get_header.hh b/milena/mln/io/dump/get_header.hh
index 10b74ab..4554fb3 100644
--- a/milena/mln/io/dump/get_header.hh
+++ b/milena/mln/io/dump/get_header.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2010, 2011, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -59,7 +59,10 @@ namespace mln
};
- /// Retrieve header in a dump file.
+ /*! \brief Retrieve header from a dump file.
+ *
+ * \ingroup iodump
+ */
dump_header get_header(const std::string& filename);
diff --git a/milena/mln/io/dump/load.hh b/milena/mln/io/dump/load.hh
index ab9892b..cbfce0f 100644
--- a/milena/mln/io/dump/load.hh
+++ b/milena/mln/io/dump/load.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -48,10 +49,13 @@ namespace mln
namespace dump
{
- /// Load a Milena image by dumped into a file.
- ///
- /// \param[in,out] ima_ The image to load.
- /// \param[in] filename the destination.
+ /*! \brief Load a Milena image by dumped into a file.
+ *
+ * \param[in,out] ima_ The image to load.
+ * \param[in] filename the destination.
+ *
+ * \ingroup iodump
+ */
template <typename I>
void load(Image<I>& ima_, const std::string& filename);
diff --git a/milena/mln/io/dump/save.hh b/milena/mln/io/dump/save.hh
index 7043948..742430d 100644
--- a/milena/mln/io/dump/save.hh
+++ b/milena/mln/io/dump/save.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -51,11 +52,13 @@ namespace mln
namespace dump
{
- /// Save a Milena image by dumping its data to a file.
- ///
- /// \param[in] ima_ The image to save.
- /// \param[in] filename the destination.
- //
+ /*! Save a Milena image by dumping its data to a file.
+ *
+ * \param[in] ima_ The image to save.
+ * \param[in] filename the destination.
+ *
+ * \ingroup iodump
+ */
template <typename I>
void save(const Image<I>& ima_, const std::string& filename);
diff --git a/milena/mln/io/fits/load.hh b/milena/mln/io/fits/load.hh
index 5d88e58..2d2227b 100644
--- a/milena/mln/io/fits/load.hh
+++ b/milena/mln/io/fits/load.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -51,21 +52,25 @@ namespace mln
namespace fits
{
- /// Load a fits image in a Milena image.
- ///
- /// \param[out] ima A reference to the image2d<float> which will receive
- /// data.
- /// \param[in] filename The source.
- ///
+ /*! \brief Load a fits image in a Milena image.
+ *
+ * \param[out] ima A reference to the image2d<float> which will receive
+ * data.
+ * \param[in] filename The source.
+ *
+ * \ingroup iofits
+ */
void load(image2d<float>& ima,
const std::string& filename);
- /// Load a fits image in a image2d<float>.
- ///
- /// \param[in] filename The image source.
- ///
- /// \return An image2d<float> which contains loaded data.
- ///
+ /*! \brief Load a fits image in a image2d<float>.
+ *
+ * \param[in] filename The image source.
+ *
+ * \return An image2d<float> which contains loaded data.
+ *
+ * \ingroup iofits
+ */
image2d<float> load(const std::string& filename);
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/io/fld/header.hh b/milena/mln/io/fld/header.hh
index 8ce08ab..ef885aa 100644
--- a/milena/mln/io/fld/header.hh
+++ b/milena/mln/io/fld/header.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2011 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -40,9 +40,10 @@ namespace mln
struct data_type { enum E { UNKNOWN, BYTE, SHORT, INTEGER, FLOAT, DOUBLE }; };
struct field_type { enum E { UNKNOWN, UNIFORM, RECTILINEAR, IRREGULAR }; };
- ///
- /// \brief Define the header structure of an AVS field data file.
- ///
+ /*! \brief Define the header structure of an AVS field data file.
+ *
+ * \ingroup iofld
+ */
struct fld_header
{
int ndim; // The number of computational dimensions in the field.
diff --git a/milena/mln/io/fld/load.hh b/milena/mln/io/fld/load.hh
index 0c092f3..6bdd82b 100644
--- a/milena/mln/io/fld/load.hh
+++ b/milena/mln/io/fld/load.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009, 2010, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2010, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -69,11 +69,13 @@ namespace mln
namespace fld
{
- /// Load an image from an AVS field file.
- ///
- /// \param[in,out] ima_ The image to load.
- /// \param[in] filename The path to the AVS file.
- ///
+ /*! \brief Load an image from an AVS field file.
+ *
+ * \param[in,out] ima_ The image to load.
+ * \param[in] filename The path to the AVS file.
+ *
+ * \ingroup iofld
+ */
template <typename I>
inline
void
diff --git a/milena/mln/io/fld/load_header.hh b/milena/mln/io/fld/load_header.hh
index bc335fc..2f38957 100644
--- a/milena/mln/io/fld/load_header.hh
+++ b/milena/mln/io/fld/load_header.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2011 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -48,12 +48,14 @@ namespace mln
namespace fld
{
- /// Read the header form an AVS field file.
- ///
- /// \param ins The file to read.
- ///
- /// \return The header.
- ///
+ /*! \brief Read the header form an AVS field file.
+ *
+ * \param ins The file to read.
+ *
+ * \return The header.
+ *
+ * \ingroup iofld
+ */
fld_header read_header(std::istream& ins);
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/io/fld/max_components.hh b/milena/mln/io/fld/max_components.hh
index ceb4d27..c9339b8 100644
--- a/milena/mln/io/fld/max_components.hh
+++ b/milena/mln/io/fld/max_components.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009, 2010, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2010, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -29,7 +29,7 @@
/// \file
///
-/// \fixme Don't we want to change the return type 'unsigned' to a
+/// \todo Don't we want to change the return type 'unsigned' to a
/// larger type or make it templated?
# include <mln/algebra/vec.hh>
diff --git a/milena/mln/io/fld/save.hh b/milena/mln/io/fld/save.hh
index a834dcd..c3f91cf 100644
--- a/milena/mln/io/fld/save.hh
+++ b/milena/mln/io/fld/save.hh
@@ -53,6 +53,10 @@ namespace mln
namespace fld
{
+ /*! \brief Save an image to AVS field file format.
+ *
+ * \ingroup iofld
+ */
template <typename I>
void save(const Image<I>& ima_, const char* filename);
diff --git a/milena/mln/io/fld/write_header.hh b/milena/mln/io/fld/write_header.hh
index c803528..d4ea26a 100644
--- a/milena/mln/io/fld/write_header.hh
+++ b/milena/mln/io/fld/write_header.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2010, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -44,11 +44,14 @@ namespace mln
namespace fld
{
- /// Write the AVS header in a file.
- ///
- /// \param file The file to write.
- /// \param h The AVS header.
- ///
+
+ /*! Write the AVS header in a file.
+ *
+ * \param file The file to write.
+ * \param h The AVS header.
+ *
+ * \ingroup iofld
+ */
void write_header(std::ostream& file, const fld_header& h);
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/io/magick/load.hh b/milena/mln/io/magick/load.hh
index 2acd668..2e705b1 100644
--- a/milena/mln/io/magick/load.hh
+++ b/milena/mln/io/magick/load.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -55,10 +55,14 @@ namespace mln
namespace magick
{
- /** Load data from a file into a Milena image using Magick++.
+ /*! \brief Load data from a file into a Milena image using
+ Magick++.
\param[out] ima The image data are loaded into.
- \param[in] filename The name of the input file. */
+ \param[in] filename The name of the input file.
+
+ \ingroup iomagick
+ */
template <typename I>
void load(Image<I>& ima, const std::string& filename);
diff --git a/milena/mln/io/magick/save.hh b/milena/mln/io/magick/save.hh
index f592059..603758e 100644
--- a/milena/mln/io/magick/save.hh
+++ b/milena/mln/io/magick/save.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2009, 2010, 2011 EPITA Research and Development
+// Copyright (C) 2009, 2010, 2011, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -58,16 +58,19 @@ namespace mln
namespace magick
{
- /** Save a Milena image into a file using Magick++.
+ /*! \brief Save a Milena image into a file using Magick++.
\overload
\param[in] ima The image to save.
- \param[in] filename The name of the output file. */
+ \param[in] filename The name of the output file.
+
+ \ingroup iomagick
+ */
template <typename I>
void
save(const Image<I>& ima, const std::string& filename);
- /** Save a Milena image into a file using Magick++.
+ /*! \brief Save a Milena image into a file using Magick++.
\param[in] ima The image to save.
@@ -76,6 +79,8 @@ namespace mln
into account.
\param[in] filename The name of the output file.
+
+ \ingroup iomagick
*/
template <typename I, typename J>
void
diff --git a/milena/mln/io/off/load.hh b/milena/mln/io/off/load.hh
index 3c0d2e1..1834eb3 100644
--- a/milena/mln/io/off/load.hh
+++ b/milena/mln/io/off/load.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2011 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -53,34 +53,44 @@ namespace mln
namespace off
{
- /** Load a (binary) OFF image into a complex image.
+ /*! \brief Load a (binary) OFF image into a complex image.
\param[out] ima A reference to the image to construct.
\param[in] filename The name of the file to load.
The image is said binary since data only represent the
- existence of faces. */
+ existence of faces.
+
+ \ingroup iooff
+ */
void load(bin_2complex_image3df& ima, const std::string& filename);
// FIXME: Implement a load routine for for
// int_u8_2complex_image3df.
- /** Load a floating-point OFF image into a complex image.
+ /*! brief Load a floating-point OFF image into a complex image.
\param[out] ima A reference to the image to construct.
\param[in] filename The name of the file to load.
Read floating-point data is attached to 2-faces only;
- 1-faces and 0-faces are set to 0.0f. */
+ 1-faces and 0-faces are set to 0.0f.
+
+ \ingroup iooff
+ */
void load(float_2complex_image3df& ima, const std::string& filename);
- /** Load a 3x8-bit RGB (color) OFF image into a complex image.
+ /*! \brief Load a 3x8-bit RGB (color) OFF image into a complex
+ image.
\param[out] ima A reference to the image to construct.
\param[in] filename The name of the file to load.
Read floating-point data is attached to 2-faces only;
- 1-faces and 0-faces are set to 0.0f. */
+ 1-faces and 0-faces are set to 0.0f.
+
+ \ingroup iooff
+ */
void load(rgb8_2complex_image3df& ima, const std::string& filename);
diff --git a/milena/mln/io/off/save.hh b/milena/mln/io/off/save.hh
index 8990978..1e82626 100644
--- a/milena/mln/io/off/save.hh
+++ b/milena/mln/io/off/save.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2011 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -55,44 +55,56 @@ namespace mln
namespace off
{
- /** \brief Save a (binary) OFF image into a complex image.
+ /*! \brief Save a (binary) OFF image into a complex image.
\param[in] ima The image to save.
\param[in] filename The name of the file where to save the image.
The image is said binary since data represent only the
- existence of faces. */
+ existence of faces.
+
+ \ingroup iooff
+ */
void save(const bin_2complex_image3df& ima,
const std::string& filename);
- /** \brief Save an 8-bit grey-level OFF image into a complex image.
+ /*! \brief Save an 8-bit grey-level OFF image into a complex image.
\param[in] ima The image to save.
\param[in] filename The name of the file where to save the image.
Only data is attached to 2-faces is saved; the OFF file
- cannot store data attached to faces of other dimensions. */
+ cannot store data attached to faces of other dimensions.
+
+ \ingroup iooff
+ */
void save(const int_u8_2complex_image3df& ima,
const std::string& filename);
- /** \brief Save a floating-point value grey-level OFF image into
+ /*! \brief Save a floating-point value grey-level OFF image into
a complex image.
\param[in] ima The image to save.
\param[in] filename The name of the file where to save the image.
Only data is attached to 2-faces is saved; the OFF file
- cannot store data attached to faces of other dimensions. */
+ cannot store data attached to faces of other dimensions.
+
+ \ingroup iooff
+ */
void save(const float_2complex_image3df& ima,
const std::string& filename);
- /** \brief Save a 3x8-bit RGB (color) OFF image into a complex image.
+ /*! \brief Save a 3x8-bit RGB (color) OFF image into a complex image.
\param[in] ima The image to save.
\param[in] filename The name of the file where to save the image.
Only data is attached to 2-faces is saved; the OFF file
- cannot store data attached to faces of other dimensions. */
+ cannot store data attached to faces of other dimensions.
+
+ \ingroup iooff
+ */
void save(const rgb8_2complex_image3df& ima,
const std::string& filename);
diff --git a/milena/mln/io/pbm/load.hh b/milena/mln/io/pbm/load.hh
index 5c899b4..a882125 100644
--- a/milena/mln/io/pbm/load.hh
+++ b/milena/mln/io/pbm/load.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -51,21 +52,25 @@ namespace mln
{
- /// Load a pbm image in a Milena image.
- ///
- /// \param[out] ima A reference to the image2d<bool> which will receive
- /// data.
- /// \param[in] filename The source.
- ///
+ /*! \brief Load a pbm image in a Milena image.
+ *
+ * \param[out] ima A reference to the image2d<bool> which will receive
+ * data.
+ * \param[in] filename The source.
+ *
+ * \ingroup iopbm
+ */
void load(image2d<bool>& ima,
const std::string& filename);
- /// Load a pbm image in a image2d<float>.
- ///
- /// \param[in] filename The image source.
- ///
- /// \return An image2d<float> which contains loaded data.
- ///
+ /*! \brief Load a pbm image in a image2d<float>.
+ *
+ * \param[in] filename The image source.
+ *
+ * \return An image2d<float> which contains loaded data.
+ *
+ * \ingroup iopbm
+ */
image2d<bool> load(const std::string& filename);
diff --git a/milena/mln/io/pbm/save.hh b/milena/mln/io/pbm/save.hh
index a9b7604..4762b18 100644
--- a/milena/mln/io/pbm/save.hh
+++ b/milena/mln/io/pbm/save.hh
@@ -1,5 +1,5 @@
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-// 2011 EPITA Research and Development Laboratory (LRDE)
+// 2011, 2012 EPITA Research and Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -58,10 +58,12 @@ namespace mln
namespace pbm
{
- /*! Save a Milena image as a pbm image.
+ /*! \brief Save a Milena image as a pbm image.
*
* \param[in] ima The image to save.
* \param[in,out] filename the destination.
+ *
+ * \ingroup iopbm
*/
template <typename I>
void save(const Image<I>& ima, const std::string& filename);
diff --git a/milena/mln/io/pbms/load.hh b/milena/mln/io/pbms/load.hh
index 3713f5b..5d7bf5d 100644
--- a/milena/mln/io/pbms/load.hh
+++ b/milena/mln/io/pbms/load.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -50,11 +51,14 @@ namespace mln
namespace pbms
{
- /// Load pbms images as slices of a 3D Milena image.
- ///
- /// \param[out] ima A reference to the 3D image which will receive
- /// data.
- /// \param[in] filenames The list of 2D images to load..
+ /*! \brief Load pbms images as slices of a 3D Milena image.
+ *
+ * \param[out] ima A reference to the 3D image which will receive
+ * data.
+ * \param[in] filenames The list of 2D images to load..
+ *
+ * \ingroup iopbm
+ */
void load(image3d<bool>& ima,
const util::array<std::string>& filenames);
diff --git a/milena/mln/io/pfm/load.hh b/milena/mln/io/pfm/load.hh
index a2fd67f..4a12b2c 100644
--- a/milena/mln/io/pfm/load.hh
+++ b/milena/mln/io/pfm/load.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -47,21 +48,25 @@ namespace mln
namespace pfm
{
- /// Load a pfm image in a Milena image.
- ///
- /// \param[out] ima A reference to the image2d<float> which will receive
- /// data.
- /// \param[in] filename The source.
- ///
+ /*! \brief Load a pfm image in a Milena image.
+ *
+ * \param[out] ima A reference to the image2d<float> which will receive
+ * data.
+ * \param[in] filename The source.
+ *
+ * \ingroup iopfm
+ */
void load(image2d<float>& ima,
const std::string& filename);
- /// Load a pfm image in a image2d<float>.
- ///
- /// \param[in] filename The image source.
- ///
- /// \return An image2d<float> which contains loaded data.
- ///
+ /*! \brief Load a pfm image in a image2d<float>.
+ *
+ * \param[in] filename The image source.
+ *
+ * \return An image2d<float> which contains loaded data.
+ *
+ * \ingroup iopfm
+ */
image2d<float> load(const std::string& filename);
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/io/pgm/load.hh b/milena/mln/io/pgm/load.hh
index 124baf4..e0c2493 100644
--- a/milena/mln/io/pgm/load.hh
+++ b/milena/mln/io/pgm/load.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -49,23 +50,31 @@ namespace mln
namespace pgm
{
- /// Load a pgm image in a Milena image.
- ///
- /// \param[out] ima A reference to the image which will receive
- /// data.
- /// \param[in] filename The source.
+ /*! \brief Load a pgm image in a Milena image.
+ *
+ * \param[out] ima A reference to the image which will receive
+ * data.
+ * \param[in] filename The source.
+ *
+ * \ingroup iopgm
+ */
template <typename I>
void load(Image<I>& ima,
const std::string& filename);
- /// Load a pgm image in a Milena image. To use this routine, you
- /// should specialize the template whith the value type of the
- /// image loaded. (ex : load<value::int_u8>("...") )
- ///
- /// \param[in] filename The image source.
- ///
- /// \return An image2d which contains loaded data.
+ /*! \brief Load a pgm image in a Milena image.
+ *
+ * To use this routine, you should specialize the template whith
+ * the value type of the image loaded. (ex :
+ * load<value::int_u8>("...") )
+ *
+ * \param[in] filename The image source.
+ *
+ * \return An image2d which contains loaded data.
+ *
+ * \ingroup iopgm
+ */
template <typename V>
image2d<V> load(const std::string& filename);
diff --git a/milena/mln/io/pgm/save.hh b/milena/mln/io/pgm/save.hh
index c5ba0af..690b107 100644
--- a/milena/mln/io/pgm/save.hh
+++ b/milena/mln/io/pgm/save.hh
@@ -1,5 +1,5 @@
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
-// 2011 EPITA Research and Development Laboratory (LRDE)
+// 2011, 2012 EPITA Research and Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -62,10 +62,12 @@ namespace mln
namespace pgm
{
- /*! Save a Milena image as a pgm image.
+ /*! \brief Save a Milena image as a pgm image.
*
* \param[in] ima The image to save.
* \param[in,out] filename the destination.
+ *
+ * \ingroup iopgm
*/
template <typename I>
void save(const Image<I>& ima, const std::string& filename);
diff --git a/milena/mln/io/pgms/load.hh b/milena/mln/io/pgms/load.hh
index e0a580b..8a51522 100644
--- a/milena/mln/io/pgms/load.hh
+++ b/milena/mln/io/pgms/load.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -51,12 +52,14 @@ namespace mln
namespace pgms
{
- /// Load pgm images as slices of a 3D Milena image.
- ///
- /// \param[out] ima A reference to the 3D image which will receive
- /// data.
- /// \param[in] filenames The list of 2D images to load..
- ///
+ /*! \brief Load pgm images as slices of a 3D Milena image.
+ *
+ * \param[out] ima A reference to the 3D image which will receive
+ * data.
+ * \param[in] filenames The list of 2D images to load..
+ *
+ * \ingroup iopgm
+ */
template <typename V>
void load(image3d<V>& ima,
const util::array<std::string>& filenames);
diff --git a/milena/mln/io/plot/load.hh b/milena/mln/io/plot/load.hh
index 2b381e4..d9609b7 100644
--- a/milena/mln/io/plot/load.hh
+++ b/milena/mln/io/plot/load.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -49,23 +50,12 @@ namespace mln
namespace plot
{
- /*! Load a Milena 1D image from a plot file.
- *
- * \param[in] ima A reference to the image to load.
- * \param[out] filename The output file.
- * \param[in] start_value The start index value of the plot
- * (optional).
- */
- /*template <typename I>
- void load(image1d<I>& ima,
- const std::string& filename);*/
-
-
-
- /*! Load a Milena array from a plot file.
+ /*! \brief Load a Milena array from a plot file.
*
* \param[in] arr A reference to the array to load.
* \param[out] filename The output file.
+ *
+ * \ingroup ioplot
*/
template <typename I>
void load(util::array<I>& arr,
@@ -74,20 +64,6 @@ namespace mln
# ifndef MLN_INCLUDE_ONLY
-
- /*template <typename I>
- inline
- void load(image1d<I>& ima, const std::string& filename)
- {
- trace::entering("mln::io::plot::load");
-
- std::ifstream file_out(filename.c_str());
- for (unsigned i = 0; i < ima.ninds(); ++i)
- file_out << start_value + i << ", " << ima.at_(i) << std::endl;
-
- trace::exiting("mln::io::plot::load");
- }*/
-
template <typename I>
inline
void load(util::array<I>& arr, const std::string& filename)
diff --git a/milena/mln/io/plot/save.hh b/milena/mln/io/plot/save.hh
index d217915..9acd89d 100644
--- a/milena/mln/io/plot/save.hh
+++ b/milena/mln/io/plot/save.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -47,16 +47,24 @@ namespace mln
{
/*! \brief Save a Milena 1D image in a plot file.
+
\param[in] ima A reference to the image to save.
- \param[out] filename The output file. */
+ \param[out] filename The output file.
+
+ \ingroup ioplot
+ */
template <typename I>
void save(const image1d<I>& ima, const std::string& filename);
/*! \brief Save a Milena array in a plot file.
+
\param[in] arr A reference to the array to save.
\param[out] filename The output file.
\param[in] start_value The start index value of the plot
- (optional). */
+ (optional).
+
+ \ingroup ioplot
+ */
template <typename T>
void save(const util::array<T>& arr, const std::string& filename,
int start_value = 0);
diff --git a/milena/mln/io/ppm/load.hh b/milena/mln/io/ppm/load.hh
index 1427864..b7fa503 100644
--- a/milena/mln/io/ppm/load.hh
+++ b/milena/mln/io/ppm/load.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -51,23 +52,30 @@ namespace mln
namespace ppm
{
- /// Load a ppm image in a Milena image.
- ///
- /// \param[out] ima A reference to the image which will receive
- /// data.
- /// \param[in] filename The source.
+ /*! \brief Load a ppm image in a Milena image.
+ *
+ * \param[out] ima A reference to the image which will receive
+ * data.
+ * \param[in] filename The source.
+ *
+ * \ingroup ioppm
+ */
template <typename I>
void load(Image<I>& ima,
const std::string& filename);
- /// Load a ppm image in a Milena image. To use this routine, you
- /// should specialize the template whith the value type of the
- /// image loaded. (ex : load<value::int_u8>("..."))
- ///
- /// \param[in] filename The image source.
- ///
- /// \return An image2d which contains loaded data.
- ///
+ /*! \brief Load a ppm image in a Milena image.
+ *
+ * To use this routine, you
+ * should specialize the template whith the value type of the
+ * image loaded. (ex : load<value::int_u8>("..."))
+ *
+ * \param[in] filename The image source.
+ *
+ * \return An image2d which contains loaded data.
+ *
+ * \ingroup ioppm
+ */
template <typename V>
image2d<V> load(const std::string& filename);
diff --git a/milena/mln/io/ppm/save.hh b/milena/mln/io/ppm/save.hh
index f207043..9e77d4b 100644
--- a/milena/mln/io/ppm/save.hh
+++ b/milena/mln/io/ppm/save.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
+// 2012 EPITA Research and Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -49,10 +50,12 @@ namespace mln
namespace ppm
{
- /*! Save a Milena image as a ppm image.
+ /*! \brief Save a Milena image as a ppm image.
*
* \param[in] ima The image to save.
* \param[in,out] filename the destination.
+ *
+ * \ingroup ioppm
*/
template <typename I>
void save(const Image<I>& ima, const std::string& filename);
diff --git a/milena/mln/io/ppms/load.hh b/milena/mln/io/ppms/load.hh
index 37b3f58..6662df3 100644
--- a/milena/mln/io/ppms/load.hh
+++ b/milena/mln/io/ppms/load.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -50,11 +51,14 @@ namespace mln
namespace ppms
{
- /// Load ppm images as slices of a 3D Milena image.
- ///
- /// \param[out] ima A reference to the 3D image which will receive
- /// data.
- /// \param[in] filenames The list of 2D images to load..
+ /*! \brief Load ppm images as slices of a 3D Milena image.
+ *
+ * \param[out] ima A reference to the 3D image which will receive
+ * data.
+ * \param[in] filenames The list of 2D images to load..
+ *
+ * \ingroup ioppm
+ */
template <typename V>
void load(image3d<V>& ima,
const util::array<std::string>& filenames);
diff --git a/milena/mln/io/raw/get_header.hh b/milena/mln/io/raw/get_header.hh
index b969b2c..545062f 100644
--- a/milena/mln/io/raw/get_header.hh
+++ b/milena/mln/io/raw/get_header.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -49,7 +50,10 @@ namespace mln
namespace raw
{
- /// Store raw file header.
+ /*! \brief Store raw file header.
+ *
+ * \ingroup ioraw
+ */
struct raw_header
{
unsigned dim;
@@ -58,7 +62,10 @@ namespace mln
};
- /// Retrieve header in a raw file.
+ /*! \brief Retrieve header from a raw file.
+ *
+ * \ingroup ioraw
+ */
raw_header get_header(const std::string& filename);
diff --git a/milena/mln/io/raw/load.hh b/milena/mln/io/raw/load.hh
index 57ca64c..8a60a59 100644
--- a/milena/mln/io/raw/load.hh
+++ b/milena/mln/io/raw/load.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory
+// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
// (LRDE)
//
// This file is part of Olena.
@@ -49,16 +49,18 @@ namespace mln
namespace raw
{
- /// Load an image saved as a raw data file.
- ///
- /// \param[in,out] ima_ The image to load.
- /// \param[in] filename the destination.
- ///
- /// This routine try to read two input files: 'filename' and
- /// 'filename.info'.
- /// 'filename' is the raw data.
- /// 'filename.info' store various information about the image.
- //
+ /*! \brief Load an image saved as a raw data file.
+ *
+ * \param[in,out] ima_ The image to load.
+ * \param[in] filename the destination.
+ *
+ * This routine try to read two input files: 'filename' and
+ * 'filename.info'.
+ * 'filename' is the raw data.
+ * 'filename.info' store various information about the image.
+ *
+ * \ingroup ioraw
+ */
template <typename I>
void load(Image<I>& ima_, const std::string& filename);
diff --git a/milena/mln/io/raw/save.hh b/milena/mln/io/raw/save.hh
index 8e927f7..ac8d635 100644
--- a/milena/mln/io/raw/save.hh
+++ b/milena/mln/io/raw/save.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -51,16 +52,18 @@ namespace mln
namespace raw
{
- /// Save a Milena image as a raw data file.
- ///
- /// \param[in] ima_ The image to save.
- /// \param[in] filename the destination.
- ///
- /// This routine produce two output files: 'filename' and
- /// 'filename.info'.
- /// 'filename' is the raw data.
- /// 'filename.info' store various information about the image.
- //
+ /*! \brief Save a Milena image as a raw data file.
+ *
+ * \param[in] ima_ The image to save.
+ * \param[in] filename the destination.
+ *
+ * This routine produce two output files: 'filename' and
+ * 'filename.info'.
+ * 'filename' is the raw data.
+ * 'filename.info' store various information about the image.
+ *
+ * \ingroup ioraw
+ */
template <typename I>
void save(const Image<I>& ima_, const std::string& filename);
diff --git a/milena/mln/io/tiff/load.hh b/milena/mln/io/tiff/load.hh
index 241a3f8..f07edd2 100644
--- a/milena/mln/io/tiff/load.hh
+++ b/milena/mln/io/tiff/load.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -55,8 +56,10 @@ namespace mln
{
- /// Load a TIFF image to a Milena image.
- //
+ /*! \brief Load a TIFF image to a Milena image.
+ *
+ * \ingroup iotiff
+ */
template <typename I>
void load(Image<I>& ima_, const std::string& filename);
diff --git a/milena/mln/io/txt/save.hh b/milena/mln/io/txt/save.hh
index bf3eeb4..6a4d5b2 100644
--- a/milena/mln/io/txt/save.hh
+++ b/milena/mln/io/txt/save.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -47,11 +48,13 @@ namespace mln
namespace txt
{
- /// Save an image as txt file.
- ///
- /// \param[in] ima The image to save. Must be an image of char.
- /// \param[in] filename the destination.
- //
+ /*! \brief Save an image as txt file.
+ *
+ * \param[in] ima The image to save. Must be an image of char.
+ * \param[in] filename the destination.
+ *
+ * \ingroup iotxt
+ */
void
save(const image2d<char>& ima, const std::string& filename);
diff --git a/milena/mln/labeling/compute.hh b/milena/mln/labeling/compute.hh
index a9dc791..32dc806 100644
--- a/milena/mln/labeling/compute.hh
+++ b/milena/mln/labeling/compute.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2010, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -189,15 +189,6 @@ namespace mln
namespace generic
{
-
- /// Generic implementation of labeling::compute.
- ///
- /// \param[in] a_ An accumulator.
- /// \param[in] label_ The labeled image.
- /// \param[in] nlabels The number of labels in \p label.
- ///
- /// \return A util::array of accumulator result (one result per label).
- //
template <typename A, typename L>
inline
util::array<mln_result(A)>
@@ -224,17 +215,6 @@ namespace mln
return res;
}
- /// Generic implementation of labeling::compute.
- ///
- /// \param[in] accus_ An array of accumulators. If the size is
- /// set to nlabels + 1, the accumulators are
- /// considered as initialized. Otherwise,
- /// the size is adjusted.
- /// \param[in] label_ The labeled image.
- /// \param[in] nlabels The number of labels in \p label.
- ///
- /// \return A util::array of accumulator result (one result per label).
- //
template <typename A, typename L>
inline
util::array<mln_result(A)>
@@ -266,17 +246,6 @@ namespace mln
return res;
}
-
-
- /// Generic implementation of labeling::compute.
- ///
- /// \param[in] a_ An accumulator.
- /// \param[in] input_ The input image.
- /// \param[in] label_ The labeled image.
- /// \param[in] nlabels The number of labels in \p label.
- ///
- /// \return A util::array of accumulator result (one result per label).
- //
template <typename A, typename I, typename L>
inline
util::array<mln_result(A)>
@@ -305,16 +274,6 @@ namespace mln
return res;
}
-
- /// Generic implementation of labeling::compute.
- ///
- /// \param[in] accus An array of accumulators.
- /// \param[in] input_ The input image.
- /// \param[in] label_ The labeled image.
- /// \param[in] nlabels The number of labels in \p label.
- ///
- /// \return A util::array of accumulator result (one result per label).
- //
template <typename A, typename I, typename L>
inline
util::array<mln_result(A)>
@@ -358,15 +317,6 @@ namespace mln
// border::get(label)) ?
//
- /// Fastest implementation of labeling::compute.
- ///
- /// \param[in] a_ An accumulator.
- /// \param[in] input_ The input image.
- /// \param[in] label_ The labeled image.
- /// \param[in] nlabels The number of labels in \p label.
- ///
- /// \return A util::array of accumulator result (one result per label).
- //
template <typename A, typename I, typename L>
inline
util::array<mln_result(A)>
@@ -412,15 +362,6 @@ namespace mln
// border::get(label)) ?
//
- /// Fastest implementation of labeling::compute.
- ///
- /// \param[in] accus An array of accumulators.
- /// \param[in] input_ The input image.
- /// \param[in] label_ The labeled image.
- /// \param[in] nlabels The number of labels in \p label.
- ///
- /// \return A util::array of accumulator result (one result per label).
- //
template <typename A, typename I, typename L>
inline
util::array<mln_result(A)>
diff --git a/milena/mln/labeling/value_and_compute.hh b/milena/mln/labeling/value_and_compute.hh
index d93fce9..c96bf44 100644
--- a/milena/mln/labeling/value_and_compute.hh
+++ b/milena/mln/labeling/value_and_compute.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -50,6 +51,7 @@ namespace mln
/// \param[in] val The value to consider.
/// \param[in] nbh The connectivity of components.
/// \param[out] nlabels The number of labels.
+ /// \param[in] accu The accumulator to be computed.
/// \return The label image.
//
template <typename I, typename N, typename L, typename A>
diff --git a/milena/mln/linear/#ch_convolve.hh# b/milena/mln/linear/#ch_convolve.hh#
new file mode 100644
index 0000000..b06583d
--- /dev/null
+++ b/milena/mln/linear/#ch_convolve.hh#
@@ -0,0 +1,103 @@
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
+//
+// This file is part of Olena.
+//
+// Olena is free software: you can redistribute it and/or modify it under
+// the terms of the GNU General Public License as published by the Free
+// Software Foundation, version 2 of the License.
+//
+// Olena is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Olena. If not, see <http://www.gnu.org/licenses/>.
+//
+// As a special exception, you may use this file as part of a free
+// software project without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to produce
+// an executable, this file does not by itself cause the resulting
+// executable to be covered by the GNU General Public License. This
+// exception does not however invalidate any other reasons why the
+// executable file might be covered by the GNU General Public License.
+
+#ifndef MLN_LINEAR_CH_CONVOLVE_HH
+# define MLN_LINEAR_CH_CONVOLVE_HH
+
+/// \file
+///
+/// Define convolution return type.
+
+# include <mln/core/concept/image.hh>
+# include <mln/core/concept/window.hh>
+# include <mln/core/concept/weighted_window.hh>
+# include <mln/trait/ch_value.hh>
+# include <mln/value/ops.hh>
+
+# include <mln/algebra/vec.hh>
+
+
+/// Define the result of the convolution of an image with type \p I
+/// with a weighted window of type \p W or weights of type \p W.
+# define mln_ch_convolve(I, W) \
+ typename mln::linear::ch_convolve<I, W>::ret
+
+# define mln_ch_convolve_(I, W) \
+ mln::linear::ch_convolve<I, W>::ret
+
+
+# define mln_ch_convolve_grad(I, W) \
+ typename mln::trait::ch_value< I, algebra::vec< I::site::dim, typename mln::linear::ch_convolve<I,W>::ret::value > >::ret
+
+# define mln_ch_convolve_grad_(I, W) \
+ mln::trait::ch_value< I, algebra::vec< I::site::dim, mln::linear::ch_convolve<I,W>::ret::value > >::ret
+
+
+namespace mln
+{
+
+ namespace linear
+ {
+
+ namespace internal
+ {
+
+ template <bool b, /* = true, i.e., W is a Weighted_Window */
+ typename I, typename W>
+ struct ch_convolve_helper
+ {
+ typedef mln_sum_product(mln_value(I), mln_weight(W)) V;
+ typedef mln_ch_value(I, V) ret;
+ };
+
+ template <typename I, typename W>
+ struct ch_convolve_helper<false, I, W>
+ {
+ typedef mln_sum_product(mln_value(I), W) V;
+ typedef mln_ch_value(I, V) ret;
+ };
+
+ } // end of namespace mln::linear::internal
+
+
+ template <typename I, typename W>
+ struct ch_convolve
+ : private mlc_and( mlc_is_a(I, Image),
+ mlc_is_not_a(W, Window) )::check_t
+ {
+ protected:
+ enum { is_w_win = mlc_is_a(W, Weighted_Window)::value };
+ typedef internal::ch_convolve_helper<is_w_win, I, W> helper;
+ public:
+ typedef mlc_ret(helper) ret;
+ };
+
+ } // end of namespace mln::linear
+
+} // end of namespace mln
+
+
+#endif // ! MLN_LINEAR_CH_CONVOLVE_HH
diff --git a/milena/mln/linear/.#ch_convolve.hh b/milena/mln/linear/.#ch_convolve.hh
new file mode 120000
index 0000000..488c325
--- /dev/null
+++ b/milena/mln/linear/.#ch_convolve.hh
@@ -0,0 +1 @@
+lazzara@fidji.lrde.epita.fr.26906:1321455887
\ No newline at end of file
diff --git a/milena/mln/linear/convolve.hh b/milena/mln/linear/convolve.hh
index 8bd5ab6..4be7cbe 100644
--- a/milena/mln/linear/convolve.hh
+++ b/milena/mln/linear/convolve.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,15 +44,18 @@ namespace mln
namespace linear
{
- /*! Convolution of an image \p input by the weighted window \p w_win.
- *
- * \warning Computation of \p output(p) is performed with the
- * value type of \p output.
- *
- * \warning The weighted window is used as-is, considering that
- * its symmetrization is handled by the client.
- *
- * \pre input.is_valid
+ /*! \brief Convolution of an image \p input by the weighted window
+ \p w_win.
+
+ \warning Computation of \p output(p) is performed with the
+ value type of \p output.
+
+ \warning The weighted window is used as-is, considering that
+ its symmetrization is handled by the client.
+
+ \pre input.is_valid
+
+ \ingroup mlnlinear
*/
template <typename I, typename W>
mln_ch_convolve(I, W)
@@ -100,7 +104,7 @@ namespace mln
internal::convolve_tests(input, w_win);
extension::adjust_duplicate(input, w_win);
-
+
typedef mln_ch_convolve(I, W) O;
O output;
initialize(output, input);
@@ -117,7 +121,7 @@ namespace mln
a.take(input(q), q.w());
output(p) = a.to_result();
}
-
+
trace::exiting("linear::impl::generic::convolve");
return output;
}
diff --git a/milena/mln/linear/convolve_2x1d.hh b/milena/mln/linear/convolve_2x1d.hh
index 87d3200..6f59cbe 100644
--- a/milena/mln/linear/convolve_2x1d.hh
+++ b/milena/mln/linear/convolve_2x1d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,13 +43,15 @@ namespace mln
namespace linear
{
- /*! Convolution of an image \p input by two weighted line-shapes
- * windows.
- *
- * \warning The weighted window is used as-is, considering that
- * its symmetrization is handled by the client.
- *
- * \pre input.is_valid
+ /*! \brief Convolution of an image \p input by two weighted line-shapes
+ windows.
+
+ \warning The weighted window is used as-is, considering that
+ its symmetrization is handled by the client.
+
+ \pre input.is_valid
+
+ \ingroup mlnlinear
*/
template <typename I,
typename W, unsigned Sh, unsigned Sv>
diff --git a/milena/mln/linear/convolve_directional.hh b/milena/mln/linear/convolve_directional.hh
index b5c8fdb..0853106 100644
--- a/milena/mln/linear/convolve_directional.hh
+++ b/milena/mln/linear/convolve_directional.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,17 +43,19 @@ namespace mln
namespace linear
{
- /*! Convolution of an image \p input by a line-shaped
- * (directional) weighted window defined by the array of \p
- * weights.
- *
- * \warning Computation of \p output(p) is performed with the
- * value type of \p output.
- *
- * \warning The weighted window is used as-is, considering that
- * its symmetrization is handled by the client.
- *
- * \pre input.is_valid
+ /*! \brief Convolution of an image \p input by a line-shaped
+ (directional) weighted window defined by the array of \p
+ weights.
+
+ \warning Computation of \p output(p) is performed with the
+ value type of \p output.
+
+ \warning The weighted window is used as-is, considering that
+ its symmetrization is handled by the client.
+
+ \pre input.is_valid
+
+ \ingroup mlnlinear
*/
template <typename I, typename W, unsigned S>
mln_ch_convolve(I, W)
diff --git a/milena/mln/linear/gaussian.hh b/milena/mln/linear/gaussian.hh
index 4bb7773..0e1d5a9 100644
--- a/milena/mln/linear/gaussian.hh
+++ b/milena/mln/linear/gaussian.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2007, 2008, 2009, 2010, 2011
-// EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2001, 2002, 2003, 2004, 2007, 2008, 2009, 2010, 2011,
+// 2012 EPITA Research and Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -63,15 +63,20 @@ namespace mln
namespace linear
{
- /// Gaussian filter of an image \p input
- ///
- /// \pre output.domain = input.domain
- ///
+ /*! \brief Gaussian filter of an image \p input
+
+ \pre output.domain = input.domain
+
+ \ingroup mlnlinear
+ */
template <typename I>
mln_concrete(I)
gaussian(const Image<I>& input, float sigma);
+ /*! \overload
+ \ingroup mlnlinear
+ */
template <typename I>
mln_concrete(I)
gaussian(const Image<I>& input, float sigma, int dir);
diff --git a/milena/mln/linear/gaussian_1d.hh b/milena/mln/linear/gaussian_1d.hh
index 5e58f6a..3303e02 100644
--- a/milena/mln/linear/gaussian_1d.hh
+++ b/milena/mln/linear/gaussian_1d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -43,7 +44,9 @@ namespace mln
namespace linear
{
-
+ /*! \brief Gaussian filter for fastest 1D images.
+ \ingroup mlnlinear
+ */
template <typename I>
mln_concrete(I)
gaussian_1d(const Image<I>& input,
diff --git a/milena/mln/linear/gaussian_directional_2d.hh b/milena/mln/linear/gaussian_directional_2d.hh
index bda0eda..d723a40 100644
--- a/milena/mln/linear/gaussian_directional_2d.hh
+++ b/milena/mln/linear/gaussian_directional_2d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -44,7 +45,9 @@ namespace mln
namespace linear
{
-
+ /*! \brief Directional Gaussian filter for 2D images.
+ \ingroup mlnlinear
+ */
template <typename I>
mln_concrete(I)
gaussian_directional_2d(const Image<I>& input,
diff --git a/milena/mln/linear/lap.hh b/milena/mln/linear/lap.hh
index f613c3b..a03ff23 100644
--- a/milena/mln/linear/lap.hh
+++ b/milena/mln/linear/lap.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -31,6 +32,8 @@
* \brief Laplacian.
*/
+/// \todo Improve doc!
+
# include <mln/linear/convolve.hh>
# include <mln/make/w_window2d.hh>
@@ -42,8 +45,10 @@ namespace mln
namespace linear
{
- // FIXME: Doc!
-
+ /*! \brief Laplacian
+ \ingroup mlnlinear
+ */
+ /// \{
template <typename I>
mln_ch_convolve(I, int)
lap_4(const Image<I>& input);
@@ -59,7 +64,7 @@ namespace mln
template <typename I>
mln_ch_convolve(I, int)
lap_o(const Image<I>& input);
-
+ /// \}
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/linear/local/convolve.hh b/milena/mln/linear/local/convolve.hh
index c0b7b30..d8e7b4e 100644
--- a/milena/mln/linear/local/convolve.hh
+++ b/milena/mln/linear/local/convolve.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -47,14 +48,16 @@ namespace mln
namespace local
{
- /*! Local convolution of image \p input at point \p p by the
- * weighted window \p w_win.
- *
- * \warning Computation of the \p result is performed with the
- * type \c R.
- *
- * \warning The weighted window is used as-is, considering that
- * its symmetrization is handled by the client.
+ /*! \brief Local convolution of image \p input at point \p p by the
+ weighted window \p w_win.
+
+ \warning Computation of the \p result is performed with the
+ type \c R.
+
+ \warning The weighted window is used as-is, considering that
+ its symmetrization is handled by the client.
+
+ \ingroup mlnlinear
*/
template <typename I, typename P, typename W, typename R>
void convolve(const Image<I>& input,
@@ -63,14 +66,16 @@ namespace mln
R& result);
- /*! Local convolution around (generalized) pixel \p by the
- * weighted window \p w_win.
- *
- * \warning Computation of the \p result is performed with the
- * type \c R.
- *
- * \warning The weighted window is used as-is, considering that
- * its symmetrization is handled by the client.
+ /*! \brief Local convolution around (generalized) pixel \p by the
+ weighted window \p w_win.
+
+ \warning Computation of the \p result is performed with the
+ type \c R.
+
+ \warning The weighted window is used as-is, considering that
+ its symmetrization is handled by the client.
+
+ \ingroup mlnlinear
*/
template <typename P, typename W, typename R>
void convolve(const Generalized_Pixel<P>& p,
diff --git a/milena/mln/linear/log.hh b/milena/mln/linear/log.hh
index 2c0849d..852c123 100644
--- a/milena/mln/linear/log.hh
+++ b/milena/mln/linear/log.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -29,6 +30,8 @@
/// \file
///
/// Laplacian of Gaussian.
+/// \todo use doxygen to make reference to articles.
+
# include <mln/linear/convolve.hh>
# include <mln/make/w_window2d.hh>
@@ -41,6 +44,10 @@ namespace mln
namespace linear
{
+ /*! \brief Laplacian of Gaussian.
+ \ingroup mlnlinear
+ */
+ /// \{
template <typename I>
mln_ch_convolve(I, int)
LoG_5x5(const Image<I>& input);
@@ -56,7 +63,7 @@ namespace mln
template <typename I>
mln_ch_convolve(I, int)
LoG_17x17(const Image<I>& input);
-
+ /// \}
# ifndef MLN_INCLUDE_ONLY
@@ -89,7 +96,7 @@ namespace mln
{
trace::entering("linear::LoG_7x7");
mln_precondition(exact(input).is_valid());
- int ws[] = { +0, 0, -1, -1, -1, 0, 0,
+ int ws[] = { +0, 0, -1, -1, -1, 0, 0,
+0, -1, -3, -3, -3, -1, 0,
-1, -3, 0, 7, 0, -3, -1,
-1, -3, 7, 24, 7, -3, -1,
diff --git a/milena/mln/linear/sobel_2d.hh b/milena/mln/linear/sobel_2d.hh
index 87b3971..ac2da9a 100644
--- a/milena/mln/linear/sobel_2d.hh
+++ b/milena/mln/linear/sobel_2d.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -51,26 +52,26 @@ namespace mln
namespace linear
{
- /// Sobel_2d gradient components.
+ /*! \brief Sobel_2d gradient components.
+ \ingroup mlnlinear
+ */
/// \{
- /// Compute the horizontal component of the 2D Sobel gradient.
+ /// \brief Compute the horizontal component of the 2D Sobel gradient.
template <typename I>
mln_ch_convolve(I, int)
sobel_2d_h(const Image<I>& input);
- /// Compute the vertical component of the 2D Sobel gradient.
+ /// \brief Compute the vertical component of the 2D Sobel gradient.
template <typename I>
mln_ch_convolve(I, int)
sobel_2d_v(const Image<I>& input);
- /// \}
- /// Compute the vertical component of the 2D Sobel gradient.
+ /// \brief Compute the vertical component of the 2D Sobel gradient.
template <typename I>
mln_ch_convolve_grad(I, int)
sobel_2d(const Image<I>& input);
- /// \}
- /// Compute the L1 norm of the 2D Sobel gradient.
+ /// \brief Compute the L1 norm of the 2D Sobel gradient.
template <typename I>
mln_ch_convolve(I, int)
sobel_2d_l1_norm(const Image<I>& input);
diff --git a/milena/mln/logical/and.hh b/milena/mln/logical/and.hh
index 066aa31..84c3c03 100644
--- a/milena/mln/logical/and.hh
+++ b/milena/mln/logical/and.hh
@@ -40,13 +40,16 @@ namespace mln
namespace logical
{
- /*! Point-wise "logical and" between images \p lhs and \p rhs.
+ /*! \brief Point-wise "logical and" between images \p lhs and \p
+ * rhs.
*
* \param[in] lhs First operand image.
* \param[in] rhs Second operand image.
* \result The result image.
*
* \pre \p lhs.domain == \p rhs.domain
+ *
+ * \ingroup mlnimageops
*/
template <typename L, typename R>
mln_ch_fun_vv2v(land, L, R)
@@ -63,6 +66,8 @@ namespace mln
* lhs(p) = lhs(p) and rhs(p)
*
* \pre \p rhs.domain >= \p lhs.domain
+ *
+ * \ingroup mlnimageops
*/
template <typename L, typename R>
void and_inplace(Image<L>& lhs, const Image<R>& rhs);
diff --git a/milena/mln/logical/and_not.hh b/milena/mln/logical/and_not.hh
index c06322b..293d465 100644
--- a/milena/mln/logical/and_not.hh
+++ b/milena/mln/logical/and_not.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,20 +41,24 @@ namespace mln
namespace logical
{
- /*! Point-wise "logical and-not" between images \p lhs and \p rhs.
+ /*! \brief Point-wise "logical and-not" between images \p lhs and
+ * \p rhs.
*
* \param[in] lhs First operand image.
* \param[in] rhs Second operand image.
* \result The result image.
*
* \pre \p lhs.domain == \p rhs.domain
+ *
+ * \ingroup mlnimageops
*/
template <typename L, typename R>
mln_ch_fun_vv2v(land_not, L, R)
and_not(const Image<L>& lhs, const Image<R>& rhs);
- /*! Point-wise in-place "logical and-not" of image \p rhs in image \p lhs.
+ /*! \brief Point-wise in-place "logical and-not" of image \p rhs
+ * in image \p lhs.
*
* \param[in,out] lhs First operand image.
* \param[in] rhs Second operand image.
@@ -63,6 +68,8 @@ namespace mln
* lhs(p) = lhs(p) and not rhs(p)
*
* \pre \p rhs.domain >= \p lhs.domain
+ *
+ * \ingroup mlnimageops
*/
template <typename L, typename R>
void and_not_inplace(Image<L>& lhs, const Image<R>& rhs);
diff --git a/milena/mln/logical/not.hh b/milena/mln/logical/not.hh
index 5ba2bf8..e3f41c6 100644
--- a/milena/mln/logical/not.hh
+++ b/milena/mln/logical/not.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,18 +41,20 @@ namespace mln
namespace logical
{
- /*! Point-wise "logical not" of image \p input.
+ /*! \brief Point-wise "logical not" of image \p input.
*
* \param[in] input the input image.
* \result The result image.
*
* \pre \p input.is_valid
+ *
+ * \ingroup mlnimageops
*/
template <typename I>
mln_concrete(I) not_(const Image<I>& input);
- /*! Point-wise in-place "logical not" of image \p input.
+ /*! \brief Point-wise in-place "logical not" of image \p input.
*
* \param[in,out] input The target image.
*
@@ -60,6 +63,8 @@ namespace mln
* input(p) = not input(p)
*
* \pre \p input.is_valid
+ *
+ * \ingroup mlnimageops
*/
template <typename I>
void not_inplace(Image<I>& input);
diff --git a/milena/mln/logical/or.hh b/milena/mln/logical/or.hh
index fd308dd..6b46750 100644
--- a/milena/mln/logical/or.hh
+++ b/milena/mln/logical/or.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,20 +41,24 @@ namespace mln
namespace logical
{
- /*! Point-wise "logical or" between images \p lhs and \p rhs.
+ /*! \brief Point-wise "logical or" between images \p lhs and \p
+ * rhs.
*
* \param[in] lhs First operand image.
* \param[in] rhs Second operand image.
* \result The result image.
*
* \pre \p lhs.domain == \p rhs.domain
+ *
+ * \ingroup mlnimageops
*/
template <typename L, typename R>
mln_ch_fun_vv2v(lor, L, R)
or_(const Image<L>& lhs, const Image<R>& rhs);
- /*! Point-wise in-place "logical or" of image \p rhs in image \p lhs.
+ /*! \brief Point-wise in-place "logical or" of image \p rhs in
+ * image \p lhs.
*
* \param[in,out] lhs First operand image.
* \param[in] rhs Second operand image.
@@ -63,6 +68,8 @@ namespace mln
* lhs(p) = lhs(p) or rhs(p)
*
* \pre \p rhs.domain >= \p lhs.domain
+ *
+ * \ingroup mlnimageops
*/
template <typename L, typename R>
void or_inplace(Image<L>& lhs, const Image<R>& rhs);
diff --git a/milena/mln/logical/xor.hh b/milena/mln/logical/xor.hh
index 5d4f9af..fcee52b 100644
--- a/milena/mln/logical/xor.hh
+++ b/milena/mln/logical/xor.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,20 +41,24 @@ namespace mln
namespace logical
{
- /*! Point-wise "logical xor" between images \p lhs and \p rhs.
+ /*! \brief Point-wise "logical xor" between images \p lhs and \p
+ * rhs.
*
* \param[in] lhs First operand image.
* \param[in] rhs Second operand image.
* \result The result image.
*
* \pre \p lhs.domain == \p rhs.domain
+ *
+ * \ingroup mlnimageops
*/
template <typename L, typename R>
mln_ch_fun_vv2v(lxor, L, R)
xor_(const Image<L>& lhs, const Image<R>& rhs);
- /*! Point-wise in-place "logical xor" of image \p rhs in image \p lhs.
+ /*! \brief Point-wise in-place "logical xor" of image \p rhs in
+ * image \p lhs.
*
* \param[in,out] lhs First operand image.
* \param[in] rhs Second operand image.
@@ -63,6 +68,8 @@ namespace mln
* lhs(p) = lhs(p) xor rhs(p)
*
* \pre \p rhs.domain >= \p lhs.domain
+ *
+ * \ingroup mlnimageops
*/
template <typename L, typename R>
void xor_inplace(Image<L>& lhs, const Image<R>& rhs);
diff --git a/milena/mln/make/influence_zone_adjacency_graph.hh b/milena/mln/make/influence_zone_adjacency_graph.hh
index 4999dde..fff2ae3 100644
--- a/milena/mln/make/influence_zone_adjacency_graph.hh
+++ b/milena/mln/make/influence_zone_adjacency_graph.hh
@@ -50,7 +50,7 @@ namespace mln
namespace make
{
- /// Create a graph from an influence zone image.
+ /// \brief Create a graph from an influence zone image.
///
/// \param[in] iz influence zone image.
/// \param[in] nbh A neighborhood.
@@ -60,7 +60,7 @@ namespace mln
//
template <typename I, typename N>
util::graph
- influence_zone_adjacency_graph(const Image<I>& iz_,
+ influence_zone_adjacency_graph(const Image<I>& iz,
const Neighborhood<N>& nbh,
const mln_value(I)& nlabels);
diff --git a/milena/mln/math/abs.hh b/milena/mln/math/abs.hh
index ab67048..baa5965 100644
--- a/milena/mln/math/abs.hh
+++ b/milena/mln/math/abs.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,16 +43,20 @@ namespace mln
namespace math
{
- /// Generic version.
+ /*! \brief Generic version.
+ \ingroup mlnmath
+ */
template <typename T>
T abs(const T& v);
- /// Specializations for existing overloads of std::abs.
- ///
- /// Reference:
- /// ISO/IEC 14882:2003 C++ standard, section 26.5
- /// (C Library, [lib.c.math]).
- ///
+ /*! Specializations for existing overloads of std::abs.
+
+ Reference:
+ ISO/IEC 14882:2003 C++ standard, section 26.5
+ (C Library, [lib.c.math]).
+
+ \ingroup mlnmath
+ */
/// \{
int abs(int v);
long abs(long v);
@@ -61,7 +66,9 @@ namespace mln
long double abs(long double v);
/// \}
- /// Specialization for mln::value::int_u.
+ /*! Specialization for mln::value::int_u.
+ \ingroup mlnmath
+ */
template <unsigned n>
value::int_u<n> abs(const value::int_u<n>& v);
diff --git a/milena/mln/math/acos.hh b/milena/mln/math/acos.hh
index 2fbe9b0..aee868f 100644
--- a/milena/mln/math/acos.hh
+++ b/milena/mln/math/acos.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,6 +41,9 @@ namespace mln
namespace math
{
+ /*! \brief The arc cosinus (acos) function.
+ \ingroup mlnmath
+ */
template <typename T>
T acos(const T& v);
diff --git a/milena/mln/math/cos.hh b/milena/mln/math/cos.hh
index 0f1a4df..8b49d51 100644
--- a/milena/mln/math/cos.hh
+++ b/milena/mln/math/cos.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,6 +41,9 @@ namespace mln
namespace math
{
+ /*! \brief The cosinus (cos) function.
+ \ingroup mlnmath
+ */
template <typename T>
T cos(const T& v);
diff --git a/milena/mln/math/diff_abs.hh b/milena/mln/math/diff_abs.hh
index e0d8edd..e7f7b14 100644
--- a/milena/mln/math/diff_abs.hh
+++ b/milena/mln/math/diff_abs.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -31,7 +31,7 @@
///
/// Define diff_abs routine.
///
-/// \fixme Do we want a specific version for vectorial types?
+/// \todo Do we want a specific version for vectorial types?
namespace mln
@@ -40,6 +40,9 @@ namespace mln
namespace math
{
+ /*! \brief The absolute difference between to values.
+ \ingroup mlnmath
+ */
template <typename T>
T diff_abs(const T& v1, const T& v2);
diff --git a/milena/mln/math/jacobi.hh b/milena/mln/math/jacobi.hh
index 60cd934..c4907c8 100644
--- a/milena/mln/math/jacobi.hh
+++ b/milena/mln/math/jacobi.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2011 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -44,6 +44,9 @@ namespace mln
namespace math
{
+ /*! \brief Jacobi's method for matrix diagonalization.
+ \ingroup mlnmath
+ */
algebra::quat
jacobi(algebra::mat<4u,4u,float> a);
diff --git a/milena/mln/math/max.hh b/milena/mln/math/max.hh
index 24f124b..dfe6fbc 100644
--- a/milena/mln/math/max.hh
+++ b/milena/mln/math/max.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,6 +39,9 @@ namespace mln
namespace math
{
+ /*! \brief Returns the maximum value.
+ \ingroup mlnmath
+ */
template <typename T>
T max(const T& v1, const T& v2);
diff --git a/milena/mln/math/min.hh b/milena/mln/math/min.hh
index fd81d54..012253f 100644
--- a/milena/mln/math/min.hh
+++ b/milena/mln/math/min.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -38,6 +39,9 @@ namespace mln
namespace math
{
+ /*! \brief Returns the minimum value.
+ \ingroup mlnmath
+ */
template <typename T>
T min(const T& v1, const T& v2);
diff --git a/milena/mln/math/pi.hh b/milena/mln/math/pi.hh
index 8f6a4e2..b056bc6 100644
--- a/milena/mln/math/pi.hh
+++ b/milena/mln/math/pi.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -33,6 +33,10 @@ namespace mln
namespace math
{
+ /*! \brief The number Pi.
+ 19 decimals.
+ \ingroup mlnmath
+ */
extern const double pi;
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/math/round.hh b/milena/mln/math/round.hh
index 8322636..69a8550 100644
--- a/milena/mln/math/round.hh
+++ b/milena/mln/math/round.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -32,8 +33,7 @@
# include <cmath>
-# include <mln/core/concept/function.hh>
-
+# include <mln/fun/v2v/round.hh>
namespace mln
@@ -42,26 +42,45 @@ namespace mln
namespace math
{
+ /*! \brief Round a given value.
+ \param[in] v The value to be rounded.
- template <typename R>
- struct round : public Function_v2v< round<R> >
- {
- typedef R result;
+ \return A round value of type \tparam R.
+
+ \warning The return type \tparam must be passed as template
+ parameter on function call.
+
+ \ingroup mlnmath
+ */
+ template <typename R, typename T>
+ R round(const T& v);
- template <typename T>
- result operator()(const T& v) const;
+ /*! \brief Round a given value.
+ \param[in] v The value to be rounded.
+ \param[in] return_type The returned type to be used.
- };
+ \return A round value of type \tparam R.
+
+ \ingroup mlnmath
+ */
+ template <typename R, typename T>
+ R round(const T& v, const R& return_type);
# ifndef MLN_INCLUDE_ONLY
- template <typename R>
- template <typename T>
- inline
- R round<R>::operator()(const T& v) const
+ template <typename R, typename T>
+ R round(const T& v)
+ {
+ static fun::v2v::round<R> f;
+ return f(v);
+ }
+
+ template <typename R, typename T>
+ R round(const T& v, const R&)
{
- return (long int)(v + 0.49999); // FIXME: !!!
+ static fun::v2v::round<R> f;
+ return f(v);
}
# endif // ! MLN_INCLUDE_ONLY
diff --git a/milena/mln/math/round_sat.hh b/milena/mln/math/round_sat.hh
index 11e2ada..80407f7 100644
--- a/milena/mln/math/round_sat.hh
+++ b/milena/mln/math/round_sat.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -26,16 +27,13 @@
#ifndef MLN_MATH_ROUND_SAT_HH
# define MLN_MATH_ROUND_SAT_HH
-/*! \file
- *
- * \brief Define round_sat routine.
- */
+/// \file
+///
+/// Round a given value considering its type as circular.
# include <cmath>
-# include <mln/core/concept/function.hh>
-# include <mln/trait/value_.hh>
-
+# include <mln/fun/v2v/round_sat.hh>
namespace mln
@@ -44,32 +42,45 @@ namespace mln
namespace math
{
+ /*! \brief Round a given value considering its type as circular.
+ \param[in] v The value to be rounded.
- template <typename R>
- struct round_sat_ : public Function_v2v< round_sat_<R> >
- {
- typedef R result;
+ \return A round value of type \tparam R.
+
+ \warning The return type \tparam must be passed as template
+ parameter on function call.
+
+ \ingroup mlnmath
+ */
+ template <typename R, typename T>
+ R round_sat(const T& v);
- template <typename T>
- result operator()(const T& v) const;
+ /*! \brief Round a given value considering its type as circular.
+ \param[in] v The value to be rounded.
+ \param[in] return_type The returned type to be used.
- };
+ \return A round value of type \tparam R.
+
+ \ingroup mlnmath
+ */
+ template <typename R, typename T>
+ R round_sat(const T& v, const R& return_type);
# ifndef MLN_INCLUDE_ONLY
- template <typename R>
- template <typename T>
- inline
- R round_sat_<R>::operator()(const T& v) const
+ template <typename R, typename T>
+ R round_sat(const T& v)
+ {
+ static fun::v2v::round_sat<R> f;
+ return f(v);
+ }
+
+ template <typename R, typename T>
+ R round_sat(const T& v, const R&)
{
- long int l = (long int)(v + 0.49999); // FIXME: !!!
- return
- l < mln_min(R)
- ? mln_min(R)
- : (l > mln_max(R)
- ? mln_max(R)
- : R(l));
+ static fun::v2v::round_sat<R> f;
+ return f(v);
}
# endif // ! MLN_INCLUDE_ONLY
diff --git a/milena/mln/math/sign.hh b/milena/mln/math/sign.hh
index aa4a513..4ea98f0 100644
--- a/milena/mln/math/sign.hh
+++ b/milena/mln/math/sign.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -46,6 +47,9 @@ namespace mln
};
+ /*! \brief Return the sign of the given value.
+ \ingroup mlnmath
+ */
template <typename T>
sign_t sign(const T& v);
diff --git a/milena/mln/math/sin.hh b/milena/mln/math/sin.hh
index 0707629..d480424 100644
--- a/milena/mln/math/sin.hh
+++ b/milena/mln/math/sin.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -28,7 +29,7 @@
/// \file
///
-/// Define the sininus (sin) routine.
+/// Define the sinus (sin) routine.
# include <cmath>
@@ -39,6 +40,9 @@ namespace mln
namespace math
{
+ /*! \brief The sinus (sin) function.
+ \ingroup mlnmath
+ */
template <typename T>
T sin(const T& v);
diff --git a/milena/mln/math/sqr.hh b/milena/mln/math/sqr.hh
index 72e19eb..b3e347d 100644
--- a/milena/mln/math/sqr.hh
+++ b/milena/mln/math/sqr.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,6 +41,9 @@ namespace mln
namespace math
{
+ /*! \brief The square function.
+ \ingroup mlnmath
+ */
template <typename T>
T sqr(const T& v);
diff --git a/milena/mln/math/sqrt.hh b/milena/mln/math/sqrt.hh
index 6dee5ae..d7f69cc 100644
--- a/milena/mln/math/sqrt.hh
+++ b/milena/mln/math/sqrt.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,6 +41,9 @@ namespace mln
namespace math
{
+ /*! \brief The square root (sqrt) function.
+ \ingroup mlnmath
+ */
template <typename T>
T sqrt(const T& v);
diff --git a/milena/mln/morpho/Rd.hh b/milena/mln/morpho/Rd.hh
index d30c7db..7adc6bb 100644
--- a/milena/mln/morpho/Rd.hh
+++ b/milena/mln/morpho/Rd.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -123,7 +124,7 @@ namespace mln
for (unsigned i = 0; i < S.size(); ++i)
{
point p = S[i];
-
+
make_set(p);
mln_niter(N) n(nbh, p);
for_all(n)
@@ -150,7 +151,7 @@ namespace mln
}
}
-
+
inline
bool is_proc__(const point& n, const point& p) const
{
@@ -194,7 +195,7 @@ namespace mln
o(p) = mln_max(value);
}
}
-
+
};
} // end of namespace mln::morpho::impl
diff --git a/milena/mln/morpho/algebraic_filter.hh b/milena/mln/morpho/algebraic_filter.hh
index eca2cc3..e7522f7 100644
--- a/milena/mln/morpho/algebraic_filter.hh
+++ b/milena/mln/morpho/algebraic_filter.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -49,6 +49,9 @@ namespace mln
namespace morpho
{
+ /*!
+ * \ingroup mlndatafilter
+ */
template <typename I, typename N, typename A>
mln_concrete(I)
algebraic_filter(const Image<I>& input,
diff --git a/milena/mln/morpho/approx/dilation.hh b/milena/mln/morpho/approx/dilation.hh
index b1b0f32..9a4d15d 100644
--- a/milena/mln/morpho/approx/dilation.hh
+++ b/milena/mln/morpho/approx/dilation.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -57,7 +58,10 @@ namespace mln
namespace approx
{
-
+ /*! \brief Approximate mathematical morphology dilation.
+ *
+ * \ingroup mlnmorpho
+ */
template <typename I, typename W>
mln_concrete(I)
dilation(const Image<I>& input, const Window<W>& win);
@@ -71,10 +75,10 @@ namespace mln
namespace impl
{
-
-
+
+
// By distance thresholding.
-
+
template <typename I>
mln_concrete(I)
dilation_by_distance_thresholding_2d(const Image<I>& input_,
@@ -98,7 +102,7 @@ namespace mln
unsigned
radius = coef * win.diameter() / 2,
dmax = radius + 1;
-
+
mln_ch_value(I, unsigned) dmap = transform::distance_front(input,
c4(), make::w_window2d_int(ws),
dmax);
@@ -110,7 +114,7 @@ namespace mln
}
-
+
template <typename I>
mln_concrete(I)
dilation_by_distance_thresholding_3d(const Image<I>& input_,
@@ -209,7 +213,7 @@ namespace mln
if (exact(win).is_centered())
mln_postcondition(output >= input);
-
+
trace::exiting("morpho::approx::dilation");
return output;
}
diff --git a/milena/mln/morpho/approx/erosion.hh b/milena/mln/morpho/approx/erosion.hh
index b2f2b78..4a87de6 100644
--- a/milena/mln/morpho/approx/erosion.hh
+++ b/milena/mln/morpho/approx/erosion.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -44,7 +45,10 @@ namespace mln
namespace approx
{
-
+ /*! \brief Approximate mathematical morphology erosion.
+ *
+ * \ingroup mlnmorpho
+ */
template <typename I, typename W>
mln_concrete(I)
erosion(const Image<I>& input, const Window<W>& win);
@@ -58,10 +62,10 @@ namespace mln
namespace impl
{
-
-
+
+
// By distance thresholding.
-
+
template <typename I>
mln_concrete(I)
erosion_by_distance_thresholding_2d(const Image<I>& input_,
@@ -85,7 +89,7 @@ namespace mln
unsigned
radius = coef * win.diameter() / 2,
dmax = radius + 1;
-
+
mln_concrete(I) background = logical::not_(input);
mln_ch_value(I, unsigned) dmap = transform::distance_front(background,
@@ -99,7 +103,7 @@ namespace mln
}
-
+
template <typename I>
mln_concrete(I)
erosion_by_distance_thresholding_3d(const Image<I>& input_,
@@ -199,7 +203,7 @@ namespace mln
if (exact(win).is_centered())
mln_postcondition(output <= input);
-
+
trace::exiting("morpho::approx::erosion");
return output;
}
diff --git a/milena/mln/morpho/closing/algebraic.hh b/milena/mln/morpho/closing/algebraic.hh
index f8c8184..ddc7bfa 100644
--- a/milena/mln/morpho/closing/algebraic.hh
+++ b/milena/mln/morpho/closing/algebraic.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -44,7 +44,10 @@ namespace mln
namespace closing
{
- /// Morphological algebraic closing.
+ /*! \brief Morphological algebraic closing.
+ *
+ * \ingroup mlnmorphoclosing
+ */
template <typename I, typename N, typename A>
mln_concrete(I)
algebraic(const Image<I>& input, const Neighborhood<N>& nbh,
diff --git a/milena/mln/morpho/closing/area.hh b/milena/mln/morpho/closing/area.hh
index 290f27e..45cad24 100644
--- a/milena/mln/morpho/closing/area.hh
+++ b/milena/mln/morpho/closing/area.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,7 +44,10 @@ namespace mln
namespace closing
{
- /// Morphological area closing.
+ /*! \brief Morphological area closing.
+ *
+ * \ingroup mlnmorphoclosing
+ */
template <typename I, typename N>
mln_concrete(I)
area(const Image<I>& input, const Neighborhood<N>& nbh,
diff --git a/milena/mln/morpho/closing/area_on_vertices.hh b/milena/mln/morpho/closing/area_on_vertices.hh
index 89829c9..c839285 100644
--- a/milena/mln/morpho/closing/area_on_vertices.hh
+++ b/milena/mln/morpho/closing/area_on_vertices.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -45,15 +46,17 @@ namespace mln
namespace closing
{
- /// Morphological area closing on a mln::line_graph_image computing
- /// the area in terms of adjacent vertices.
- ///
- /// \param[in] input An edge image.
- /// \param[in] nbh A graph neighborhood.
- /// \param[in] lambda Closing parameter.
- ///
- /// \return An edge image.
- //
+ /*! Morphological area closing on a mln::line_graph_image computing
+ * the area in terms of adjacent vertices.
+ *
+ * \param[in] input An edge image.
+ * \param[in] nbh A graph neighborhood.
+ * \param[in] lambda Closing parameter.
+ *
+ * \return An edge image.
+ *
+ * \ingroup mlnmorphoclosing
+ */
template <typename P, typename V, typename G, typename N>
edge_image<P,V,G>
area_on_vertices(const edge_image<P,V,G>& input,
diff --git a/milena/mln/morpho/closing/height.hh b/milena/mln/morpho/closing/height.hh
index 8c67052..f9e930b 100644
--- a/milena/mln/morpho/closing/height.hh
+++ b/milena/mln/morpho/closing/height.hh
@@ -45,7 +45,10 @@ namespace mln
namespace closing
{
- /// Morphological height closing.
+ /*! \brief Morphological height closing.
+ *
+ * \ingroup mlnmorphoclosing
+ */
template <typename I, typename N>
mln_concrete(I)
height(const Image<I>& input, const Neighborhood<N>& nbh,
diff --git a/milena/mln/morpho/closing/leveling.hh b/milena/mln/morpho/closing/leveling.hh
index faa341c..93a9752 100644
--- a/milena/mln/morpho/closing/leveling.hh
+++ b/milena/mln/morpho/closing/leveling.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,7 +44,10 @@ namespace mln
namespace closing
{
- /// Morphological leveling closing.
+ /*! \brief Morphological leveling closing.
+ *
+ * \ingroup mlnmorphoclosing
+ */
template <typename I, typename N, typename A>
mln_concrete(I)
leveling(const Image<I>& input, const Neighborhood<N>& nbh,
diff --git a/milena/mln/morpho/closing/structural.hh b/milena/mln/morpho/closing/structural.hh
index de3cff2..76b2039 100644
--- a/milena/mln/morpho/closing/structural.hh
+++ b/milena/mln/morpho/closing/structural.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,10 +43,12 @@ namespace mln
namespace closing
{
- /// Morphological structural closing.
- ///
- /// This operator is e_{-B} o d_B.
- ///
+ /*! \brief Morphological structural closing.
+ *
+ * This operator is e_{-B} o d_B.
+ *
+ * \ingroup mlnmorphoclosing
+ */
template <typename I, typename W>
mln_concrete(I)
structural(const Image<I>& input, const Window<W>& win);
diff --git a/milena/mln/morpho/closing/sum.hh b/milena/mln/morpho/closing/sum.hh
index 1f8daf3..c9ceadf 100644
--- a/milena/mln/morpho/closing/sum.hh
+++ b/milena/mln/morpho/closing/sum.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,7 +44,10 @@ namespace mln
namespace closing
{
- /// Morphological sum closing.
+ /*! \brief Morphological sum closing.
+ *
+ * \ingroup mlnmorphoclosing
+ */
template <typename I, typename N>
mln_concrete(I)
sum(const Image<I>& input, const Neighborhood<N>& nbh,
diff --git a/milena/mln/morpho/closing/volume.hh b/milena/mln/morpho/closing/volume.hh
index 3aacf9b..d471483 100644
--- a/milena/mln/morpho/closing/volume.hh
+++ b/milena/mln/morpho/closing/volume.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,7 +44,10 @@ namespace mln
namespace closing
{
- /// Morphological volume closing.
+ /*! \brief Morphological volume closing.
+ *
+ * \ingroup mlnmorphoclosing
+ */
template <typename I, typename N>
mln_concrete(I)
volume(const Image<I>& input, const Neighborhood<N>& nbh,
diff --git a/milena/mln/morpho/complementation.hh b/milena/mln/morpho/complementation.hh
index ef059f4..bb4548b 100644
--- a/milena/mln/morpho/complementation.hh
+++ b/milena/mln/morpho/complementation.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,17 +45,21 @@ namespace mln
namespace morpho
{
- /*! Morphological complementation: either a logical "not" (if
- * morpho on sets) or an arithmetical complementation (if morpho
- * on functions).
+ /*! \brief Morphological complementation: either a logical "not"
+ * (if morpho on sets) or an arithmetical complementation (if
+ * morpho on functions).
+ *
+ * \ingroup mlnmorpho
*/
template <typename I>
mln_concrete(I) complementation(const Image<I>& input);
- /*! Morphological complementation, inplace version: either a
- * logical "not" (if morpho on sets) or an arithmetical
+ /*! \brief Morphological complementation, inplace version: either
+ * a logical "not" (if morpho on sets) or an arithmetical
* complementation (if morpho on functions).
+ *
+ * \ingroup mlnmorpho
*/
template <typename I>
void complementation_inplace(Image<I>& input);
diff --git a/milena/mln/morpho/contrast.hh b/milena/mln/morpho/contrast.hh
index 9cda9c4..e2fd47e 100644
--- a/milena/mln/morpho/contrast.hh
+++ b/milena/mln/morpho/contrast.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,9 +43,11 @@ namespace mln
namespace morpho
{
- /*! Morphological contrast operator (based on top-hats).
+ /*! \brief Morphological contrast operator (based on top-hats).
*
- * This operator is Id + wth_B - bth_B.
+ * This operator is Id + wth_B - bth_B.
+ *
+ * \ingroup mlnmorpho
*/
template <typename I, typename W>
mln_concrete(I) contrast(const Image<I>& input, const Window<W>& win);
diff --git a/milena/mln/morpho/dilation.hh b/milena/mln/morpho/dilation.hh
index e2372d8..25b3cbb 100644
--- a/milena/mln/morpho/dilation.hh
+++ b/milena/mln/morpho/dilation.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -46,7 +47,10 @@ namespace mln
namespace morpho
{
- /// Morphological dilation.
+ /*! \brief Morphological dilation.
+ *
+ * \ingroup mlnmorpho
+ */
template <typename I, typename W>
mln_concrete(I)
dilation(const Image<I>& input, const Window<W>& win);
diff --git a/milena/mln/morpho/erosion.hh b/milena/mln/morpho/erosion.hh
index 9946d7e..111a350 100644
--- a/milena/mln/morpho/erosion.hh
+++ b/milena/mln/morpho/erosion.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -47,7 +47,10 @@ namespace mln
namespace morpho
{
- /// Morphological erosion.
+ /*! \brief Morphological erosion.
+ *
+ * \ingroup mlnmorpho
+ */
template <typename I, typename W>
mln_concrete(I)
erosion(const Image<I>& input, const Window<W>& win);
diff --git a/milena/mln/morpho/gradient.hh b/milena/mln/morpho/gradient.hh
index 00ec090..c54cf62 100644
--- a/milena/mln/morpho/gradient.hh
+++ b/milena/mln/morpho/gradient.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -46,23 +47,32 @@ namespace mln
namespace morpho
{
- /// Morphological gradient.
- ///
- /// This operator is d_B - e_B.
+ /*! \brief Morphological gradient.
+ *
+ * This operator is d_B - e_B.
+ *
+ * \ingroup mlnmorpho
+ */
template <typename I, typename W>
mln_concrete(I) gradient(const Image<I>& input, const Window<W>& win);
- /// Morphological internal gradient.
- ///
- /// This operator is Id - e_B.
+ /*! \brief Morphological internal gradient.
+ *
+ * This operator is Id - e_B.
+ *
+ * \ingroup mlnmorpho
+ */
template <typename I, typename W>
mln_concrete(I) gradient_internal(const Image<I>& input, const Window<W>& win);
- /// Morphological external gradient.
- ///
- /// This operator is d_B - Id.
+ /*! \brief Morphological external gradient.
+ *
+ * This operator is d_B - Id.
+ *
+ * \ingroup mlnmorpho
+ */
template <typename I, typename W>
mln_concrete(I) gradient_external(const Image<I>& input, const Window<W>& win);
diff --git a/milena/mln/morpho/hit_or_miss.hh b/milena/mln/morpho/hit_or_miss.hh
index 950a45a..2910ab1 100644
--- a/milena/mln/morpho/hit_or_miss.hh
+++ b/milena/mln/morpho/hit_or_miss.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011, 2012 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -50,9 +50,10 @@ namespace mln
extern bool constrained_hit_or_miss;
- /// Morphological hit-or-miss.
- /*!
+ /*! \brief Morphological hit-or-miss.
* This operator is HMT_(Bh,Bm) = e_Bh /\ (e_Bm o C).
+ *
+ * \ingroup mlnmorpho
*/
template <typename I, typename Wh, typename Wm>
mln_concrete(I)
@@ -60,9 +61,10 @@ namespace mln
const Window<Wh>& win_hit, const Window<Wm>& win_miss);
- /// Morphological hit-or-miss opening.
- /*!
+ /*! \brief Morphological hit-or-miss opening.
* This operator is HMTope_(Bh,Bm) = d_(-Bh) o HMT_(Bh,Bm).
+ *
+ * \ingroup mlnmorpho
*/
template <typename I, typename Wh, typename Wm>
mln_concrete(I)
@@ -70,9 +72,10 @@ namespace mln
const Window<Wh>& win_hit, const Window<Wm>& win_miss);
- /// Morphological hit-or-miss opening of the background.
- /*!
+ /*! \brief Morphological hit-or-miss opening of the background.
* This operator is HMTopeBG = HMTope_(Bm,Bh) o C = d_(-Bm) o HMT_(Bh,Bm).
+ *
+ * \ingroup mlnmorpho
*/
template <typename I, typename Wh, typename Wm>
mln_concrete(I)
@@ -80,9 +83,10 @@ namespace mln
const Window<Wh>& win_hit, const Window<Wm>& win_miss);
- /// Morphological hit-or-miss closing.
- /*!
+ /*! \brief Morphological hit-or-miss closing.
* This operator is C o HMTope o C.
+ *
+ * \ingroup mlnmorpho
*/
template <typename I, typename Wh, typename Wm>
mln_concrete(I)
@@ -90,9 +94,10 @@ namespace mln
const Window<Wh>& win_hit, const Window<Wm>& win_miss);
- /// Morphological hit-or-miss closing of the background.
- /*!
+ /*! \brief Morphological hit-or-miss closing of the background.
* This operator is C o HMTopeBG o C.
+ *
+ * \ingroup mlnmorpho
*/
template <typename I, typename Wh, typename Wm>
mln_concrete(I)
diff --git a/milena/mln/morpho/laplacian.hh b/milena/mln/morpho/laplacian.hh
index f0de8ee..8bc43e3 100644
--- a/milena/mln/morpho/laplacian.hh
+++ b/milena/mln/morpho/laplacian.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,15 +43,20 @@ namespace mln
namespace morpho
{
- /*! Morphological laplacian.
+ /*! \brief Morphological laplacian.
*
- * This operator is (d_B - Id) - (Id - e_B).
+ * This operator is (d_B - Id) - (Id - e_B).
+ *
+ * \ingroup mlnmorpho
*/
template <typename I, typename W, typename O>
void laplacian(const Image<I>& input, const Window<W>& win,
Image<O>& output);
+ /*! \overload
+ * \ingroup mlnmorpho
+ */
template <typename I, typename W>
mln_trait_op_minus_twice(mln_concrete(I))
laplacian(const Image<I>& input, const Window<W>& win);
diff --git a/milena/mln/morpho/leveling_filter.hh b/milena/mln/morpho/leveling_filter.hh
index f4e9e8e..e10090c 100644
--- a/milena/mln/morpho/leveling_filter.hh
+++ b/milena/mln/morpho/leveling_filter.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -48,7 +49,9 @@ namespace mln
namespace morpho
{
-
+ /*!
+ * \ingroup mlndatafilter
+ */
template <typename I, typename N, typename A>
mln_concrete(I)
leveling_filter(const Image<I>& input,
diff --git a/milena/mln/morpho/line_gradient.hh b/milena/mln/morpho/line_gradient.hh
index 115b39f..40f89c2 100644
--- a/milena/mln/morpho/line_gradient.hh
+++ b/milena/mln/morpho/line_gradient.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -54,8 +55,11 @@ namespace mln
namespace morpho
{
- /// Create a line graph image representing the gradient
- /// norm of a mln::image2d.
+ /*! \brief Create a line graph image representing the gradient
+ * norm of a mln::image2d.
+ *
+ * \ingroup mlnmorpho
+ */
/* FIXME: Currently, the adjacency is set to 4-c and cannot be
changed. */
template <typename V>
diff --git a/milena/mln/morpho/meyer_wst.hh b/milena/mln/morpho/meyer_wst.hh
index 575c38c..d616755 100644
--- a/milena/mln/morpho/meyer_wst.hh
+++ b/milena/mln/morpho/meyer_wst.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,7 +43,7 @@
mln/morpho/watershed/flooding.hh, and remove the former when
1. it is entirely covered by the latter;
- 2. clients (including tests and Milena) are updated to use
+ 2. clients (including tests and Milena) are updated to use
mln::morpho::watershed::flooding. */
@@ -63,7 +64,7 @@ namespace mln
namespace morpho
{
- /** \brief Meyer's Watershed Transform (WST) algorithm.
+ /*! \brief Meyer's Watershed Transform (WST) algorithm.
\param[in] input The input image.
\param[in] nbh The connexity of markers.
@@ -73,13 +74,16 @@ namespace mln
itself (with the minimal value), and the basins.
\li \p I is the exact type of the input image.
\li \p N is the exact type of the neighborhood used to express
- \a input's connexity. */
+ \a input's connexity.
+
+ \ingroup mlnmorphowst
+ */
template <typename L, typename I, typename N>
mln_ch_value(I, L)
meyer_wst(const Image<I>& input, const Neighborhood<N>& nbh,
L& nbasins);
- /** \brief Meyer's Watershed Transform (WST) algorithm, with no
+ /*! \brief Meyer's Watershed Transform (WST) algorithm, with no
count of basins.
\param[in] input The input image.
@@ -94,7 +98,10 @@ namespace mln
Note that the first parameter, \p L, is not automatically
valued from the type of the actual argument during implicit
instantiation: you have to explicitly pass this parameter at
- call sites. */
+ call sites.
+
+ \ingroup mlnmorphowst
+ */
template <typename L, typename I, typename N>
mln_ch_value(I, L)
meyer_wst(const Image<I>& input, const Neighborhood<N>& nbh);
diff --git a/milena/mln/morpho/min.hh b/milena/mln/morpho/min.hh
index d8bb015..1fcd232 100644
--- a/milena/mln/morpho/min.hh
+++ b/milena/mln/morpho/min.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,17 +45,21 @@ namespace mln
namespace morpho
{
- /*! Morphological min: either a logical "and" (if morpho on sets)
- * or an arithmetical min (if morpho on functions).
+ /*! \brief Morphological min: either a logical "and" (if morpho on
+ * sets) or an arithmetical min (if morpho on functions).
+ *
+ * \ingroup mlnmorpho
*/
template <typename I, typename J>
mln_concrete(I)
- min(const Image<I>& lhs, const Image<J>& rhs);
+ min(const Image<I>& lhs, const Image<J>& rhs);
- /*! Morphological min, inplace version: either a logical "and" (if
- * morpho on sets) or an arithmetical min (if morpho on
+ /*! \brief Morphological min, inplace version: either a logical
+ * "and" (if morpho on sets) or an arithmetical min (if morpho on
* functions).
+ *
+ * \ingroup mlnmorpho
*/
template <typename I, typename J>
void min_inplace(Image<I>& lhs, const Image<J>& rhs);
diff --git a/milena/mln/morpho/minus.hh b/milena/mln/morpho/minus.hh
index 83120bb..ff6c13b 100644
--- a/milena/mln/morpho/minus.hh
+++ b/milena/mln/morpho/minus.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,8 +45,11 @@ namespace mln
namespace morpho
{
- /*! Morphological minus: either a logical "and not" (if morpho on
- * sets) or an arithmetical minus (if morpho on functions).
+ /*! \brief Morphological minus: either a logical "and not" (if
+ * morpho on sets) or an arithmetical minus (if morpho on
+ * functions).
+ *
+ * \ingroup mlnmorpho
*/
template <typename I, typename J>
mln_concrete(I) minus(const Image<I>& lhs, const Image<J>& rhs);
diff --git a/milena/mln/morpho/opening/algebraic.hh b/milena/mln/morpho/opening/algebraic.hh
index 449eb63..9eb8973 100644
--- a/milena/mln/morpho/opening/algebraic.hh
+++ b/milena/mln/morpho/opening/algebraic.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -34,17 +35,23 @@
# include <mln/morpho/algebraic_filter.hh>
-namespace mln {
- namespace morpho {
- namespace opening {
+namespace mln
+{
- /// Morphological algebraic opening.
- template <typename I, typename N, typename A>
- mln_concrete(I)
- algebraic(const Image<I>& input, const Neighborhood<N>& nbh,
- const Accumulator<A>& accu, const mln_result(A)& lambda);
+ namespace morpho
+ {
+ namespace opening
+ {
+ /*! \brief Morphological algebraic opening.
+ *
+ * \ingroup mlnmorphoopening
+ */
+ template <typename I, typename N, typename A>
+ mln_concrete(I)
+ algebraic(const Image<I>& input, const Neighborhood<N>& nbh,
+ const Accumulator<A>& accu, const mln_result(A)& lambda);
# ifndef MLN_INCLUDE_ONLY
@@ -76,7 +83,9 @@ namespace mln {
# endif // ! MLN_INCLUDE_ONLY
} // end of namespace mln::morpho::opening
+
} // end of namespace mln::morpho
+
} // end of namespace mln
diff --git a/milena/mln/morpho/opening/approx/structural.hh b/milena/mln/morpho/opening/approx/structural.hh
index 0d0abc5..87f6bc1 100644
--- a/milena/mln/morpho/opening/approx/structural.hh
+++ b/milena/mln/morpho/opening/approx/structural.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -46,9 +47,12 @@ namespace mln
namespace approx
{
- /// Approximate of morphological structural opening.
- ///
- /// This operator is d_{-B} o e_B.
+ /*! \brief Approximate of morphological structural opening.
+ *
+ * This operator is d_{-B} o e_B.
+ *
+ * \ingroup mlnmorphoopening
+ */
template <typename I, typename W>
mln_concrete(I)
structural(const Image<I>& input, const Window<W>& win);
diff --git a/milena/mln/morpho/opening/area.hh b/milena/mln/morpho/opening/area.hh
index 366a31b..848727e 100644
--- a/milena/mln/morpho/opening/area.hh
+++ b/milena/mln/morpho/opening/area.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,7 +44,10 @@ namespace mln
namespace opening
{
- /// Morphological area opening.
+ /*! \brief Morphological area opening.
+ *
+ * \ingroup mlnmorphoopening
+ */
template <typename I, typename N>
mln_concrete(I)
area(const Image<I>& input, const Neighborhood<N>& nbh,
diff --git a/milena/mln/morpho/opening/area_on_vertices.hh b/milena/mln/morpho/opening/area_on_vertices.hh
index 09a9b29..6f52921 100644
--- a/milena/mln/morpho/opening/area_on_vertices.hh
+++ b/milena/mln/morpho/opening/area_on_vertices.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -45,15 +46,17 @@ namespace mln
namespace opening
{
- /// Morphological area opening on a mln::line_graph_image computing
- /// the area in terms of adjacent vertices.
- ///
- /// \param[in] input An edge image.
- /// \param[in] nbh A graph neighborhood.
- /// \param[in] lambda Closing parameter.
- ///
- /// \return An edge image.
- //
+ /*! \brief Morphological area opening on a mln::line_graph_image computing
+ * the area in terms of adjacent vertices.
+ *
+ * \param[in] input An edge image.
+ * \param[in] nbh A graph neighborhood.
+ * \param[in] lambda Closing parameter.
+ *
+ * \return An edge image.
+ *
+ * \ingroup mlnmorphoopening
+ */
template <typename P, typename V, typename G, typename N>
edge_image<P,V,G>
area_on_vertices(const edge_image<P,V,G>& input,
diff --git a/milena/mln/morpho/opening/height.hh b/milena/mln/morpho/opening/height.hh
index c4a9ae5..b10aff5 100644
--- a/milena/mln/morpho/opening/height.hh
+++ b/milena/mln/morpho/opening/height.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,7 +44,10 @@ namespace mln
namespace opening
{
- /// Morphological height opening.
+ /*! \brief Morphological height opening.
+ *
+ * \ingroup mlnmorphoopening
+ */
template <typename I, typename N>
mln_concrete(I)
height(const Image<I>& input, const Neighborhood<N>& nbh,
diff --git a/milena/mln/morpho/opening/leveling.hh b/milena/mln/morpho/opening/leveling.hh
index a52d68d..ff48879 100644
--- a/milena/mln/morpho/opening/leveling.hh
+++ b/milena/mln/morpho/opening/leveling.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -34,15 +35,23 @@
# include <mln/morpho/leveling_filter.hh>
-namespace mln {
- namespace morpho {
- namespace opening {
+namespace mln
+{
- /// Morphological leveling opening.
- template <typename I, typename N, typename A>
- mln_concrete(I)
- leveling(const Image<I>& input, const Neighborhood<N>& nbh,
- const Accumulator<A>& accu, const mln_result(A)& lambda);
+ namespace morpho
+ {
+
+ namespace opening
+ {
+
+ /*! \brief Morphological leveling opening.
+ *
+ * \ingroup mlnmorphoopening
+ */
+ template <typename I, typename N, typename A>
+ mln_concrete(I)
+ leveling(const Image<I>& input, const Neighborhood<N>& nbh,
+ const Accumulator<A>& accu, const mln_result(A)& lambda);
diff --git a/milena/mln/morpho/opening/structural.hh b/milena/mln/morpho/opening/structural.hh
index 39a5898..2a7a0d6 100644
--- a/milena/mln/morpho/opening/structural.hh
+++ b/milena/mln/morpho/opening/structural.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,9 +43,12 @@ namespace mln
namespace opening
{
- /// Morphological structural opening.
- ///
- /// This operator is d_{-B} o e_B.
+ /*! \brief Morphological structural opening.
+ *
+ * This operator is d_{-B} o e_B.
+ *
+ * \ingroup mlnmorphoopening
+ */
template <typename I, typename W>
mln_concrete(I)
structural(const Image<I>& input, const Window<W>& win);
diff --git a/milena/mln/morpho/opening/volume.hh b/milena/mln/morpho/opening/volume.hh
index d556a9e..49bb87b 100644
--- a/milena/mln/morpho/opening/volume.hh
+++ b/milena/mln/morpho/opening/volume.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,7 +42,10 @@ namespace mln
namespace opening {
- /// Morphological volume opening.
+ /*! \brief Morphological volume opening.
+ *
+ * \ingroup mlnmorphoopening
+ */
template <typename I, typename N>
mln_concrete(I)
volume(const Image<I>& input, const Neighborhood<N>& nbh,
diff --git a/milena/mln/morpho/plus.hh b/milena/mln/morpho/plus.hh
index 6e8d4bd..26e9c01 100644
--- a/milena/mln/morpho/plus.hh
+++ b/milena/mln/morpho/plus.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,8 +45,10 @@ namespace mln
namespace morpho
{
- /*! Morphological plus: either a "logical or" (if morpho on sets)
- * or an "arithmetical plus" (if morpho on functions).
+ /*! \brief Morphological plus: either a "logical or" (if morpho on
+ * sets) or an "arithmetical plus" (if morpho on functions).
+ *
+ * \ingroup mlnmorpho
*/
template <typename I, typename J>
mln_concrete(I) plus(const Image<I>& lhs, const Image<J>& rhs);
diff --git a/milena/mln/morpho/rank_filter.hh b/milena/mln/morpho/rank_filter.hh
index deaa39c..fa4d923 100644
--- a/milena/mln/morpho/rank_filter.hh
+++ b/milena/mln/morpho/rank_filter.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,7 +45,10 @@ namespace mln
namespace morpho
{
- /// Morphological rank_filter.
+ /*! \brief Morphological rank_filter.
+ *
+ * \ingroup mlndatafilter
+ */
template <typename I, typename W>
mln_concrete(I)
rank_filter(const Image<I>& input, const Window<W>& win, unsigned k);
diff --git a/milena/mln/morpho/skeleton_constrained.hh b/milena/mln/morpho/skeleton_constrained.hh
index 37bce02..fd28950 100644
--- a/milena/mln/morpho/skeleton_constrained.hh
+++ b/milena/mln/morpho/skeleton_constrained.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2011 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -32,7 +32,7 @@
/// Compute a skeleton under constraints.
///
/// \todo Add an extension handling policy for the user to set it.
-/// \fixme The fast version does not give the exact result!
+/// \todo The fast version does not give the exact result!
# include <mln/core/concept/image.hh>
# include <mln/core/concept/neighborhood.hh>
@@ -50,6 +50,10 @@ namespace mln
namespace morpho
{
+ /*! \brief Compute a skeleton under constraints.
+ *
+ * \ingroup mlnmorpho
+ */
template <typename I,
typename N, typename F,
typename K, typename R>
diff --git a/milena/mln/morpho/thick_miss.hh b/milena/mln/morpho/thick_miss.hh
index 1c8fc80..ffa0a99 100644
--- a/milena/mln/morpho/thick_miss.hh
+++ b/milena/mln/morpho/thick_miss.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,9 +42,11 @@ namespace mln
{
- /*! Morphological thick-miss.
+ /*! \brief Morphological thick-miss.
*
* This operator is THICK_B = Id + HMTopeBG_B, where B = (Bfg, Bbg).
+ *
+ * \ingroup mlnmorpho
*/
template <typename I, typename Wfg, typename Wbg>
mln_concrete(I)
diff --git a/milena/mln/morpho/thickening.hh b/milena/mln/morpho/thickening.hh
index 9f159d1..27fe909 100644
--- a/milena/mln/morpho/thickening.hh
+++ b/milena/mln/morpho/thickening.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,14 +42,16 @@ namespace mln
{
- /*! Morphological thickening.
+ /*! \brief Morphological thickening.
*
* This operator is THICK_B = Id + HMT_B, where B = (Bfg, Bbg).
+ *
+ * \ingroup mlnmorpho
*/
template <typename I, typename Wfg, typename Wbg>
mln_concrete(I)
- thickening(const Image<I>& input,
- const Window<Wfg>& win_fg, const Window<Wbg>& win_bg);
+ thickening(const Image<I>& input,
+ const Window<Wfg>& win_fg, const Window<Wbg>& win_bg);
# ifndef MLN_INCLUDE_ONLY
diff --git a/milena/mln/morpho/thin_fit.hh b/milena/mln/morpho/thin_fit.hh
index 903b307..df0b82b 100644
--- a/milena/mln/morpho/thin_fit.hh
+++ b/milena/mln/morpho/thin_fit.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -39,11 +40,13 @@ namespace mln
namespace morpho
{
-
- /*! Morphological thin-fit.
+
+ /*! \brief Morphological thin-fit.
*
* This operator is THIN_B = Id - HMTope_B where B = (Bfg, Bbg).
+ *
+ * \ingroup mlnmorpho
*/
template <typename I, typename Wfg, typename Wbg>
mln_concrete(I)
diff --git a/milena/mln/morpho/thinning.hh b/milena/mln/morpho/thinning.hh
index 9707e7e..8f56e37 100644
--- a/milena/mln/morpho/thinning.hh
+++ b/milena/mln/morpho/thinning.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,10 +44,12 @@ namespace mln
{
- /// Morphological thinning.
- ///
- /// This operator is THIN_B = Id - HMT_B, where B = (Bfg, Bbg).
- //
+ /*! \brief Morphological thinning.
+ *
+ * This operator is THIN_B = Id - HMT_B, where B = (Bfg, Bbg).
+ *
+ * \ingroup mlnmorpho
+ */
template <typename I, typename Wfg, typename Wbg>
mln_concrete(I)
thinning(const Image<I>& input,
diff --git a/milena/mln/morpho/top_hat.hh b/milena/mln/morpho/top_hat.hh
index 9b65574..6b4b8f3 100644
--- a/milena/mln/morpho/top_hat.hh
+++ b/milena/mln/morpho/top_hat.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,31 +44,38 @@ namespace mln
{
- /// Morphological white top-hat (for object / light objects).
- ///
- /// This operator is Id - ope_B.
- //
+ /*! \brief Morphological white top-hat (for object / light
+ * objects).
+ *
+ * This operator is Id - ope_B.
+ *
+ * \ingroup mlnmorpho
+ */
template <typename I, typename W>
mln_concrete(I)
top_hat_white(const Image<I>& input, const Window<W>& win);
- /// Morphological black top-hat (for background / dark objects).
- ///
- /// This operator is clo_B - Id.
- //
+ /*! \brief Morphological black top-hat (for background / dark objects).
+ *
+ * This operator is clo_B - Id.
+ *
+ * \ingroup mlnmorpho
+ */
template <typename I, typename W>
mln_concrete(I)
top_hat_black(const Image<I>& input, const Window<W>& win);
- /// Morphological self-complementary top-hat.
- ///
- /// This operator is \n
- /// = top_hat_white + top_hat_black \n
- /// = (input - opening) + (closing - input) \n
- /// = closing - opening. \n
- //
+ /*! \brief Morphological self-complementary top-hat.
+ *
+ * This operator is \n
+ * = top_hat_white + top_hat_black \n
+ * = (input - opening) + (closing - input) \n
+ * = closing - opening. \n
+ *
+ * \ingroup mlnmorpho
+ */
template <typename I, typename W>
mln_concrete(I)
top_hat_self_complementary(const Image<I>& input, const Window<W>& win);
diff --git a/milena/mln/morpho/watershed/flooding.hh b/milena/mln/morpho/watershed/flooding.hh
index 7d5e621..936db32 100644
--- a/milena/mln/morpho/watershed/flooding.hh
+++ b/milena/mln/morpho/watershed/flooding.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -59,39 +60,44 @@ namespace mln
namespace watershed
{
- /// Meyer's Watershed Transform (WST) algorithm.
- ///
- /// \param[in] input The input image.
- /// \param[in] nbh The connexity of markers.
- /// \param[out] n_basins The number of basins.
- ///
- /// \li \p L is the type of labels, used to number the watershed
- /// itself (with the minimal value), and the basins.
- /// \li \p I is the exact type of the input image.
- /// \li \p N is the exact type of the neighborhood used to express
- /// \a input's connexity.
-
+ /*! \brief Meyer's Watershed Transform (WST) algorithm.
+ *
+ * \param[in] input The input image.
+ * \param[in] nbh The connexity of markers.
+ * \param[out] n_basins The number of basins.
+ *
+ * \li \p L is the type of labels, used to number the watershed
+ * itself (with the minimal value), and the basins.
+ * \li \p I is the exact type of the input image.
+ * \li \p N is the exact type of the neighborhood used to express
+ * \a input's connexity.
+ *
+ * \ingroup mlnmorphowst
+ */
template <typename L, typename I, typename N>
mln_ch_value(I, L)
flooding(const Image<I>& input, const Neighborhood<N>& nbh,
L& n_basins);
- /// \brief Meyer's Watershed Transform (WST) algorithm, with no
- /// count of basins.
- ///
- /// \param[in] input The input image.
- /// \param[in] nbh The connexity of markers.
- ///
- /// \li \p L is the type of labels, used to number the watershed
- /// itself (with the minimal value), and the basins.
- /// \li \p I is the exact type of the input image.
- /// \li \p N is the exact type of the neighborhood used to express
- /// \a input's connexity.
- ///
- /// Note that the first parameter, \p L, is not automatically
- /// valued from the type of the actual argument during implicit
- /// instantiation: you have to explicitly pass this parameter at
- /// call sites.
+ /*! \brief Meyer's Watershed Transform (WST) algorithm, with no
+ * count of basins.
+ *
+ * \param[in] input The input image.
+ * \param[in] nbh The connexity of markers.
+ *
+ * \li \p L is the type of labels, used to number the watershed
+ * itself (with the minimal value), and the basins.
+ * \li \p I is the exact type of the input image.
+ * \li \p N is the exact type of the neighborhood used to express
+ * \a input's connexity.
+ *
+ * Note that the first parameter, \p L, is not automatically
+ * valued from the type of the actual argument during implicit
+ * instantiation: you have to explicitly pass this parameter at
+ * call sites.
+ *
+ * \ingroup mlnmorphowst
+ */
template <typename L, typename I, typename N>
mln_ch_value(I, L)
flooding(const Image<I>& input, const Neighborhood<N>& nbh);
diff --git a/milena/mln/norm/l1.hh b/milena/mln/norm/l1.hh
index 4ade87a..f5758a9 100644
--- a/milena/mln/norm/l1.hh
+++ b/milena/mln/norm/l1.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,7 +42,9 @@ namespace mln
namespace norm
{
- /// L1-norm of a vector \a vec.
+ /*! \brief L1-norm of a vector \a vec.
+ \ingroup mlnlinear
+ */
/// \{
template <unsigned n, typename C>
mln_sum_product(C,C) l1(const C (&vec)[n]);
@@ -50,7 +53,9 @@ namespace mln
mln_sum_product(C,C) l1(const algebra::vec<n,C>& vec);
/// \}
- /// L1-norm distance between vectors \a vec1 and \a vec2.
+ /*! \brief L1-norm distance between vectors \a vec1 and \a vec2.
+ \ingroup mlnlinear
+ */
/// \{
template <unsigned n, typename C>
mln_sum_product(C,C) l1_distance(const C (&vec1)[n], const C (&vec2)[n]);
diff --git a/milena/mln/norm/l2.hh b/milena/mln/norm/l2.hh
index 44c28e8..f77dfea 100644
--- a/milena/mln/norm/l2.hh
+++ b/milena/mln/norm/l2.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -51,7 +52,9 @@ namespace mln
namespace norm
{
- /// L2-norm of a vector \a vec.
+ /*! \brief L2-norm of a vector \a vec.
+ \ingroup mlnlinear
+ */
/// \{
template <unsigned n, typename C>
mln_sum_product(C,C) l2(const C (&vec)[n]);
@@ -60,7 +63,9 @@ namespace mln
mln_sum_product(C,C) l2(const algebra::vec<n,C>& vec);
/// \}
- /// Squared L2-norm of a vector \a vec.
+ /*! \brief Squared L2-norm of a vector \a vec.
+ \ingroup mlnlinear
+ */
/// \{
template <unsigned n, typename C>
mln_sum_product(C,C) sqr_l2(const C (&vec)[n]);
@@ -69,7 +74,9 @@ namespace mln
mln_sum_product(C,C) sqr_l2(const algebra::vec<n,C>& vec);
/// \}
- /// L2-norm distance between vectors \a vec1 and \p vec2.
+ /*! \brief L2-norm distance between vectors \a vec1 and \p vec2.
+ \ingroup mlnlinear
+ */
/// \{
template <unsigned n, typename C>
mln_sum_product(C,C) l2_distance(const C (&vec1)[n], const C (&vec2)[n]);
diff --git a/milena/mln/norm/linfty.hh b/milena/mln/norm/linfty.hh
index 7fcf34d..7160d39 100644
--- a/milena/mln/norm/linfty.hh
+++ b/milena/mln/norm/linfty.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,7 +44,9 @@ namespace mln
namespace norm
{
- /// L-infinity-norm of a vector \a vec.
+ /*! \brief L-infinity-norm of a vector \a vec.
+ \ingroup mlnlinear
+ */
/// \{
template <unsigned n, typename C>
C linfty(const C (&vec)[n]);
@@ -53,7 +56,10 @@ namespace mln
/// \}
- /// L-infinity-norm distance between vectors \a vec1 and \a vec2.
+ /*! \brief L-infinity-norm distance between vectors \a vec1 and \a
+ vec2.
+ \ingroup mlnlinear
+ */
/// \{
template <unsigned n, typename C>
C linfty_distance(const C (&vec1)[n], const C (&vec2)[n]);
diff --git a/milena/mln/subsampling/antialiased.hh b/milena/mln/subsampling/antialiased.hh
index 66bdd33..99bbd3b 100644
--- a/milena/mln/subsampling/antialiased.hh
+++ b/milena/mln/subsampling/antialiased.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -50,6 +50,7 @@ namespace mln
\param[in] output_domain Force output domain.
\param[in] border_thickness Force output border thickness.
+ \ingroup mlngeom
*/
template <typename I>
inline
@@ -61,6 +62,7 @@ namespace mln
/*! \overload
+ \ingroup mlngeom
*/
template <typename I>
mln_concrete(I)
diff --git a/milena/mln/subsampling/gaussian_subsampling.hh b/milena/mln/subsampling/gaussian_subsampling.hh
index 8855b9c..4528a12 100644
--- a/milena/mln/subsampling/gaussian_subsampling.hh
+++ b/milena/mln/subsampling/gaussian_subsampling.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2011 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -46,7 +46,9 @@ namespace mln
namespace subsampling
{
- /// Gaussian subsampling FIXME : doxy
+ /*! \brief Gaussian subsampling
+ \ingroup mlngeom
+ */
template <typename I>
inline
mln_concrete(I)
diff --git a/milena/mln/subsampling/subsampling.hh b/milena/mln/subsampling/subsampling.hh
index 60ee3c0..153d321 100644
--- a/milena/mln/subsampling/subsampling.hh
+++ b/milena/mln/subsampling/subsampling.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,7 +41,9 @@ namespace mln
namespace subsampling
{
- /// Subsampling FIXME : doxy
+ /*! \brief Naive subsampling.
+ \ingroup mlngeom
+ */
template <typename I>
inline
mln_concrete(I)
diff --git a/milena/mln/topo/is_simple_2d.hh b/milena/mln/topo/is_simple_2d.hh
index a5e67cb..41403fe 100644
--- a/milena/mln/topo/is_simple_2d.hh
+++ b/milena/mln/topo/is_simple_2d.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2011 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -32,8 +32,8 @@
/// Define the function is_simple_2d which tests if a point is simple
/// or not (Cf bertrand.07.chap).
-/// \fixme Merge with mln/topo/skeleton/is_simple_point.hh
-/// \fixme The fastest version give an approximation of the result. Do
+/// \todo Merge with mln/topo/skeleton/is_simple_point.hh
+/// \todo The fastest version give an approximation of the result. Do
/// we want it to be exact?
diff --git a/milena/mln/topo/skeleton/is_simple_point.hh b/milena/mln/topo/skeleton/is_simple_point.hh
index d852c35..f7efd2e 100644
--- a/milena/mln/topo/skeleton/is_simple_point.hh
+++ b/milena/mln/topo/skeleton/is_simple_point.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2011 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2011, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -32,7 +32,7 @@
/// is_simple_point tells if a point is simple or not.
/// For more information refer to bertrand.07.chap.
///
-/// \fixme The fastest version give an approximation of the result. Do
+/// \todo The fastest version give an approximation of the result. Do
/// we want it to be exact?
# include <mln/core/concept/image.hh>
diff --git a/milena/mln/transform/distance_and_closest_point_geodesic.hh b/milena/mln/transform/distance_and_closest_point_geodesic.hh
index 7a2f56a..73605b0 100644
--- a/milena/mln/transform/distance_and_closest_point_geodesic.hh
+++ b/milena/mln/transform/distance_and_closest_point_geodesic.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,17 +44,20 @@ namespace mln
namespace transform
{
- /// Discrete geodesic distance transform
- ///
- /// \param[in] input Image from which the geodesic distance is computed.
- /// \param[in] nbh Neighborhood
- /// \param[in] max Max distance of propagation.
- ///
- /// \return a couple of images. The first one is the distance map and the
- /// second one is the closest point image. The closest point image
- /// contains sites.
- ///
- /// \post The returned images have the same domain as \p input.
+ /*! \brief Discrete geodesic distance transform
+
+ \param[in] input Image from which the geodesic distance is computed.
+ \param[in] nbh Neighborhood
+ \param[in] max Max distance of propagation.
+
+ \return a couple of images. The first one is the distance map and the
+ second one is the closest point image. The closest point image
+ contains sites.
+
+ \post The returned images have the same domain as \p input.
+
+ \ingroup mlntransform
+ */
template <typename I, typename N, typename D>
util::couple<mln_ch_value(I,D), mln_ch_value(I,mln_psite(I))>
distance_and_closest_point_geodesic(const Image<I>& input,
@@ -61,18 +65,21 @@ namespace mln
D max);
- /// Discrete geodesic distance transform
- ///
- /// \param[in] pset an array of sites.
- /// \param[in] closest_point_domain domain of the returned image.
- /// \param[in] nbh neighborhood
- /// \param[in] max max distance of propagation.
- ///
- /// \return A couple of images. The first one is the distance map and the
- /// second one is the closest point image. The closest point image
- /// contains site indexes.
- ///
- /// \post The returned image domains are defined on \p closest_point_domain.
+ /*! \brief Discrete geodesic distance transform
+
+ \param[in] pset an array of sites.
+ \param[in] closest_point_domain domain of the returned image.
+ \param[in] nbh neighborhood
+ \param[in] max max distance of propagation.
+
+ \return A couple of images. The first one is the distance map and the
+ second one is the closest point image. The closest point image
+ contains site indexes.
+
+ \post The returned image domains are defined on \p closest_point_domain.
+
+ \ingroup mlntransform
+ */
template <typename P, typename N, typename D>
util::couple<mln_image_from_grid(mln_grid(P),D),
mln_image_from_grid(mln_grid(P),unsigned)>
diff --git a/milena/mln/transform/distance_and_influence_zone_geodesic.hh b/milena/mln/transform/distance_and_influence_zone_geodesic.hh
index 3f1d331..c240fc4 100644
--- a/milena/mln/transform/distance_and_influence_zone_geodesic.hh
+++ b/milena/mln/transform/distance_and_influence_zone_geodesic.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,17 +44,20 @@ namespace mln
namespace transform
{
- /// Discrete geodesic distance transform
- ///
- /// \param[in] input Image from which the geodesic distance is computed.
- /// \param[in] nbh Neighborhood
- /// \param[in] max Max distance of propagation.
- ///
- /// \return a couple of images. The first one is the distance map and the
- /// second one is the closest point image. The closest point image
- /// contains sites.
- ///
- /// \post The returned images have the same domain as \p input.
+ /*! \brief Discrete geodesic distance transform
+
+ \param[in] input Image from which the geodesic distance is computed.
+ \param[in] nbh Neighborhood
+ \param[in] max Max distance of propagation.
+
+ \return a couple of images. The first one is the distance map and the
+ second one is the closest point image. The closest point image
+ contains sites.
+
+ \post The returned images have the same domain as \p input.
+
+ \ingroup mlntransform
+ */
template <typename I, typename N, typename D>
util::couple<mln_ch_value(I,D), I>
distance_and_influence_zone_geodesic(const Image<I>& input,
diff --git a/milena/mln/transform/distance_front.hh b/milena/mln/transform/distance_front.hh
index 11f93d4..4989b77 100644
--- a/milena/mln/transform/distance_front.hh
+++ b/milena/mln/transform/distance_front.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,7 +42,9 @@ namespace mln
namespace transform
{
- /// Discrete front distance transform.
+ /*! \brief Discrete front distance transform.
+ \ingroup mlntransform
+ */
template <typename I, typename N, typename W, typename D>
mln_ch_value(I, D)
distance_front(const Image<I>& input,
diff --git a/milena/mln/transform/distance_geodesic.hh b/milena/mln/transform/distance_geodesic.hh
index 44eefef..b67a2f8 100644
--- a/milena/mln/transform/distance_geodesic.hh
+++ b/milena/mln/transform/distance_geodesic.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -41,7 +42,9 @@ namespace mln
namespace transform
{
- /// Discrete geodesic distance transform.
+ /*! \brief Discrete geodesic distance transform.
+ \ingroup mlntransform
+ */
template <typename I, typename N, typename D>
mln_ch_value(I, D)
distance_geodesic(const Image<I>& input, const Neighborhood<N>& nbh, D max);
diff --git a/milena/mln/transform/hough.hh b/milena/mln/transform/hough.hh
index 61d1b4d..87775da 100644
--- a/milena/mln/transform/hough.hh
+++ b/milena/mln/transform/hough.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -57,18 +58,21 @@ namespace mln
namespace transform
{
- /// Compute the hough transform from a binary image.
- /// Objects used for computation must be set to 'true'.
- ///
- /// \param[in] input_ A binary image.
- ///
- /// \return A 2D image of float. Rows are used for the distance
- /// and columns are used for the angles. Angles go from 0 to 359.
- /// Distance goes from 0 to the maximum distance between the
- /// center and a corner.
- /// The site having the maximum value indicates through its column
- /// index the document inclination.
- //
+ /*! \brief Compute the hough transform from a binary image.
+
+ \param[in] input_ A binary image.
+
+ \return A 2D image of float. Rows are used for the distance
+ and columns are used for the angles. Angles go from 0 to 359.
+ Distance goes from 0 to the maximum distance between the
+ center and a corner.
+ The site having the maximum value indicates through its column
+ index the document inclination.
+
+ \pre Objects used for computation must be set to 'true'.
+
+ \ingroup mlntransform
+ */
template <typename I>
image2d<float>
hough(const Image<I>& input_);
diff --git a/milena/mln/transform/influence_zone_front.hh b/milena/mln/transform/influence_zone_front.hh
index 42cc254..7bc804b 100644
--- a/milena/mln/transform/influence_zone_front.hh
+++ b/milena/mln/transform/influence_zone_front.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2008, 2009, 2012 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -40,13 +41,17 @@ namespace mln
namespace transform
{
- /// Influence zone transform.
+ /*! \brief Influence zone transform.
+ \ingroup mlntransform
+ */
template <typename I, typename N, typename W, typename D>
mln_concrete(I)
influence_zone_front(const Image<I>& input,
const Neighborhood<N>& nbh, const Weighted_Window<W>& w_win, D max);
- /// Influence zone transform.
+ /*! \brief Influence zone transform.
+ \ingroup mlntransform
+ */
template <typename I, typename N, typename W>
mln_concrete(I)
influence_zone_front(const Image<I>& input,
diff --git a/milena/mln/transform/influence_zone_geodesic.hh b/milena/mln/transform/influence_zone_geodesic.hh
index 64d7702..0b07e18 100644
--- a/milena/mln/transform/influence_zone_geodesic.hh
+++ b/milena/mln/transform/influence_zone_geodesic.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2011 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2011, 2012 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -42,13 +42,15 @@ namespace mln
namespace transform
{
- /// Geodesic influence zone transform.
- ///
- /// \param[in] input An image.
- /// \param[in] nbh A neighborhood.
- ///
- /// \return An image of influence zone.
- //
+ /*! \brief Geodesic influence zone transform.
+
+ \param[in] input An image.
+ \param[in] nbh A neighborhood.
+
+ \return An image of influence zone.
+
+ \ingroup mlntransform
+ */
template <typename I, typename N>
mln_concrete(I)
influence_zone_geodesic(const Image<I>& input, const Neighborhood<N>& nbh);
diff --git a/milena/mln/transform/influence_zone_geodesic_saturated.hh b/milena/mln/transform/influence_zone_geodesic_saturated.hh
index 5a29858..8d64331 100644
--- a/milena/mln/transform/influence_zone_geodesic_saturated.hh
+++ b/milena/mln/transform/influence_zone_geodesic_saturated.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -40,16 +41,18 @@ namespace mln
namespace transform
{
- /// Geodesic influence zone transform.
- ///
- /// \param[in] input An image.
- /// \param[in] nbh A neighborhood.
- /// \param[in] max The maximum influence zone distance.
- /// \param[in] background_value The value used as background (i.e.
- /// not propagated).
- ///
- /// \return An image of influence zone.
- //
+ /*! \brief Geodesic influence zone transform.
+
+ \param[in] input An image.
+ \param[in] nbh A neighborhood.
+ \param[in] max The maximum influence zone distance.
+ \param[in] background_value The value used as background (i.e.
+ not propagated).
+
+ \return An image of influence zone.
+
+ \ingroup mlntransform
+ */
template <typename I, typename N, typename D>
mln_concrete(I)
influence_zone_geodesic_saturated(const Image<I>& input,
@@ -57,7 +60,9 @@ namespace mln
const D& max,
const mln_value(I)& background_value);
- /// \overload
+ /*! \overload
+ \ingroup mlntransform
+ */
template <typename I, typename N, typename D>
mln_concrete(I)
influence_zone_geodesic_saturated(const Image<I>& input,
diff --git a/milena/mln/upscaling/art/scale2x.hh b/milena/mln/upscaling/art/scale2x.hh
index 6805943..258438e 100644
--- a/milena/mln/upscaling/art/scale2x.hh
+++ b/milena/mln/upscaling/art/scale2x.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -58,6 +59,7 @@ namespace mln
Source:
http://en.wikipedia.org/wiki/Pixel_art_scaling_algorithms
+ \ingroup mlngeom
*/
template <typename I>
mln_concrete(I)
diff --git a/milena/mln/upscaling/art/scale3x.hh b/milena/mln/upscaling/art/scale3x.hh
index 042dd28..9213c4a 100644
--- a/milena/mln/upscaling/art/scale3x.hh
+++ b/milena/mln/upscaling/art/scale3x.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -58,6 +59,7 @@ namespace mln
Source:
http://en.wikipedia.org/wiki/Pixel_art_scaling_algorithms
+ \ingroup mlngeom
*/
template <typename I>
mln_concrete(I)
diff --git a/milena/mln/world/rgb/invert.hh b/milena/mln/world/rgb/invert.hh
index 62ee5bf..f49f060 100644
--- a/milena/mln/world/rgb/invert.hh
+++ b/milena/mln/world/rgb/invert.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2012 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -30,7 +31,7 @@
///
/// Point-wise invert (min -> max and max -> min) of RGB images.
///
-/// \fixme Move somewhere else?
+/// \todo Move somewhere else?
# include <mln/core/concept/image.hh>
# include <mln/trait/value_.hh>
--
1.7.2.5