LRE
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
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
List overview
Download
Olena-patches
November 2011
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
olena-patches@lrde.epita.fr
5 participants
178 discussions
Start a n
N
ew thread
olena-2.0-20-gb14a6db Fix warnings with Clang/g++ 4.6.x
by Guillaume Lazzara
* 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
13 years, 1 month
1
0
0
0
branch unstable/scribo updated: olena-2.0-24-g48ccb0e
by git@lrde.epita.fr
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
13 years, 1 month
1
0
0
0
olena-2.0-22-g0c44c4c Fix test of Niblack's algorithm.
by Guillaume Lazzara
* 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
13 years, 1 month
1
0
0
0
olena-2.0-24-g48ccb0e Fix test of Niblack's algorithm.
by Guillaume Lazzara
* 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
13 years, 1 month
1
0
0
0
olena-2.0-24-g48ccb0e Fix test of Niblack's algorithm.
by Guillaume Lazzara
* 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
13 years, 1 month
1
0
0
0
olena-2.0-21-g91bcd8b Update use of the threshold function.
by Guillaume Lazzara
* 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
13 years, 1 month
1
0
0
0
olena-2.0-23-g83eb677 Update use of the threshold function.
by Guillaume Lazzara
* 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
13 years, 1 month
1
0
0
0
olena-2.0-23-g83eb677 Update use of the threshold function.
by Guillaume Lazzara
* 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
13 years, 1 month
1
0
0
0
olena-2.0-20-g19c45fe Add two variants of the threshold function.
by Guillaume Lazzara
* 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
13 years, 1 month
1
0
0
0
olena-2.0-22-gdb8e080 Add two variants of the threshold function.
by Guillaume Lazzara
* 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
13 years, 1 month
1
0
0
0
← Newer
1
...
12
13
14
15
16
17
18
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Results per page:
10
25
50
100
200