* 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