This is a merge commit message of the following branches:
Merge: b654f0d 13174ea
Conflicts:
ChangeLog
milena/ChangeLog
ChangeLog | 4 +
configure.ac | 1 +
milena/ChangeLog | 154 +++++++++++++++++
milena/apps/Makefile.am | 5 +-
milena/apps/morphers/Makefile.am | 76 +++++++++
milena/apps/morphers/image2d-skel.hh | 137 +++++++++++++++
milena/apps/morphers/iz.cc | 173 +++++++++++++++++++
milena/apps/morphers/iz_input.pbm | Bin 0 -> 21890 bytes
milena/apps/morphers/lazy_recorder.cc | 62 +++++++
milena/apps/morphers/lazy_recorder.hh | 206 +++++++++++++++++++++++
milena/apps/morphers/mask+channel.cc | 67 ++++++++
milena/apps/morphers/mask+recorder.cc | 65 +++++++
milena/apps/morphers/recorder-bft.cc | 114 +++++++++++++
milena/apps/morphers/recorder-wst.cc | 106 ++++++++++++
milena/apps/morphers/recorder.cc | 61 +++++++
milena/apps/morphers/recorder.hh | 182 ++++++++++++++++++++
milena/mln/core/image/imorph/decorated_image.hh | 26 +++
milena/mln/tag/init.hh | 3 +
18 files changed, 1440 insertions(+), 2 deletions(-)
diff --cc ChangeLog
index 6f2cfc5,e56f5cc..b3e00ef
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,32 -1,7 +1,36 @@@
+ 2011-11-14 Roland Levillain <roland(a)lrde.epita.fr>
+
+ * configure.ac: Configure milena/apps/morphers/Makefile.
+
+2011-11-16 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * m4/oln-with-lib.m4: Lookup for multiple AND single libraries
+ while checking Tesseract availability.
+
+2011-11-25 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Update lrde-scmstats.sh.
+
+ * lrde-scmstats.sh: Look more like lrde-upload.sh.
+ Ensure generated data is readable from the Web.
+ Anonymize some names as requested by some contributors.
+
+2011-11-24 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * distrib/macports/Portfile.in: Fix maintainers field.
+
+2011-11-24 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * lrde-scmstats.sh: Fix branch name ambiguities.
+
+2011-11-23 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * lrde-scmstats.sh: Compute stats per branches.
+
+2011-11-23 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * lrde-upload.sh: Update list of branches.
+
2011-10-06 Roland Levillain <roland(a)lrde.epita.fr>
* README (Bibliography): Mention the GRETSI 2011 paper.
diff --cc milena/ChangeLog
index 745f38b,fcd3962..c1289de
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@@ -1,195 -1,157 +1,349 @@@
+ 2012-09-25 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Fix file names in apps/morphers/recorder-bft.
+
+ * apps/morphers/recorder-bft.cc,
+ * apps/morphers/Makefile.am (recorder_SOURCES):
+ s/lena/picasso/.
+
+ 2012-06-21 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Improve the (movie) output of apps/morphers/iz.
+
+ * 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.
+
+ 2012-06-21 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Use the lazy recorder morpher in apps/morphers/iz.
+
+ * 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.
+
+ 2012-06-20 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Add rules to build and run apps/morphers/iz.
+
+ * 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.
+
+ 2012-06-20 Thierry Geraud <thierry.geraud(a)lrde.epita.fr>
+
+ New example demonstrating the use of influence zones.
+
+ * apps/morphers/iz.cc: New.
+ * apps/morphers/iz_input.pbm: New.
+
+ 2012-06-21 Roland Levillain <roland(a)lrde.epita.fr>
+
+ New ``lazy'' recorder morpher in apps/morpher.
+
+ * 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.
+
+ 2012-06-21 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Render the recorder morpher more generic.
+
+ * apps/morphers/recorder.hh (recorder<I>::sequence): Store a
+ sequence of concrete images.
+ Add missing inline keywords.
+ Improve the documentation.
+
+ 2011-11-28 Roland Levillain <roland(a)lrde.epita.fr>
+
+ New morpher example: recording a breadth-first thinning.
+
+ * apps/morphers/recorder-bft.cc: New.
+ * apps/morphers/image2d-skel.hh: New.
+ * apps/morphers/Makefile.am (noinst_PROGRAMS): Add recorder-bft.
+ (recorder_wst_SOURCES): New.
+ (recorder_SOURCES, recorder_wst_SOURCES, mask_recorder_SOURCES):
+ Move recorder.hh...
+ (noinst_HEADERS): ...here (new variable).
+ (MOSTLYCLEANFILES): Add lena-bft??????.pbm.
+
+ 2011-11-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ New morpher example: recording a watershed transform.
+
+ * apps/morphers/recorder-wst.cc: New.
+ * apps/morphers/Makefile.am (noinst_PROGRAMS): Add recorder-wst.
+ (recorder_wst_SOURCES): New.
+ (MOSTLYCLEANFILES): lena-wst??????.ppm.
+
+ 2011-11-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Work around decorated_image's lack of properties, for the recorder.
+
+ * 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.
+
+ 2011-11-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Fix the initialization of mln::decorated_image.
+
+ * 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.
+
+ 2011-11-18 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Simplify some apps/morpher programs using mln::make::box2d.
+
+ * apps/morphers/mask+recorder.cc,
+ * apps/morphers/mask+channel.cc:
+ Here.
+
+ 2011-11-18 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Refactor apps/morphers.
+
+ * apps/morphers/recorder.cc,
+ * apps/morphers/mask+recorder.cc:
+ Factor common parts...
+ * apps/morphers/recorder.hh: ...here (new file).
+ * apps/morphers/Makefile.am
+ (recorder_SOURCES, mask_recorder_SOURCES): Add recorder.hh.
+
+ 2011-11-14 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Add examples of morphers.
+
+ * 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.
+
+2011-11-24 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Honor a precondition in classification examples (ISMM 2009).
+
+ * 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>.
+
+2011-10-11 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Graph-based version of the classification example.
+
+ * 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.
+
+2011-10-10 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Rename apps/papers/levillain.09.ismm/classif.cc.
+
+ * apps/papers/levillain.09.ismm/classif.cc: Rename as...
+ * apps/papers/levillain.09.ismm/classif-1complex.cc: ...this.
+ * apps/papers/levillain.09.ismm/Makefile.am
+ (noinst_PROGRAMS, noinst_DATA): s/classif/classif-1complex/.
+ (classif_SOURCES, classwst.pnm): Replace by...
+ (classif_1complex_SOURCES, classwst-1complex.ppm): ...these.
+
+2011-10-10 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Aesthetic changes in apps/papers/levillain.09.ismm/classif.cc.
+
+ * apps/papers/levillain.09.ismm/classif.cc: Here.
+ Remove useless headers inclusions.
+ Adjust comments.
+
+2011-10-05 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Fix and clean up apps/papers/levillain.09.ismm/classif.cc.
+
+ * 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.
+
+2011-10-04 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Import the WST-based classification in apps/papers/levillain.09.ismm.
+
+ * apps/papers/levillain.09.ismm/Makefile.am
+ (noinst_PROGRAMS): Add classif.
+ (classif_SOURCES): Add classif.cc
+ (dist_noinst_DATA): Add classseedsi.pbm.
+ (noinst_DATA): Add classwst.pnm.
+ (classwst.pnm): New target.
+ * apps/papers/levillain.09.ismm/classif.cc: New.
+ Copied and adapted from
+ sandbox/theo/esiee/laurent/presentation/classif.cc.
+ * apps/papers/levillain.09.ismm/classseedsi.pbm: New.
+
+2011-10-04 Roland Levillain <roland(a)lrde.epita.fr>
+
+ Split apps/papers/levillain.09.ismm/graph.cc.
+
+ * apps/papers/levillain.09.ismm/graph.cc: Misc. changes.
+ (mln::influence_zones)
+ (mln::io::neato::save):
+ Move functions...
+ * apps/papers/levillain.09.ismm/influence_zones.hh,
+ * apps/papers/levillain.09.ismm/io.hh:
+ ...here (new files).
+ * apps/papers/levillain.09.ismm/Makefile.am (noinst_HEADERS):
+ Add io.hh and influence_zones.hh
+
+2011-11-29 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix the initialization of all global constants (ticket #43)
+
+ * 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.
+
+2011-11-28 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix invalid minimum value for builtin floating types. (ticket #247)
+
+ * mln/value/builtin/floatings.hh: Here.
+
+ * tests/value/builtin/floatings.cc: write test.
+
+2011-11-24 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ * mln/fun/v2v/rgb_to_hsl.hh: Fix constructor declaration.
+
+2011-11-23 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix compilation with multiple files.
+
+ * 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.
+
+2011-11-23 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix more compilation issues with g++ 4.6.1 and clang++.
+
+ * 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.
+
+2011-11-21 Guillaume Lazzara <z(a)lrde.epita.fr>
+
+ Fix compilation issues with g++ 4.6.1 and clang++.
+
+ * 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/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/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.
+
2011-10-04 Roland Levillain <roland(a)lrde.epita.fr>
Handle the case of filling an empty border.
hooks/post-receive
--
Olena, a generic and efficient image processing platform