This is a merge commit message of the following branches:
Merge: 1bfe4f9... 6629f93...
ChangeLog | 4 +
configure.ac | 1 +
milena/ChangeLog | 82 ++++
milena/apps/mesh-segm-skel/save_bin_alt.hh | 310 +++++++++++++-
milena/headers.mk | 2 +
milena/mesh/Makefile.am | 20 +-
milena/mesh/pseudo-manifold.vtk | 188 ++++++++
milena/mesh/tetrahedron.vtk | 48 ++
milena/mln/geom/complex_geometry.hh | 17 +-
milena/mln/io/off/load.hh | 30 +-
milena/mln/io/vtk/all.hh | 47 ++
milena/mln/io/vtk/load.hh | 615 ++++++++++++++++++++++++++
milena/mln/io/vtk/save.hh | 649 ++++++++++++++++++++++++++++
milena/tests/io/Makefile.am | 3 +-
milena/tests/io/vtk/Makefile.am | 33 ++
milena/tests/io/vtk/load_bin.cc | 60 +++
milena/tests/io/vtk/load_save_bin.cc | 48 ++
milena/tests/io/vtk/save.cc | 106 +++++
milena/tests/unit_test/unit-tests.mk | 4 +
19 files changed, 2240 insertions(+), 27 deletions(-)
diff --cc milena/ChangeLog
index 5670671,690a83b..b1b2d74
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@@ -1,274 -1,85 +1,356 @@@
+ 2011-03-01 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Add preliminary VTK input for binary images.
+
+ * mln/io/vtk/load.hh: New file.
+ Include it...
+ * mln/io/vtk/all.hh: ...here.
+ * tests/io/vtk/load_bin.cc,
+ * tests/io/vtk/load_save_bin.cc:
+ New.
+ * tests/io/vtk/Makefile.am (check_PROGRAMS): Add load_bin and
+ load_save_bin.
+ (load_bin_SOURCES, load_save_bin_SOURCES): New.
+ (MOSTLYCLEANFILES): Add load_save_bin-out.vtk.
+
+ 2011-03-01 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Add VTK-format meshes.
+
+ * mesh/tetrahedron.vtk,
+ * mesh/pseudo-manifold.vtk:
+ New.
+ * mesh/Makefile.am (dist_mesh_DATA): Add tetrahedron.vtk and
+ pseudo-manifold.vtk.
+
+ 2011-03-01 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Add a pre-allocation routine to mln::geom::complex_geometry.
+
+ * mln/geom/complex_geometry.hh
+ (mln::geom::complex_geometry<D, P>::reserve): New.
+ Use it...
+ * mln/io/off/load.hh: ...here.
+ Aesthetic changes.
+
+ 2010-07-28 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Regen Milena's Makefile helpers.
+
+ * headers.mk, tests/unit_test/unit-tests.mk: Here.
+
+ 2010-07-28 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Add a VTK output for images of unsigned integers.
+
+ * mln/io/vtk/save.hh
+ (io::vtk::save(const unsigned_2complex_image3df&, const std::string&)):
+ New function.
+ (io::vtk::internal::unsigned_vtk_saver): New structure.
+ * tests/io/vtk/save.cc: Add a tests case for images of unsigneds.
+ * tests/io/vtk/Makefile.am (MOSTLYCLEANFILES):
+ Add save-tetrahedron-unsigned.vtk.
+
+ 2010-07-28 Roland Levillain <roland(a)lrde.epita.fr>
+
+ * mln/io/vtk/save.hh: Fix documentation.
+
+ 2010-07-27 Roland Levillain <roland(a)lrde.epita.fr>
+
+ * mln/io/vtk/all.hh: New.
+
+ 2010-06-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Add a specific (temporary) VTK output routine for binary mesh images.
+
+ * apps/mesh-segm-skel/save_bin_alt.hh
+ (mln::io::vtk::save_bin_alt): New function.
+
+ 2010-06-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Exercise mln::io::vtk::save.
+
+ * tests/io/vtk/save.cc: New.
+ * tests/io/vtk/Makefile.am: New.
+ * tests/io/Makefile.am (SUBDIRS): Add vtk.
+
+ 2010-06-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Start a VTK output for complex-based images.
+
+ * mln/io/vtk/save.hh: New.
+
+2011-02-25 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Small corrections in apps/mesh-segm-skel.
+
+ * apps/mesh-segm-skel/test-mesh-segm.in: Remove erroneous
+ execution permission.
+ * apps/mesh-segm-skel/test-mesh-complex-max-curv-extrema.in:
+ Add a missing copyright header.
+
+2011-02-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Exercise topology-related routines.
+
+ * tests/core/image/complex_image.hh
+ (make_test_bin_2complex_image2d): New function.
+ * tests/topo/is_facet.cc,
+ * tests/make/detachment.cc,
+ * tests/make/attachment.cc:
+ New.
+ * tests/topo/Makefile.am (check_PROGRAMS): Add is_facet.
+ (is_facet_SOURCES): New.
+ * tests/make/Makefile.am (check_PROGRAMS): Add attachment and
+ detachment.
+ (attachment_SOURCES, detachment_SOURCES): New.
+
+2011-02-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ New complex image alias: mln::bin_2complex_image2d.
+
+ * mln/core/alias/complex_image.hh (mln::bin_2complex_image2d):
+ New typedef.
+
+2011-02-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Revamp mln::topo::is_simple_cell.
+
+ * mln/topo/is_simple_cell.hh
+ (mln::topo::is_simple_cell<I, N, NL, NH>::operator()):
+ Replace ad hoc code by a call to is_facet.
+
+2011-02-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Have is_facet take into account the values of a (complex) image.
+
+ * mln/topo/is_facet.hh (mln::topo::is_facet): Take a binary image
+ and a neighborhood as arguments and take the image's values into
+ account.
+
+2011-02-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Revamp topology-related routines.
+
+ * mln/make/attachment.hh,
+ * mln/make/cell.hh,
+ * mln/make/detachment.hh,
+ * mln/topo/detach_cell.hh:
+ Do not require the face passed as argument to be a facet.
+
+2011-02-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Make the interface of thinning algorithms uniform w.r.t. functors.
+
+ * mln/topo/skeleton/priority_driven_thinning.hh
+ (mln::topo::skeleton::priority_driven_thinning): Catch up
+ with mln::topo::skeleton::breadth_first_thinning.
+ * mln/topo/detach_point.hh: Turn into a functor to match the new
+ interface of thinning algorithms.
+ * tests/topo/skeleton/breadth_first_thinning.cc
+ * tests/topo/skeleton/breadth_first_thinning_constrained.cc
+ * tests/topo/skeleton/priority_driven_thinning.cc
+ * tests/topo/skeleton/priority_driven_thinning_constrained.cc:
+ Adjust.
+
+2011-02-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ State a cell is not simple if it does not correspond to a facet.
+
+ * mln/topo/is_simple_cell.hh
+ (mln::topo::is_simple_cell<I, N, NL, NH>::operator()): Here.
+
+2010-09-09 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Use mln::data::paste to simplify mesh skeleton applications.
+
+ * apps/mesh-segm-skel/mesh-complex-skel.cc,
+ * apps/mesh-segm-skel/mesh-complex-max-curv-skel.cc,
+ * apps/mesh-segm-skel/mesh-complex-pinv-curv-skel.cc:
+ Here.
+
+2010-09-09 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Update mesh skeleton applications.
+
+ * apps/mesh-segm-skel/mesh-complex-skel.cc,
+ * apps/mesh-segm-skel/mesh-complex-max-curv-skel.cc,
+ * apps/mesh-segm-skel/mesh-complex-pinv-curv-skel.cc:
+ Catch up with the new interface of breadth-first thinning and
+ auxiliary routines.
+
+2010-09-09 Roland Levillain <roland(a)lrde.epita.fr>
+
+ More generic breadth-first-thinning-based skeleton transformations.
+
+ * mln/topo/is_simple_cell.hh: Make this functor more generic.
+ * mln/topo/detach_cell.hh (detach): Turn this function into a
+ more generic functor.
+ * mln/make/attachment.hh (mln::make::attachment)
+ * mln/make/detachment.hh (mln::make::detachment):
+ Make these routines more generic.
+ * mln/topo/skeleton/breadth_first_thinning.hh
+ (mln::topo::skeleton::breadth_first_thinning):
+ Adjust.
+ * headers.mk: Regen.
+
+2010-09-09 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Introduce a helper to build an mln::mutable_extension_ima.
+
+ * mln/core/routine/mutable_extend.hh: New.
+ * headers.mk: Regen.
+
+2010-09-09 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Introduce an extension-by-mutable-image morpher.
+
+ * mln/core/image/dmorph/mutable_extension_ima.hh: New.
+ * headers.mk: Regen.
+
+2010-09-20 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Get the `detach' argument of thinning algorithms by reference.
+
+ * mln/topo/skeleton/breadth_first_thinning.hh
+ (topo::skeleton::breadth_first_thinning)
+ * mln/topo/skeleton/priority_driven_thinning.hh
+ (topo::skeleton::priority_driven_thinning):
+ Here.
+
+2010-09-19 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Get rid of intermediate psites in thinning algorithms.
+
+ * mln/topo/skeleton/breadth_first_thinning.hh,
+ * mln/topo/skeleton/priority_driven_thinning.hh:
+ Here.
+
+2010-09-19 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Have topo::is_n_face take a psite type as class parameter.
+
+ * mln/topo/is_n_face.hh: Here, so that the argument of this
+ functor (e.g., an iterator) is always converted to the psite
+ type.
+ * apps/mesh-segm-skel/mesh-complex-max-curv-skel.cc,
+ * apps/mesh-segm-skel/mesh-complex-pinv-curv-skel.cc,
+ * apps/mesh-segm-skel/mesh-complex-skel.cc:
+ Adjust.
+
+2010-09-17 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Aesthetic changes in thinning algorithms.
+
+ * mln/topo/skeleton/breadth_first_thinning.hh: Remove a comment.
+ * mln/topo/skeleton/priority_driven_thinning.hh: Likewise.
+ Rename p_queue to queue to avoid confusions with mln::p_queue and
+ improve uniformity w.r.t. topo::breadth_first_thinning.
+
+2010-09-17 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Fix the processing order in topo::breadth_first_thinning.
+
+ * mln/topo/skeleton/breadth_first_thinning.hh: Use a p_queue_fast
+ site set instead of a pair of p_set's to ensure an actual
+ breadth-first processing of sites.
+
+2010-09-16 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Split interface and implementation of topo::is_not_end_point.
+
+ * mln/topo/is_not_end_point.hh: Here.
+
+2010-09-15 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Catch up with the renaming to detach_cell.
+
+ * apps/mesh-segm-skel/mesh-complex-max-curv-skel.cc,
+ * apps/mesh-segm-skel/mesh-complex-pinv-curv-skel.cc,
+ * apps/mesh-segm-skel/mesh-complex-skel.cc:
+ s/detach/detach_cell/.
+
+2010-09-15 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Rename topo::detach as topo::detach_cell.
+
+ * mln/topo/detach.hh (detach): Rename as...
+ * mln/topo/detach_cell.hh (detach_cell): ...this, to prevent
+ confusions with detach_point.
+ * headers.mk: Regen.
+
+2010-09-15 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Exercise breadth-first and priority-driven thinnings.
+
+ * tests/topo/skeleton/breadth_first_thinning.cc,
+ * tests/topo/skeleton/breadth_first_thinning_constrained.cc,
+ * tests/topo/skeleton/priority_driven_thinning.cc,
+ * tests/topo/skeleton/priority_driven_thinning_constrained.cc:
+ New.
+ * tests/topo/skeleton/Makefile.am (check_PROGRAMS): Add
+ breadth_first_thinning, breadth_first_thinning_constrained,
+ priority_driven_thinning and priority_driven_thinning_constrained.
+ (breadth_first_thinning_SOURCES)
+ (breadth_first_thinning_constrained_SOURCES)
+ (priority_driven_thinning_SOURCES)
+ (priority_driven_thinning_constrained_SOURCES):
+ New.
+ (MOSTLYCLEANFILES): Add breadth_first_thinning-small.pbm,
+ breadth_first_thinning_constrained-small.pbm,
+ priority_driven_thinning-small.pbm and
+ priority_driven_thinning_constrained-small.pbm.
+
+2010-09-15 Roland Levillain <roland(a)lrde.epita.fr>
+
+ New skeletonization algorithm: priority-driven thinning.
+
+ * mln/topo/skeleton/priority_driven_thinning.hh: New.
+ * headers.mk: Regen.
+
+2010-09-15 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Add helpers to compute skeletons by thinning on regular 2D images.
+
+ * mln/topo/is_simple_point2d.hh,
+ * mln/topo/detach_point.hh,
+ * mln/topo/is_not_end_point.hh:
+ New.
+ * headers.mk: Regen.
+
+2010-09-15 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Add tracing mechanism to breadth-first thinning.
+
+ * mln/topo/skeleton/breadth_first_thinning.hh: Here.
+ Typos and aesthetic changes.
+
+2010-09-15 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Small fix in breadth-first thinning.
+
+ * mln/topo/skeleton/breadth_first_thinning.hh: Do not try to
+ detach an aldready processed site.
+
+2010-09-09 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Make the 5th argument of breadth_first_thinning truly optional.
+
+ * mln/topo/skeleton/breadth_first_thinning.hh
+ (mln::topo::skeleton::breadth_first_thinning):
+ Disable the default value of the 5th argument, which cannot be
+ used in practice, since it depends on the parameter H.
+ Add a 4-argument overloading to make the `constraint' argument
+ optional.
+
+2010-09-01 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Add more documentation on the detach procedure.
+
+ * mln/make/detachment.hh: Here.
+ Typo.
+ * mln/topo/detach.hh: Typo.
+
2010-08-18 Roland Levillain <roland(a)lrde.epita.fr>
* mln/topo/skeleton/breadth_first_thinning.hh: Reindent.
hooks/post-receive
--
Olena, a generic and efficient image processing platform