#199: Stop using recursive Makefiles in milena/tests/?
----------------------+-----------------------------------------------------
Reporter: levill_r | Owner: Olena Team
Type: proposal | Status: new
Priority: trivial | Milestone: Olena 1.1
Component: Milena | Version: 1.0
Keywords: |
----------------------+-----------------------------------------------------
This is an open debate, not a well-defined task.
As of r3946, there are more than a hundred `Makefile`s under
source:trunk/milena/tests/. This has a huge impact on configuration and
build times.
Akim suggests we use `Makefile` inclusions instead of `Makefile` recursion
to speed up things. This also means losing the possibility to invoke
`make` in a specific subdirectory of `milena/tests/`, which is very handy.
Akim says we can substitute the feature by using scripts relying on the
control version program (http://lists.gnu.org/archive/html/automake-
patches/2009-03/msg00079.html).
Let's discuss this, and see what we can do after the 1.0 release.
--
Ticket URL: <https://trac.lrde.org/olena/ticket/199>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#134: Overhaul the generation of the documentation
-------------------------+--------------------------------------------------
Reporter: levill_r | Owner: levill_r
Type: enhancement | Status: new
Priority: major | Milestone: Olena 1.0ß
Component: Milena | Version: 1.0
Keywords: doc |
-------------------------+--------------------------------------------------
Changes introduced in r1606 downgraded many features that were present
before! In particular, source:trunk/milena/doc/Doxyfile.in has been
downgraded from Doxygen version 1.5.2 to Doxygen 1.5.1 (why!?).
Let's start again on a sound basis. The best way is probably to reused
`Doxyfile.in` from a previous revision (e.g,
source:trunk/milena/doc/Doxyfile.in#1476), and add current features (e.g.,
double documentation generation).
--
Ticket URL: <https://trac.lrde.org/olena/ticket/134>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#203: Document commit procedures
----------------------+-----------------------------------------------------
Reporter: levill_r | Owner: levill_r
Type: task | Status: new
Priority: critical | Milestone:
Component: Trac | Version: 1.0
Keywords: |
----------------------+-----------------------------------------------------
There are just too many mistakes in commits. The LRDE Guidelines warns
about many of them, but IMHO it is not enough.
A draft summary:
* Read comments from other about your patches (and patch proposals), and
take them into account.
* Use tools, but don't be fooled by them (know their limits): Vcs, `svn-
wrapper`, etc. A flaw in a tool is not an excuse for a dirty patch.
* Learn what a (good) !ChangeLog entry is.
* Kwow why !ChangeLogs matter (whatever their form), both technically
and legally.
* Learn how to fix !ChangeLogs correctly.
* Resist to the temptation to commit too fast.
* Don't break things: run `make` (and possibly `make check`) before
committing.
* Do not commit too many things at once: one idea/one task = one
commit.
* Reread you patches before sending them.
* Use ispell (when writing documentation).
* Learn how to use `git-svn` (or `git`, if it is available) instead of
`svn`.
* Learn from others: some tools take time to understand and master (Make,
Autoconf, Automake, shells, etc.).
Olena Teammates shall print and read this page once complete.
--
Ticket URL: <https://trac.lrde.org/olena/ticket/203>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#147: Write a script to automatically generate file skeletons for Olena
-----------------------+----------------------------------------------------
Reporter: levill_r | Owner: Olena Team
Type: task | Status: new
Priority: trivial | Milestone:
Component: Milena | Version: 1.0
Keywords: generator |
-----------------------+----------------------------------------------------
A Ruby script would be nice, but the language doesn't really matter.
--
Ticket URL: <https://trac.lrde.org/olena/ticket/147>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#160: Revamp complexes
----------------------------+-----------------------------------------------
Reporter: levill_r | Owner: Olena Team
Type: enhancement | Status: new
Priority: minor | Milestone: Olena 1.0
Component: Milena | Version: 1.0
Keywords: cleanup rename |
----------------------------+-----------------------------------------------
* Move complexes from `mln/core/` to `mln/topo/`.
* The '''dynamic''' access(es) to the set of ''n''-faces of a complex
(e.g., `mln::complex::nfaces(unsigned)`) has (have) a linear complexity!
We should get rid of that. We could create an index at the creation of
the complex, mapping dynamic dimension numbers to the corresponding
(static) mixin/data. Ask Roland for details.
--
Ticket URL: <https://trac.lrde.org/olena/ticket/160>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#188: Implement more windows, neighborhoods, and corresponding iterators for
complex-based images
----------------------+-----------------------------------------------------
Reporter: levill_r | Owner: levill_r
Type: task | Status: new
Priority: minor | Milestone: Olena 1.1
Component: Milena | Version: 1.0
Keywords: |
----------------------+-----------------------------------------------------
This ticket is a sequel to #162.
In addition to the neighborhoods, windows, and iterators for complex-based
images from #162, implement windows/neighborhoods (and corresponding
iterators) returning the following elements (where ''n'' is a (fixed)
dimension and ''p'' a psite on an ''n''-face).
`complex_cell_window`:: the set of the faces in the « cell » including
''p'' (named « ''p''-hat » in
couprie.08.pami), i.e. the set of all ''m''-faces transitively adjacent
to ''p'',
where ''m'' is in [0, ''n''-1].[[BR]]
In that definition, ''p'' is said adjacent to an ''m''-face ''q'' if
there is a sequence (''m,,1,,'', ''m,,2,,'', ..., ''m,,k,,'') of faces so
that
* ''m,,1,,'' is an (''n''-1)-face adjacent to ''p'' ;
* ''m,,2,,'' is an (''n''-2)-face adjacent to ''m,,1,,'' ;
* ... (and so on)
* ''m,,k,,'' is an (''m''+1)-face adjacent to ''q''.
`complex_boundary_cell_window`:: Likewise, but excluding ''p'' (named «
''p''-hat* » in couprie.08.pami).
And maybe:
`complex_lower_dims_connected_window`:: the set of ''n''-faces sharing a
(''n''-1)-face or (''n''-2)-face etc. (by transitivity) with ''p'' (is it
useful?);
`complex_higher_dims_connected_window`:: the set of ''n''-faces sharing a
(''n''+1)-face or (''n''+2)-face etc. (by transitivity) with ''p'' (is it
useful?);
* what else?
As in #139,
* we might want to factor things using implementation classes:
* ``mln::internal::complex_vicinity``
* ``mln::internal::complex_vicinity_piter``
(we might even be able to factor them with graph-based ones);
* we could have one or several generic classes, using static or dynamic
predicates, to implement those windows and neighborhoods.
Note that some of these iterators might implement operators on complexes,
see
http://en.wikipedia.org/wiki/Simplicial_complex#Closure.2C_star.2C_and_link.
Do not forget to update [wiki:Olena/ComplexBasedImages].
--
Ticket URL: <https://trac.lrde.org/olena/ticket/188>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#139: Factor common code shared by graph-related piters, windows and
neighborhoods
--------------------------+-------------------------------------------------
Reporter: levill_r | Owner: levill_r
Type: enhancement | Status: new
Priority: major | Milestone: Olena 1.0
Component: Milena | Version: 1.0
Keywords: graph factor |
--------------------------+-------------------------------------------------
This tasks refers to these classes:
* `mln::graph_elt_window`
* `mln::graph_elt_neighborhood`
* `mln::line_graph_elt_window`
* `mln::line_graph_elt_neighborhood`
* `mln::graph_window_fwd_piter`
* `mln::graph_window_bkd_piter`
* `mln::graph_neighborhood_fwd_piter`
* `mln::graph_neighborhood_bkd_piter`
* `mln::line_graph_window_fwd_piter`
* `mln::line_graph_window_bkd_piter`
* `mln::line_graph_neighborhood_fwd_piter`
* `mln::line_graph_neighborhood_bkd_piter`
Note: we should factor other graph-related classes as well (psites,
images, etc.), but this is less urgent; open another ticket to handle
those.
--
Ticket URL: <https://trac.lrde.org/olena/ticket/139>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#185: Unify algorithms morpho::skeleton_constrained and
topo::breadth_first_thinning
-------------------------+--------------------------------------------------
Reporter: levill_r | Owner: levill_r
Type: enhancement | Status: new
Priority: major | Milestone: Olena 1.0
Component: Milena | Version: 1.0
Keywords: |
-------------------------+--------------------------------------------------
Two (very similar) skeletonization algorithms have been developed:
1. source:trunk/milena/mln/morpho/skeleton_constrained.hh
2. source:trunk/milena/mln/topo/skeleton/breadth_first_thinning.hh
The first algorithm is probably a bit more generic, as it takes a priority
function as input. It has not been tested on complex-based images (known
to be supported by the second algorithm).
Unify both algorithm (within `topo/skeleton/`), probably using a canvas.
Some elements like the constraint or the priority function should provide
default values; the only mandatory arguments should be the input image,
the neighborhood and the simplicity function.
Do not forget to move/adjust corresponding tests/programs accordingly.
--
Ticket URL: <https://trac.lrde.org/olena/ticket/185>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.