1. 07 Feb, 2013 6 commits
    • Roland Levillain's avatar
      Disambiguate operator- overload resolution with a pow_int_ operand. · f2b50a1a
      Roland Levillain authored
      	* mln/metal/math/pow.hh (mln::metal::math::impl::pow_int_):
      	Use static const integers instead of enums.
      f2b50a1a
    • Roland Levillain's avatar
      Revive tests/value/graylevel.cc. · d4f02aba
      Roland Levillain authored
      	* mln/value/graylevel.hh: Aesthetic changes in comments.
      	* tests/value/graylevel.cc (test_conversion): Turn this macro into
      	a function template.
      	(main): Ensure all valid comparisons listed in
      	mln/value/graylevel.hh work.
      	Remove dead code.
      	Address warnings.
      	* tests/value/Makefile.am (check_PROGRAMS): Re-enable graylevel.
      	(graylevel_SOURCES): Re-enable.
      d4f02aba
    • Roland Levillain's avatar
      Fix mutual dependencies between floating-point gray-level values. · 85c24ded
      Roland Levillain authored
      	* mln/value/graylevel_f.hh,
      	* mln/value/internal/gray_f.hh:
      	Move definitions...
      	* mln/value/graylevel_f.hxx,
      	* mln/value/internal/gray_f.hxx:
      	...here (new files).
      	* headers.mk (nobase_include_HEADERS): Regen.
      85c24ded
    • Roland Levillain's avatar
      Address more remaining clang++ errors in Milena. · 1f8557cf
      Roland Levillain authored
      	* mln/core/concept/proxy.hxx: Add and reorder forward
      	declarations.
      	* mln/accu/site_set/rectangularity.hh (rectangularity<P>): Do not
      	re-import base class attributes as protected members, so that the
      	base class can still access them.
      	Adjust.
      	* mln/geom/seeds2tiling_roundness.hh,
      	* mln/subsampling/antialiased.hh,
      	* mln/world/inter_pixel/dim2/make_edge_image.hh:
      	Add missing header inclusions.
      	* mln/io/plot/save.hh (save)
      	* mln/morpho/tree/propagate_node.hh
      	(propagate_node_to_descendants):
      	Do not provide default arguments twice.
      	* mln/topo/face_iter.hh,
      	* mln/topo/n_face_iter.hh:
      	Add `this->' qualifiers to disambiguate calls to base class
      	methods.
      	* tests/metal/converts_to.cc (from_2): Do not rely on
      	uninitialized data.
      	(main): Add a test case.
      1f8557cf
    • Roland Levillain's avatar
      More clang++ support in Milena. · c52c5f64
      Roland Levillain authored
      	* mln/core/concept/proxy.hxx (get_proxy_impl<Subject, E>): Swap
      	two definitions to help clang++ properly resolve calls to the
      	overloaded conversion operator.
      c52c5f64
    • Roland Levillain's avatar
      Start to work around clang++ deficiencies to compile Milena. · 44a94cb2
      Roland Levillain authored
      	* mln/util/tracked_ptr.hh (tracked_ptr<T>::operator*): New.
      	* mln/topo/complex.hh: Decompose complex instructions.
      44a94cb2
  2. 08 Oct, 2012 2 commits
    • Roland Levillain's avatar
      Revive headers required by the RGB component functors. · 279bb010
      Roland Levillain authored
      	* mln/core/image/vmorph/thru_image.hh,
      	* mln/fun/component/blue.hh,
      	* mln/fun/component/green.hh,
      	* mln/fun/component/red.hh,
      	* mln/fun/component/rgb.hh,
      	* mln/fun/param.hh,
      	* mln/fun/spe/unary.hh,
      	* mln/fun/unary.hh,
      	* mln/trait/functions.hh,
      	* mln/trait/next/solve.hh,
      	* mln/trait/next/solve_binary.hh,
      	* mln/trait/next/solve_proxy.hh,
      	* mln/trait/next/solve_unary.hh:
      	New.
      	* headers.mk,
      	* tests/unit_test/unit-tests.mk:
      	Regen.
      279bb010
    • Roland Levillain's avatar
      Address g++-4.7 compilation errors. · 8fbf9f2f
      Roland Levillain authored
      	* apps/morphers/image2d-skel.hh (is_simple_2d::operator()):
      	Qualify a call to a base class member.
      8fbf9f2f
  3. 05 Oct, 2012 3 commits
    • Roland Levillain's avatar
      Provide typedefs mln::value::int_s24 and mln::value::int_u24. · 26f95b17
      Roland Levillain authored
      	* mln/value/int_s24.hh,
      	* mln/value/int_u24.hh:
      	New.
      26f95b17
    • Roland Levillain's avatar
      Rename Trimesh reimplementations in apps/mesh-segm-skel/. · 9e4ce856
      Roland Levillain authored
      	* apps/mesh-segm-skel/trimesh/misc.hh: Move...
      	* apps/mesh-segm-skel/misc.hh: ...here.
      	Update comments.
      	* apps/mesh-segm-skel/mesh-complex-max-curv-segm.cc,
      	* apps/mesh-segm-skel/mesh-complex-max-curv.cc:
      	Adjust.
      	* apps/mesh-segm-skel/trimesh/README: Remove.
      	* apps/mesh-segm-skel/Makefile.am (noinst_HEADERS, EXTRA_DIST):
      	Adjust.
      9e4ce856
    • Roland Levillain's avatar
      Remove anything depending on the Trimesh library. · aa29f391
      Roland Levillain authored
      	* apps/mesh-segm-skel/io.hh,
      	* apps/mesh-segm-skel/mesh-max-curv.cc,
      	* apps/mesh-segm-skel/mesh-pinv-curv.cc,
      	* apps/mesh-segm-skel/mesh-segm.cc,
      	* apps/mesh-segm-skel/mesh-skel.cc,
      	* apps/mesh-segm-skel/test-mesh-max-curv.in,
      	* apps/mesh-segm-skel/test-mesh-segm.in:
      	Remove.
      	* apps/mesh-segm-skel/Makefile.am: Remove anything related to the
      	Trimesh library.
      aa29f391
  4. 25 Sep, 2012 1 commit
  5. 21 Jun, 2012 6 commits
    • Roland Levillain's avatar
      Improve the (movie) output of apps/morphers/iz. · b4ca8d4c
      Roland Levillain authored
      	* apps/morphers/iz.cc (save_colorized): Skip consecutive identical
      	frames.
      	Swap the frame reconstruction and write operations, so that the
      	last frame is eventually saved.
      	* apps/morphers/Makefile.am (tmp_iz.avi): Use a speedup of 50
      	instead of 10.
      b4ca8d4c
    • Roland Levillain's avatar
      Use the lazy recorder morpher in apps/morphers/iz. · 08bc024b
      Roland Levillain authored
      	* apps/morphers/iz.cc (main): Here.
      	Save the sequence of recorder images as PNG images using Magick++.
      	(save_colorized): New function.
      	* apps/morphers/Makefile.am
      	(noinst_PROGRAMS, iz_SOURCES) [HAVE_MAGICKXX]: Build `iz' only if
      	Magick++ is available.
      	(iz_output.ppm) [HAVE_MAGICKXX]: Likewise.
      	(iz_CPPFLAGS, iz_LDFLAGS) [HAVE_MAGICKXX]: New.
      	(tmp_iz.avi) [HAVE_MAGICKXX]: New target.
      	(MOSTLYCLEANFILES): Add tmp_iz??????.png.
      08bc024b
    • Roland Levillain's avatar
      Add rules to build and run apps/morphers/iz. · 72ee021e
      Roland Levillain authored
      	* apps/morphers/Makefile.am (noinst_PROGRAMS): Add iz.
      	(iz_SOURCES): New.
      	(EXTRA_DIST): Add iz_input.pbm.
      	(iz_output.ppm): New target.
      	(MOSTLYCLEANFILES): Add tmp_clo.pgm, tmp_dmap.pgm,
      	tmp_ws_superpose.ppm, tmp_ws.ppm, tmp_lab.pgm, tmp_iz.pgm,
      	tmp_iz.ppm and tmp_iz_input.ppm.
      72ee021e
    • Thierry Geraud's avatar
      New example demonstrating the use of influence zones. · 3864857f
      Thierry Geraud authored and Roland Levillain's avatar Roland Levillain committed
      
      
      	* apps/morphers/iz.cc: New.
      	* apps/morphers/iz_input.pbm: New.
      Signed-off-by: Roland Levillain's avatarRoland Levillain <roland@lrde.epita.fr>
      3864857f
    • Roland Levillain's avatar
      New ``lazy'' recorder morpher in apps/morpher. · f8e2ffe5
      Roland Levillain authored
      	* apps/morphers/lazy_recorder.hh: New.
      	* apps/morphers/lazy_recorder.cc: New test.
      	* apps/morphers/Makefile.am (noinst_HEADERS):
      	Add lazy_recorder.hh.
      	(noinst_PROGRAMS): Add lazy_recorder.
      	(lazy_recorder_SOURCES): New.
      	(MOSTLYCLEANFILES): Add lena-fill-lazy??????.ppm.
      f8e2ffe5
    • Roland Levillain's avatar
      Render the recorder morpher more generic. · bc142a16
      Roland Levillain authored
      	* apps/morphers/recorder.hh (recorder<I>::sequence): Store a
      	sequence of concrete images.
      	Add missing inline keywords.
      	Improve the documentation.
      bc142a16
  6. 15 Jun, 2012 1 commit
  7. 14 Jun, 2012 1 commit
  8. 09 Mar, 2012 1 commit
  9. 29 Nov, 2011 1 commit
    • Guillaume Lazzara's avatar
      Fix the initialization of all global constants (ticket #43) · 1f0b6046
      Guillaume Lazzara authored
      	* mln/debug/slices_2d.hh,
      	* mln/io/dump/get_header.hh,
      	* mln/io/fld/header.hh,
      	* mln/io/fld/load.hh,
      	* mln/io/fld/load_header.hh,
      	* mln/io/off/load.hh,
      	* mln/io/off/save.hh,
      	* mln/math/jacobi.hh,
      	* mln/morpho/hit_or_miss.hh,
      	* mln/world/binary_2d/subsample.hh: Add missing 'inline'.
      
      	* tests/Makefile.am (CXXFLAGS): Add -DMLN_WO_GLOBAL_VARS.
      
      	* tests/global_vars1.cc,
      	* tests/global_vars2.cc: Make take MLN_WO_GLOBAL_VARS into
      	consideration.
      1f0b6046
  10. 28 Nov, 2011 2 commits
  11. 24 Nov, 2011 5 commits
    • Roland Levillain's avatar
      New morpher example: recording a watershed transform. · bd2670fb
      Roland Levillain authored
      	* apps/morphers/recorder-wst.cc: New.
      	* apps/morphers/Makefile.am (noinst_PROGRAMS): Add recorder-wst.
      	(recorder_wst_SOURCES): New.
      	(MOSTLYCLEANFILES): lena-wst??????.ppm.
      bd2670fb
    • Roland Levillain's avatar
      Work around decorated_image's lack of properties, for the recorder. · 849c1370
      Roland Levillain authored
      	* apps/morphers/recorder.hh
      	(trait::image_< decorated_image<I,D> >): Replace with..
      	(trait::image_< decorated_image<I, recorder<I> > >): ...this.
      	Add a value_storage property.
      	(ch_value_< decorated_image< image_<I>, data_< recorder<I> > >, V >):
      	New trait, to handle changes of value types in images decorated
      	with a recorder.
      	* apps/morphers/mask+channel.cc,
      	* apps/morphers/mask+recorder.cc,
      	* apps/morphers/recorder.cc:
      	Simplify these programs thanks to the preceding changes.
      849c1370
    • Roland Levillain's avatar
      Fix the initialization of mln::decorated_image. · dcad6adc
      Roland Levillain authored
      	* mln/tag/init.hh (tag::data_t): New tag type.
      	 (tag::data): New tag.
      	* mln/core/image/imorph/decorated_image.hh
      	(init_(tag::data_t, D&, const decorated_image<I,D>&))
      	(init_(tag::data_t, D&, const decorated_image<I,D2>&))
      	(init_(tag::image_t, decorated_image<I,D>&, const J&)):
      	New functions.
      dcad6adc
    • Guillaume Lazzara's avatar
    • Roland Levillain's avatar
      Honor a precondition in classification examples (ISMM 2009). · d590e49d
      Roland Levillain authored
      	* apps/papers/levillain.09.ismm/classif-graph.cc,
      	* apps/papers/levillain.09.ismm/classif-1complex.cc:
      	Do not use a value outside the range [0, nbasins] in `canvas_wst'
      	to prevent a failed precondition in labeling::colorize (when
      	NDEBUG is not defined).
      	Reported by David Coeurjolly <david.coeurjolly at liris.cnrs.fr>.
      d590e49d
  12. 23 Nov, 2011 2 commits
    • Guillaume Lazzara's avatar
      Fix compilation with multiple files. · e2e8ec06
      Guillaume Lazzara authored
      	* mln/canvas/browsing/backdiagonal2d.hh,
      	* mln/canvas/browsing/breadth_first_search.hh,
      	* mln/canvas/browsing/depth_first_search.hh,
      	* mln/canvas/browsing/diagonal2d.hh,
      	* mln/canvas/browsing/dir_struct_elt_incr_update.hh,
      	* mln/canvas/browsing/directional.hh,
      	* mln/canvas/browsing/fwd.hh,
      	* mln/canvas/browsing/hyper_directional.hh,
      	* mln/canvas/browsing/snake_fwd.hh,
      	* mln/canvas/browsing/snake_generic.hh,
      	* mln/canvas/browsing/snake_vert.hh,
      	* mln/fun/v2v/hsi_to_rgb.hh,
      	* mln/fun/v2v/rgb_to_hsi.hh,
      	* mln/fun/v2v/rgb_to_hsl.hh,
      	* mln/literal/black.hh,
      	* mln/literal/colors.hh,
      	* mln/literal/grays.hh,
      	* mln/literal/max.hh,
      	* mln/literal/min.hh,
      	* mln/literal/white.hh: Add missing inline keyword and
      	MLN_WO_GLOBAL_VARS guards.
      e2e8ec06
    • Guillaume Lazzara's avatar
      Fix more compilation issues with g++ 4.6.1 and clang++. · 2af40042
      Guillaume Lazzara authored
      	* mln/canvas/browsing/snake_vert.hh,
      	* mln/fun/v2v/hsi_to_rgb.hh,
      	* mln/fun/v2v/rgb_to_hsi.hh,
      	* mln/fun/v2v/rgb_to_hsl.hh,
      	* mln/literal/grays.hh,
      	* mln/literal/identity.hh,
      	* mln/literal/max.hh,
      	* mln/literal/min.hh,
      	* mln/literal/one.hh,
      	* mln/literal/origin.hh,
      	* mln/literal/zero.hh: Add default constructors.
      2af40042
  13. 22 Nov, 2011 2 commits
    • Guillaume Lazzara's avatar
      Fix compilation issues with g++ 4.6.1 and clang++. · 93ca680b
      Guillaume Lazzara authored
      	* mln/topo/center_only_iter.hh,
      	* mln/topo/face.hh,
      	* mln/trait/images.hh,
      	* mln/convert/from_to.hxx,
      	* mln/core/image/dmorph/sub_image.hh,
      	* mln/core/routine/init.hxx,
      	* mln/algebra/vec.hh: Make declaration and forward declarations
      	consistent.
      
      	* mln/canvas/browsing/backdiagonal2d.hh,
      	* mln/canvas/browsing/breadth_first_search.hh,
      	* mln/canvas/browsing/depth_first_search.hh,
      	* mln/canvas/browsing/diagonal2d.hh,
      	* mln/canvas/browsing/directional.hh,
      	* mln/canvas/browsing/fwd.hh,
      	* mln/canvas/browsing/hyper_directional.hh,
      	* mln/canvas/browsing/snake_fwd.hh,
      	* mln/canvas/browsing/snake_generic.hh,
      	* mln/canvas/browsing/snake_vert.hh,
      	* mln/fun/v2v/hsl_to_rgb.hh,
      	* mln/literal/black.hh,
      	* mln/literal/colors.hh,
      	* mln/literal/white.hh: Add a default constructor for global
      	variable types.
      
      	* mln/canvas/browsing/internal/graph_first_search.hh: Avoid a
      	warning for an unused variable.
      
      	* mln/data/was.median.hh: Fix type of the reference.
      93ca680b
    • Guillaume Lazzara's avatar
      Fix warnings with Clang/g++ 4.6.x · 812809e6
      Guillaume Lazzara authored
      	* 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.
      812809e6
  14. 18 Nov, 2011 2 commits
  15. 14 Nov, 2011 1 commit
    • Roland Levillain's avatar
      Add examples of morphers. · 1e58a782
      Roland Levillain authored
      	* apps/morphers/mask+channel.cc,
      	* apps/morphers/recorder.cc,
      	* apps/morphers/mask+recorder.cc:
      	New.
      	* apps/morphers/Makefile.am: New.
      	* apps/Makefile.am (SUBDIRS): Add morphers.
      1e58a782
  16. 11 Oct, 2011 1 commit
    • Roland Levillain's avatar
      Graph-based version of the classification example. · 4649bd3b
      Roland Levillain authored
      	* apps/papers/levillain.09.ismm/classif-graph.cc: New.
      	* apps/papers/levillain.09.ismm/Makefile.am (noinst_PROGRAMS):
      	Add classif-graph.
      	(classif_graph_SOURCES): New.
      	(noinst_DATA): Add classwst-graph.ppm.
      	(classwst-graph.ppm): New target.
      4649bd3b
  17. 10 Oct, 2011 2 commits
  18. 05 Oct, 2011 1 commit
    • Roland Levillain's avatar
      Fix and clean up apps/papers/levillain.09.ismm/classif.cc. · e32d7098
      Roland Levillain authored
      	* apps/papers/levillain.09.ismm/classif.cc (main): Actually use
      	the chain() routine from chain.hh instead of ad hoc code.
      	Move code related to the construction of the 1-complex (graph)
      	image on which the processing chain is run...
      	(make_complex_image): ...here.
      	* apps/papers/levillain.09.ismm/Makefile.am (classwst.pnm): Change
      	the lambda (area) parameter to 4.
      e32d7098