
* milena/headers.mk: update distributed files list. * milena/mln/core/image/edge_image.hh, * milena/mln/core/image/vertex_image.hh: fix a wrong image type. * milena/mln/fun/math/sup.hh: fix wrong template parameters. * milena/mln/value/rgb.hh, * milena/mln/util/essential.hh, * milena/mln/util/all.hh, * milena/mln/labeling/all.hh, * milena/mln/debug/all.hh, * milena/mln/fun/v2v/all.hh: fix includes. * milena/mln/fun/v2v/rgb_to_hsi.hh: fix duplicate declarations. * milena/mln/make/influence_zone_adjacency_graph.hh: add missing const references. * milena/mln/morpho/opening/area_on_vertices.hh: update according new graph image types. * milena/mln/registration/icp.hh: fix use of random_color. * milena/mln/util/adjacency_matrix.hh: fix wrong ifndef. * milena/mln/util/object_id.hh, * milena/mln/util/vertex.hh, * milena/mln/util/edge.hh: fix operator< and operator==. * milena/mln/util/graph.hh: add preconditions. * milena/mln/world/binary_2d/all.hh: new. * milena/tests/morpho/closing/Makefile.am, * milena/tests/morpho/closing/area_on_vertices.cc, * milena/tests/morpho/opening/Makefile.am, * milena/tests/morpho/opening/area_on_vertices.cc: new tests. * milena/tests/unit_test/unit-tests.mk: update unit test list. * milena/tests/util/Makefile.am, * milena/tests/util/tree_fast_to_image.cc, * milena/tests/util/tree_to_image.cc: remove tests. --- milena/ChangeLog | 49 +++++++++++++ milena/headers.mk | 27 +++++--- milena/mln/core/image/edge_image.hh | 3 +- milena/mln/core/image/vertex_image.hh | 3 +- milena/mln/debug/all.hh | 3 +- milena/mln/fun/math/sup.hh | 4 +- milena/mln/fun/v2v/all.hh | 3 + milena/mln/fun/v2v/rgb_to_hsi.hh | 53 -------------- milena/mln/labeling/all.hh | 1 + milena/mln/make/influence_zone_adjacency_graph.hh | 13 ++-- milena/mln/morpho/opening/area_on_vertices.hh | 37 ++++++----- milena/mln/registration/icp.hh | 3 +- milena/mln/util/adjacency_matrix.hh | 4 +- milena/mln/util/all.hh | 2 - milena/mln/util/edge.hh | 8 ++- milena/mln/util/essential.hh | 2 +- milena/mln/util/graph.hh | 5 +- milena/mln/util/object_id.hh | 7 ++ milena/mln/util/vertex.hh | 4 +- milena/mln/value/rgb.hh | 1 + .../{util/essential.hh => world/binary_2d/all.hh} | 26 +++---- milena/tests/morpho/closing/Makefile.am | 2 + .../morpho/closing/area_on_vertices.cc} | 65 +++++++++--------- milena/tests/morpho/opening/Makefile.am | 2 + .../morpho/opening/area_on_vertices.cc} | 65 +++++++++--------- milena/tests/unit_test/unit-tests.mk | 72 ++++++++++++++------ milena/tests/util/Makefile.am | 6 +-- 27 files changed, 259 insertions(+), 211 deletions(-) copy milena/mln/{util/essential.hh => world/binary_2d/all.hh} (70%) copy milena/{mln/fun/math/sup.hh => tests/morpho/closing/area_on_vertices.cc} (58%) copy milena/{mln/fun/math/sup.hh => tests/morpho/opening/area_on_vertices.cc} (58%) diff --git a/milena/ChangeLog b/milena/ChangeLog index 2fda128..e0e1cee 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,5 +1,54 @@ 2009-05-11 Guillaume Lazzara <lazzara@lrde.epita.fr> + Small fixes. + + * milena/headers.mk: update distributed files list. + + * milena/mln/core/image/edge_image.hh, + * milena/mln/core/image/vertex_image.hh: fix a wrong image type. + + * milena/mln/fun/math/sup.hh: fix wrong template parameters. + + * milena/mln/value/rgb.hh, + * milena/mln/util/essential.hh, + * milena/mln/util/all.hh, + * milena/mln/labeling/all.hh, + * milena/mln/debug/all.hh, + * milena/mln/fun/v2v/all.hh: fix includes. + + * milena/mln/fun/v2v/rgb_to_hsi.hh: fix duplicate declarations. + + * milena/mln/make/influence_zone_adjacency_graph.hh: add missing const + references. + + * milena/mln/morpho/opening/area_on_vertices.hh: update according new + graph image types. + + * milena/mln/registration/icp.hh: fix use of random_color. + + * milena/mln/util/adjacency_matrix.hh: fix wrong ifndef. + + * milena/mln/util/object_id.hh, + * milena/mln/util/vertex.hh, + * milena/mln/util/edge.hh: fix operator< and operator==. + + * milena/mln/util/graph.hh: add preconditions. + + * milena/mln/world/binary_2d/all.hh: new. + + * milena/tests/morpho/closing/Makefile.am, + * milena/tests/morpho/closing/area_on_vertices.cc, + * milena/tests/morpho/opening/Makefile.am, + * milena/tests/morpho/opening/area_on_vertices.cc: new tests. + + * milena/tests/unit_test/unit-tests.mk: update unit test list. + + * milena/tests/util/Makefile.am, + * milena/tests/util/tree_fast_to_image.cc, + * milena/tests/util/tree_to_image.cc: remove tests. + +2009-05-11 Guillaume Lazzara <lazzara@lrde.epita.fr> + Fix documentation. * doc/Doxyfile.in: add macro definitions. diff --git a/milena/headers.mk b/milena/headers.mk index 34e4823..d241629 100644 --- a/milena/headers.mk +++ b/milena/headers.mk @@ -57,11 +57,18 @@ mln/literal/one.hh \ mln/literal/min.hh \ mln/literal/white.hh \ mln/literal/essential.hh \ +mln/world/all.hh \ mln/world/binary_2d/subsample.hh \ +mln/world/binary_2d/all.hh \ mln/world/binary_2d/projected_histo.hh \ +mln/world/inter_pixel/is_pixel.hh \ +mln/world/inter_pixel/all.hh \ mln/world/inter_pixel/neighb2d.hh \ -mln/world/inter_pixel/image2full.hh \ +mln/world/inter_pixel/is_separator.hh \ +mln/world/inter_pixel/immerse.hh \ +mln/world/inter_pixel/separator_to_pixels.hh \ mln/world/inter_pixel/display_edge.hh \ +mln/world/inter_pixel/compute.hh \ mln/world/inter_pixel/dim2/is_pixel.hh \ mln/world/inter_pixel/dim2/all.hh \ mln/world/inter_pixel/dim2/is_edge.hh \ @@ -82,7 +89,6 @@ mln/util/max.hh \ mln/util/lazy_set.hh \ mln/util/soft_heap.hh \ mln/util/set.hh \ -mln/util/tree_to_image.hh \ mln/util/lemmings.hh \ mln/util/greater_point.hh \ mln/util/internal/graph_iter_base.hh \ @@ -109,18 +115,13 @@ mln/util/yes.hh \ mln/util/line_graph.hh \ mln/util/ord.hh \ mln/util/adjacency_matrix.hh \ -mln/util/tree_fast_to_image.hh \ -mln/util/tree.hh \ mln/util/couple.hh \ mln/util/index.hh \ mln/util/multi_site.hh \ -mln/util/branch_iter.hh \ -mln/util/branch_iter_ind.hh \ -mln/util/tree_to_fast.hh \ mln/util/array.hh \ mln/util/vertex.hh \ mln/util/pix.hh \ -mln/util/tree_fast.hh \ +mln/util/object_id.hh \ mln/util/site_pair.hh \ mln/util/nil.hh \ mln/util/graph_ids.hh \ @@ -128,6 +129,7 @@ mln/util/eat.hh \ mln/util/essential.hh \ mln/data/memset_.hh \ mln/data/paste.spe.hh \ +mln/data/paste_without_localization.hh \ mln/data/memcpy_.hh \ mln/data/all.hh \ mln/data/paste.hh \ @@ -218,6 +220,8 @@ mln/fun/p2p/all.hh \ mln/fun/p2p/translation.hh \ mln/fun/p2p/mirror.hh \ mln/fun/accu_result.hh \ +mln/fun/stat/mahalanobis.hh \ +mln/fun/stat/all.hh \ mln/fun/binary_param.hh \ mln/fun/x2p/closest_point.hh \ mln/fun/x2p/all.hh \ @@ -295,6 +299,8 @@ mln/fun/vv2b/lt.hh \ mln/fun/vv2b/eq.hh \ mln/fun/cast.hh \ mln/fun/composition.hh \ +mln/fun/access/all.hh \ +mln/fun/access/mean.hh \ mln/fun/i2v/all.hh \ mln/fun/i2v/array.hh \ mln/fun/i2v/all_to.hh \ @@ -435,6 +441,7 @@ mln/accu/site_set/all.hh \ mln/accu/site_set/essential.hh \ mln/accu/stat/variance.hh \ mln/accu/stat/deviation.hh \ +mln/accu/stat/all.hh \ mln/accu/stat/var.hh \ mln/accu/max.hh \ mln/accu/lor.hh \ @@ -1026,7 +1033,6 @@ mln/core/concept/window.hh \ mln/core/concept/value.hh \ mln/core/concept/accumulator.hh \ mln/core/concept/site_set.hh \ -mln/core/concept/object_id.hh \ mln/core/concept/object.hh \ mln/core/concept/meta_fun.hh \ mln/core/concept/delta_point_site.hh \ @@ -1109,6 +1115,7 @@ mln/labeling/all.hh \ mln/labeling/level.hh \ mln/labeling/flat_zones.hh \ mln/labeling/foreground.hh \ +mln/labeling/colorize.hh \ mln/labeling/regional_maxima.hh \ mln/labeling/wrap.hh \ mln/labeling/compute.hh \ @@ -1207,7 +1214,6 @@ mln/debug/iota.hh \ mln/debug/all.hh \ mln/debug/println_with_border.hh \ mln/debug/println.spe.hh \ -mln/debug/colorize.hh \ mln/debug/slices_2d.hh \ mln/debug/draw_graph.hh \ mln/debug/filename.hh \ @@ -1233,6 +1239,7 @@ mln/graph/attribute/card.hh \ mln/graph/compute.hh \ mln/graph/essential.hh \ mln/set/uni.hh \ +mln/set/compute_with_weights.hh \ mln/set/unique.hh \ mln/set/inter.hh \ mln/set/all.hh \ diff --git a/milena/mln/core/image/edge_image.hh b/milena/mln/core/image/edge_image.hh index 76d7fe0..3c71bb8 100644 --- a/milena/mln/core/image/edge_image.hh +++ b/milena/mln/core/image/edge_image.hh @@ -146,6 +146,7 @@ namespace mln /// Function mapping graph elements to sites. typedef typename internal::efsite_selector<P,G>::site_function_t site_function_t; + typedef mln_result(site_function_t) function_result_t; /// Window type typedef graph_elt_window<G,p_edges<G,site_function_t> > win_t; @@ -193,7 +194,7 @@ namespace mln { fun::i2v::array<V> f; init_(tag::function, f, exact(model)); - p_edges<G,fun::i2v::array<P> > s; + p_edges<G, typename edge_image<P,V,G>::site_function_t> s; init_(tag::domain, s, exact(model)); target.init_(f, s); } diff --git a/milena/mln/core/image/vertex_image.hh b/milena/mln/core/image/vertex_image.hh index 3498ec7..0d62991 100644 --- a/milena/mln/core/image/vertex_image.hh +++ b/milena/mln/core/image/vertex_image.hh @@ -144,6 +144,7 @@ namespace mln /// Function mapping graph elements to sites. typedef typename internal::vfsite_selector<P,G>::site_function_t site_function_t; + typedef mln_result(site_function_t) function_result_t; /// Skeleton type. @@ -187,7 +188,7 @@ namespace mln { fun::i2v::array<V> f; init_(tag::function, f, exact(model)); - p_vertices<G,fun::i2v::array<P> > s; + p_vertices<G,typename edge_image<P,V,G>::site_function_t> s; init_(tag::domain, s, exact(model)); target.init_(f, s); } diff --git a/milena/mln/debug/all.hh b/milena/mln/debug/all.hh index 814c95b..e65e907 100644 --- a/milena/mln/debug/all.hh +++ b/milena/mln/debug/all.hh @@ -48,8 +48,8 @@ namespace mln } -# include <mln/debug/format.hh> # include <mln/debug/draw_graph.hh> +# include <mln/debug/format.hh> # include <mln/debug/histo.hh> # include <mln/debug/iota.hh> # include <mln/debug/println.hh> @@ -58,5 +58,4 @@ namespace mln # include <mln/debug/quiet.hh> # include <mln/debug/slices_2d.hh> - #endif // ! MLN_DEBUG_ALL_HH diff --git a/milena/mln/fun/math/sup.hh b/milena/mln/fun/math/sup.hh index 20e19bf..d76b4b2 100644 --- a/milena/mln/fun/math/sup.hh +++ b/milena/mln/fun/math/sup.hh @@ -46,7 +46,7 @@ namespace mln namespace next { - template <typename T> + template <typename T1, typename T2> struct set_binary_<mln::fun::sup, mln::Object, T1, mln::Object, T2> { typedef set_binary_ ret; @@ -66,5 +66,5 @@ namespace mln } // end of namespace mln -#endif /* ! MLN_FUN_MATH_SUP_HH */ +#endif // ! MLN_FUN_MATH_SUP_HH diff --git a/milena/mln/fun/v2v/all.hh b/milena/mln/fun/v2v/all.hh index 2d14054..65de5ca 100644 --- a/milena/mln/fun/v2v/all.hh +++ b/milena/mln/fun/v2v/all.hh @@ -54,11 +54,14 @@ namespace mln # include <mln/fun/v2v/convert.hh> # include <mln/fun/v2v/dec.hh> # include <mln/fun/v2v/enc.hh> +# include <mln/fun/v2v/hsi_to_rgb.hh> +# include <mln/fun/v2v/hsl_to_rgb.hh> # include <mln/fun/v2v/id.hh> # include <mln/fun/v2v/linear.hh> # include <mln/fun/v2v/norm.hh> # include <mln/fun/v2v/projection.hh> # include <mln/fun/v2v/rgb_to_hsi.hh> +# include <mln/fun/v2v/rgb_to_hsl.hh> # include <mln/fun/v2v/saturate.hh> # include <mln/fun/v2v/wrap.hh> diff --git a/milena/mln/fun/v2v/rgb_to_hsi.hh b/milena/mln/fun/v2v/rgb_to_hsi.hh index bf9bd5d..c344343 100644 --- a/milena/mln/fun/v2v/rgb_to_hsi.hh +++ b/milena/mln/fun/v2v/rgb_to_hsi.hh @@ -61,28 +61,11 @@ namespace mln extern f_rgb_to_hsi_f_t f_rgb_to_hsi_f; - template <typename T_rgb> - struct f_hsi_to_rgb_ : public Function_v2v< f_hsi_to_rgb_<T_rgb> > - { - typedef T_rgb result; - - template <typename T_hsi> - T_rgb operator()(const T_hsi& hsi) const; - - }; - - typedef f_hsi_to_rgb_<value::rgb8> f_hsi_to_rgb_3x8_t; - - extern f_hsi_to_rgb_3x8_t f_hsi_to_rgb_3x8; - - # ifndef MLN_INCLUDE_ONLY /// Global variables. /// \{ f_rgb_to_hsi_f_t f_rgb_to_hsi_f; - - f_hsi_to_rgb_3x8_t f_hsi_to_rgb_3x8; /// \} @@ -120,42 +103,6 @@ namespace mln } - template <typename T_rgb> - template <typename T_hsi> - inline - T_rgb - f_hsi_to_rgb_<T_rgb>::operator()(const T_hsi& hsi) const - { - typedef typename T_rgb::red_t red_t; - 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), - inv_sqrt2 = 1 / std::sqrt(2); - - float - h = hsi.hue() / 180.0 * 3.1415, - alpha = hsi.sat() * std::cos(h), - beta = hsi.sat() * std::sin(h); - - - red_t r = to_r(sqrt3_3 * hsi.inty() + 2 * inv_sqrt6 * beta); - green_t g = - to_g(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); - - T_rgb rgb(r, g, b); - - return rgb; - } - # endif // !MLN_INCLUDE_ONLY } // end of namespace fun::v2v diff --git a/milena/mln/labeling/all.hh b/milena/mln/labeling/all.hh index 2931427..e90633b 100644 --- a/milena/mln/labeling/all.hh +++ b/milena/mln/labeling/all.hh @@ -55,6 +55,7 @@ namespace mln # include <mln/labeling/background.hh> # include <mln/labeling/blobs.hh> +# include <mln/labeling/colorize.hh> # include <mln/labeling/compute.hh> # include <mln/labeling/fill_holes.hh> # include <mln/labeling/flat_zones.hh> diff --git a/milena/mln/make/influence_zone_adjacency_graph.hh b/milena/mln/make/influence_zone_adjacency_graph.hh index 6cbaa4c..a5c3462 100644 --- a/milena/mln/make/influence_zone_adjacency_graph.hh +++ b/milena/mln/make/influence_zone_adjacency_graph.hh @@ -56,14 +56,16 @@ namespace mln /// Create a graph from an influence zone image. /// /// \param[in] iz influence zone image. + /// \param[in] nbh A neighborhood. /// \param[in] nlabels number of influence zone in \p iz. /// /// \return util::graph Graph based on the adjacency of the influence zones. + // template <typename I, typename N> util::graph influence_zone_adjacency_graph(const Image<I>& iz_, const Neighborhood<N>& nbh, - mln_value(I) nlabels); + const mln_value(I)& nlabels); @@ -77,7 +79,7 @@ namespace mln void influence_zone_adjacency_graph_tests(const Image<I>& iz, const Neighborhood<N>& nbh, - mln_value(I)) + const mln_value(I)&) { mln_precondition(exact(iz).is_valid()); mln_precondition(exact(nbh).is_valid()); @@ -94,11 +96,12 @@ namespace mln namespace generic { + /// Generic implementation of make::influence_zone_adjacency_graph. template <typename I, typename N> util::graph influence_zone_adjacency_graph(const Image<I>& iz_, const Neighborhood<N>& nbh_, - mln_value(I) nlabels) + const mln_value(I)& nlabels) { trace::entering("make::impl::generic::influence_zone_adjacency_graph"); @@ -151,7 +154,7 @@ namespace mln util::graph influence_zone_adjacency_graph_dispatch(const Image<I>& iz, const Neighborhood<N>& nbh, - mln_value(I) nlabels) + const mln_value(I)& nlabels) { return make::impl::generic::influence_zone_adjacency_graph(iz, nbh, nlabels); } @@ -167,7 +170,7 @@ namespace mln util::graph influence_zone_adjacency_graph(const Image<I>& iz, const Neighborhood<N>& nbh, - mln_value(I) nlabels) + const mln_value(I)& nlabels) { trace::entering("make::influence_zone_adjacency_graph"); diff --git a/milena/mln/morpho/opening/area_on_vertices.hh b/milena/mln/morpho/opening/area_on_vertices.hh index cb69d7f..f0ccd34 100644 --- a/milena/mln/morpho/opening/area_on_vertices.hh +++ b/milena/mln/morpho/opening/area_on_vertices.hh @@ -1,5 +1,5 @@ -// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory -// (LRDE) +// Copyright (C) 2007, 2008, 2009 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 @@ -34,8 +34,7 @@ /// Morphological area opening on a line graph image computing /// the area in terms of adjacent vertices. -# include <mln/pw/image.hh> -# include <mln/core/site_set/p_edges.hh> +# include <mln/core/image/edge_image.hh> # include <mln/morpho/opening/algebraic.hh> # include <mln/morpho/attribute/count_adjacent_vertices.hh> @@ -49,32 +48,38 @@ namespace mln namespace opening { - /// Morphological area opening on a mln::line_graph_image computing - /// the area in terms of adjacent vertices. - template <typename P2V, typename G, typename V2P, typename N> - pw::image<P2V, p_edges<G, V2P> > - area_on_vertices(const pw::image<P2V, p_edges<G, V2P> >& input, + /// 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. + // + template <typename P, typename V, typename G, typename N> + edge_image<P,V,G> + area_on_vertices(const edge_image<P,V,G>& input, const Neighborhood<N>& nbh, unsigned lambda); # ifndef MLN_INCLUDE_ONLY - template <typename P2V, typename G, typename V2P, typename N> + template <typename P, typename V, typename G, typename N> inline - pw::image<P2V, p_edges<G, V2P> > - area_on_vertices(const pw::image<P2V, p_edges<G, V2P> >& input, + edge_image<P,V,G> + area_on_vertices(const edge_image<P,V,G>& input, const Neighborhood<N>& nbh, unsigned lambda) { trace::entering("morpho::opening::area_on_vertices"); mln_precondition(exact(input).is_valid()); - typedef p_edges<G, V2P> pe_t; - typedef attribute::count_adjacent_vertices< pw::image<P2V, pe_t> > attribute_t; + typedef attribute::count_adjacent_vertices< edge_image<P,V,G> > attribute_t; - pw::image<P2V, p_edges<G, V2P> > output; - output = opening::algebraic(input, nbh, attribute_t(), lambda); + edge_image<P,V,G> + output = opening::algebraic(input, nbh, attribute_t(), lambda); trace::exiting("morpho::opening::area_on_vertices"); return output; diff --git a/milena/mln/registration/icp.hh b/milena/mln/registration/icp.hh index a2bee09..25edf96 100644 --- a/milena/mln/registration/icp.hh +++ b/milena/mln/registration/icp.hh @@ -62,6 +62,7 @@ # include <mln/io/ppm/save.hh> # include <mln/io/pbm/save.hh> +# include <mln/labeling/colorize.hh> # include <mln/debug/histo.hh> # include <mln/accu/histo.hh> @@ -200,7 +201,7 @@ namespace mln mln_piter(p_array<P>) p(X); for_all(p) { - debug(p) = debug::internal::random_color(value::rgb8()); + debug(p) = labeling::internal::random_color(value::rgb8()); debug2(p) = true; } io::pbm::save(slice(debug2,0), "debug2-a.ppm"); diff --git a/milena/mln/util/adjacency_matrix.hh b/milena/mln/util/adjacency_matrix.hh index dfda26f..9a60c94 100644 --- a/milena/mln/util/adjacency_matrix.hh +++ b/milena/mln/util/adjacency_matrix.hh @@ -250,9 +250,9 @@ namespace mln ::adjacency_matrix_impl_selector(const V& nelements) { (void) nelements; -# ifndef DNDEBUG +# ifndef NDEBUG nelements_ = nelements; -# endif // ! DNDEBUG +# endif // ! NDEBUG } template <typename V> diff --git a/milena/mln/util/all.hh b/milena/mln/util/all.hh index 180b8a1..c6d9864 100644 --- a/milena/mln/util/all.hh +++ b/milena/mln/util/all.hh @@ -72,9 +72,7 @@ namespace mln # include <mln/util/tracked_ptr.hh> # include <mln/util/tree.hh> # include <mln/util/tree_fast.hh> -# include <mln/util/tree_fast_to_image.hh> # include <mln/util/tree_to_fast.hh> -//# include <mln/util/tree_to_image.hh> # include <mln/util/vertex.hh> # include <mln/util/yes.hh> diff --git a/milena/mln/util/edge.hh b/milena/mln/util/edge.hh index 0c759db..1de3648 100644 --- a/milena/mln/util/edge.hh +++ b/milena/mln/util/edge.hh @@ -359,15 +359,17 @@ namespace mln bool operator==(const edge<G>& lhs, const edge<G>& rhs) { - return lhs.pair_vertex_ == rhs.pair_vertex_; + return lhs.id() == rhs.id() + && (lhs.graph().is_subgraph_of(rhs.graph()) + || rhs.graph().is_subgraph_of(lhs.graph())); } template <typename G> inline bool - operator< (const edge<G>& lhs, const edge<G>& rhs) + operator<(const edge<G>& lhs, const edge<G>& rhs) { - return lhs.pair_vertex_ < rhs.pair_vertex_; + return lhs.id() < rhs.id(); } } // end of namespace mln::util diff --git a/milena/mln/util/essential.hh b/milena/mln/util/essential.hh index 3c9b74f..d5eab8a 100644 --- a/milena/mln/util/essential.hh +++ b/milena/mln/util/essential.hh @@ -1,4 +1,5 @@ // Copyright (C) 2008, 2009 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 @@ -40,6 +41,5 @@ # include <mln/util/ord_pair.hh> # include <mln/util/set.hh> # include <mln/util/site_pair.hh> -# include <mln/util/tree.hh> #endif // ! MLN_UTIL_ESSENTIAL_HH diff --git a/milena/mln/util/graph.hh b/milena/mln/util/graph.hh index 83c0e8c..3ebd62d 100644 --- a/milena/mln/util/graph.hh +++ b/milena/mln/util/graph.hh @@ -385,7 +385,10 @@ namespace mln edge_id_t graph::add_edge(const vertex_id_t& id_v1, const vertex_id_t& id_v2) { - //FIXME: to be removed! We should not check that, except in without NDEBUG. + mln_precondition(id_v1 != id_v2); + mln_precondition(has_v(id_v1)); + mln_precondition(has_v(id_v2)); + // Does this edge already exist in the graph? edge_data_t edge(id_v1, id_v2); # ifndef NDEBUG diff --git a/milena/mln/util/object_id.hh b/milena/mln/util/object_id.hh index b3ea879..b50f2a5 100644 --- a/milena/mln/util/object_id.hh +++ b/milena/mln/util/object_id.hh @@ -185,6 +185,13 @@ namespace mln + template <typename Tag, typename V, typename V2> + inline + bool + operator==(const object_id<Tag,V>& lhs, const Value<V2>& rhs) + { + return lhs.value() == exact(rhs).to_equiv(); + } template <typename Tag, typename V> inline diff --git a/milena/mln/util/vertex.hh b/milena/mln/util/vertex.hh index 4f0c5ad..6d5af65 100644 --- a/milena/mln/util/vertex.hh +++ b/milena/mln/util/vertex.hh @@ -378,7 +378,9 @@ namespace mln bool operator==(const vertex<G>& v1, const vertex<G>& v2) { - return v1.id() == v2.id(); + return v1.id() == v2.id() + && (v1.graph().is_subgraph_of(v2.graph()) + || v2.graph().is_subgraph_of(v1.graph())); } template<typename G> diff --git a/milena/mln/value/rgb.hh b/milena/mln/value/rgb.hh index ebeeb5e..54e6b76 100644 --- a/milena/mln/value/rgb.hh +++ b/milena/mln/value/rgb.hh @@ -42,6 +42,7 @@ # include <mln/value/ops.hh> +# include <mln/fun/v2v/hsl_to_rgb.hh> # include <mln/value/concept/vectorial.hh> # include <mln/value/int_u.hh> # include <mln/algebra/vec.hh> diff --git a/milena/mln/util/essential.hh b/milena/mln/world/binary_2d/all.hh similarity index 70% copy from milena/mln/util/essential.hh copy to milena/mln/world/binary_2d/all.hh index 3c9b74f..cf94381 100644 --- a/milena/mln/util/essential.hh +++ b/milena/mln/world/binary_2d/all.hh @@ -1,4 +1,4 @@ -// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory +// Copyright (C) 2009 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 @@ -25,21 +25,17 @@ // reasons why the executable file might be covered by the GNU General // Public License. -#ifndef MLN_UTIL_ESSENTIAL_HH -# define MLN_UTIL_ESSENTIAL_HH +#ifndef MLN_WORLD_BINARY_2D_ALL_HH +# define MLN_WORLD_BINARY_2D_ALL_HH -/// \file mln/util/essential.hh +/// \file mln/world/all.hh /// -/// File that includes essential util-related routines. +/// File that includes all the world routines. -# include <mln/util/array.hh> -# include <mln/util/couple.hh> -# include <mln/util/lazy_set.hh> -# include <mln/util/lemmings.hh> -# include <mln/util/ord.hh> -# include <mln/util/ord_pair.hh> -# include <mln/util/set.hh> -# include <mln/util/site_pair.hh> -# include <mln/util/tree.hh> -#endif // ! MLN_UTIL_ESSENTIAL_HH +// Sub-directories. +# include <mln/world/binary_2d/projected_histo.hh> +# include <mln/world/binary_2d/subsample.hh> + + +#endif // ! MLN_WORLD_BINARY_2D_ALL_HH diff --git a/milena/tests/morpho/closing/Makefile.am b/milena/tests/morpho/closing/Makefile.am index 6d5ee0a..696cd14 100644 --- a/milena/tests/morpho/closing/Makefile.am +++ b/milena/tests/morpho/closing/Makefile.am @@ -6,6 +6,7 @@ SUBDIRS = \ approx check_PROGRAMS = \ + area_on_vertices \ leveling \ algebraic \ height \ @@ -14,6 +15,7 @@ check_PROGRAMS = \ structural \ sum +area_on_vertices_SOURCES = area_on_vertices.cc leveling_SOURCES = leveling.cc algebraic_SOURCES = algebraic.cc height_SOURCES = height.cc diff --git a/milena/mln/fun/math/sup.hh b/milena/tests/morpho/closing/area_on_vertices.cc similarity index 58% copy from milena/mln/fun/math/sup.hh copy to milena/tests/morpho/closing/area_on_vertices.cc index 20e19bf..4d8db2d 100644 --- a/milena/mln/fun/math/sup.hh +++ b/milena/tests/morpho/closing/area_on_vertices.cc @@ -7,7 +7,7 @@ // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR F PARTICULAR PURPOSE. See the GNU +// 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 @@ -25,46 +25,43 @@ // reasons why the executable file might be covered by the GNU General // Public License. -#ifndef MLN_FUN_MATH_SUP_HH -# define MLN_FUN_MATH_SUP_HH +/// \file tests/morpho/closing/area_on_vertices.cc +/// +/// Test on mln::morpho::closing::area_on_vertices. -# include <mln/fun/binary.hh> -# include <mln/math/max.hh> +#include <mln/core/image/edge_image.hh> +#include <mln/morpho/closing/area_on_vertices.hh> +#include <mln/util/graph.hh> +#include <mln/fun/i2v/array.hh> -namespace mln -{ - - // Cosinus, bijective - namespace fun - { - struct sup : binary<sup> {}; - } +#include "tests/data.hh" - namespace trait - { - namespace next - { +const unsigned result[] = { 101, 101, 102 }; - template <typename T> - struct set_binary_<mln::fun::sup, mln::Object, T1, mln::Object, T2> - { - typedef set_binary_ ret; - typedef mln_trait_promote(T1, T2) result; - typedef T1 argument1; - typedef T2 argument2; - - static result read(const argument1& a, const argument1& b) - { - return math::max(a, b); - } - }; +int main() +{ + using namespace mln; - } // end of namespace mln::trait::next + util::graph gr; + gr.add_vertices(5); + gr.add_edge(1, 3); + gr.add_edge(1, 2); + gr.add_edge(2 ,4); - } // end of namespace mln::trait + fun::i2v::array<unsigned> f(5); + for (unsigned i = 0; i < 5; ++i) + f(i) = 100 + i; + typedef edge_image<void,unsigned> e_ima_t; + e_ima_t e_ima(gr, f); + typedef e_ima_t::nbh_t nbh_t; + nbh_t nbh; -} // end of namespace mln + e_ima_t clo = morpho::closing::area_on_vertices(e_ima, nbh, 3); -#endif /* ! MLN_FUN_MATH_SUP_HH */ + unsigned i = 0; + mln_piter_(e_ima_t) p(clo.domain()); + for_all(p) + mln_assertion(result[i++] == clo(p)); +} diff --git a/milena/tests/morpho/opening/Makefile.am b/milena/tests/morpho/opening/Makefile.am index f0abae0..5f7e44a 100644 --- a/milena/tests/morpho/opening/Makefile.am +++ b/milena/tests/morpho/opening/Makefile.am @@ -6,6 +6,7 @@ SUBDIRS = \ approx check_PROGRAMS = \ + area_on_vertices \ leveling \ algebraic \ height \ @@ -14,6 +15,7 @@ check_PROGRAMS = \ structural \ sum +area_on_vertices_SOURCES = area_on_vertices.cc leveling_SOURCES = leveling.cc algebraic_SOURCES = algebraic.cc height_SOURCES = height.cc diff --git a/milena/mln/fun/math/sup.hh b/milena/tests/morpho/opening/area_on_vertices.cc similarity index 58% copy from milena/mln/fun/math/sup.hh copy to milena/tests/morpho/opening/area_on_vertices.cc index 20e19bf..f259770 100644 --- a/milena/mln/fun/math/sup.hh +++ b/milena/tests/morpho/opening/area_on_vertices.cc @@ -7,7 +7,7 @@ // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR F PARTICULAR PURPOSE. See the GNU +// 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 @@ -25,46 +25,43 @@ // reasons why the executable file might be covered by the GNU General // Public License. -#ifndef MLN_FUN_MATH_SUP_HH -# define MLN_FUN_MATH_SUP_HH +/// \file tests/morpho/opening/area_on_vertices.cc +/// +/// Test on mln::morpho::opening::area_on_vertices. -# include <mln/fun/binary.hh> -# include <mln/math/max.hh> +#include <mln/core/image/edge_image.hh> +#include <mln/morpho/opening/area_on_vertices.hh> +#include <mln/util/graph.hh> +#include <mln/fun/i2v/array.hh> -namespace mln -{ - - // Cosinus, bijective - namespace fun - { - struct sup : binary<sup> {}; - } +#include "tests/data.hh" - namespace trait - { - namespace next - { +const unsigned result[] = { 100, 101, 101 }; - template <typename T> - struct set_binary_<mln::fun::sup, mln::Object, T1, mln::Object, T2> - { - typedef set_binary_ ret; - typedef mln_trait_promote(T1, T2) result; - typedef T1 argument1; - typedef T2 argument2; - - static result read(const argument1& a, const argument1& b) - { - return math::max(a, b); - } - }; +int main() +{ + using namespace mln; - } // end of namespace mln::trait::next + util::graph gr; + gr.add_vertices(5); + gr.add_edge(1, 3); + gr.add_edge(1, 2); + gr.add_edge(2 ,4); - } // end of namespace mln::trait + fun::i2v::array<unsigned> f(5); + for (unsigned i = 0; i < 5; ++i) + f(i) = 100 + i; + typedef edge_image<void,unsigned> e_ima_t; + e_ima_t e_ima(gr, f); + typedef e_ima_t::nbh_t nbh_t; + nbh_t nbh; -} // end of namespace mln + e_ima_t clo = morpho::opening::area_on_vertices(e_ima, nbh, 3); -#endif /* ! MLN_FUN_MATH_SUP_HH */ + unsigned i = 0; + mln_piter_(e_ima_t) p(clo.domain()); + for_all(p) + mln_assertion(result[i++] == clo(p)); +} diff --git a/milena/tests/unit_test/unit-tests.mk b/milena/tests/unit_test/unit-tests.mk index 6869395..37f1d72 100644 --- a/milena/tests/unit_test/unit-tests.mk +++ b/milena/tests/unit_test/unit-tests.mk @@ -55,16 +55,25 @@ mln_literal_one \ mln_literal_min \ mln_literal_white \ mln_literal_essential \ +mln_world_all \ mln_world_binary_2d_subsample \ +mln_world_binary_2d_all \ mln_world_binary_2d_projected_histo \ +mln_world_inter_pixel_is_pixel \ +mln_world_inter_pixel_all \ mln_world_inter_pixel_neighb2d \ -mln_world_inter_pixel_full \ +mln_world_inter_pixel_is_separator \ +mln_world_inter_pixel_immerse \ +mln_world_inter_pixel_separator_to_pixels \ mln_world_inter_pixel_display_edge \ +mln_world_inter_pixel_compute \ mln_world_inter_pixel_dim2_is_pixel \ mln_world_inter_pixel_dim2_all \ mln_world_inter_pixel_dim2_is_edge \ +mln_world_inter_pixel_dim2_make_edge_image \ mln_world_inter_pixel_dim2_is_dot \ mln_world_inter_pixel_dim2_is_row_odd \ +mln_world_inter_pixel_full2image \ mln_registration_get_rtransf \ mln_registration_internal_rms \ mln_registration_get_rot \ @@ -78,7 +87,6 @@ mln_util_max \ mln_util_lazy_set \ mln_util_soft_heap \ mln_util_set \ -mln_util_tree_to_image \ mln_util_lemmings \ mln_util_greater_point \ mln_util_internal_graph_iter_base \ @@ -104,24 +112,21 @@ mln_util_timer \ mln_util_yes \ mln_util_line_graph \ mln_util_ord \ -mln_util_tree_fast_to_image \ -mln_util_tree \ +mln_util_adjacency_matrix \ mln_util_couple \ mln_util_index \ mln_util_multi_site \ -mln_util_branch_iter \ -mln_util_branch_iter_ind \ -mln_util_tree_to_fast \ mln_util_array \ mln_util_vertex \ mln_util_pix \ -mln_util_tree_fast \ +mln_util_object_id \ mln_util_site_pair \ mln_util_nil \ mln_util_graph_ids \ mln_util_eat \ mln_util_essential \ mln_data_memset_ \ +mln_data_paste_without_localization \ mln_data_memcpy_ \ mln_data_all \ mln_data_paste \ @@ -210,6 +215,8 @@ mln_fun_p2p_all \ mln_fun_p2p_translation \ mln_fun_p2p_mirror \ mln_fun_accu_result \ +mln_fun_stat_mahalanobis \ +mln_fun_stat_all \ mln_fun_binary_param \ mln_fun_x2p_closest_point \ mln_fun_x2p_all \ @@ -287,6 +294,8 @@ mln_fun_vv2b_lt \ mln_fun_vv2b_eq \ mln_fun_cast \ mln_fun_composition \ +mln_fun_access_all \ +mln_fun_access_mean \ mln_fun_i2v_all \ mln_fun_i2v_array \ mln_fun_i2v_all_to \ @@ -297,10 +306,13 @@ mln_fun_x2x_translation \ mln_fun_x2x_rotation \ mln_fun_x2x_essential \ mln_fun_component_red \ +mln_fun_component_comp_count \ +mln_fun_component_scomp \ mln_fun_component_green \ mln_fun_component_comp \ mln_fun_component_blue \ mln_fun_component_rgb \ +mln_fun_component_ithcomp \ mln_fun_compose \ mln_fun_meta_red \ mln_fun_meta_hue \ @@ -424,6 +436,7 @@ mln_accu_site_set_all \ mln_accu_site_set_essential \ mln_accu_stat_variance \ mln_accu_stat_deviation \ +mln_accu_stat_all \ mln_accu_stat_var \ mln_accu_max \ mln_accu_lor \ @@ -471,6 +484,7 @@ mln_accu_image_init \ mln_accu_image_to_result \ mln_accu_image_all \ mln_accu_image_set_value \ +mln_accu_image_untake \ mln_accu_image_take \ mln_accu_image_take_as_init \ mln_accu_image_take_n_times \ @@ -559,7 +573,6 @@ mln_trait_ch_function_value \ mln_trait_ch_value \ mln_trait_solve \ mln_trait_solve_unary \ -mln_trait_fun \ mln_trait_op_postdec \ mln_trait_op_mod \ mln_trait_op_lor \ @@ -587,6 +600,7 @@ mln_trait_op_uplus \ mln_trait_op_essential \ mln_trait_op_eq \ mln_trait_concrete \ +mln_trait_functions \ mln_trait_windows \ mln_trait_site_sets \ mln_trait_image_from_grid \ @@ -994,7 +1008,6 @@ mln_core_concept_window \ mln_core_concept_value \ mln_core_concept_accumulator \ mln_core_concept_site_set \ -mln_core_concept_object_id \ mln_core_concept_object \ mln_core_concept_meta_fun \ mln_core_concept_delta_point_site \ @@ -1076,6 +1089,7 @@ mln_labeling_all \ mln_labeling_level \ mln_labeling_flat_zones \ mln_labeling_foreground \ +mln_labeling_colorize \ mln_labeling_regional_maxima \ mln_labeling_wrap \ mln_labeling_compute \ @@ -1168,7 +1182,6 @@ mln_norm_essential \ mln_debug_iota \ mln_debug_all \ mln_debug_println_with_border \ -mln_debug_colorize \ mln_debug_slices_2d \ mln_debug_draw_graph \ mln_debug_filename \ @@ -1192,6 +1205,7 @@ mln_graph_attribute_card \ mln_graph_compute \ mln_graph_essential \ mln_set_uni \ +mln_set_compute_with_weights \ mln_set_unique \ mln_set_inter \ mln_set_all \ @@ -1273,16 +1287,25 @@ mln_literal_one_SOURCES = mln_literal_one.cc mln_literal_min_SOURCES = mln_literal_min.cc mln_literal_white_SOURCES = mln_literal_white.cc mln_literal_essential_SOURCES = mln_literal_essential.cc +mln_world_all_SOURCES = mln_world_all.cc mln_world_binary_2d_subsample_SOURCES = mln_world_binary_2d_subsample.cc +mln_world_binary_2d_all_SOURCES = mln_world_binary_2d_all.cc mln_world_binary_2d_projected_histo_SOURCES = mln_world_binary_2d_projected_histo.cc +mln_world_inter_pixel_is_pixel_SOURCES = mln_world_inter_pixel_is_pixel.cc +mln_world_inter_pixel_all_SOURCES = mln_world_inter_pixel_all.cc mln_world_inter_pixel_neighb2d_SOURCES = mln_world_inter_pixel_neighb2d.cc -mln_world_inter_pixel_full_SOURCES = mln_world_inter_pixel_full.cc +mln_world_inter_pixel_is_separator_SOURCES = mln_world_inter_pixel_is_separator.cc +mln_world_inter_pixel_immerse_SOURCES = mln_world_inter_pixel_immerse.cc +mln_world_inter_pixel_separator_to_pixels_SOURCES = mln_world_inter_pixel_separator_to_pixels.cc mln_world_inter_pixel_display_edge_SOURCES = mln_world_inter_pixel_display_edge.cc +mln_world_inter_pixel_compute_SOURCES = mln_world_inter_pixel_compute.cc mln_world_inter_pixel_dim2_is_pixel_SOURCES = mln_world_inter_pixel_dim2_is_pixel.cc mln_world_inter_pixel_dim2_all_SOURCES = mln_world_inter_pixel_dim2_all.cc mln_world_inter_pixel_dim2_is_edge_SOURCES = mln_world_inter_pixel_dim2_is_edge.cc +mln_world_inter_pixel_dim2_make_edge_image_SOURCES = mln_world_inter_pixel_dim2_make_edge_image.cc mln_world_inter_pixel_dim2_is_dot_SOURCES = mln_world_inter_pixel_dim2_is_dot.cc mln_world_inter_pixel_dim2_is_row_odd_SOURCES = mln_world_inter_pixel_dim2_is_row_odd.cc +mln_world_inter_pixel_full2image_SOURCES = mln_world_inter_pixel_full2image.cc mln_registration_get_rtransf_SOURCES = mln_registration_get_rtransf.cc mln_registration_internal_rms_SOURCES = mln_registration_internal_rms.cc mln_registration_get_rot_SOURCES = mln_registration_get_rot.cc @@ -1296,7 +1319,6 @@ mln_util_max_SOURCES = mln_util_max.cc mln_util_lazy_set_SOURCES = mln_util_lazy_set.cc mln_util_soft_heap_SOURCES = mln_util_soft_heap.cc mln_util_set_SOURCES = mln_util_set.cc -mln_util_tree_to_image_SOURCES = mln_util_tree_to_image.cc mln_util_lemmings_SOURCES = mln_util_lemmings.cc mln_util_greater_point_SOURCES = mln_util_greater_point.cc mln_util_internal_graph_iter_base_SOURCES = mln_util_internal_graph_iter_base.cc @@ -1322,24 +1344,21 @@ mln_util_timer_SOURCES = mln_util_timer.cc mln_util_yes_SOURCES = mln_util_yes.cc mln_util_line_graph_SOURCES = mln_util_line_graph.cc mln_util_ord_SOURCES = mln_util_ord.cc -mln_util_tree_fast_to_image_SOURCES = mln_util_tree_fast_to_image.cc -mln_util_tree_SOURCES = mln_util_tree.cc +mln_util_adjacency_matrix_SOURCES = mln_util_adjacency_matrix.cc mln_util_couple_SOURCES = mln_util_couple.cc mln_util_index_SOURCES = mln_util_index.cc mln_util_multi_site_SOURCES = mln_util_multi_site.cc -mln_util_branch_iter_SOURCES = mln_util_branch_iter.cc -mln_util_branch_iter_ind_SOURCES = mln_util_branch_iter_ind.cc -mln_util_tree_to_fast_SOURCES = mln_util_tree_to_fast.cc mln_util_array_SOURCES = mln_util_array.cc mln_util_vertex_SOURCES = mln_util_vertex.cc mln_util_pix_SOURCES = mln_util_pix.cc -mln_util_tree_fast_SOURCES = mln_util_tree_fast.cc +mln_util_object_id_SOURCES = mln_util_object_id.cc mln_util_site_pair_SOURCES = mln_util_site_pair.cc mln_util_nil_SOURCES = mln_util_nil.cc mln_util_graph_ids_SOURCES = mln_util_graph_ids.cc mln_util_eat_SOURCES = mln_util_eat.cc mln_util_essential_SOURCES = mln_util_essential.cc mln_data_memset__SOURCES = mln_data_memset_.cc +mln_data_paste_without_localization_SOURCES = mln_data_paste_without_localization.cc mln_data_memcpy__SOURCES = mln_data_memcpy_.cc mln_data_all_SOURCES = mln_data_all.cc mln_data_paste_SOURCES = mln_data_paste.cc @@ -1428,6 +1447,8 @@ mln_fun_p2p_all_SOURCES = mln_fun_p2p_all.cc mln_fun_p2p_translation_SOURCES = mln_fun_p2p_translation.cc mln_fun_p2p_mirror_SOURCES = mln_fun_p2p_mirror.cc mln_fun_accu_result_SOURCES = mln_fun_accu_result.cc +mln_fun_stat_mahalanobis_SOURCES = mln_fun_stat_mahalanobis.cc +mln_fun_stat_all_SOURCES = mln_fun_stat_all.cc mln_fun_binary_param_SOURCES = mln_fun_binary_param.cc mln_fun_x2p_closest_point_SOURCES = mln_fun_x2p_closest_point.cc mln_fun_x2p_all_SOURCES = mln_fun_x2p_all.cc @@ -1505,6 +1526,8 @@ mln_fun_vv2b_lt_SOURCES = mln_fun_vv2b_lt.cc mln_fun_vv2b_eq_SOURCES = mln_fun_vv2b_eq.cc mln_fun_cast_SOURCES = mln_fun_cast.cc mln_fun_composition_SOURCES = mln_fun_composition.cc +mln_fun_access_all_SOURCES = mln_fun_access_all.cc +mln_fun_access_mean_SOURCES = mln_fun_access_mean.cc mln_fun_i2v_all_SOURCES = mln_fun_i2v_all.cc mln_fun_i2v_array_SOURCES = mln_fun_i2v_array.cc mln_fun_i2v_all_to_SOURCES = mln_fun_i2v_all_to.cc @@ -1515,10 +1538,13 @@ mln_fun_x2x_translation_SOURCES = mln_fun_x2x_translation.cc mln_fun_x2x_rotation_SOURCES = mln_fun_x2x_rotation.cc mln_fun_x2x_essential_SOURCES = mln_fun_x2x_essential.cc mln_fun_component_red_SOURCES = mln_fun_component_red.cc +mln_fun_component_comp_count_SOURCES = mln_fun_component_comp_count.cc +mln_fun_component_scomp_SOURCES = mln_fun_component_scomp.cc mln_fun_component_green_SOURCES = mln_fun_component_green.cc mln_fun_component_comp_SOURCES = mln_fun_component_comp.cc mln_fun_component_blue_SOURCES = mln_fun_component_blue.cc mln_fun_component_rgb_SOURCES = mln_fun_component_rgb.cc +mln_fun_component_ithcomp_SOURCES = mln_fun_component_ithcomp.cc mln_fun_compose_SOURCES = mln_fun_compose.cc mln_fun_meta_red_SOURCES = mln_fun_meta_red.cc mln_fun_meta_hue_SOURCES = mln_fun_meta_hue.cc @@ -1642,6 +1668,7 @@ mln_accu_site_set_all_SOURCES = mln_accu_site_set_all.cc mln_accu_site_set_essential_SOURCES = mln_accu_site_set_essential.cc mln_accu_stat_variance_SOURCES = mln_accu_stat_variance.cc mln_accu_stat_deviation_SOURCES = mln_accu_stat_deviation.cc +mln_accu_stat_all_SOURCES = mln_accu_stat_all.cc mln_accu_stat_var_SOURCES = mln_accu_stat_var.cc mln_accu_max_SOURCES = mln_accu_max.cc mln_accu_lor_SOURCES = mln_accu_lor.cc @@ -1689,6 +1716,7 @@ mln_accu_image_init_SOURCES = mln_accu_image_init.cc mln_accu_image_to_result_SOURCES = mln_accu_image_to_result.cc mln_accu_image_all_SOURCES = mln_accu_image_all.cc mln_accu_image_set_value_SOURCES = mln_accu_image_set_value.cc +mln_accu_image_untake_SOURCES = mln_accu_image_untake.cc mln_accu_image_take_SOURCES = mln_accu_image_take.cc mln_accu_image_take_as_init_SOURCES = mln_accu_image_take_as_init.cc mln_accu_image_take_n_times_SOURCES = mln_accu_image_take_n_times.cc @@ -1777,7 +1805,6 @@ mln_trait_ch_function_value_SOURCES = mln_trait_ch_function_value.cc mln_trait_ch_value_SOURCES = mln_trait_ch_value.cc mln_trait_solve_SOURCES = mln_trait_solve.cc mln_trait_solve_unary_SOURCES = mln_trait_solve_unary.cc -mln_trait_fun_SOURCES = mln_trait_fun.cc mln_trait_op_postdec_SOURCES = mln_trait_op_postdec.cc mln_trait_op_mod_SOURCES = mln_trait_op_mod.cc mln_trait_op_lor_SOURCES = mln_trait_op_lor.cc @@ -1805,6 +1832,7 @@ mln_trait_op_uplus_SOURCES = mln_trait_op_uplus.cc mln_trait_op_essential_SOURCES = mln_trait_op_essential.cc mln_trait_op_eq_SOURCES = mln_trait_op_eq.cc mln_trait_concrete_SOURCES = mln_trait_concrete.cc +mln_trait_functions_SOURCES = mln_trait_functions.cc mln_trait_windows_SOURCES = mln_trait_windows.cc mln_trait_site_sets_SOURCES = mln_trait_site_sets.cc mln_trait_image_from_grid_SOURCES = mln_trait_image_from_grid.cc @@ -2212,7 +2240,6 @@ mln_core_concept_window_SOURCES = mln_core_concept_window.cc mln_core_concept_value_SOURCES = mln_core_concept_value.cc mln_core_concept_accumulator_SOURCES = mln_core_concept_accumulator.cc mln_core_concept_site_set_SOURCES = mln_core_concept_site_set.cc -mln_core_concept_object_id_SOURCES = mln_core_concept_object_id.cc mln_core_concept_object_SOURCES = mln_core_concept_object.cc mln_core_concept_meta_fun_SOURCES = mln_core_concept_meta_fun.cc mln_core_concept_delta_point_site_SOURCES = mln_core_concept_delta_point_site.cc @@ -2294,6 +2321,7 @@ mln_labeling_all_SOURCES = mln_labeling_all.cc mln_labeling_level_SOURCES = mln_labeling_level.cc mln_labeling_flat_zones_SOURCES = mln_labeling_flat_zones.cc mln_labeling_foreground_SOURCES = mln_labeling_foreground.cc +mln_labeling_colorize_SOURCES = mln_labeling_colorize.cc mln_labeling_regional_maxima_SOURCES = mln_labeling_regional_maxima.cc mln_labeling_wrap_SOURCES = mln_labeling_wrap.cc mln_labeling_compute_SOURCES = mln_labeling_compute.cc @@ -2386,7 +2414,6 @@ mln_norm_essential_SOURCES = mln_norm_essential.cc mln_debug_iota_SOURCES = mln_debug_iota.cc mln_debug_all_SOURCES = mln_debug_all.cc mln_debug_println_with_border_SOURCES = mln_debug_println_with_border.cc -mln_debug_colorize_SOURCES = mln_debug_colorize.cc mln_debug_slices_2d_SOURCES = mln_debug_slices_2d.cc mln_debug_draw_graph_SOURCES = mln_debug_draw_graph.cc mln_debug_filename_SOURCES = mln_debug_filename.cc @@ -2410,6 +2437,7 @@ mln_graph_attribute_card_SOURCES = mln_graph_attribute_card.cc mln_graph_compute_SOURCES = mln_graph_compute.cc mln_graph_essential_SOURCES = mln_graph_essential.cc mln_set_uni_SOURCES = mln_set_uni.cc +mln_set_compute_with_weights_SOURCES = mln_set_compute_with_weights.cc mln_set_unique_SOURCES = mln_set_unique.cc mln_set_inter_SOURCES = mln_set_inter.cc mln_set_all_SOURCES = mln_set_all.cc diff --git a/milena/tests/util/Makefile.am b/milena/tests/util/Makefile.am index 07b6018..a808683 100644 --- a/milena/tests/util/Makefile.am +++ b/milena/tests/util/Makefile.am @@ -19,9 +19,7 @@ check_PROGRAMS = \ tree \ tree_fast \ tree_fast_to_image \ - tree_to_fast \ - tree_to_image - + tree_to_fast adjacency_matrix_SOURCES = adjacency_matrix.cc branch_iter_SOURCES = branch_iter.cc @@ -37,9 +35,7 @@ set_SOURCES = set.cc soft_heap_SOURCES = soft_heap.cc tree_SOURCES = tree.cc tree_fast_SOURCES = tree_fast.cc -tree_fast_to_image_SOURCES = tree_to_image.cc tree_to_fast_SOURCES = tree_to_fast.cc -tree_to_image_SOURCES = tree_to_image.cc TESTS = $(check_PROGRAMS) -- 1.6.1.2