olena-2.0-92-g942779a 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. --- 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@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@lrde.epita.fr> + * tests/unit_test/unit-tests.mk: Regen. 2012-02-27 Guillaume Lazzara <z@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
participants (1)
-
Guillaume Lazzara