Olena-patches
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
November 2011
- 5 participants
- 178 discussions
* mln/border/duplicate.hh,
* mln/border/mirror.hh,
* mln/canvas/browsing/internal/graph_first_search.hh,
* mln/convert/impl/from_float_to_value.hh,
* mln/convert/to_qimage.hh,
* mln/core/image/complex_window_piter.hh,
* mln/extension/fill.hh,
* mln/fun/spe/binary.hh,
* mln/fun/spe/unary.hh,
* mln/fun/x2x/rotation.hh,
* mln/io/fld/max_components.hh,
* mln/labeling/flat_zones.hh,
* mln/labeling/value.hh,
* mln/morpho/reconstruction/by_dilation/union_find.hh,
* mln/opt/element.hh,
* mln/registration/get_rot.hh,
* mln/subsampling/antialiased.hh,
* mln/subsampling/gaussian_subsampling.hh,
* mln/topo/skeleton/is_simple_point.hh,
* mln/transform/influence_zone_geodesic.hh,
* mln/util/object_id.hh,
* mln/value/lut_vec.hh,
* mln/world/binary_2d/enlarge.hh: Avoid unused variable warnings.
* mln/accu/internal/couple.hh,
* mln/convert/from_to.hxx,
* mln/core/faces_psite.hh,
* mln/core/image/ch_piter.hh,
* mln/core/image/dmorph/extended.hh,
* mln/core/image/dmorph/extension_fun.hh,
* mln/core/image/dmorph/extension_ima.hh,
* mln/core/image/dmorph/extension_val.hh,
* mln/core/image/dmorph/hexa.hh,
* mln/core/image/dmorph/sub_image_if.hh,
* mln/core/image/dmorph/transformed_image.hh,
* mln/core/image/flat_image.hh,
* mln/core/image/graph_elt_mixed_window.hh,
* mln/core/image/graph_elt_window.hh,
* mln/core/image/graph_elt_window_if.hh,
* mln/core/image/graph_window_piter.hh,
* mln/core/image/image2d.hh,
* mln/core/image/imorph/labeled_image.hh,
* mln/core/image/imorph/plain.hh,
* mln/core/image/imorph/safe.hh,
* mln/core/image/vmorph/cast_image.hh,
* mln/core/image/vmorph/fun_image.hh,
* mln/core/image/vmorph/thru_image.hh,
* mln/core/image/vmorph/thrubin_image.hh,
* mln/core/image/vmorph/violent_cast_image.hh,
* mln/core/internal/is_masked_impl_selector.hh,
* mln/core/internal/pixel_impl.hh,
* mln/core/routine/init.hxx,
* mln/core/site_set/attic/p_faces_piter.hh,
* mln/core/site_set/p_faces.hh,
* mln/core/site_set/p_if.hh,
* mln/core/site_set/p_transformed.hh,
* mln/debug/println.spe.hh,
* mln/io/pbm/save.hh,
* mln/io/pgm/save.hh,
* mln/morpho/attribute/height.hh,
* mln/morpho/attribute/sharpness.hh,
* mln/morpho/attribute/volume.hh,
* mln/morpho/tree/data.hh,
* mln/topo/center_only_iter.hh,
* mln/topo/face.hh,
* mln/topo/face_data.hh,
* mln/trait/image_from_grid.hh,
* mln/trait/images.hh,
* mln/value/float01.hh,
* mln/value/float01_f.hh,
* mln/value/graylevel.hh,
* mln/value/graylevel_f.hh,
* mln/value/internal/gray_.hh,
* mln/value/internal/gray_f.hh: Make forward declarations
consistent with declarations.
* mln/core/concept/box.hh,
* mln/core/dpoints_pixter.hh,
* mln/core/image/graph_window_if_piter.hh: Add explicit 'this'.
* mln/data/fill.hh: Make sure declarations are made before use.
* mln/geom/chamfer.hh,
* mln/morpho/tree/compute_attribute_image.hh: Do not set default
argument values in declaration.
* mln/accu/line.hh: Use def::coord.
* mln/algebra/vec.hh,
* mln/convert/from_to.hxx,
* mln/core/image/dmorph/sub_image.hh,
* mln/core/internal/site_set_iterator_base.hh,
* mln/core/site_set/box.hh,
* mln/core/site_set/p_array.hh,
* mln/core/site_set/p_edges.hh,
* mln/core/site_set/p_vertices.hh: Make forward declaration
consistent with declaration.
* mln/value/builtin/carrays.hh: Explicitly convert to char *.
* mln/convert/impl/from_double_to_value.hh,
* mln/convert/impl/from_int_to_value.hh,
* mln/core/point.hh,
* mln/opt/element.hh: Avoid unused variable warning.
* mln/convert/impl/from_image_to_site_set.hh: Remove useless local variable.
---
milena/ChangeLog | 111 ++++++++++++++++++++
milena/mln/accu/internal/couple.hh | 7 +-
milena/mln/accu/line.hh | 17 ++--
milena/mln/algebra/vec.hh | 5 +-
milena/mln/border/duplicate.hh | 4 +-
milena/mln/border/mirror.hh | 3 +-
milena/mln/convert/from_to.hxx | 4 +-
milena/mln/convert/impl/from_double_to_value.hh | 9 +-
milena/mln/convert/impl/from_float_to_value.hh | 8 +-
milena/mln/convert/impl/from_image_to_site_set.hh | 4 +-
milena/mln/convert/impl/from_int_to_value.hh | 6 +-
milena/mln/convert/to_qimage.hh | 2 +
milena/mln/core/concept/box.hh | 3 +-
milena/mln/core/dpoints_pixter.hh | 25 +++--
milena/mln/core/faces_psite.hh | 5 +-
milena/mln/core/image/ch_piter.hh | 5 +-
milena/mln/core/image/complex_window_piter.hh | 5 +-
milena/mln/core/image/dmorph/extended.hh | 5 +-
milena/mln/core/image/dmorph/extension_fun.hh | 5 +-
milena/mln/core/image/dmorph/extension_ima.hh | 6 +-
milena/mln/core/image/dmorph/extension_val.hh | 5 +-
milena/mln/core/image/dmorph/hexa.hh | 5 +-
milena/mln/core/image/dmorph/sub_image.hh | 6 +-
milena/mln/core/image/dmorph/sub_image_if.hh | 7 +-
milena/mln/core/image/dmorph/transformed_image.hh | 7 +-
milena/mln/core/image/flat_image.hh | 5 +-
milena/mln/core/image/graph_elt_mixed_window.hh | 7 +-
milena/mln/core/image/graph_elt_window.hh | 4 +-
milena/mln/core/image/graph_elt_window_if.hh | 7 +-
milena/mln/core/image/graph_window_if_piter.hh | 4 +-
milena/mln/core/image/graph_window_piter.hh | 6 +-
milena/mln/core/image/image2d.hh | 2 +-
milena/mln/core/image/imorph/labeled_image.hh | 5 +-
milena/mln/core/image/imorph/plain.hh | 5 +-
milena/mln/core/image/imorph/safe.hh | 5 +-
milena/mln/core/image/vmorph/cast_image.hh | 5 +-
milena/mln/core/image/vmorph/fun_image.hh | 4 +-
milena/mln/core/image/vmorph/thru_image.hh | 8 +-
milena/mln/core/image/vmorph/thrubin_image.hh | 4 +-
milena/mln/core/image/vmorph/violent_cast_image.hh | 5 +-
.../mln/core/internal/is_masked_impl_selector.hh | 7 +-
milena/mln/core/internal/pixel_impl.hh | 2 +-
milena/mln/core/internal/site_set_iterator_base.hh | 6 +-
milena/mln/core/point.hh | 3 +-
milena/mln/core/routine/init.hxx | 7 +-
milena/mln/core/site_set/attic/p_faces_piter.hh | 4 +-
milena/mln/core/site_set/p_array.hh | 4 +-
milena/mln/core/site_set/p_edges.hh | 5 +-
milena/mln/core/site_set/p_faces.hh | 5 +-
milena/mln/core/site_set/p_if.hh | 6 +-
milena/mln/core/site_set/p_transformed.hh | 5 +-
milena/mln/core/site_set/p_vertices.hh | 4 +-
milena/mln/data/fill.hh | 4 +-
milena/mln/debug/println.spe.hh | 5 +-
milena/mln/extension/fill.hh | 2 +
milena/mln/fun/spe/binary.hh | 1 +
milena/mln/fun/spe/unary.hh | 4 +-
milena/mln/fun/x2x/rotation.hh | 7 +-
milena/mln/geom/chamfer.hh | 5 +-
milena/mln/io/fld/max_components.hh | 3 +-
milena/mln/io/pbm/save.hh | 7 +-
milena/mln/io/pgm/save.hh | 7 +-
milena/mln/labeling/flat_zones.hh | 10 +-
milena/mln/labeling/value.hh | 4 +-
milena/mln/morpho/attribute/height.hh | 5 +-
milena/mln/morpho/attribute/sharpness.hh | 5 +-
milena/mln/morpho/attribute/volume.hh | 5 +-
.../reconstruction/by_dilation/union_find.hh | 18 ++--
milena/mln/morpho/tree/compute_attribute_image.hh | 9 +-
milena/mln/morpho/tree/data.hh | 4 +-
milena/mln/opt/element.hh | 9 +-
milena/mln/registration/get_rot.hh | 9 ++-
milena/mln/subsampling/antialiased.hh | 10 ++
milena/mln/subsampling/gaussian_subsampling.hh | 5 +-
milena/mln/topo/center_only_iter.hh | 7 +-
milena/mln/topo/face.hh | 4 +-
milena/mln/topo/face_data.hh | 4 +-
milena/mln/topo/skeleton/is_simple_point.hh | 1 -
milena/mln/trait/image_from_grid.hh | 5 +-
milena/mln/trait/images.hh | 11 +-
milena/mln/transform/influence_zone_geodesic.hh | 7 +-
milena/mln/util/object_id.hh | 4 +-
milena/mln/value/float01.hh | 5 +-
milena/mln/value/float01_f.hh | 5 +-
milena/mln/value/graylevel.hh | 2 +-
milena/mln/value/graylevel_f.hh | 5 +-
milena/mln/value/internal/gray_.hh | 17 +++-
milena/mln/value/internal/gray_f.hh | 14 ++-
milena/mln/value/lut_vec.hh | 5 +-
milena/mln/world/binary_2d/enlarge.hh | 6 +-
90 files changed, 436 insertions(+), 207 deletions(-)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index e9d45f1..dcc6da5 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -132,6 +132,117 @@
* mln/io/dicom/load.hh: Fix invalid data while loading large
image.
+2011-04-28 Guillaume Lazzara <lazzara(a)fidji.lrde.epita.fr>
+
+ Fix warnings with Clang/g++ 4.6.x
+
+ * mln/border/duplicate.hh,
+ * mln/border/mirror.hh,
+ * mln/canvas/browsing/internal/graph_first_search.hh,
+ * mln/convert/impl/from_float_to_value.hh,
+ * mln/convert/to_qimage.hh,
+ * mln/core/image/complex_window_piter.hh,
+ * mln/extension/fill.hh,
+ * mln/fun/spe/binary.hh,
+ * mln/fun/spe/unary.hh,
+ * mln/fun/x2x/rotation.hh,
+ * mln/io/fld/max_components.hh,
+ * mln/labeling/flat_zones.hh,
+ * mln/labeling/value.hh,
+ * mln/morpho/reconstruction/by_dilation/union_find.hh,
+ * mln/opt/element.hh,
+ * mln/registration/get_rot.hh,
+ * mln/subsampling/antialiased.hh,
+ * mln/subsampling/gaussian_subsampling.hh,
+ * mln/topo/skeleton/is_simple_point.hh,
+ * mln/transform/influence_zone_geodesic.hh,
+ * mln/util/object_id.hh,
+ * mln/value/lut_vec.hh,
+ * mln/world/binary_2d/enlarge.hh: Avoid unused variable warnings.
+
+ * mln/accu/internal/couple.hh,
+ * mln/convert/from_to.hxx,
+ * mln/core/faces_psite.hh,
+ * mln/core/image/ch_piter.hh,
+ * mln/core/image/dmorph/extended.hh,
+ * mln/core/image/dmorph/extension_fun.hh,
+ * mln/core/image/dmorph/extension_ima.hh,
+ * mln/core/image/dmorph/extension_val.hh,
+ * mln/core/image/dmorph/hexa.hh,
+ * mln/core/image/dmorph/sub_image_if.hh,
+ * mln/core/image/dmorph/transformed_image.hh,
+ * mln/core/image/flat_image.hh,
+ * mln/core/image/graph_elt_mixed_window.hh,
+ * mln/core/image/graph_elt_window.hh,
+ * mln/core/image/graph_elt_window_if.hh,
+ * mln/core/image/graph_window_piter.hh,
+ * mln/core/image/image2d.hh,
+ * mln/core/image/imorph/labeled_image.hh,
+ * mln/core/image/imorph/plain.hh,
+ * mln/core/image/imorph/safe.hh,
+ * mln/core/image/vmorph/cast_image.hh,
+ * mln/core/image/vmorph/fun_image.hh,
+ * mln/core/image/vmorph/thru_image.hh,
+ * mln/core/image/vmorph/thrubin_image.hh,
+ * mln/core/image/vmorph/violent_cast_image.hh,
+ * mln/core/internal/is_masked_impl_selector.hh,
+ * mln/core/internal/pixel_impl.hh,
+ * mln/core/routine/init.hxx,
+ * mln/core/site_set/attic/p_faces_piter.hh,
+ * mln/core/site_set/p_faces.hh,
+ * mln/core/site_set/p_if.hh,
+ * mln/core/site_set/p_transformed.hh,
+ * mln/debug/println.spe.hh,
+ * mln/io/pbm/save.hh,
+ * mln/io/pgm/save.hh,
+ * mln/morpho/attribute/height.hh,
+ * mln/morpho/attribute/sharpness.hh,
+ * mln/morpho/attribute/volume.hh,
+ * mln/morpho/tree/data.hh,
+ * mln/topo/center_only_iter.hh,
+ * mln/topo/face.hh,
+ * mln/topo/face_data.hh,
+ * mln/trait/image_from_grid.hh,
+ * mln/trait/images.hh,
+ * mln/value/float01.hh,
+ * mln/value/float01_f.hh,
+ * mln/value/graylevel.hh,
+ * mln/value/graylevel_f.hh,
+ * mln/value/internal/gray_.hh,
+ * mln/value/internal/gray_f.hh: Make forward declarations
+ consistent with declarations.
+
+ * mln/core/concept/box.hh,
+ * mln/core/dpoints_pixter.hh,
+ * mln/core/image/graph_window_if_piter.hh: Add explicit 'this'.
+
+ * mln/data/fill.hh: Make sure declarations are made before use.
+
+ * mln/geom/chamfer.hh,
+ * mln/morpho/tree/compute_attribute_image.hh: Do not set default
+ argument values in declaration.
+
+ * mln/accu/line.hh: Use def::coord.
+
+ * mln/algebra/vec.hh,
+ * mln/convert/from_to.hxx,
+ * mln/core/image/dmorph/sub_image.hh,
+ * mln/core/internal/site_set_iterator_base.hh,
+ * mln/core/site_set/box.hh,
+ * mln/core/site_set/p_array.hh,
+ * mln/core/site_set/p_edges.hh,
+ * mln/core/site_set/p_vertices.hh: Make forward declaration
+ consistent with declaration.
+
+ * mln/value/builtin/carrays.hh: Explicitly convert to char *.
+
+ * mln/convert/impl/from_double_to_value.hh,
+ * mln/convert/impl/from_int_to_value.hh,
+ * mln/core/point.hh,
+ * mln/opt/element.hh: Avoid unused variable warning.
+
+ * mln/convert/impl/from_image_to_site_set.hh: Remove useless local variable.
+
2010-12-10 Roland Levillain <roland(a)lrde.epita.fr>
Ensure non implemented reconstructions on sets abort at run time.
diff --git a/milena/mln/accu/internal/couple.hh b/milena/mln/accu/internal/couple.hh
index 43550fd..55c6cc4 100644
--- a/milena/mln/accu/internal/couple.hh
+++ b/milena/mln/accu/internal/couple.hh
@@ -53,10 +53,11 @@ namespace mln
///
/// \todo Check that, when T is not provided, A1 and A2 have the same value.
template <typename A1, typename A2, typename R, typename E>
- struct couple
- : base<R,E>,
- mlc_equal(mln_argument(A1), mln_argument(A2))::check_t
+ class couple
+ : public base<R,E>,
+ public mlc_equal(mln_argument(A1), mln_argument(A2))::check_t
{
+ public:
typedef mln_argument(A1) argument;
/// Manipulators.
diff --git a/milena/mln/accu/line.hh b/milena/mln/accu/line.hh
index c6022ef..75be6b3 100644
--- a/milena/mln/accu/line.hh
+++ b/milena/mln/accu/line.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.
//
@@ -63,8 +64,8 @@ namespace mln
typename I, typename O>
void
line(const Image<I>& input,
- const mln_site(I)& p_start, unsigned len,
- unsigned half_length,
+ const mln_site(I)& p_start, def::coord len,
+ def::coord half_length,
Image<O>& output);
@@ -98,7 +99,7 @@ namespace mln
mln_precondition(input.is_valid());
mln_precondition(output.is_valid());
}
-
+
} // end of namespace mln::accu::internal
@@ -107,7 +108,7 @@ namespace mln
namespace generic
{
-
+
template <typename Meta_Accu, unsigned Dir,
typename I, typename O>
void
@@ -212,8 +213,8 @@ namespace mln
typename I, typename O>
void
line_fastest(const Image<I>& input_,
- const mln_site(I)& p_start, unsigned len,
- unsigned half_length,
+ const mln_site(I)& p_start, def::coord len,
+ def::coord half_length,
Image<O>& output_)
{
typedef mln_site(I) P;
@@ -371,7 +372,7 @@ namespace mln
half_length,
output);
}
-
+
} // end of namespace mln::accu::internal
diff --git a/milena/mln/algebra/vec.hh b/milena/mln/algebra/vec.hh
index 22ebc02..dc526ec 100644
--- a/milena/mln/algebra/vec.hh
+++ b/milena/mln/algebra/vec.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2006, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2006, 2008, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -55,7 +56,7 @@ namespace mln
// Forward declarations.
namespace algebra {
template <unsigned n, typename T> class vec;
- template <unsigned d, typename C> class h_vec;
+ template <unsigned d, typename C> struct h_vec;
template <unsigned n, unsigned m, typename T> class mat;
}
diff --git a/milena/mln/border/duplicate.hh b/milena/mln/border/duplicate.hh
index 4d836cc..059dc77 100644
--- a/milena/mln/border/duplicate.hh
+++ b/milena/mln/border/duplicate.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.
//
@@ -227,6 +228,7 @@ namespace mln
void duplicate_dispatch_on(trait::image::speed::any,
const Image<I>& ima)
{
+ (void) ima;
// No-op.
}
diff --git a/milena/mln/border/mirror.hh b/milena/mln/border/mirror.hh
index 793ef21..adeb057 100644
--- a/milena/mln/border/mirror.hh
+++ b/milena/mln/border/mirror.hh
@@ -199,7 +199,8 @@ namespace mln
{
trace::warning("border::mirror for 3D image is not implemented,"
" so image borders have not been mirrored!");
- mln::internal::fixme();
+ (void) ima;
+ // FIXME write it!
}
diff --git a/milena/mln/convert/from_to.hxx b/milena/mln/convert/from_to.hxx
index 7891e9a..e99c3f6 100644
--- a/milena/mln/convert/from_to.hxx
+++ b/milena/mln/convert/from_to.hxx
@@ -63,13 +63,13 @@ namespace mln
template <typename D> class neighb;
template <typename D> class window;
- template <typename D, typename W> class w_window;
+ template <typename D, typename W> struct w_window;
template <typename T> struct image1d;
namespace algebra {
template <unsigned n, typename T> class vec;
- template <unsigned d, typename C> class h_vec;
+ template <unsigned d, typename C> struct h_vec;
}
namespace fun {
diff --git a/milena/mln/convert/impl/from_double_to_value.hh b/milena/mln/convert/impl/from_double_to_value.hh
index 757fb55..fd2b32a 100644
--- a/milena/mln/convert/impl/from_double_to_value.hh
+++ b/milena/mln/convert/impl/from_double_to_value.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -86,9 +87,11 @@ namespace mln
template <typename V>
inline
void
- from_double_to_value(const double& /* from */,
- Value<V>& /* to */)
+ from_double_to_value(const double& from,
+ Value<V>& to)
{
+ (void) from;
+ (void) to;
mlc_abort(V)::check();
}
diff --git a/milena/mln/convert/impl/from_float_to_value.hh b/milena/mln/convert/impl/from_float_to_value.hh
index b50173b..aa880d8 100644
--- a/milena/mln/convert/impl/from_float_to_value.hh
+++ b/milena/mln/convert/impl/from_float_to_value.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2010, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -87,9 +87,11 @@ namespace mln
template <typename V>
inline
void
- from_float_to_value(const float& /* from */,
- Value<V>& /* to */)
+ from_float_to_value(const float& from,
+ Value<V>& to)
{
+ (void) from;
+ (void) to;
mlc_abort(V)::check();
}
diff --git a/milena/mln/convert/impl/from_image_to_site_set.hh b/milena/mln/convert/impl/from_image_to_site_set.hh
index 2bdbcff..65873b6 100644
--- a/milena/mln/convert/impl/from_image_to_site_set.hh
+++ b/milena/mln/convert/impl/from_image_to_site_set.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.
//
@@ -107,7 +108,6 @@ namespace mln
const std::pair< mln_value(I), p_run<P> >&)
{
s.clear();
- mln_value(I) O = literal::zero;
mln_fwd_piter(I) p(input.domain());
p.start();
for (;;)
diff --git a/milena/mln/convert/impl/from_int_to_value.hh b/milena/mln/convert/impl/from_int_to_value.hh
index b17040b..c22dfb1 100644
--- a/milena/mln/convert/impl/from_int_to_value.hh
+++ b/milena/mln/convert/impl/from_int_to_value.hh
@@ -74,9 +74,11 @@ namespace mln
template <typename V>
inline
void
- from_int_to_value(const int& /* from */,
- Value<V>& /* to */)
+ from_int_to_value(const int& from,
+ Value<V>& to)
{
+ (void) from;
+ (void) to;
mlc_abort(V)::check();
}
diff --git a/milena/mln/convert/to_qimage.hh b/milena/mln/convert/to_qimage.hh
index cd00cdc..a7c8512 100755
--- a/milena/mln/convert/to_qimage.hh
+++ b/milena/mln/convert/to_qimage.hh
@@ -254,6 +254,8 @@ namespace mln
inline
QImage to_qimage_dispatch(const Image<I>& ima, V&)
{
+ (void) ima;
+
// Not supported yet!
mlc_abort(I)::check();
return QImage();
diff --git a/milena/mln/core/concept/box.hh b/milena/mln/core/concept/box.hh
index 849a8e4..26fe1b9 100644
--- a/milena/mln/core/concept/box.hh
+++ b/milena/mln/core/concept/box.hh
@@ -133,7 +133,8 @@ namespace mln
{
return
exact(this)->is_valid()
- ? 1 + exact(this)->pmax()[i] - exact(this)->pmin()[i]
+ ? static_cast<unsigned>(1 + exact(this)->pmax()[i]
+ - exact(this)->pmin()[i])
: 0u;
}
diff --git a/milena/mln/core/dpoints_pixter.hh b/milena/mln/core/dpoints_pixter.hh
index 8020fcc..eb19c2b 100644
--- a/milena/mln/core/dpoints_pixter.hh
+++ b/milena/mln/core/dpoints_pixter.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.
//
@@ -27,7 +28,7 @@
# define MLN_CORE_DPOINTS_PIXTER_HH
/// \file
-///
+///
/// \brief Definition of forward and backward mln::dpoint-based
/// iterators for pixels iterations.
///
@@ -51,7 +52,7 @@ namespace mln
/// \brief A generic forward iterator on the pixels of a
/// dpoint-based window or neighborhood.
- ///
+ ///
/// Parameter \c I is the image type.
template <typename I>
class dpoints_fwd_pixter
@@ -62,7 +63,7 @@ namespace mln
public:
/// \brief Constructor (using an image).
- ///
+ ///
/// \param[in] image The image to iterate over.
/// \param[in] dps An object (neighborhood or window) that can
/// provide a set of delta-points.
@@ -74,7 +75,7 @@ namespace mln
const Pref& p_ref);
/// \brief Constructor (using a generalized pixel).
- ///
+ ///
/// \param[in] pxl_ref Center (generalized) pixel to iterate around.
/// \param[in] dps An object (neighborhood or window) that can
/// provide a set of delta-points.
@@ -134,7 +135,7 @@ namespace mln
/// \brief A generic backward iterator on the pixels of a
/// dpoint-based window or neighborhood.
- ///
+ ///
/// Parameter \c I is the image type.
template <typename I>
class dpoints_bkd_pixter
@@ -145,7 +146,7 @@ namespace mln
public:
/// \brief Constructor (using an image).
- ///
+ ///
/// \param[in] image The image to iterate over.
/// \param[in] dps An object (neighborhood or window) that can
/// provide a set of delta-points.
@@ -157,7 +158,7 @@ namespace mln
const Pref& p_ref);
/// \brief Constructor (using a generalized pixel).
- ///
+ ///
/// \param[in] pxl_ref Center (generalized) pixel to iterate around.
/// \param[in] dps An object (neighborhood or window) that can
/// provide a set of delta-points.
@@ -257,7 +258,7 @@ namespace mln
{
mln_invariant(value_ref_ != 0 || p_ref_ != 0);
if (p_ref_)
- return image_(*p_ref_);
+ return this->image_(*p_ref_);
else
return **value_ref_;
}
@@ -286,7 +287,7 @@ namespace mln
if (is_valid())
{
if (p_ref_)
- this->value_ptr_ = & image_(*p_ref_) + *i_;
+ this->value_ptr_ = & this->image_(*p_ref_) + *i_;
else
this->value_ptr_ = * value_ref_ + *i_;
}
@@ -368,7 +369,7 @@ namespace mln
{
mln_invariant(value_ref_ != 0 || p_ref_ != 0);
if (p_ref_)
- return image_(*p_ref_);
+ return this->image_(*p_ref_);
else
return **value_ref_;
}
@@ -397,7 +398,7 @@ namespace mln
if (is_valid())
{
if (p_ref_)
- this->value_ptr_ = & image_(*p_ref_) + *i_;
+ this->value_ptr_ = & this->image_(*p_ref_) + *i_;
else
this->value_ptr_ = * value_ref_ + *i_;
}
diff --git a/milena/mln/core/faces_psite.hh b/milena/mln/core/faces_psite.hh
index d8d7573..9f72533 100644
--- a/milena/mln/core/faces_psite.hh
+++ b/milena/mln/core/faces_psite.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.
//
@@ -44,7 +45,7 @@
namespace mln
{
// Forward declaration.
- template <unsigned N, unsigned D, typename P> class p_faces;
+ template <unsigned N, unsigned D, typename P> struct p_faces;
/// \brief Point site associated to a mln::p_faces.
diff --git a/milena/mln/core/image/ch_piter.hh b/milena/mln/core/image/ch_piter.hh
index cacb5c7..b7c53f8 100644
--- a/milena/mln/core/image/ch_piter.hh
+++ b/milena/mln/core/image/ch_piter.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.
//
@@ -40,7 +41,7 @@ namespace mln
{
// Forward declaration.
- template <typename I, typename Fwd> struct ch_piter_image;
+ template <typename I, typename Fwd> class ch_piter_image;
namespace internal
diff --git a/milena/mln/core/image/complex_window_piter.hh b/milena/mln/core/image/complex_window_piter.hh
index 5f1daa5..ab6326c 100644
--- a/milena/mln/core/image/complex_window_piter.hh
+++ b/milena/mln/core/image/complex_window_piter.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2010, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -364,9 +364,10 @@ namespace mln
template <typename Pref>
inline
void
- complex_window_bkd_piter<I, G, W>::center_at_(const Pref& /* c */)
+ complex_window_bkd_piter<I, G, W>::center_at_(const Pref& c)
{
// FIXME: Argument C is not used here... Is this normal?
+ (void) c;
iter_.center_at(this->center().face());
}
diff --git a/milena/mln/core/image/dmorph/extended.hh b/milena/mln/core/image/dmorph/extended.hh
index 588f95a..791ab1d 100644
--- a/milena/mln/core/image/dmorph/extended.hh
+++ b/milena/mln/core/image/dmorph/extended.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.
//
@@ -43,7 +44,7 @@ namespace mln
// Forward declaration.
- template <typename I> class extended;
+ template <typename I> struct extended;
namespace internal
diff --git a/milena/mln/core/image/dmorph/extension_fun.hh b/milena/mln/core/image/dmorph/extension_fun.hh
index a8731c2..887fe02 100644
--- a/milena/mln/core/image/dmorph/extension_fun.hh
+++ b/milena/mln/core/image/dmorph/extension_fun.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.
//
@@ -42,7 +43,7 @@ namespace mln
{
// Forward declaration.
- template <typename I, typename F> struct extension_fun;
+ template <typename I, typename F> class extension_fun;
namespace internal
diff --git a/milena/mln/core/image/dmorph/extension_ima.hh b/milena/mln/core/image/dmorph/extension_ima.hh
index a0bc9ca..63ea0ed 100644
--- a/milena/mln/core/image/dmorph/extension_ima.hh
+++ b/milena/mln/core/image/dmorph/extension_ima.hh
@@ -1,5 +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.
//
@@ -40,7 +40,7 @@ namespace mln
{
// Forward declaration.
- template <typename I, typename J> struct extension_ima;
+ template <typename I, typename J> class extension_ima;
namespace internal
diff --git a/milena/mln/core/image/dmorph/extension_val.hh b/milena/mln/core/image/dmorph/extension_val.hh
index c104eba..c0ccbe0 100644
--- a/milena/mln/core/image/dmorph/extension_val.hh
+++ b/milena/mln/core/image/dmorph/extension_val.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.
//
@@ -41,7 +42,7 @@ namespace mln
{
// Forward declaration.
- template <typename I> struct extension_val;
+ template <typename I> class extension_val;
namespace internal
diff --git a/milena/mln/core/image/dmorph/hexa.hh b/milena/mln/core/image/dmorph/hexa.hh
index bfa3739..314cba1 100644
--- a/milena/mln/core/image/dmorph/hexa.hh
+++ b/milena/mln/core/image/dmorph/hexa.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.
//
@@ -42,7 +43,7 @@ namespace mln
{
// Forward declaration.
- template <typename I> class hexa;
+ template <typename I> struct hexa;
namespace internal
diff --git a/milena/mln/core/image/dmorph/sub_image.hh b/milena/mln/core/image/dmorph/sub_image.hh
index 7aef40c..088142d 100644
--- a/milena/mln/core/image/dmorph/sub_image.hh
+++ b/milena/mln/core/image/dmorph/sub_image.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -44,7 +44,7 @@ namespace mln
// Forward declaration.
- template <typename I, typename S> class sub_image;
+ template <typename I, typename S> struct sub_image;
namespace internal
diff --git a/milena/mln/core/image/dmorph/sub_image_if.hh b/milena/mln/core/image/dmorph/sub_image_if.hh
index 547366a..2cc9661 100644
--- a/milena/mln/core/image/dmorph/sub_image_if.hh
+++ b/milena/mln/core/image/dmorph/sub_image_if.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.
//
@@ -46,7 +47,7 @@ namespace mln
// Forward declaration.
- template <typename I, typename S> class sub_image_if;
+ template <typename I, typename S> struct sub_image_if;
namespace internal
@@ -168,7 +169,7 @@ namespace mln
{
typedef fun::p2b::has<I> F;
F f(ima);
- s_ = p_if<S,F>(s, f);
+ s_ = p_if<S,F>(s, f);
}
} // end of namespace mln::internal
diff --git a/milena/mln/core/image/dmorph/transformed_image.hh b/milena/mln/core/image/dmorph/transformed_image.hh
index 5feb3b8..0fb4509 100644
--- a/milena/mln/core/image/dmorph/transformed_image.hh
+++ b/milena/mln/core/image/dmorph/transformed_image.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.
//
@@ -42,7 +43,7 @@ namespace mln
// Forward declaration.
- template <typename I, typename F> class transformed_image;
+ template <typename I, typename F> struct transformed_image;
namespace internal
@@ -221,7 +222,7 @@ namespace mln
mln_precondition(this->delegatee_()->has(this->data_->f_(p)));
return this->delegatee_()->operator()(this->data_->f_(p));
}
-
+
template <typename I, typename F>
inline
mln_morpher_lvalue(I)
diff --git a/milena/mln/core/image/flat_image.hh b/milena/mln/core/image/flat_image.hh
index 10d6211..6647766 100644
--- a/milena/mln/core/image/flat_image.hh
+++ b/milena/mln/core/image/flat_image.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.
//
@@ -41,7 +42,7 @@ namespace mln
// Forward declaration.
- template <typename T, typename S> class flat_image;
+ template <typename T, typename S> struct flat_image;
namespace internal
diff --git a/milena/mln/core/image/graph_elt_mixed_window.hh b/milena/mln/core/image/graph_elt_mixed_window.hh
index 6ece878..046843a 100644
--- a/milena/mln/core/image/graph_elt_mixed_window.hh
+++ b/milena/mln/core/image/graph_elt_mixed_window.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.
//
@@ -42,8 +43,8 @@ namespace mln
/// Forward declaration
template <typename G, typename S, typename S2> class graph_elt_mixed_window;
- template <typename G, typename F> struct p_edges;
- template <typename G, typename F> struct p_vertices;
+ template <typename G, typename F> class p_edges;
+ template <typename G, typename F> class p_vertices;
namespace util
{
template <typename G> class edge;
diff --git a/milena/mln/core/image/graph_elt_window.hh b/milena/mln/core/image/graph_elt_window.hh
index b39c44e..86cb147 100644
--- a/milena/mln/core/image/graph_elt_window.hh
+++ b/milena/mln/core/image/graph_elt_window.hh
@@ -42,8 +42,8 @@ namespace mln
/// Forward declaration
template <typename G, typename S> class graph_elt_window;
- template <typename G, typename F> struct p_edges;
- template <typename G, typename F> struct p_vertices;
+ template <typename G, typename F> class p_edges;
+ template <typename G, typename F> class p_vertices;
namespace util
{
template <typename G> class edge;
diff --git a/milena/mln/core/image/graph_elt_window_if.hh b/milena/mln/core/image/graph_elt_window_if.hh
index 131e4d2..920e524 100644
--- a/milena/mln/core/image/graph_elt_window_if.hh
+++ b/milena/mln/core/image/graph_elt_window_if.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,8 +45,8 @@ namespace mln
/// Forward declaration
template <typename G, typename S, typename I> class graph_elt_window_if;
- template <typename G, typename F> struct p_edges;
- template <typename G, typename F> struct p_vertices;
+ template <typename G, typename F> class p_edges;
+ template <typename G, typename F> class p_vertices;
namespace internal
diff --git a/milena/mln/core/image/graph_window_if_piter.hh b/milena/mln/core/image/graph_window_if_piter.hh
index d872853..068fbdb 100644
--- a/milena/mln/core/image/graph_window_if_piter.hh
+++ b/milena/mln/core/image/graph_window_if_piter.hh
@@ -167,7 +167,7 @@ namespace mln
graph_window_if_piter<S,W,I>::do_start_()
{
iter_.start();
- while (iter_.is_valid() && is_masked(this->c_->element(), iter_))
+ while (iter_.is_valid() && this->is_masked(this->c_->element(), iter_))
iter_.next();
}
@@ -177,7 +177,7 @@ namespace mln
graph_window_if_piter<S,W,I>::do_next_()
{
iter_.next();
- while (iter_.is_valid() && is_masked(this->c_->element(), iter_))
+ while (iter_.is_valid() && this->is_masked(this->c_->element(), iter_))
iter_.next();
}
diff --git a/milena/mln/core/image/graph_window_piter.hh b/milena/mln/core/image/graph_window_piter.hh
index 1891925..f6e8d08 100644
--- a/milena/mln/core/image/graph_window_piter.hh
+++ b/milena/mln/core/image/graph_window_piter.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -209,8 +209,8 @@ namespace mln
using super_impl_::do_start_;
- friend class internal::impl_selector<typename W::center_t, mln_psite(W),
- graph_window_piter<S,W,I> > ;
+ friend struct internal::impl_selector<typename W::center_t, mln_psite(W),
+ graph_window_piter<S,W,I> > ;
private:
I iter_;
diff --git a/milena/mln/core/image/image2d.hh b/milena/mln/core/image/image2d.hh
index cdb460a..bc49561 100644
--- a/milena/mln/core/image/image2d.hh
+++ b/milena/mln/core/image/image2d.hh
@@ -59,7 +59,7 @@ namespace mln
{
// Forward declaration.
- template <typename T> struct image2d;
+ template <typename T> class image2d;
namespace internal
diff --git a/milena/mln/core/image/imorph/labeled_image.hh b/milena/mln/core/image/imorph/labeled_image.hh
index c0fcde2..c99f386 100644
--- a/milena/mln/core/image/imorph/labeled_image.hh
+++ b/milena/mln/core/image/imorph/labeled_image.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -50,7 +51,7 @@ namespace mln
{
// Forward declarations.
- template <typename I> struct labeled_image;
+ template <typename I> class labeled_image;
namespace accu
{
template <typename T> struct nil;
diff --git a/milena/mln/core/image/imorph/plain.hh b/milena/mln/core/image/imorph/plain.hh
index e09bfa5..66c9ebd 100644
--- a/milena/mln/core/image/imorph/plain.hh
+++ b/milena/mln/core/image/imorph/plain.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.
//
@@ -40,7 +41,7 @@ namespace mln
{
// Forward declaration.
- template <typename I> struct plain;
+ template <typename I> class plain;
namespace internal
diff --git a/milena/mln/core/image/imorph/safe.hh b/milena/mln/core/image/imorph/safe.hh
index c053645..c516ef4 100644
--- a/milena/mln/core/image/imorph/safe.hh
+++ b/milena/mln/core/image/imorph/safe.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,7 +42,7 @@ namespace mln
{
// Forward declaration.
- template <typename I> struct safe_image;
+ template <typename I> class safe_image;
namespace internal
diff --git a/milena/mln/core/image/vmorph/cast_image.hh b/milena/mln/core/image/vmorph/cast_image.hh
index bed4fbf..0226ad0 100644
--- a/milena/mln/core/image/vmorph/cast_image.hh
+++ b/milena/mln/core/image/vmorph/cast_image.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2007, 2009, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -42,7 +43,7 @@ namespace mln
{
// Fwd decl.
- template <typename T, typename I> class cast_image_;
+ template <typename T, typename I> struct cast_image_;
namespace internal
diff --git a/milena/mln/core/image/vmorph/fun_image.hh b/milena/mln/core/image/vmorph/fun_image.hh
index 30ac44e..24d7e37 100644
--- a/milena/mln/core/image/vmorph/fun_image.hh
+++ b/milena/mln/core/image/vmorph/fun_image.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -46,7 +46,7 @@ namespace mln
{
// Forward declaration.
- template <typename F, typename I> class fun_image;
+ template <typename F, typename I> struct fun_image;
namespace internal
{
diff --git a/milena/mln/core/image/vmorph/thru_image.hh b/milena/mln/core/image/vmorph/thru_image.hh
index 2691d38..e829b27 100644
--- a/milena/mln/core/image/vmorph/thru_image.hh
+++ b/milena/mln/core/image/vmorph/thru_image.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -43,12 +43,12 @@ namespace mln
{
// Forward declaration.
- template <typename I, typename F> struct thru_image;
+ template <typename I, typename F> class thru_image;
namespace internal
{
- template <typename I, typename F> struct thru_image_write;
- template <typename I, typename F> struct thru_image_read;
+ template <typename I, typename F> class thru_image_write;
+ template <typename I, typename F> class thru_image_read;
/// Find correct implementation
template <typename I, typename F>
diff --git a/milena/mln/core/image/vmorph/thrubin_image.hh b/milena/mln/core/image/vmorph/thrubin_image.hh
index 9d5a2f3..0195d1a 100644
--- a/milena/mln/core/image/vmorph/thrubin_image.hh
+++ b/milena/mln/core/image/vmorph/thrubin_image.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2008, 2009 EPITA Research and Development
+// Copyright (C) 2007, 2008, 2009, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -42,7 +42,7 @@ namespace mln
{
// Forward declaration.
- template <typename I1, typename I2, typename F> struct thrubin_image;
+ template <typename I1, typename I2, typename F> class thrubin_image;
namespace internal
{
diff --git a/milena/mln/core/image/vmorph/violent_cast_image.hh b/milena/mln/core/image/vmorph/violent_cast_image.hh
index 8ff9a1e..0ce4669 100644
--- a/milena/mln/core/image/vmorph/violent_cast_image.hh
+++ b/milena/mln/core/image/vmorph/violent_cast_image.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.
//
@@ -40,7 +41,7 @@ namespace mln
{
// Fwd decl.
- template <typename T, typename I> class violent_cast_image;
+ template <typename T, typename I> struct violent_cast_image;
namespace internal
{
diff --git a/milena/mln/core/internal/is_masked_impl_selector.hh b/milena/mln/core/internal/is_masked_impl_selector.hh
index 56e4ed3..41d941b 100644
--- a/milena/mln/core/internal/is_masked_impl_selector.hh
+++ b/milena/mln/core/internal/is_masked_impl_selector.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.
//
@@ -37,8 +38,8 @@ namespace mln
{
// Forward declarations.
- template <typename G, typename F> struct p_edges;
- template <typename G, typename F> struct p_vertices;
+ template <typename G, typename F> class p_edges;
+ template <typename G, typename F> class p_vertices;
diff --git a/milena/mln/core/internal/pixel_impl.hh b/milena/mln/core/internal/pixel_impl.hh
index 4e30f4c..d0549b1 100644
--- a/milena/mln/core/internal/pixel_impl.hh
+++ b/milena/mln/core/internal/pixel_impl.hh
@@ -47,7 +47,7 @@ namespace mln
{
// We indeed have to handle the couple of cases when I is fastest
- // or is not. Justification: mln::pixel derives from pixel_impl_
+ // or is not. Justification: mln::pixel derives from pixel_impl_
// and is a general purpose pixel class; it can be used on any
// image whatever it is a fastest one or not.
diff --git a/milena/mln/core/internal/site_set_iterator_base.hh b/milena/mln/core/internal/site_set_iterator_base.hh
index 66c94d5..71c3fe3 100644
--- a/milena/mln/core/internal/site_set_iterator_base.hh
+++ b/milena/mln/core/internal/site_set_iterator_base.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.
//
@@ -114,8 +115,9 @@ namespace mln
template <typename S, typename E>
inline
void
- site_set_iterator_base<S, E>::change_target_(const S& /* s */)
+ site_set_iterator_base<S, E>::change_target_(const S& s)
{
+ (void) s;
// Empty by default.
}
diff --git a/milena/mln/core/point.hh b/milena/mln/core/point.hh
index a912fac..d415cf8 100644
--- a/milena/mln/core/point.hh
+++ b/milena/mln/core/point.hh
@@ -677,8 +677,9 @@ namespace mln
template <typename C>
inline
const util::yes&
- cut_(const point<grid::tick,C>& /* p */)
+ cut_(const point<grid::tick,C>& p)
{
+ (void) p;
util::yes* the_;
return *the_;
}
diff --git a/milena/mln/core/routine/init.hxx b/milena/mln/core/routine/init.hxx
index 3a47684..5cc6d12 100644
--- a/milena/mln/core/routine/init.hxx
+++ b/milena/mln/core/routine/init.hxx
@@ -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.
//
@@ -36,9 +37,9 @@ namespace mln
// Forward declarations.
namespace fun { namespace i2v { template <typename T> class array; } }
- namespace pw { namespace internal { template <typename F, typename S, typename E> class image_base; } }
+ namespace pw { namespace internal { template <typename F, typename S, typename E> struct image_base; } }
namespace pw { template <typename F, typename S> class image; }
- template <typename I, typename F> class image_if;
+ template <typename I, typename F> struct image_if;
diff --git a/milena/mln/core/site_set/attic/p_faces_piter.hh b/milena/mln/core/site_set/attic/p_faces_piter.hh
index da4b24a..148872c 100644
--- a/milena/mln/core/site_set/attic/p_faces_piter.hh
+++ b/milena/mln/core/site_set/attic/p_faces_piter.hh
@@ -1,4 +1,4 @@
-// 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.
//
@@ -41,7 +41,7 @@ namespace mln
{
// Forward declarations.
- template <unsigned N, unsigned D, typename P> class p_faces;
+ template <unsigned N, unsigned D, typename P> struct p_faces;
template <unsigned N, unsigned D> class faces_fwd_iter_;
template <unsigned N, unsigned D> class faces_bkd_iter_;
diff --git a/milena/mln/core/site_set/p_array.hh b/milena/mln/core/site_set/p_array.hh
index 6a7a236..0ca810e 100644
--- a/milena/mln/core/site_set/p_array.hh
+++ b/milena/mln/core/site_set/p_array.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
diff --git a/milena/mln/core/site_set/p_edges.hh b/milena/mln/core/site_set/p_edges.hh
index 4c58696..b4f1d27 100644
--- a/milena/mln/core/site_set/p_edges.hh
+++ b/milena/mln/core/site_set/p_edges.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.
//
@@ -45,7 +46,7 @@ namespace mln
{
// Forward declaration.
- template <typename G, typename F> struct p_edges;
+ template <typename G, typename F> class p_edges;
namespace trait
diff --git a/milena/mln/core/site_set/p_faces.hh b/milena/mln/core/site_set/p_faces.hh
index a308a61..09fa2fc 100644
--- a/milena/mln/core/site_set/p_faces.hh
+++ b/milena/mln/core/site_set/p_faces.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.
//
@@ -49,7 +50,7 @@ namespace mln
{
// Forward declarations.
- template <unsigned N, unsigned D, typename P> class p_faces;
+ template <unsigned N, unsigned D, typename P> struct p_faces;
template <unsigned N, unsigned D, typename P> class p_faces_fwd_piter_;
template <unsigned N, unsigned D, typename P> class p_faces_bkd_piter_;
diff --git a/milena/mln/core/site_set/p_if.hh b/milena/mln/core/site_set/p_if.hh
index 4381e86..06ae5c6 100644
--- a/milena/mln/core/site_set/p_if.hh
+++ b/milena/mln/core/site_set/p_if.hh
@@ -41,7 +41,7 @@ namespace mln
{
// Forward declarations.
- template <typename S, typename F> struct p_if;
+ template <typename S, typename F> class p_if;
template <typename Pi, typename S, typename F> struct p_if_piter_;
@@ -114,7 +114,7 @@ namespace mln
bool is_valid() const;
- /// Test if \p p belongs to the subset.
+ /// Test if \p p belongs to the subset.
bool has(const psite& p) const;
/// Give the primary overset.
@@ -184,7 +184,7 @@ namespace mln
{
return f_(p);
}
-
+
template <typename S, typename F>
inline
p_if<S,F>::p_if(const S& s, const F& f)
diff --git a/milena/mln/core/site_set/p_transformed.hh b/milena/mln/core/site_set/p_transformed.hh
index ff0638d..2b597a5 100644
--- a/milena/mln/core/site_set/p_transformed.hh
+++ b/milena/mln/core/site_set/p_transformed.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.
//
@@ -39,7 +40,7 @@ namespace mln
{
// Forward declarations.
- template <typename S, typename F> struct p_transformed;
+ template <typename S, typename F> class p_transformed;
template <typename Pi, typename S, typename F> struct p_transformed_piter;
diff --git a/milena/mln/core/site_set/p_vertices.hh b/milena/mln/core/site_set/p_vertices.hh
index c8497c0..6efa1a9 100644
--- a/milena/mln/core/site_set/p_vertices.hh
+++ b/milena/mln/core/site_set/p_vertices.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory
+// Copyright (C) 2008, 2009, 2011 EPITA Research and Development Laboratory
// (LRDE)
//
// This file is part of Olena.
@@ -44,7 +44,7 @@ namespace mln
{
// Forward declaration.
- template <typename G, typename F> struct p_vertices;
+ template <typename G, typename F> class p_vertices;
namespace trait
diff --git a/milena/mln/data/fill.hh b/milena/mln/data/fill.hh
index 61e7055..b223a36 100644
--- a/milena/mln/data/fill.hh
+++ b/milena/mln/data/fill.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
diff --git a/milena/mln/debug/println.spe.hh b/milena/mln/debug/println.spe.hh
index 257ddf4..856c635 100644
--- a/milena/mln/debug/println.spe.hh
+++ b/milena/mln/debug/println.spe.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.
//
@@ -53,7 +54,7 @@
namespace mln
{
// Forward declaration.
- template <typename I> class hexa;
+ template <typename I> struct hexa;
namespace debug
{
diff --git a/milena/mln/extension/fill.hh b/milena/mln/extension/fill.hh
index caed937..4375a24 100644
--- a/milena/mln/extension/fill.hh
+++ b/milena/mln/extension/fill.hh
@@ -104,6 +104,8 @@ namespace mln
mln::trait::image::ext_domain::any,
I& ima, const mln_value(I)& val)
{
+ (void) ima;
+ (void) val;
// Oops...
}
diff --git a/milena/mln/fun/spe/binary.hh b/milena/mln/fun/spe/binary.hh
index eaeaa73..cde465d 100644
--- a/milena/mln/fun/spe/binary.hh
+++ b/milena/mln/fun/spe/binary.hh
@@ -71,6 +71,7 @@ namespace mln
template <typename U>
void init(const U& value)
{
+ (void) value;
}
};
diff --git a/milena/mln/fun/spe/unary.hh b/milena/mln/fun/spe/unary.hh
index 0c5a949..47d7f41 100644
--- a/milena/mln/fun/spe/unary.hh
+++ b/milena/mln/fun/spe/unary.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.
//
@@ -175,6 +176,7 @@ namespace mln
template <typename U>
void init(const U& value)
{
+ (void) value;
};
};
diff --git a/milena/mln/fun/x2x/rotation.hh b/milena/mln/fun/x2x/rotation.hh
index 3cd54f1..ed48ebf 100644
--- a/milena/mln/fun/x2x/rotation.hh
+++ b/milena/mln/fun/x2x/rotation.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -66,6 +66,9 @@ namespace mln
algebra::h_mat<n, C>
get_rot_h_mat(const C alpha_, const algebra::vec<n,C>& axis_)
{
+ (void) alpha_;
+ (void) axis_;
+
std::cerr
<< __FILE__ << ":" << __LINE__ << ": error:"
<< " generic mln::fun::x2x::internal::get_rot_h_mat<n, C>"
diff --git a/milena/mln/geom/chamfer.hh b/milena/mln/geom/chamfer.hh
index 9603605..8fb6cc8 100644
--- a/milena/mln/geom/chamfer.hh
+++ b/milena/mln/geom/chamfer.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.
//
@@ -111,7 +112,7 @@ namespace mln
template <typename I, typename W>
mln_ch_value(I, unsigned)
chamfer(const Image<I>& input_, const W& w_win_,
- unsigned max = mln_max(unsigned))
+ unsigned max)
{
trace::entering("mln::geom::chamfer");
// FIXME: check that input_ is binary.
diff --git a/milena/mln/io/fld/max_components.hh b/milena/mln/io/fld/max_components.hh
index d57310a..ceb4d27 100644
--- a/milena/mln/io/fld/max_components.hh
+++ b/milena/mln/io/fld/max_components.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2010, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -74,6 +74,7 @@ namespace mln
inline
unsigned max_component(const algebra::vec<n, V>& v)
{
+ (void) v;
return unsigned(mln_max(V));
}
diff --git a/milena/mln/io/pbm/save.hh b/milena/mln/io/pbm/save.hh
index 689b492..a9b7604 100644
--- a/milena/mln/io/pbm/save.hh
+++ b/milena/mln/io/pbm/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,
+// 2011 EPITA Research and Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -46,8 +47,8 @@ namespace mln
// Fwd decl.
namespace value {
- template <unsigned> class int_u;
- template <unsigned> class int_u_sat;
+ template <unsigned> struct int_u;
+ template <unsigned> struct int_u_sat;
}
diff --git a/milena/mln/io/pgm/save.hh b/milena/mln/io/pgm/save.hh
index 6438b30..c5ba0af 100644
--- a/milena/mln/io/pgm/save.hh
+++ b/milena/mln/io/pgm/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,
+// 2011 EPITA Research and Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -50,8 +51,8 @@ namespace mln
// Fwd decl.
namespace value {
- template <unsigned> class int_u;
- template <unsigned> class int_u_sat;
+ template <unsigned> struct int_u;
+ template <unsigned> struct int_u_sat;
}
diff --git a/milena/mln/labeling/flat_zones.hh b/milena/mln/labeling/flat_zones.hh
index 431bd86..6c406d5 100644
--- a/milena/mln/labeling/flat_zones.hh
+++ b/milena/mln/labeling/flat_zones.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2007, 2008, 2009, 2010 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2007, 2008, 2009, 2010, 2011 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -82,9 +82,9 @@ namespace mln
void do_no_union(const P&, const P&) {}
void init_attr(const P&) {}
void merge_attr(const P&, const P&) {}
- void set_new_label(const P& p, const L& l){}
- void set_label(const P& p, const L& l) {}
- void finalize() {}
+ void set_new_label(const P&, const L&){}
+ void set_label(const P&, const L&) {}
+ void finalize() {}
// Fastest implementation.
diff --git a/milena/mln/labeling/value.hh b/milena/mln/labeling/value.hh
index 7e1608c..fdd47ef 100644
--- a/milena/mln/labeling/value.hh
+++ b/milena/mln/labeling/value.hh
@@ -111,8 +111,8 @@ namespace mln
void do_no_union(const P&, const P&) {}
void init_attr(const P&) {}
void merge_attr(const P&, const P&) {}
- void set_new_label(const P& p, const L& l){}
- void set_label(const P& p, const L& l) {}
+ void set_new_label(const P&, const L&) {}
+ void set_label(const P&, const L&) {}
void finalize() {}
// Fastest implementation
diff --git a/milena/mln/morpho/attribute/height.hh b/milena/mln/morpho/attribute/height.hh
index 4e8f234..3d47ac0 100644
--- a/milena/mln/morpho/attribute/height.hh
+++ b/milena/mln/morpho/attribute/height.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,7 @@ namespace mln
// Forward declaration.
namespace morpho {
namespace attribute {
- template <typename I> class height;
+ template <typename I> struct height;
}
}
diff --git a/milena/mln/morpho/attribute/sharpness.hh b/milena/mln/morpho/attribute/sharpness.hh
index 9548b4d..866b1ab 100644
--- a/milena/mln/morpho/attribute/sharpness.hh
+++ b/milena/mln/morpho/attribute/sharpness.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,7 @@ namespace mln
namespace morpho {
namespace attribute {
template <typename I>
- class sharpness;
+ struct sharpness;
}
}
diff --git a/milena/mln/morpho/attribute/volume.hh b/milena/mln/morpho/attribute/volume.hh
index 94dc977..2ac66c6 100644
--- a/milena/mln/morpho/attribute/volume.hh
+++ b/milena/mln/morpho/attribute/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.
//
@@ -42,7 +43,7 @@ namespace mln
// Forward declaration.
namespace morpho {
namespace attribute {
- template <typename I> class volume;
+ template <typename I> struct volume;
}
}
diff --git a/milena/mln/morpho/reconstruction/by_dilation/union_find.hh b/milena/mln/morpho/reconstruction/by_dilation/union_find.hh
index 59f15e4..35ec2ae 100644
--- a/milena/mln/morpho/reconstruction/by_dilation/union_find.hh
+++ b/milena/mln/morpho/reconstruction/by_dilation/union_find.hh
@@ -92,7 +92,7 @@ namespace mln
}
-
+
template <typename Par>
inline
mln_site(Par) find_root(Par& parent, mln_site(Par) x)
@@ -111,10 +111,10 @@ namespace mln
namespace impl
{
-
+
namespace generic
{
-
+
template <typename I, typename J, typename N>
inline
mln_concrete(I)
@@ -128,8 +128,8 @@ namespace mln
const N& nbh = exact(nbh_);
internal::union_find_tests(f, g, nbh);
-
-
+
+
typedef mln_site(I) P;
typedef mln_value(I) V;
@@ -184,7 +184,7 @@ namespace mln
deja_vu(p) = true;
}
}
-
+
// Second pass.
{
for (int i = s.nsites() - 1; i >= 0; --i)
@@ -207,7 +207,7 @@ namespace mln
return output;
}
-
+
} // end of namespace mln::morpho::reconstruction::by_dilation::impl::generic
} // end of namespace mln::morpho::reconstruction::by_dilation::impl
@@ -225,6 +225,10 @@ namespace mln
const Image<I>& f, const Image<J>& g,
const Neighborhood<N>& nbh)
{
+ (void) f;
+ (void) g;
+ (void) nbh;
+
// FIXME: Not yet implemented.
std::cerr
<< __FILE__ << ":" << __LINE__ << ": error:\n"
diff --git a/milena/mln/morpho/tree/compute_attribute_image.hh b/milena/mln/morpho/tree/compute_attribute_image.hh
index 9126bf1..e028084 100644
--- a/milena/mln/morpho/tree/compute_attribute_image.hh
+++ b/milena/mln/morpho/tree/compute_attribute_image.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.
//
@@ -92,7 +93,7 @@ namespace mln
** \param[in] values Value image.
** \param[out] accu_image Optional argument used to store image.
**
- ** \return
+ ** \return
*/
template <typename A, typename T, typename V>
mln_ch_value(typename T::function, mln_result(A))
@@ -215,7 +216,7 @@ namespace mln
mln_ch_value(typename T::function, mln_result(A))
compute_attribute_image(const Accumulator<A>& a_,
const T& t,
- mln_ch_value(typename T::function, A)* accu_image = 0)
+ mln_ch_value(typename T::function, A)* accu_image)
{
trace::entering("morpho::tree::compute_attribute_image");
@@ -233,7 +234,7 @@ namespace mln
compute_attribute_image_from(const Accumulator<A>& a_,
const T& t,
const Image<V>& values,
- mln_ch_value(typename T::function, A)* accu_image = 0)
+ mln_ch_value(typename T::function, A)* accu_image)
{
trace::entering("morpho::tree::compute_attribute_image_from");
diff --git a/milena/mln/morpho/tree/data.hh b/milena/mln/morpho/tree/data.hh
index 1a0c404..3083759 100644
--- a/milena/mln/morpho/tree/data.hh
+++ b/milena/mln/morpho/tree/data.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2010, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -93,7 +93,7 @@ namespace mln
template <typename T> struct dn_leaf_piter;
/// Depth1st tree traversal iterator.
- template <typename T> struct depth1st_piter;
+ template <typename T> class depth1st_piter;
template <typename I, typename S>
diff --git a/milena/mln/opt/element.hh b/milena/mln/opt/element.hh
index 0aabf6b..dc1a415 100644
--- a/milena/mln/opt/element.hh
+++ b/milena/mln/opt/element.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2009, 2010, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -60,8 +61,9 @@ namespace mln
template <typename I>
inline
mln_rvalue(I) element_impl(trait::image::category::domain_morpher,
- const Image<I>& ima, unsigned /* index */)
+ const Image<I>& ima, unsigned index)
{
+ (void) index;
return element(*exact(ima).delegatee_());
}
@@ -82,8 +84,9 @@ namespace mln
template <typename I>
inline
mln_lvalue(I) element_impl(trait::image::category::domain_morpher,
- Image<I>& ima, unsigned /* index */)
+ Image<I>& ima, unsigned index)
{
+ (void) index;
return element(*exact(ima).delegatee_());
}
diff --git a/milena/mln/registration/get_rot.hh b/milena/mln/registration/get_rot.hh
index e1babf1..28667cb 100644
--- a/milena/mln/registration/get_rot.hh
+++ b/milena/mln/registration/get_rot.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.
//
@@ -61,6 +62,12 @@ namespace mln
{
assert(0 && "TODO");
+ (void) c;
+ (void) mu_c;
+ (void) ck;
+ (void) map;
+ (void) mu_xk;
+
//////SLOW VERSION
//// V1
diff --git a/milena/mln/subsampling/antialiased.hh b/milena/mln/subsampling/antialiased.hh
index cb6bbca..66bdd33 100644
--- a/milena/mln/subsampling/antialiased.hh
+++ b/milena/mln/subsampling/antialiased.hh
@@ -118,6 +118,11 @@ namespace mln
const mln_domain(I)& output_domain,
unsigned border_thickness)
{
+ (void) input_;
+ (void) factor;
+ (void) output_domain;
+ (void) border_thickness;
+
// To be written...
mlc_abort(I)::check();
@@ -314,6 +319,11 @@ namespace mln
const mln_domain(I)& output_domain,
unsigned border_thickness)
{
+ (void) input;
+ (void) factor;
+ (void) output_domain;
+ (void) border_thickness;
+
// Not implemented yet.
mlc_abort(I)::check();
}
diff --git a/milena/mln/subsampling/gaussian_subsampling.hh b/milena/mln/subsampling/gaussian_subsampling.hh
index 4e8f24e..8855b9c 100644
--- a/milena/mln/subsampling/gaussian_subsampling.hh
+++ b/milena/mln/subsampling/gaussian_subsampling.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.
//
@@ -66,6 +67,8 @@ namespace mln
trace::entering("subsampling::gaussian_subsampling");
mln_precondition(exact(input).is_valid());
+ (void) sigma;
+
mln_concrete(I) temp(exact(input).domain());
mln_concrete(I) output(geom::nrows(input) / gap,
geom::ncols(input) / gap); //FIXME : image2d only
diff --git a/milena/mln/topo/center_only_iter.hh b/milena/mln/topo/center_only_iter.hh
index ff072aa..9d52099 100644
--- a/milena/mln/topo/center_only_iter.hh
+++ b/milena/mln/topo/center_only_iter.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.
//
@@ -44,7 +45,7 @@ namespace mln
{
// Forward declaration.
- template <unsigned D> class face;
+ template <unsigned D> struct face;
/*----------------------------.
@@ -63,7 +64,7 @@ namespace mln
as well, since it always contains a single element, the
center/reference face (and the traversal order is
meaningless).
-
+
This iterator is essentially used to implement other iterators.
\see mln::topo::centered_iter_adapter
\see mln::complex_lower_window
diff --git a/milena/mln/topo/face.hh b/milena/mln/topo/face.hh
index da95019..c9b58b0 100644
--- a/milena/mln/topo/face.hh
+++ b/milena/mln/topo/face.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2010, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -49,7 +49,7 @@ namespace mln
template <unsigned D> class complex;
template <unsigned N, unsigned D> class n_face;
template <unsigned N, unsigned D> class face_data;
- template <unsigned N> class algebraic_face;
+ template <unsigned N> struct algebraic_face;
/*-------.
diff --git a/milena/mln/topo/face_data.hh b/milena/mln/topo/face_data.hh
index de8028b..1622e51 100644
--- a/milena/mln/topo/face_data.hh
+++ b/milena/mln/topo/face_data.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008, 2009, 2010 EPITA Research and Development
+// Copyright (C) 2008, 2009, 2010, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -51,7 +51,7 @@ namespace mln
{
template <unsigned N, unsigned D> struct lower_dim_faces_set_mixin;
template <unsigned N, unsigned D> struct higher_dim_faces_set_mixin;
-
+
template <unsigned N, unsigned D>
struct lower_dim_adj_faces_if_dim_matches_;
template <unsigned N, unsigned D>
diff --git a/milena/mln/topo/skeleton/is_simple_point.hh b/milena/mln/topo/skeleton/is_simple_point.hh
index 9fa665c..d852c35 100644
--- a/milena/mln/topo/skeleton/is_simple_point.hh
+++ b/milena/mln/topo/skeleton/is_simple_point.hh
@@ -209,7 +209,6 @@ namespace mln
return internal::nb_connexity_c8[res];
default:
mln_assertion(0);
-
}
return 0;
}
diff --git a/milena/mln/trait/image_from_grid.hh b/milena/mln/trait/image_from_grid.hh
index eae5e4e..38fc538 100644
--- a/milena/mln/trait/image_from_grid.hh
+++ b/milena/mln/trait/image_from_grid.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,7 +48,7 @@ namespace mln
// Fwd decls.
template <typename T> struct image1d;
- template <typename T> struct image2d;
+ template <typename T> class image2d;
template <typename T> struct image3d;
diff --git a/milena/mln/trait/images.hh b/milena/mln/trait/images.hh
index 409d773..d8e80b0 100644
--- a/milena/mln/trait/images.hh
+++ b/milena/mln/trait/images.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.
//
@@ -110,16 +111,16 @@ namespace mln
// Primitive types.
template <typename T> struct image1d;
- template <typename T> struct image2d;
+ template <typename T> class image2d;
template <typename T> struct image3d;
namespace pw { template <typename F, typename S> class image; }
// Morphers.
template <typename I, typename F> struct image_if_base;
- template <typename I, typename D> class decorated_image;
- template <typename I, typename S> class sub_image;
+ template <typename I, typename D> struct decorated_image;
+ template <typename I, typename S> struct sub_image;
template <typename I> class safe_image;
- template <typename T, typename I> class cast_image_;
+ template <typename T, typename I> struct cast_image_;
namespace value { template <unsigned n, typename I> struct stack_image; }
diff --git a/milena/mln/transform/influence_zone_geodesic.hh b/milena/mln/transform/influence_zone_geodesic.hh
index b9a763f..64d7702 100644
--- a/milena/mln/transform/influence_zone_geodesic.hh
+++ b/milena/mln/transform/influence_zone_geodesic.hh
@@ -1,5 +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.
//
@@ -87,6 +87,9 @@ namespace mln
influence_zone_geodesic(const Image<I>& input,
const Neighborhood<N>& nbh)
{
+ (void) input;
+ (void) nbh;
+
// FIXME: To be written...
mlc_abort(I)::check();
}
diff --git a/milena/mln/util/object_id.hh b/milena/mln/util/object_id.hh
index 794abc4..525ff15 100644
--- a/milena/mln/util/object_id.hh
+++ b/milena/mln/util/object_id.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.
//
@@ -136,6 +137,7 @@ namespace mln
inline
object_id<Tag,V>::object_id(const object_id<Tag2,V2>& id)
{
+ (void) id;
typedef object_id<Tag2,V2> id_t;
mlc_abort(id_t)::check();
}
diff --git a/milena/mln/value/float01.hh b/milena/mln/value/float01.hh
index 23f83df..898853f 100644
--- a/milena/mln/value/float01.hh
+++ b/milena/mln/value/float01.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2006, 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2006, 2007, 2008, 2009, 2011 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -47,7 +48,7 @@ namespace mln
{
// Fwd decl.
- template <unsigned n> class float01_;
+ template <unsigned n> struct float01_;
class float01;
diff --git a/milena/mln/value/float01_f.hh b/milena/mln/value/float01_f.hh
index 2769200..3edb4ae 100644
--- a/milena/mln/value/float01_f.hh
+++ b/milena/mln/value/float01_f.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2006, 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2006, 2007, 2008, 2009, 2011 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -43,7 +44,7 @@ namespace mln
// Fwd decls.
namespace value {
- struct float01;
+ class float01;
struct float01_f;
}
diff --git a/milena/mln/value/graylevel.hh b/milena/mln/value/graylevel.hh
index cca7e08..fc68391 100644
--- a/milena/mln/value/graylevel.hh
+++ b/milena/mln/value/graylevel.hh
@@ -63,7 +63,7 @@ namespace mln
namespace internal
{
template <unsigned n> class gray_;
- class gray_f;
+ struct gray_f;
template <unsigned n_src, unsigned n_dest>
long convert(int val);
}
diff --git a/milena/mln/value/graylevel_f.hh b/milena/mln/value/graylevel_f.hh
index e70927a..4194b25 100644
--- a/milena/mln/value/graylevel_f.hh
+++ b/milena/mln/value/graylevel_f.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2006, 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2006, 2007, 2008, 2009, 2011 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -57,7 +58,7 @@ namespace mln
namespace value
{
/// \{ Forward declarations.
- namespace internal {class gray_f; }
+ namespace internal { struct gray_f; }
struct graylevel_f;
template <unsigned n> struct graylevel;
struct float01_f;
diff --git a/milena/mln/value/internal/gray_.hh b/milena/mln/value/internal/gray_.hh
index e672c37..c845c21 100644
--- a/milena/mln/value/internal/gray_.hh
+++ b/milena/mln/value/internal/gray_.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2006, 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2006, 2007, 2008, 2009, 2011 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -57,8 +58,8 @@ namespace mln
/// \{ Forward declarations.
template <unsigned n>
struct graylevel;
- template <unsigned N> class graylevel;
- class graylevel_f;
+ template <unsigned N> struct graylevel;
+ struct graylevel_f;
namespace internal
{
template <unsigned n> class gray_;
@@ -488,6 +489,8 @@ namespace mln
void
operator+(const graylevel<n>& lhs, const I& i)
{
+ (void) lhs;
+ (void) i;
typename graylevel<n>::wrong_use_of_graylevel___Please_use_the__to_enc__method a;
}
@@ -498,6 +501,8 @@ namespace mln
void
operator+(const I& i, const graylevel<n>& rhs)
{
+ (void) i;
+ (void) rhs;
typename graylevel<n>::wrong_use_of_graylevel___Please_use_the__to_enc__method a;
}
@@ -516,6 +521,8 @@ namespace mln
void
operator-(const graylevel<n>& lhs, const I& i)
{
+ (void) lhs;
+ (void) i;
typename graylevel<n>::wrong_use_of_graylevel___Please_use_the__to_enc__method a;
}
@@ -526,6 +533,8 @@ namespace mln
void
operator-(const I& i, const graylevel<n>& rhs)
{
+ (void) i;
+ (void) rhs;
typename graylevel<n>::wrong_use_of_graylevel___Please_use_the__to_enc__method a;
}
@@ -592,7 +601,7 @@ namespace mln
/// \{ Forward declarations.
namespace internal
{
- class gray_f;
+ struct gray_f;
}
/// \}
diff --git a/milena/mln/value/internal/gray_f.hh b/milena/mln/value/internal/gray_f.hh
index 0408ae4..79a443c 100644
--- a/milena/mln/value/internal/gray_f.hh
+++ b/milena/mln/value/internal/gray_f.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2006, 2007, 2008, 2009 EPITA Research and Development
-// Laboratory (LRDE)
+// Copyright (C) 2006, 2007, 2008, 2009, 2011 EPITA Research and
+// Development Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -63,7 +63,7 @@ namespace mln
namespace internal
{
template <unsigned n> class gray_;
- class gray_f;
+ struct gray_f;
}
struct float01_f;
@@ -378,6 +378,8 @@ namespace mln
void
operator+(const graylevel_f& lhs, const I& i)
{
+ (void) lhs;
+ (void) i;
typename Object<I>::wrong_use_of_graylevel_f___Please_use_the__to_enc__method a;
}
@@ -388,6 +390,8 @@ namespace mln
void
operator+(const I& i, const graylevel_f& rhs)
{
+ (void) i;
+ (void) rhs;
typename Object<I>::wrong_use_of_graylevel_f___Please_use_the__to_enc__method a;
}
@@ -398,6 +402,8 @@ namespace mln
void
operator-(const graylevel_f& lhs, const I& i)
{
+ (void) lhs;
+ (void) i;
typename Object<I>::wrong_use_of_graylevel_f___Please_use_the__to_enc__method a;
}
@@ -408,6 +414,8 @@ namespace mln
void
operator-(const I& i, const graylevel_f& rhs)
{
+ (void) i;
+ (void) rhs;
typename Object<I>::wrong_use_of_graylevel_f___Please_use_the__to_enc__method a;
}
diff --git a/milena/mln/value/lut_vec.hh b/milena/mln/value/lut_vec.hh
index b86e541..a3eda5b 100644
--- a/milena/mln/value/lut_vec.hh
+++ b/milena/mln/value/lut_vec.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007, 2009, 2010 EPITA Research and Development
+// Copyright (C) 2007, 2009, 2010, 2011 EPITA Research and Development
// Laboratory (LRDE)
//
// This file is part of Olena.
@@ -136,8 +136,9 @@ namespace mln
template <typename S, typename T>
inline
unsigned
- lut_vec<S,T>::index_of(const T& /* v */) const
+ lut_vec<S,T>::index_of(const T& v) const
{
+ (void) v;
mln_invariant(0); // FIXME
return 0;
}
diff --git a/milena/mln/world/binary_2d/enlarge.hh b/milena/mln/world/binary_2d/enlarge.hh
index 1ffd512..da546e1 100644
--- a/milena/mln/world/binary_2d/enlarge.hh
+++ b/milena/mln/world/binary_2d/enlarge.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.
//
@@ -328,6 +329,9 @@ namespace mln
mln_concrete(I)
enlarge_dispatch(const I& input, const mln_value(I)&, unsigned n)
{
+ (void) input;
+ (void) n;
+
mlc_abort(I)::check();
return mln_concrete(I)();
}
--
1.7.2.5
1
0
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Olena, a generic and efficient image processing platform".
The branch unstable/scribo has been updated
via 48ccb0ee1492695efa215095edfe715af8ab5d78 (commit)
via 83eb6772d566edfd0825912255955dfabbba50e0 (commit)
via db8e0805c02f6fa0a06df902501fad5298a9d3ea (commit)
via 027bd1b24532d2f6bba717dafdc201a6834ef376 (commit)
via b14a6dbe8c39dc12ef0aa238111f7fa19d91cbb0 (commit)
from b77d84adbfa931b4b6685b5069ad15b8cd447056 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
48ccb0e Fix test of Niblack's algorithm.
83eb677 Update use of the threshold function.
db8e080 Add two variants of the threshold function.
027bd1b Fix compilation issues with g++ 4.6.1 and clang++.
b14a6db Fix warnings with Clang/g++ 4.6.x
-----------------------------------------------------------------------
Summary of changes:
milena/ChangeLog | 166 ++++++++++++++++++++
milena/apps/papers/levillain.09.ismm/graph.cc | 7 +-
.../examples/tuto4_genericity_and_algorithms.cc | 5 +-
milena/mln/accu/internal/couple.hh | 7 +-
milena/mln/accu/line.hh | 17 +-
milena/mln/algebra/vec.hh | 3 +-
milena/mln/binarization/threshold.hh | 7 +-
milena/mln/border/duplicate.hh | 4 +-
milena/mln/border/mirror.hh | 3 +-
milena/mln/canvas/browsing/backdiagonal2d.hh | 12 +-
milena/mln/canvas/browsing/breadth_first_search.hh | 13 ++-
milena/mln/canvas/browsing/depth_first_search.hh | 12 ++-
milena/mln/canvas/browsing/diagonal2d.hh | 8 +
.../canvas/browsing/dir_struct_elt_incr_update.hh | 11 ++-
milena/mln/canvas/browsing/directional.hh | 12 ++-
milena/mln/canvas/browsing/fwd.hh | 11 ++-
milena/mln/canvas/browsing/hyper_directional.hh | 11 ++-
.../canvas/browsing/internal/graph_first_search.hh | 1 +
milena/mln/canvas/browsing/snake_fwd.hh | 11 +-
milena/mln/canvas/browsing/snake_generic.hh | 11 +-
milena/mln/canvas/browsing/snake_vert.hh | 5 +-
milena/mln/convert/from_to.hxx | 2 +-
milena/mln/convert/impl/from_double_to_value.hh | 9 +-
milena/mln/convert/impl/from_float_to_value.hh | 8 +-
milena/mln/convert/impl/from_image_to_site_set.hh | 4 +-
milena/mln/convert/impl/from_int_to_value.hh | 6 +-
milena/mln/convert/to_qimage.hh | 2 +
milena/mln/core/concept/box.hh | 3 +-
milena/mln/core/dpoints_pixter.hh | 25 ++--
milena/mln/core/faces_psite.hh | 5 +-
milena/mln/core/image/ch_piter.hh | 5 +-
milena/mln/core/image/complex_window_piter.hh | 5 +-
milena/mln/core/image/dmorph/extended.hh | 5 +-
milena/mln/core/image/dmorph/extension_fun.hh | 5 +-
milena/mln/core/image/dmorph/extension_ima.hh | 6 +-
milena/mln/core/image/dmorph/extension_val.hh | 5 +-
milena/mln/core/image/dmorph/hexa.hh | 5 +-
milena/mln/core/image/dmorph/sub_image.hh | 4 +-
milena/mln/core/image/dmorph/sub_image_if.hh | 7 +-
milena/mln/core/image/dmorph/transformed_image.hh | 7 +-
milena/mln/core/image/flat_image.hh | 5 +-
milena/mln/core/image/graph_elt_mixed_window.hh | 7 +-
milena/mln/core/image/graph_elt_window.hh | 4 +-
milena/mln/core/image/graph_elt_window_if.hh | 7 +-
milena/mln/core/image/graph_window_if_piter.hh | 4 +-
milena/mln/core/image/graph_window_piter.hh | 6 +-
milena/mln/core/image/image2d.hh | 2 +-
milena/mln/core/image/imorph/labeled_image.hh | 5 +-
milena/mln/core/image/imorph/plain.hh | 5 +-
milena/mln/core/image/imorph/safe.hh | 5 +-
milena/mln/core/image/vmorph/cast_image.hh | 5 +-
milena/mln/core/image/vmorph/fun_image.hh | 4 +-
milena/mln/core/image/vmorph/thru_image.hh | 8 +-
milena/mln/core/image/vmorph/thrubin_image.hh | 4 +-
milena/mln/core/image/vmorph/violent_cast_image.hh | 5 +-
.../mln/core/internal/is_masked_impl_selector.hh | 7 +-
milena/mln/core/internal/pixel_impl.hh | 2 +-
milena/mln/core/internal/site_set_iterator_base.hh | 6 +-
milena/mln/core/point.hh | 3 +-
milena/mln/core/routine/init.hxx | 5 +-
milena/mln/core/site_set/attic/p_faces_piter.hh | 4 +-
milena/mln/core/site_set/p_array.hh | 4 +-
milena/mln/core/site_set/p_edges.hh | 5 +-
milena/mln/core/site_set/p_faces.hh | 5 +-
milena/mln/core/site_set/p_if.hh | 6 +-
milena/mln/core/site_set/p_transformed.hh | 5 +-
milena/mln/core/site_set/p_vertices.hh | 4 +-
milena/mln/data/fill.hh | 4 +-
milena/mln/data/was.median.hh | 8 +-
milena/mln/debug/println.spe.hh | 5 +-
milena/mln/extension/fill.hh | 2 +
milena/mln/fun/spe/binary.hh | 1 +
milena/mln/fun/spe/unary.hh | 4 +-
milena/mln/fun/v2b/all.hh | 6 +-
milena/mln/fun/v2b/essential.hh | 6 +-
.../mln/fun/v2b/{threshold.hh => threshold_ge.hh} | 16 +-
.../mln/fun/v2b/{threshold.hh => threshold_le.hh} | 16 +-
milena/mln/fun/v2v/hsl_to_rgb.hh | 11 +-
milena/mln/fun/x2x/rotation.hh | 7 +-
milena/mln/geom/chamfer.hh | 5 +-
milena/mln/io/fld/max_components.hh | 3 +-
milena/mln/io/pbm/save.hh | 7 +-
milena/mln/io/pgm/save.hh | 7 +-
milena/mln/labeling/flat_zones.hh | 10 +-
milena/mln/labeling/value.hh | 4 +-
milena/mln/literal/black.hh | 14 ++-
milena/mln/literal/colors.hh | 156 +++++++++++++++----
milena/mln/literal/white.hh | 12 ++-
milena/mln/morpho/attribute/height.hh | 5 +-
milena/mln/morpho/attribute/sharpness.hh | 5 +-
milena/mln/morpho/attribute/volume.hh | 5 +-
.../reconstruction/by_dilation/union_find.hh | 18 ++-
milena/mln/morpho/tree/compute_attribute_image.hh | 9 +-
milena/mln/morpho/tree/data.hh | 4 +-
milena/mln/opt/element.hh | 9 +-
milena/mln/registration/get_rot.hh | 9 +-
milena/mln/subsampling/antialiased.hh | 10 ++
milena/mln/subsampling/gaussian_subsampling.hh | 5 +-
milena/mln/topo/center_only_iter.hh | 5 +-
milena/mln/topo/face.hh | 2 +-
milena/mln/topo/face_data.hh | 4 +-
milena/mln/topo/skeleton/is_simple_point.hh | 1 -
milena/mln/trait/image_from_grid.hh | 5 +-
milena/mln/trait/images.hh | 9 +-
milena/mln/transform/influence_zone_geodesic.hh | 7 +-
milena/mln/util/object_id.hh | 4 +-
milena/mln/value/float01.hh | 5 +-
milena/mln/value/float01_f.hh | 5 +-
milena/mln/value/graylevel.hh | 2 +-
milena/mln/value/graylevel_f.hh | 5 +-
milena/mln/value/internal/gray_.hh | 17 ++-
milena/mln/value/internal/gray_f.hh | 14 ++-
milena/mln/value/lut_vec.hh | 5 +-
milena/mln/world/binary_2d/enlarge.hh | 12 +-
milena/tests/labeling/n_max.cc | 4 +-
milena/tests/unit_test/unit-tests.mk | 10 +-
scribo/ChangeLog | 16 ++
scribo/scribo/binarization/global_threshold.hh | 4 +-
scribo/scribo/binarization/sauvola_ms_split.hh | 5 +-
scribo/scribo/text/clean.hh | 7 +-
scribo/scribo/text/clean_inplace.hh | 6 +-
scribo/tests/binarization/niblack.ref.pbm | Bin 16498 -> 32884 bytes
122 files changed, 817 insertions(+), 307 deletions(-)
copy milena/mln/fun/v2b/{threshold.hh => threshold_ge.hh} (86%)
rename milena/mln/fun/v2b/{threshold.hh => threshold_le.hh} (85%)
hooks/post-receive
--
Olena, a generic and efficient image processing platform
1
0
* tests/binarization/niblack.ref.pbm: Update.
---
scribo/ChangeLog | 6 ++++++
scribo/tests/binarization/niblack.ref.pbm | Bin 16498 -> 32884 bytes
2 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index 42f6910..8c536d7 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,5 +1,11 @@
2011-11-22 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Fix test of Niblack's algorithm.
+
+ * tests/binarization/niblack.ref.pbm: Update.
+
+2011-11-22 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Update use of the threshold function.
* scribo/binarization/global_threshold.hh: Here.
diff --git a/scribo/tests/binarization/niblack.ref.pbm b/scribo/tests/binarization/niblack.ref.pbm
index 7a3435193f1961f8161b71f8f60f3102d5ebbf87..83cf4fb746f4638a7834af48108d7b79fd58fd61 100644
GIT binary patch
literal 32884
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
delta 9
Qcmey;!1SqsaYK;<02mJhOaK4?
--
1.7.2.5
1
0
* tests/binarization/niblack.ref.pbm: Update.
---
scribo/ChangeLog | 6 ++++++
scribo/tests/binarization/niblack.ref.pbm | Bin 16498 -> 32884 bytes
2 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index 42f6910..8c536d7 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,5 +1,11 @@
2011-11-22 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Fix test of Niblack's algorithm.
+
+ * tests/binarization/niblack.ref.pbm: Update.
+
+2011-11-22 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Update use of the threshold function.
* scribo/binarization/global_threshold.hh: Here.
diff --git a/scribo/tests/binarization/niblack.ref.pbm b/scribo/tests/binarization/niblack.ref.pbm
index 7a3435193f1961f8161b71f8f60f3102d5ebbf87..83cf4fb746f4638a7834af48108d7b79fd58fd61 100644
GIT binary patch
literal 32884
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
delta 9
Qcmey;!1SqsaYK;<02mJhOaK4?
--
1.7.2.5
1
0
* tests/binarization/niblack.ref.pbm: Update.
---
scribo/ChangeLog | 6 ++++++
scribo/tests/binarization/niblack.ref.pbm | Bin 16498 -> 32884 bytes
2 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index 42f6910..8c536d7 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,5 +1,11 @@
2011-11-22 Guillaume Lazzara <z(a)lrde.epita.fr>
+ Fix test of Niblack's algorithm.
+
+ * tests/binarization/niblack.ref.pbm: Update.
+
+2011-11-22 Guillaume Lazzara <z(a)lrde.epita.fr>
+
Update use of the threshold function.
* scribo/binarization/global_threshold.hh: Here.
diff --git a/scribo/tests/binarization/niblack.ref.pbm b/scribo/tests/binarization/niblack.ref.pbm
index 7a3435193f1961f8161b71f8f60f3102d5ebbf87..83cf4fb746f4638a7834af48108d7b79fd58fd61 100644
GIT binary patch
literal 32884
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
delta 9
Qcmey;!1SqsaYK;<02mJhOaK4?
--
1.7.2.5
1
0
22 Nov '11
* scribo/binarization/global_threshold.hh: Here.
* scribo/binarization/sauvola_ms_split.hh,
* scribo/text/clean.hh,
* scribo/text/clean_inplace.hh: Remove useless include.
---
scribo/ChangeLog | 10 ++++++++++
scribo/scribo/binarization/global_threshold.hh | 4 ++--
scribo/scribo/binarization/sauvola_ms_split.hh | 5 ++---
scribo/scribo/text/clean.hh | 7 ++-----
scribo/scribo/text/clean_inplace.hh | 6 ++----
5 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index ccabd9d..42f6910 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,3 +1,13 @@
+2011-11-22 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Update use of the threshold function.
+
+ * scribo/binarization/global_threshold.hh: Here.
+
+ * scribo/binarization/sauvola_ms_split.hh,
+ * scribo/text/clean.hh,
+ * scribo/text/clean_inplace.hh: Remove useless include.
+
2011-11-21 Guillaume Lazzara <z(a)lrde.epita.fr>
* README: update requirements information.
diff --git a/scribo/scribo/binarization/global_threshold.hh b/scribo/scribo/binarization/global_threshold.hh
index b90d6df..aefbe00 100644
--- a/scribo/scribo/binarization/global_threshold.hh
+++ b/scribo/scribo/binarization/global_threshold.hh
@@ -28,7 +28,7 @@
# include <mln/core/concept/image.hh>
# include <mln/value/concept/vectorial.hh>
-# include <mln/fun/v2b/threshold.hh>
+# include <mln/fun/v2b/threshold_le.hh>
# include <mln/data/transform.hh>
/// \file
@@ -77,7 +77,7 @@ namespace scribo
mln_precondition(exact(input).is_valid());
mlc_is_not_a(mln_value(I), value::Vectorial)::check();
- mln::fun::v2b::threshold<mln_value(I)> f(threshold);
+ mln::fun::v2b::threshold_le<mln_value(I)> f(threshold);
mln_ch_value(I, bool) output = data::transform(input, f);
trace::exiting("scribo::binarization::global_threshold");
diff --git a/scribo/scribo/binarization/sauvola_ms_split.hh b/scribo/scribo/binarization/sauvola_ms_split.hh
index ac06a39..cbef524 100644
--- a/scribo/scribo/binarization/sauvola_ms_split.hh
+++ b/scribo/scribo/binarization/sauvola_ms_split.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -30,8 +31,6 @@
# include <mln/border/resize.hh>
-# include <mln/fun/v2b/threshold.hh>
-
# include <mln/data/transform.hh>
# include <mln/data/split.hh>
diff --git a/scribo/scribo/text/clean.hh b/scribo/scribo/text/clean.hh
index 208fe8e..7911852 100644
--- a/scribo/scribo/text/clean.hh
+++ b/scribo/scribo/text/clean.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -59,9 +59,6 @@
#include <mln/linear/gaussian.hh>
#include <mln/value/int_u8.hh>
-
-#include <mln/fun/v2b/threshold.hh>
-#include <mln/binarization/threshold.hh>
#include <mln/data/convert.hh>
#include <mln/value/rgb8.hh>
#include <mln/io/pgm/all.hh>
diff --git a/scribo/scribo/text/clean_inplace.hh b/scribo/scribo/text/clean_inplace.hh
index fe96ff7..d217aa5 100644
--- a/scribo/scribo/text/clean_inplace.hh
+++ b/scribo/scribo/text/clean_inplace.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -58,9 +59,6 @@
#include <mln/linear/gaussian.hh>
#include <mln/value/int_u8.hh>
-
-#include <mln/fun/v2b/threshold.hh>
-#include <mln/binarization/threshold.hh>
#include <mln/data/convert.hh>
#include <mln/value/rgb8.hh>
#include <mln/io/pgm/all.hh>
--
1.7.2.5
1
0
22 Nov '11
* scribo/binarization/global_threshold.hh: Here.
* scribo/binarization/sauvola_ms_split.hh,
* scribo/text/clean.hh,
* scribo/text/clean_inplace.hh: Remove useless include.
---
scribo/ChangeLog | 10 ++++++++++
scribo/scribo/binarization/global_threshold.hh | 4 ++--
scribo/scribo/binarization/sauvola_ms_split.hh | 5 ++---
scribo/scribo/text/clean.hh | 7 ++-----
scribo/scribo/text/clean_inplace.hh | 6 ++----
5 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index ccabd9d..42f6910 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,3 +1,13 @@
+2011-11-22 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Update use of the threshold function.
+
+ * scribo/binarization/global_threshold.hh: Here.
+
+ * scribo/binarization/sauvola_ms_split.hh,
+ * scribo/text/clean.hh,
+ * scribo/text/clean_inplace.hh: Remove useless include.
+
2011-11-21 Guillaume Lazzara <z(a)lrde.epita.fr>
* README: update requirements information.
diff --git a/scribo/scribo/binarization/global_threshold.hh b/scribo/scribo/binarization/global_threshold.hh
index b90d6df..aefbe00 100644
--- a/scribo/scribo/binarization/global_threshold.hh
+++ b/scribo/scribo/binarization/global_threshold.hh
@@ -28,7 +28,7 @@
# include <mln/core/concept/image.hh>
# include <mln/value/concept/vectorial.hh>
-# include <mln/fun/v2b/threshold.hh>
+# include <mln/fun/v2b/threshold_le.hh>
# include <mln/data/transform.hh>
/// \file
@@ -77,7 +77,7 @@ namespace scribo
mln_precondition(exact(input).is_valid());
mlc_is_not_a(mln_value(I), value::Vectorial)::check();
- mln::fun::v2b::threshold<mln_value(I)> f(threshold);
+ mln::fun::v2b::threshold_le<mln_value(I)> f(threshold);
mln_ch_value(I, bool) output = data::transform(input, f);
trace::exiting("scribo::binarization::global_threshold");
diff --git a/scribo/scribo/binarization/sauvola_ms_split.hh b/scribo/scribo/binarization/sauvola_ms_split.hh
index ac06a39..cbef524 100644
--- a/scribo/scribo/binarization/sauvola_ms_split.hh
+++ b/scribo/scribo/binarization/sauvola_ms_split.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -30,8 +31,6 @@
# include <mln/border/resize.hh>
-# include <mln/fun/v2b/threshold.hh>
-
# include <mln/data/transform.hh>
# include <mln/data/split.hh>
diff --git a/scribo/scribo/text/clean.hh b/scribo/scribo/text/clean.hh
index 208fe8e..7911852 100644
--- a/scribo/scribo/text/clean.hh
+++ b/scribo/scribo/text/clean.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -59,9 +59,6 @@
#include <mln/linear/gaussian.hh>
#include <mln/value/int_u8.hh>
-
-#include <mln/fun/v2b/threshold.hh>
-#include <mln/binarization/threshold.hh>
#include <mln/data/convert.hh>
#include <mln/value/rgb8.hh>
#include <mln/io/pgm/all.hh>
diff --git a/scribo/scribo/text/clean_inplace.hh b/scribo/scribo/text/clean_inplace.hh
index fe96ff7..d217aa5 100644
--- a/scribo/scribo/text/clean_inplace.hh
+++ b/scribo/scribo/text/clean_inplace.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -58,9 +59,6 @@
#include <mln/linear/gaussian.hh>
#include <mln/value/int_u8.hh>
-
-#include <mln/fun/v2b/threshold.hh>
-#include <mln/binarization/threshold.hh>
#include <mln/data/convert.hh>
#include <mln/value/rgb8.hh>
#include <mln/io/pgm/all.hh>
--
1.7.2.5
1
0
22 Nov '11
* scribo/binarization/global_threshold.hh: Here.
* scribo/binarization/sauvola_ms_split.hh,
* scribo/text/clean.hh,
* scribo/text/clean_inplace.hh: Remove useless include.
---
scribo/ChangeLog | 10 ++++++++++
scribo/scribo/binarization/global_threshold.hh | 4 ++--
scribo/scribo/binarization/sauvola_ms_split.hh | 5 ++---
scribo/scribo/text/clean.hh | 7 ++-----
scribo/scribo/text/clean_inplace.hh | 6 ++----
5 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/scribo/ChangeLog b/scribo/ChangeLog
index ccabd9d..42f6910 100644
--- a/scribo/ChangeLog
+++ b/scribo/ChangeLog
@@ -1,3 +1,13 @@
+2011-11-22 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Update use of the threshold function.
+
+ * scribo/binarization/global_threshold.hh: Here.
+
+ * scribo/binarization/sauvola_ms_split.hh,
+ * scribo/text/clean.hh,
+ * scribo/text/clean_inplace.hh: Remove useless include.
+
2011-11-21 Guillaume Lazzara <z(a)lrde.epita.fr>
* README: update requirements information.
diff --git a/scribo/scribo/binarization/global_threshold.hh b/scribo/scribo/binarization/global_threshold.hh
index b90d6df..aefbe00 100644
--- a/scribo/scribo/binarization/global_threshold.hh
+++ b/scribo/scribo/binarization/global_threshold.hh
@@ -28,7 +28,7 @@
# include <mln/core/concept/image.hh>
# include <mln/value/concept/vectorial.hh>
-# include <mln/fun/v2b/threshold.hh>
+# include <mln/fun/v2b/threshold_le.hh>
# include <mln/data/transform.hh>
/// \file
@@ -77,7 +77,7 @@ namespace scribo
mln_precondition(exact(input).is_valid());
mlc_is_not_a(mln_value(I), value::Vectorial)::check();
- mln::fun::v2b::threshold<mln_value(I)> f(threshold);
+ mln::fun::v2b::threshold_le<mln_value(I)> f(threshold);
mln_ch_value(I, bool) output = data::transform(input, f);
trace::exiting("scribo::binarization::global_threshold");
diff --git a/scribo/scribo/binarization/sauvola_ms_split.hh b/scribo/scribo/binarization/sauvola_ms_split.hh
index ac06a39..cbef524 100644
--- a/scribo/scribo/binarization/sauvola_ms_split.hh
+++ b/scribo/scribo/binarization/sauvola_ms_split.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -30,8 +31,6 @@
# include <mln/border/resize.hh>
-# include <mln/fun/v2b/threshold.hh>
-
# include <mln/data/transform.hh>
# include <mln/data/split.hh>
diff --git a/scribo/scribo/text/clean.hh b/scribo/scribo/text/clean.hh
index 208fe8e..7911852 100644
--- a/scribo/scribo/text/clean.hh
+++ b/scribo/scribo/text/clean.hh
@@ -1,5 +1,5 @@
-// Copyright (C) 2009, 2010 EPITA Research and Development Laboratory
-// (LRDE)
+// Copyright (C) 2009, 2010, 2011 EPITA Research and Development
+// Laboratory (LRDE)
//
// This file is part of Olena.
//
@@ -59,9 +59,6 @@
#include <mln/linear/gaussian.hh>
#include <mln/value/int_u8.hh>
-
-#include <mln/fun/v2b/threshold.hh>
-#include <mln/binarization/threshold.hh>
#include <mln/data/convert.hh>
#include <mln/value/rgb8.hh>
#include <mln/io/pgm/all.hh>
diff --git a/scribo/scribo/text/clean_inplace.hh b/scribo/scribo/text/clean_inplace.hh
index fe96ff7..d217aa5 100644
--- a/scribo/scribo/text/clean_inplace.hh
+++ b/scribo/scribo/text/clean_inplace.hh
@@ -1,4 +1,5 @@
-// Copyright (C) 2010 EPITA Research and Development Laboratory (LRDE)
+// Copyright (C) 2010, 2011 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of Olena.
//
@@ -58,9 +59,6 @@
#include <mln/linear/gaussian.hh>
#include <mln/value/int_u8.hh>
-
-#include <mln/fun/v2b/threshold.hh>
-#include <mln/binarization/threshold.hh>
#include <mln/data/convert.hh>
#include <mln/value/rgb8.hh>
#include <mln/io/pgm/all.hh>
--
1.7.2.5
1
0
22 Nov '11
* apps/papers/levillain.09.ismm/graph.cc,
* doc/examples/tuto4_genericity_and_algorithms.cc,
* mln/binarization/threshold.hh,
* mln/fun/v2b/all.hh,
* mln/fun/v2b/essential.hh,
* mln/world/binary_2d/enlarge.hh,
* tests/labeling/n_max.cc: Update includes and use of threshold
function.
* mln/fun/v2b/threshold.hh: Replaced...
* mln/fun/v2b/threshold_ge.hh,
* mln/fun/v2b/threshold_le.hh: ... by these files.
* tests/unit_test/unit-tests.mk: Regen.
---
milena/ChangeLog | 20 ++++++++++++++++++++
milena/apps/papers/levillain.09.ismm/graph.cc | 7 ++++---
.../examples/tuto4_genericity_and_algorithms.cc | 5 ++---
milena/mln/binarization/threshold.hh | 7 ++++---
milena/mln/fun/v2b/all.hh | 6 ++++--
milena/mln/fun/v2b/essential.hh | 6 ++++--
.../mln/fun/v2b/{threshold.hh => threshold_ge.hh} | 16 ++++++++--------
.../mln/fun/v2b/{threshold.hh => threshold_le.hh} | 16 ++++++++--------
milena/mln/world/binary_2d/enlarge.hh | 6 ++++--
milena/tests/labeling/n_max.cc | 4 ++--
milena/tests/unit_test/unit-tests.mk | 10 ++++++++--
11 files changed, 68 insertions(+), 35 deletions(-)
copy milena/mln/fun/v2b/{threshold.hh => threshold_ge.hh} (86%)
rename milena/mln/fun/v2b/{threshold.hh => threshold_le.hh} (85%)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index e9d45f1..733afe4 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,23 @@
+2011-11-22 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add two variants of the threshold function.
+
+ * apps/papers/levillain.09.ismm/graph.cc,
+ * doc/examples/tuto4_genericity_and_algorithms.cc,
+ * mln/binarization/threshold.hh,
+ * mln/fun/v2b/all.hh,
+ * mln/fun/v2b/essential.hh,
+ * mln/world/binary_2d/enlarge.hh,
+ * tests/labeling/n_max.cc: Update includes and use of threshold
+ function.
+
+ * mln/fun/v2b/threshold.hh: Replaced...
+
+ * mln/fun/v2b/threshold_ge.hh,
+ * mln/fun/v2b/threshold_le.hh: ... by these files.
+
+ * tests/unit_test/unit-tests.mk: Regen.
+
2011-11-21 Guillaume Lazzara <z(a)lrde.epita.fr>
* mln/geom/crop_without_localization.hh: Fix preconditions.
diff --git a/milena/apps/papers/levillain.09.ismm/graph.cc b/milena/apps/papers/levillain.09.ismm/graph.cc
index 507bbc5..bf37df2 100644
--- a/milena/apps/papers/levillain.09.ismm/graph.cc
+++ b/milena/apps/papers/levillain.09.ismm/graph.cc
@@ -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.
//
@@ -37,7 +38,7 @@
#include <mln/debug/println.hh>
#include <mln/draw/line.hh>
#include <mln/pw/all.hh>
-#include <mln/binarization/threshold.hh>
+#include <mln/binarization/threshold_ge.hh>
#include <mln/value/int_u8.hh>
#include <mln/value/label_8.hh>
@@ -313,7 +314,7 @@ make_complex_image(const mln::image2d<mln::value::int_u8>& input)
unsigned nlabels;
image2d<unsigned> label =
- labeling::blobs(mln::binarization::threshold(input, 1), c4(), nlabels);
+ labeling::blobs(mln::binarization::threshold_ge(input, 1), c4(), nlabels);
std::cout << "n seeds = " << nlabels << std::endl;
{
diff --git a/milena/doc/examples/tuto4_genericity_and_algorithms.cc b/milena/doc/examples/tuto4_genericity_and_algorithms.cc
index 78237a4..dcc57a3 100644
--- a/milena/doc/examples/tuto4_genericity_and_algorithms.cc
+++ b/milena/doc/examples/tuto4_genericity_and_algorithms.cc
@@ -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.
//
@@ -49,8 +50,6 @@
#include <mln/pw/all.hh>
-#include <mln/binarization/threshold.hh>
-
#include <mln/labeling/colorize.hh>
#include <mln/labeling/blobs.hh>
diff --git a/milena/mln/binarization/threshold.hh b/milena/mln/binarization/threshold.hh
index 23acbe0..f29bb7c 100644
--- a/milena/mln/binarization/threshold.hh
+++ b/milena/mln/binarization/threshold.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.
//
@@ -31,7 +32,7 @@
/// \brief Threshold an image.
# include <mln/binarization/binarization.hh>
-# include <mln/fun/v2b/threshold.hh>
+# include <mln/fun/v2b/threshold_ge.hh>
namespace mln
@@ -69,7 +70,7 @@ namespace mln
mln_ch_value(I, bool) output(exact(input).domain());
// FIXME : threshold value should be a percentage.
- fun::v2b::threshold< mln_value(I) > f(threshold_value);
+ fun::v2b::threshold_ge< mln_value(I) > f(threshold_value);
output = mln::binarization::binarization(exact(input), f);
diff --git a/milena/mln/fun/v2b/all.hh b/milena/mln/fun/v2b/all.hh
index 00aede2..b138f56 100644
--- a/milena/mln/fun/v2b/all.hh
+++ b/milena/mln/fun/v2b/all.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.
//
@@ -45,7 +46,8 @@ namespace mln
# include <mln/fun/v2b/lnot.hh>
-# include <mln/fun/v2b/threshold.hh>
+# include <mln/fun/v2b/threshold_le.hh>
+# include <mln/fun/v2b/threshold_ge.hh>
#endif // ! MLN_FUN_V2B_ALL_HH
diff --git a/milena/mln/fun/v2b/essential.hh b/milena/mln/fun/v2b/essential.hh
index 0f21bc6..7e77a4b 100644
--- a/milena/mln/fun/v2b/essential.hh
+++ b/milena/mln/fun/v2b/essential.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.
//
@@ -31,6 +32,7 @@
* \brief File that includes essential functions from point to value.
*/
-# include <mln/fun/v2b/threshold.hh>
+# include <mln/fun/v2b/threshold_ge.hh>
+# include <mln/fun/v2b/threshold_le.hh>
#endif // ! MLN_FUN_V2B_ESSENTIAL_HH
diff --git a/milena/mln/fun/v2b/threshold.hh b/milena/mln/fun/v2b/threshold_ge.hh
similarity index 86%
copy from milena/mln/fun/v2b/threshold.hh
copy to milena/mln/fun/v2b/threshold_ge.hh
index 5a8e8e9..c5fef9e 100644
--- a/milena/mln/fun/v2b/threshold.hh
+++ b/milena/mln/fun/v2b/threshold_ge.hh
@@ -24,8 +24,8 @@
// exception does not however invalidate any other reasons why the
// executable file might be covered by the GNU General Public License.
-#ifndef MLN_FUN_V2B_THRESHOLD_HH
-# define MLN_FUN_V2B_THRESHOLD_HH
+#ifndef MLN_FUN_V2B_THRESHOLD_GE_HH
+# define MLN_FUN_V2B_THRESHOLD_GE_HH
/// \file
///
@@ -46,12 +46,12 @@ namespace mln
/// Threshold function.
/// f(v) = (v >= threshold).
template <typename V>
- struct threshold : public Function_v2b< threshold<V> >
+ struct threshold_ge : public Function_v2b< threshold_ge<V> >
{
typedef bool result;
bool operator()(const V& v) const;
- threshold(const V& a);
+ threshold_ge(const V& a);
V a;
};
@@ -60,7 +60,7 @@ namespace mln
template <typename V>
inline
- threshold<V>::threshold(const V& a)
+ threshold_ge<V>::threshold_ge(const V& a)
: a(a)
{
}
@@ -68,12 +68,12 @@ namespace mln
template <typename V>
inline
bool
- threshold<V>::operator()(const V& v) const
+ threshold_ge<V>::operator()(const V& v) const
{
// Here the test seems to be inversed compared to the usual
// use. Indeed, we want to preserve the following convention:
// True for foreground and False for background.
- return v <= a;
+ return v >= a;
}
# endif // ! MLN_INCLUDE_ONLY
@@ -85,4 +85,4 @@ namespace mln
} // end of namespace mln
-#endif // ! MLN_FUN_V2B_THRESHOLD_HH
+#endif // ! MLN_FUN_V2B_THRESHOLD_GE_HH
diff --git a/milena/mln/fun/v2b/threshold.hh b/milena/mln/fun/v2b/threshold_le.hh
similarity index 85%
rename from milena/mln/fun/v2b/threshold.hh
rename to milena/mln/fun/v2b/threshold_le.hh
index 5a8e8e9..21964c8 100644
--- a/milena/mln/fun/v2b/threshold.hh
+++ b/milena/mln/fun/v2b/threshold_le.hh
@@ -24,8 +24,8 @@
// exception does not however invalidate any other reasons why the
// executable file might be covered by the GNU General Public License.
-#ifndef MLN_FUN_V2B_THRESHOLD_HH
-# define MLN_FUN_V2B_THRESHOLD_HH
+#ifndef MLN_FUN_V2B_THRESHOLD_LE_HH
+# define MLN_FUN_V2B_THRESHOLD_LE_HH
/// \file
///
@@ -44,14 +44,14 @@ namespace mln
{
/// Threshold function.
- /// f(v) = (v >= threshold).
+ /// f(v) = (v <= threshold).
template <typename V>
- struct threshold : public Function_v2b< threshold<V> >
+ struct threshold_le : public Function_v2b< threshold_le<V> >
{
typedef bool result;
bool operator()(const V& v) const;
- threshold(const V& a);
+ threshold_le(const V& a);
V a;
};
@@ -60,7 +60,7 @@ namespace mln
template <typename V>
inline
- threshold<V>::threshold(const V& a)
+ threshold_le<V>::threshold_le(const V& a)
: a(a)
{
}
@@ -68,7 +68,7 @@ namespace mln
template <typename V>
inline
bool
- threshold<V>::operator()(const V& v) const
+ threshold_le<V>::operator()(const V& v) const
{
// Here the test seems to be inversed compared to the usual
// use. Indeed, we want to preserve the following convention:
@@ -85,4 +85,4 @@ namespace mln
} // end of namespace mln
-#endif // ! MLN_FUN_V2B_THRESHOLD_HH
+#endif // ! MLN_FUN_V2B_THRESHOLD_LE_HH
diff --git a/milena/mln/world/binary_2d/enlarge.hh b/milena/mln/world/binary_2d/enlarge.hh
index 1ffd512..d7535cb 100644
--- a/milena/mln/world/binary_2d/enlarge.hh
+++ b/milena/mln/world/binary_2d/enlarge.hh
@@ -40,7 +40,7 @@
# include <mln/value/int_u8.hh>
# include <mln/fun/p2v/ternary.hh>
-# include <mln/fun/v2b/threshold.hh>
+# include <mln/fun/v2b/threshold_ge.hh>
# include <mln/data/transform.hh>
@@ -54,6 +54,7 @@
# include <mln/core/routine/duplicate.hh>
+#include <mln/debug/println.hh>
namespace mln
{
@@ -291,8 +292,9 @@ namespace mln
do_enlarge_bool(const I& input, unsigned n)
{
mln_ch_value(I,value::int_u8) tmp = do_enlarge_gl(input, n);
+ debug::println(tmp);
I output
- = data::transform(tmp, fun::v2b::threshold<value::int_u8>(150));
+ = data::transform(tmp, fun::v2b::threshold_ge<value::int_u8>(160));
return output;
}
diff --git a/milena/tests/labeling/n_max.cc b/milena/tests/labeling/n_max.cc
index 0eba6cd..1b70a7e 100644
--- a/milena/tests/labeling/n_max.cc
+++ b/milena/tests/labeling/n_max.cc
@@ -32,7 +32,7 @@
#include <mln/labeling/compute.hh>
#include <mln/labeling/n_max.hh>
-#include <mln/fun/v2b/threshold.hh>
+#include <mln/fun/v2b/threshold_le.hh>
#include <mln/data/transform.hh>
#include <mln/accu/math/count.hh>
@@ -49,7 +49,7 @@ int main()
image2d<int_u8> lena = io::pgm::load<int_u8>(MLN_IMG_DIR "/tiny.pgm");
- image2d<bool> threshold = data::transform(lena, fun::v2b::threshold<int_u8>(100));
+ image2d<bool> threshold = data::transform(lena, fun::v2b::threshold_le<int_u8>(100));
label_8 nlabels;
image2d<label_8> labels = labeling::flat_zones(threshold, c4(), nlabels);
accu::math::count<int_u8> a_;
diff --git a/milena/tests/unit_test/unit-tests.mk b/milena/tests/unit_test/unit-tests.mk
index 2519bd6..3a14188 100644
--- a/milena/tests/unit_test/unit-tests.mk
+++ b/milena/tests/unit_test/unit-tests.mk
@@ -652,7 +652,8 @@ mln_fun_unary_param \
mln_fun_v2b_all \
mln_fun_v2b_essential \
mln_fun_v2b_lnot \
-mln_fun_v2b_threshold \
+mln_fun_v2b_threshold_ge \
+mln_fun_v2b_threshold_le \
mln_fun_v2i_all \
mln_fun_v2i_index_of_value \
mln_fun_v2v_abs \
@@ -720,6 +721,8 @@ mln_geom_all \
mln_geom_bbox \
mln_geom_chamfer \
mln_geom_complex_geometry \
+mln_geom_crop \
+mln_geom_crop_without_localization \
mln_geom_delta \
mln_geom_essential \
mln_geom_horizontal_symmetry \
@@ -1979,7 +1982,8 @@ mln_fun_unary_param_SOURCES = mln_fun_unary_param.cc
mln_fun_v2b_all_SOURCES = mln_fun_v2b_all.cc
mln_fun_v2b_essential_SOURCES = mln_fun_v2b_essential.cc
mln_fun_v2b_lnot_SOURCES = mln_fun_v2b_lnot.cc
-mln_fun_v2b_threshold_SOURCES = mln_fun_v2b_threshold.cc
+mln_fun_v2b_threshold_ge_SOURCES = mln_fun_v2b_threshold_ge.cc
+mln_fun_v2b_threshold_le_SOURCES = mln_fun_v2b_threshold_le.cc
mln_fun_v2i_all_SOURCES = mln_fun_v2i_all.cc
mln_fun_v2i_index_of_value_SOURCES = mln_fun_v2i_index_of_value.cc
mln_fun_v2v_abs_SOURCES = mln_fun_v2v_abs.cc
@@ -2047,6 +2051,8 @@ mln_geom_all_SOURCES = mln_geom_all.cc
mln_geom_bbox_SOURCES = mln_geom_bbox.cc
mln_geom_chamfer_SOURCES = mln_geom_chamfer.cc
mln_geom_complex_geometry_SOURCES = mln_geom_complex_geometry.cc
+mln_geom_crop_SOURCES = mln_geom_crop.cc
+mln_geom_crop_without_localization_SOURCES = mln_geom_crop_without_localization.cc
mln_geom_delta_SOURCES = mln_geom_delta.cc
mln_geom_essential_SOURCES = mln_geom_essential.cc
mln_geom_horizontal_symmetry_SOURCES = mln_geom_horizontal_symmetry.cc
--
1.7.2.5
1
0
22 Nov '11
* apps/papers/levillain.09.ismm/graph.cc,
* doc/examples/tuto4_genericity_and_algorithms.cc,
* mln/binarization/threshold.hh,
* mln/fun/v2b/all.hh,
* mln/fun/v2b/essential.hh,
* mln/world/binary_2d/enlarge.hh,
* tests/labeling/n_max.cc: Update includes and use of threshold
function.
* mln/fun/v2b/threshold.hh: Replaced...
* mln/fun/v2b/threshold_ge.hh,
* mln/fun/v2b/threshold_le.hh: ... by these files.
* tests/unit_test/unit-tests.mk: Regen.
---
milena/ChangeLog | 20 ++++++++++++++++++++
milena/apps/papers/levillain.09.ismm/graph.cc | 7 ++++---
.../examples/tuto4_genericity_and_algorithms.cc | 5 ++---
milena/mln/binarization/threshold.hh | 7 ++++---
milena/mln/fun/v2b/all.hh | 6 ++++--
milena/mln/fun/v2b/essential.hh | 6 ++++--
.../mln/fun/v2b/{threshold.hh => threshold_ge.hh} | 16 ++++++++--------
.../mln/fun/v2b/{threshold.hh => threshold_le.hh} | 16 ++++++++--------
milena/mln/world/binary_2d/enlarge.hh | 6 ++++--
milena/tests/labeling/n_max.cc | 4 ++--
milena/tests/unit_test/unit-tests.mk | 10 ++++++++--
11 files changed, 68 insertions(+), 35 deletions(-)
copy milena/mln/fun/v2b/{threshold.hh => threshold_ge.hh} (86%)
rename milena/mln/fun/v2b/{threshold.hh => threshold_le.hh} (85%)
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 363bf08..56fd2dc 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,3 +1,23 @@
+2011-11-22 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Add two variants of the threshold function.
+
+ * apps/papers/levillain.09.ismm/graph.cc,
+ * doc/examples/tuto4_genericity_and_algorithms.cc,
+ * mln/binarization/threshold.hh,
+ * mln/fun/v2b/all.hh,
+ * mln/fun/v2b/essential.hh,
+ * mln/world/binary_2d/enlarge.hh,
+ * tests/labeling/n_max.cc: Update includes and use of threshold
+ function.
+
+ * mln/fun/v2b/threshold.hh: Replaced...
+
+ * mln/fun/v2b/threshold_ge.hh,
+ * mln/fun/v2b/threshold_le.hh: ... by these files.
+
+ * tests/unit_test/unit-tests.mk: Regen.
+
2011-11-21 Guillaume Lazzara <z(a)lrde.epita.fr>
* mln/geom/crop_without_localization.hh: Fix preconditions.
diff --git a/milena/apps/papers/levillain.09.ismm/graph.cc b/milena/apps/papers/levillain.09.ismm/graph.cc
index 507bbc5..bf37df2 100644
--- a/milena/apps/papers/levillain.09.ismm/graph.cc
+++ b/milena/apps/papers/levillain.09.ismm/graph.cc
@@ -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.
//
@@ -37,7 +38,7 @@
#include <mln/debug/println.hh>
#include <mln/draw/line.hh>
#include <mln/pw/all.hh>
-#include <mln/binarization/threshold.hh>
+#include <mln/binarization/threshold_ge.hh>
#include <mln/value/int_u8.hh>
#include <mln/value/label_8.hh>
@@ -313,7 +314,7 @@ make_complex_image(const mln::image2d<mln::value::int_u8>& input)
unsigned nlabels;
image2d<unsigned> label =
- labeling::blobs(mln::binarization::threshold(input, 1), c4(), nlabels);
+ labeling::blobs(mln::binarization::threshold_ge(input, 1), c4(), nlabels);
std::cout << "n seeds = " << nlabels << std::endl;
{
diff --git a/milena/doc/examples/tuto4_genericity_and_algorithms.cc b/milena/doc/examples/tuto4_genericity_and_algorithms.cc
index 78237a4..dcc57a3 100644
--- a/milena/doc/examples/tuto4_genericity_and_algorithms.cc
+++ b/milena/doc/examples/tuto4_genericity_and_algorithms.cc
@@ -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.
//
@@ -49,8 +50,6 @@
#include <mln/pw/all.hh>
-#include <mln/binarization/threshold.hh>
-
#include <mln/labeling/colorize.hh>
#include <mln/labeling/blobs.hh>
diff --git a/milena/mln/binarization/threshold.hh b/milena/mln/binarization/threshold.hh
index 23acbe0..f29bb7c 100644
--- a/milena/mln/binarization/threshold.hh
+++ b/milena/mln/binarization/threshold.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.
//
@@ -31,7 +32,7 @@
/// \brief Threshold an image.
# include <mln/binarization/binarization.hh>
-# include <mln/fun/v2b/threshold.hh>
+# include <mln/fun/v2b/threshold_ge.hh>
namespace mln
@@ -69,7 +70,7 @@ namespace mln
mln_ch_value(I, bool) output(exact(input).domain());
// FIXME : threshold value should be a percentage.
- fun::v2b::threshold< mln_value(I) > f(threshold_value);
+ fun::v2b::threshold_ge< mln_value(I) > f(threshold_value);
output = mln::binarization::binarization(exact(input), f);
diff --git a/milena/mln/fun/v2b/all.hh b/milena/mln/fun/v2b/all.hh
index 00aede2..b138f56 100644
--- a/milena/mln/fun/v2b/all.hh
+++ b/milena/mln/fun/v2b/all.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.
//
@@ -45,7 +46,8 @@ namespace mln
# include <mln/fun/v2b/lnot.hh>
-# include <mln/fun/v2b/threshold.hh>
+# include <mln/fun/v2b/threshold_le.hh>
+# include <mln/fun/v2b/threshold_ge.hh>
#endif // ! MLN_FUN_V2B_ALL_HH
diff --git a/milena/mln/fun/v2b/essential.hh b/milena/mln/fun/v2b/essential.hh
index 0f21bc6..7e77a4b 100644
--- a/milena/mln/fun/v2b/essential.hh
+++ b/milena/mln/fun/v2b/essential.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.
//
@@ -31,6 +32,7 @@
* \brief File that includes essential functions from point to value.
*/
-# include <mln/fun/v2b/threshold.hh>
+# include <mln/fun/v2b/threshold_ge.hh>
+# include <mln/fun/v2b/threshold_le.hh>
#endif // ! MLN_FUN_V2B_ESSENTIAL_HH
diff --git a/milena/mln/fun/v2b/threshold.hh b/milena/mln/fun/v2b/threshold_ge.hh
similarity index 86%
copy from milena/mln/fun/v2b/threshold.hh
copy to milena/mln/fun/v2b/threshold_ge.hh
index 5a8e8e9..c5fef9e 100644
--- a/milena/mln/fun/v2b/threshold.hh
+++ b/milena/mln/fun/v2b/threshold_ge.hh
@@ -24,8 +24,8 @@
// exception does not however invalidate any other reasons why the
// executable file might be covered by the GNU General Public License.
-#ifndef MLN_FUN_V2B_THRESHOLD_HH
-# define MLN_FUN_V2B_THRESHOLD_HH
+#ifndef MLN_FUN_V2B_THRESHOLD_GE_HH
+# define MLN_FUN_V2B_THRESHOLD_GE_HH
/// \file
///
@@ -46,12 +46,12 @@ namespace mln
/// Threshold function.
/// f(v) = (v >= threshold).
template <typename V>
- struct threshold : public Function_v2b< threshold<V> >
+ struct threshold_ge : public Function_v2b< threshold_ge<V> >
{
typedef bool result;
bool operator()(const V& v) const;
- threshold(const V& a);
+ threshold_ge(const V& a);
V a;
};
@@ -60,7 +60,7 @@ namespace mln
template <typename V>
inline
- threshold<V>::threshold(const V& a)
+ threshold_ge<V>::threshold_ge(const V& a)
: a(a)
{
}
@@ -68,12 +68,12 @@ namespace mln
template <typename V>
inline
bool
- threshold<V>::operator()(const V& v) const
+ threshold_ge<V>::operator()(const V& v) const
{
// Here the test seems to be inversed compared to the usual
// use. Indeed, we want to preserve the following convention:
// True for foreground and False for background.
- return v <= a;
+ return v >= a;
}
# endif // ! MLN_INCLUDE_ONLY
@@ -85,4 +85,4 @@ namespace mln
} // end of namespace mln
-#endif // ! MLN_FUN_V2B_THRESHOLD_HH
+#endif // ! MLN_FUN_V2B_THRESHOLD_GE_HH
diff --git a/milena/mln/fun/v2b/threshold.hh b/milena/mln/fun/v2b/threshold_le.hh
similarity index 85%
rename from milena/mln/fun/v2b/threshold.hh
rename to milena/mln/fun/v2b/threshold_le.hh
index 5a8e8e9..21964c8 100644
--- a/milena/mln/fun/v2b/threshold.hh
+++ b/milena/mln/fun/v2b/threshold_le.hh
@@ -24,8 +24,8 @@
// exception does not however invalidate any other reasons why the
// executable file might be covered by the GNU General Public License.
-#ifndef MLN_FUN_V2B_THRESHOLD_HH
-# define MLN_FUN_V2B_THRESHOLD_HH
+#ifndef MLN_FUN_V2B_THRESHOLD_LE_HH
+# define MLN_FUN_V2B_THRESHOLD_LE_HH
/// \file
///
@@ -44,14 +44,14 @@ namespace mln
{
/// Threshold function.
- /// f(v) = (v >= threshold).
+ /// f(v) = (v <= threshold).
template <typename V>
- struct threshold : public Function_v2b< threshold<V> >
+ struct threshold_le : public Function_v2b< threshold_le<V> >
{
typedef bool result;
bool operator()(const V& v) const;
- threshold(const V& a);
+ threshold_le(const V& a);
V a;
};
@@ -60,7 +60,7 @@ namespace mln
template <typename V>
inline
- threshold<V>::threshold(const V& a)
+ threshold_le<V>::threshold_le(const V& a)
: a(a)
{
}
@@ -68,7 +68,7 @@ namespace mln
template <typename V>
inline
bool
- threshold<V>::operator()(const V& v) const
+ threshold_le<V>::operator()(const V& v) const
{
// Here the test seems to be inversed compared to the usual
// use. Indeed, we want to preserve the following convention:
@@ -85,4 +85,4 @@ namespace mln
} // end of namespace mln
-#endif // ! MLN_FUN_V2B_THRESHOLD_HH
+#endif // ! MLN_FUN_V2B_THRESHOLD_LE_HH
diff --git a/milena/mln/world/binary_2d/enlarge.hh b/milena/mln/world/binary_2d/enlarge.hh
index da546e1..4381eb4 100644
--- a/milena/mln/world/binary_2d/enlarge.hh
+++ b/milena/mln/world/binary_2d/enlarge.hh
@@ -41,7 +41,7 @@
# include <mln/value/int_u8.hh>
# include <mln/fun/p2v/ternary.hh>
-# include <mln/fun/v2b/threshold.hh>
+# include <mln/fun/v2b/threshold_ge.hh>
# include <mln/data/transform.hh>
@@ -55,6 +55,7 @@
# include <mln/core/routine/duplicate.hh>
+#include <mln/debug/println.hh>
namespace mln
{
@@ -292,8 +293,9 @@ namespace mln
do_enlarge_bool(const I& input, unsigned n)
{
mln_ch_value(I,value::int_u8) tmp = do_enlarge_gl(input, n);
+ debug::println(tmp);
I output
- = data::transform(tmp, fun::v2b::threshold<value::int_u8>(150));
+ = data::transform(tmp, fun::v2b::threshold_ge<value::int_u8>(160));
return output;
}
diff --git a/milena/tests/labeling/n_max.cc b/milena/tests/labeling/n_max.cc
index 0eba6cd..1b70a7e 100644
--- a/milena/tests/labeling/n_max.cc
+++ b/milena/tests/labeling/n_max.cc
@@ -32,7 +32,7 @@
#include <mln/labeling/compute.hh>
#include <mln/labeling/n_max.hh>
-#include <mln/fun/v2b/threshold.hh>
+#include <mln/fun/v2b/threshold_le.hh>
#include <mln/data/transform.hh>
#include <mln/accu/math/count.hh>
@@ -49,7 +49,7 @@ int main()
image2d<int_u8> lena = io::pgm::load<int_u8>(MLN_IMG_DIR "/tiny.pgm");
- image2d<bool> threshold = data::transform(lena, fun::v2b::threshold<int_u8>(100));
+ image2d<bool> threshold = data::transform(lena, fun::v2b::threshold_le<int_u8>(100));
label_8 nlabels;
image2d<label_8> labels = labeling::flat_zones(threshold, c4(), nlabels);
accu::math::count<int_u8> a_;
diff --git a/milena/tests/unit_test/unit-tests.mk b/milena/tests/unit_test/unit-tests.mk
index 2519bd6..3a14188 100644
--- a/milena/tests/unit_test/unit-tests.mk
+++ b/milena/tests/unit_test/unit-tests.mk
@@ -652,7 +652,8 @@ mln_fun_unary_param \
mln_fun_v2b_all \
mln_fun_v2b_essential \
mln_fun_v2b_lnot \
-mln_fun_v2b_threshold \
+mln_fun_v2b_threshold_ge \
+mln_fun_v2b_threshold_le \
mln_fun_v2i_all \
mln_fun_v2i_index_of_value \
mln_fun_v2v_abs \
@@ -720,6 +721,8 @@ mln_geom_all \
mln_geom_bbox \
mln_geom_chamfer \
mln_geom_complex_geometry \
+mln_geom_crop \
+mln_geom_crop_without_localization \
mln_geom_delta \
mln_geom_essential \
mln_geom_horizontal_symmetry \
@@ -1979,7 +1982,8 @@ mln_fun_unary_param_SOURCES = mln_fun_unary_param.cc
mln_fun_v2b_all_SOURCES = mln_fun_v2b_all.cc
mln_fun_v2b_essential_SOURCES = mln_fun_v2b_essential.cc
mln_fun_v2b_lnot_SOURCES = mln_fun_v2b_lnot.cc
-mln_fun_v2b_threshold_SOURCES = mln_fun_v2b_threshold.cc
+mln_fun_v2b_threshold_ge_SOURCES = mln_fun_v2b_threshold_ge.cc
+mln_fun_v2b_threshold_le_SOURCES = mln_fun_v2b_threshold_le.cc
mln_fun_v2i_all_SOURCES = mln_fun_v2i_all.cc
mln_fun_v2i_index_of_value_SOURCES = mln_fun_v2i_index_of_value.cc
mln_fun_v2v_abs_SOURCES = mln_fun_v2v_abs.cc
@@ -2047,6 +2051,8 @@ mln_geom_all_SOURCES = mln_geom_all.cc
mln_geom_bbox_SOURCES = mln_geom_bbox.cc
mln_geom_chamfer_SOURCES = mln_geom_chamfer.cc
mln_geom_complex_geometry_SOURCES = mln_geom_complex_geometry.cc
+mln_geom_crop_SOURCES = mln_geom_crop.cc
+mln_geom_crop_without_localization_SOURCES = mln_geom_crop_without_localization.cc
mln_geom_delta_SOURCES = mln_geom_delta.cc
mln_geom_essential_SOURCES = mln_geom_essential.cc
mln_geom_horizontal_symmetry_SOURCES = mln_geom_horizontal_symmetry.cc
--
1.7.2.5
1
0