
https://svn.lrde.epita.fr/svn/oln/branches/cleanup-2008/milena Index: ChangeLog from Thierry Geraud <thierry.geraud@lrde.epita.fr> De-activate not compiling tests in level transform. * doc/examples/tuto_bis.cc: Layout. (label): Set no border. (lab): Change extension from pw fun to image. That fixes some weird behavior. * mln/level/transform.hh (todo): New. De-activate tests since Nicolas has not fixed it yet. * mln/level/stretch.hh (FIXME): Fix. Avoid escaping allows for properly tracing. * mln/estim/nsites.hh: Rename as... * mln/geom/nsites.hh: ...this. Update. * mln/level/sort_psites.hh: Use geom::nsites. Remember that only some images have the nsites method. * mln/trace/exiting.hh: Print the scope when exiting. It eases debugging (reading traces). * mln/morpho/closing_volume.hh,. * mln/morpho/meyer_wst.hh: Add trace equipment doc/examples/tuto_bis.cc | 11 +++++++---- mln/geom/nsites.hh | 34 +++++++++++++++++----------------- mln/level/sort_psites.hh | 8 +++++--- mln/level/stretch.hh | 6 +++--- mln/level/transform.hh | 18 +++++++++++------- mln/morpho/closing_volume.hh | 2 ++ mln/morpho/meyer_wst.hh | 2 ++ mln/trace/exiting.hh | 6 +++--- 8 files changed, 50 insertions(+), 37 deletions(-) Index: doc/examples/tuto_bis.cc --- doc/examples/tuto_bis.cc (revision 2671) +++ doc/examples/tuto_bis.cc (working copy) @@ -20,6 +20,7 @@ # include <mln/level/paste.hh> # include <mln/level/fill.hh> # include <mln/level/transform.hh> +# include <mln/extension/fill.hh> # include <mln/morpho/meyer_wst.hh> @@ -113,7 +114,7 @@ dilation(const I& input, const N& nbh) { typedef mln_value(I) V; - // extension::fill(input, mln_min(V)); + // FIXME: extension::fill(input, mln_min(V)); mln_concrete(I) output; initialize(output, input); @@ -133,10 +134,12 @@ } // mln::morpho + } // mln + // Functions inline @@ -239,8 +242,7 @@ // 1 1 - image2d<unsigned> label(ima.bbox(), 1); - border::fill(label, 0); + image2d<unsigned> label(ima.bbox(), 0); level::fill(label, 9); debug::println(label); // 9 9 9 9 9 @@ -309,7 +311,8 @@ // // 9 9 9 - level::paste(morpho::dilation(extend(lab, pw::value(label)), + + level::paste(morpho::dilation(extend(lab, label), c4()), label); Index: mln/level/transform.hh --- mln/level/transform.hh (revision 2671) +++ mln/level/transform.hh (working copy) @@ -1,4 +1,4 @@ -// Copyright (C) 2007 EPITA Research and Development Laboratory +// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory // // This file is part of the Olena Library. This library is free // software; you can redistribute it and/or modify it under the terms @@ -33,6 +33,8 @@ * \brief Transform the contents of an image into another one. * * \todo Clean this file + overload with pixel iterators. + * + * \todo Re-activate tests and make them static. */ # include <mln/core/concept/image.hh> @@ -91,10 +93,11 @@ (void) output; // Properties check - mln_precondition((mlc_is(mln_trait_image_pw_io(O), - trait::image::pw_io::read_write)::value || - mlc_is(mln_trait_image_vw_io(O), - trait::image::vw_io::read_write)::value)); + // FIXME: Re-activate! +// mln_precondition((mlc_is(mln_trait_image_pw_io(O), +// trait::image::pw_io::read_write)::value || +// mlc_is(mln_trait_image_vw_io(O), +// trait::image::vw_io::read_write)::value)); // FIXME Convert test mlc_converts_to(mln_result(F), mln_value(O))::check(); @@ -129,8 +132,9 @@ level::internal::transform_tests(input, f, output); - mlc_is(mln_trait_image_pw_io(O), - trait::image::pw_io::read_write)::check(); + // FIXME: Re-activate! +// mlc_is(mln_trait_image_pw_io(O), +// trait::image::pw_io::read_write)::check(); mln_piter(I) p(input.domain()); for_all(p) Index: mln/level/stretch.hh --- mln/level/stretch.hh (revision 2671) +++ mln/level/stretch.hh (working copy) @@ -72,8 +72,8 @@ mln_value(I) min_, max_; estim::min_max(input, min_, max_); - if (max_ == min_) - return; // FIXME + if (max_ != min_) + { float min = float(min_), max = float(max_); const float epsilon = mln_epsilon(float); float m = 0.0f - 0.5f + epsilon; @@ -82,7 +82,7 @@ float b = (m * max - M * min) / (max - min); fun::v2v::linear<float, float, int> f(a, b); level::transform(input, f, output); - + } trace::exiting("level::impl::stretch"); } Index: mln/level/sort_psites.hh --- mln/level/sort_psites.hh (revision 2671) +++ mln/level/sort_psites.hh (working copy) @@ -1,4 +1,5 @@ -// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory (LRDE) +// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory +// (LRDE) // // This file is part of the Olena Library. This library is free // software; you can redistribute it and/or modify it under the terms @@ -39,6 +40,7 @@ # include <mln/convert/to_p_array.hh> # include <mln/histo/compute.hh> # include <mln/util/ord.hh> +# include <mln/geom/nsites.hh> namespace mln @@ -154,7 +156,7 @@ loc[i] = loc[i-1] + h[i-1]; // computing output data - std::vector<mln_psite(I)> vec(input.nsites()); + std::vector<mln_psite(I)> vec(geom::nsites(input)); mln_fwd_piter(I) p(input.domain()); for_all(p) vec[loc[vset.index_of(input(p))]++] = p; @@ -198,7 +200,7 @@ loc[i] = loc[i+1] + h[i+1]; // computing output data - std::vector<mln_psite(I)> vec(input.nsites()); + std::vector<mln_psite(I)> vec(geom::nsites(input)); mln_fwd_piter(I) p(input.domain()); for_all(p) vec[loc[vset.index_of(input(p))]++] = p; Index: mln/geom/nsites.hh --- mln/geom/nsites.hh (revision 2670) +++ mln/geom/nsites.hh (working copy) @@ -25,10 +25,10 @@ // reasons why the executable file might be covered by the GNU General // Public License. -#ifndef MLN_ESTIM_NSITES_HH -# define MLN_ESTIM_NSITES_HH +#ifndef MLN_GEOM_NSITES_HH +# define MLN_GEOM_NSITES_HH -/*! \file mln/estim/nsites.hh +/*! \file mln/geom/nsites.hh * * \brief Compute the number of sites of an image or a site set. */ @@ -40,7 +40,7 @@ namespace mln { - namespace estim + namespace geom { /// Compute the number of sites of the site set \p input. @@ -69,7 +69,7 @@ template <typename S> unsigned nsites(const Site_Set<S>& s_) { - trace::entering("estim::impl::generic::nsites"); + trace::entering("geom::impl::generic::nsites"); const S& s = exact(s_); mln_precondition(s.is_valid()); @@ -78,11 +78,11 @@ for_all(p) ++n; - trace::exiting("estim::impl::generic::nsites"); + trace::exiting("geom::impl::generic::nsites"); return n; } - } // end of namespace mln::estim::impl::generic + } // end of namespace mln::geom::impl::generic // A single specialization. @@ -91,13 +91,13 @@ inline unsigned nsites_method(const Site_Set<S>& s) { - trace::entering("estim::impl::nsites_method"); + trace::entering("geom::impl::nsites_method"); unsigned n = exact(s).nsites(); - trace::exiting("estim::impl::nsites_method"); + trace::exiting("geom::impl::nsites_method"); return n; } - } // end of namespace mln::estim::impl + } // end of namespace mln::geom::impl @@ -132,7 +132,7 @@ s); } - } // end of namespace mln::estim::internal + } // end of namespace mln::geom::internal @@ -142,12 +142,12 @@ inline unsigned nsites(const Site_Set<S>& s) { - trace::entering("estim::nsites"); + trace::entering("geom::nsites"); mln_precondition(exact(s).is_valid()); unsigned n = internal::nsites_dispatch(s); - trace::exiting("estim::nsites"); + trace::exiting("geom::nsites"); return n; } @@ -155,7 +155,7 @@ inline unsigned nsites(const Image<I>& input_) { - trace::entering("estim::nsites"); + trace::entering("geom::nsites"); const I& input = exact(input_); mln_precondition(input.has_data()); @@ -164,15 +164,15 @@ // Relies on the nsites routines on a site set. unsigned n = internal::nsites_dispatch(input.domain()); - trace::exiting("estim::nsites"); + trace::exiting("geom::nsites"); return n; } # endif // ! MLN_INCLUDE_ONLY - } // end of namespace mln::estim + } // end of namespace mln::geom } // end of namespace mln -#endif // ! MLN_ESTIM_NSITES_HH +#endif // ! MLN_GEOM_NSITES_HH Index: mln/trace/exiting.hh --- mln/trace/exiting.hh (revision 2671) +++ mln/trace/exiting.hh (working copy) @@ -1,4 +1,4 @@ -// Copyright (C) 2007 EPITA Research and Development Laboratory +// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory // // This file is part of the Olena Library. This library is free // software; you can redistribute it and/or modify it under the terms @@ -50,14 +50,14 @@ # ifndef MLN_INCLUDE_ONLY inline - void exiting(const std::string&) + void exiting(const std::string& str) { if (quiet) return; --tab; for (unsigned i = 0; i < tab; ++i) std::cout << " "; - std::cout << "}" << std::endl; + std::cout << "} " << str << std::endl; } # endif // ! MLN_INCLUDE_ONLY Index: mln/morpho/closing_volume.hh --- mln/morpho/closing_volume.hh (revision 2671) +++ mln/morpho/closing_volume.hh (working copy) @@ -54,9 +54,11 @@ void closing_volume(const Image<I>& input, const Neighborhood<N>& nbh, std::size_t lambda, Image<O>& output) { + trace::entering("morpho::closing_volume"); mln_precondition(exact(output).domain() == exact(input).domain()); // FIXME: Change sig of closing_attribute! closing_attribute< accu::volume<I> >(input, nbh, lambda, output); + trace::exiting("morpho::closing_volume"); } # endif // ! MLN_INCLUDE_ONLY Index: mln/morpho/meyer_wst.hh --- mln/morpho/meyer_wst.hh (revision 2671) +++ mln/morpho/meyer_wst.hh (working copy) @@ -108,6 +108,7 @@ meyer_wst(const Image<I>& input_, const Neighborhood<N>& nbh_, L& nbasins) { + trace::entering("morpho::meyer_wst"); /* FIXME: Ensure the input image has scalar values. */ const I input = exact(input_); @@ -192,6 +193,7 @@ } } } + trace::exiting("morpho::meyer_wst"); return output; }