#136: Delegate rgb operators
----------------------------------+-----------------------------------------
Reporter: garrigues | Owner: Olena Team
Type: enhancement | Status: new
Priority: major | Milestone: Olena 1.0
Component: Milena | Version: 1.0
Keywords: vectorial values rgb |
----------------------------------+-----------------------------------------
Some operators on rgb values are defined (see
source:trunk/milena/mln/value/rgb.hh).
FIXME: We should not need to define these operators, thanks to
Milena's global operator resolution mechanism based on
mln::Object. See what prevent us to use this mechanism.
For example : There a no operators defined on int_u values because in
source:trunk/milena/mln/value/ops.hh we delegate the operation on int_u
and
on all Scalar<V> to the equivalent type.
We could do the same for vectorial values. it will avoid duplicating
metal::vec
operators in rgb.
We could also introduce an new concept : arithmetic value which by
default, use operators of its
equiv type.
--
Ticket URL: <https://trac.lrde.org/olena/ticket/136>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#146: Ensure the output value type is large enough in labeling algorithms
-------------------------------+--------------------------------------------
Reporter: levill_r | Owner: levill_r
Type: defect | Status: new
Priority: major | Milestone: Olena 1.0
Component: Milena | Version: 1.0
Keywords: overflow labeling |
-------------------------------+--------------------------------------------
Most labeling algorithm do not check that the output value is large enough
to hold the whole set of labels. This is at least the case in
* source:trunk/milena/mln/labeling/regional_minima.hh
* source:trunk/milena/mln/labeling/regional_maxima.hh
* source:trunk/milena/mln/morpho/meyer_wst.hh
These algorithms should trigger an error if this happens, even if the
output value type is not equipped to detect overflows.
--
Ticket URL: <https://trac.lrde.org/olena/ticket/146>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#150: Deducing/computing the « complementary » neighborhood
--------------------------+-------------------------------------------------
Reporter: levill_r | Owner: Olena Team
Type: task | Status: new
Priority: major | Milestone: Olena 1.0
Component: Milena | Version: 1.0
Keywords: connectivity |
--------------------------+-------------------------------------------------
(Suggested by Aroune.)
Some algorithms require two neighborhoods: one for the objects of an image
(foreground), and one for the background. Most of the time, the latter
can be deduced (or computed) from the former, and ''vice versa'' (there
might be some cases where a choice can occur, but we'll leave this aside
for the moment).
* Write a routine for the simplest cases (regular grids).
* Search for a general definition (presumably expressed in the context of
complexes) to extend this routine to the complex cases (graph-based
domains, etc.)
--
Ticket URL: <https://trac.lrde.org/olena/ticket/150>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#151: Comparison operators (equality) on (concrete) windows and neighborhoods
----------------------+-----------------------------------------------------
Reporter: levill_r | Owner: Olena Team
Type: defect | Status: new
Priority: major | Milestone: Olena 1.0
Component: Milena | Version: 1.0
Keywords: |
----------------------+-----------------------------------------------------
(Suggested by Aroune.)
Define missing `operator==` on concrete windows and neighborhoods, so that
we can compare them :
{{{
#!cpp
if (nbh == c8())
/// ...
}}}
--
Ticket URL: <https://trac.lrde.org/olena/ticket/151>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#152: Add a debug mode to Milena
-------------------------+--------------------------------------------------
Reporter: levill_r | Owner: Olena Team
Type: enhancement | Status: new
Priority: major | Milestone: Olena 1.0
Component: Milena | Version: 1.0
Keywords: |
-------------------------+--------------------------------------------------
Like the Debug mode of the GNU C++ Library
(http://gcc.gnu.org/onlinedocs/libstdc++/manual/spine.html), Milena should
provide a debug mode that could be switched on/off with a macro
definition.
This debug mode should
* integrate [source:trunk/milena/mln/core/contract.hh
mln/core/contract.hh]'s macros (like `mln_assertion`):
* add (and merge with current) dynamic checks where applicable (as in the
GNU C++ Library's Debug Mode);
* add (and merge with current) static checks where applicable (as in GNU
C++ Library's Compile Time Checks);
* trigger the debug mode of the GNU C++ Library
(http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html), where
applicable;
* trigger Compile Time Checks from the GNU C++ Library
(http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt12ch29.html), where
applicable;
* and possibly: undef `NDEBUG` (`-UNDEBUG`) to ensure C++'s `assert`'s
are checked.
--
Ticket URL: <https://trac.lrde.org/olena/ticket/152>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#179: Float precision issues with epsilon
---------------------+------------------------------------------------------
Reporter: lazzara | Owner: Olena Team
Type: defect | Status: new
Priority: major | Milestone: Olena 1.0
Component: Milena | Version: 1.0
Keywords: |
---------------------+------------------------------------------------------
In level::stretch, we use float variables to do the following:
{{{
float
epsilon = mln_epsilon(float),
M = mln_max(V) + 0.5f - epsilon,
m = 0.0f - 0.5f + epsilon;
}}}
'm' is precise enough since it is a really low value. However, M is not
precise enough since mln_max(V) may be a high value, so we will loose
decimal precision if we store that number as float. As a result, M is
always equal to 'mln_max(V) + 0.5' which introduce a bug in
level::stretch.
This issue can be avoided by using double variables instead, but do we
really want that?
Don't we want to handle that issue in a more generic way?
--
Ticket URL: <https://trac.lrde.org/olena/ticket/179>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#165: Separate sites sets from their psites?
----------------------+-----------------------------------------------------
Reporter: levill_r | Owner: Olena Team
Type: proposal | Status: new
Priority: major | Milestone: Olena 1.0
Component: Milena | Version: 1.0
Keywords: |
----------------------+-----------------------------------------------------
Many files containing the definitions site sets, located in
source:branches/cleanup-2008/milena/mln/core/site_set/, include the
related psite and piters. Split them into several files? (And add
convenience headers including all of them?)
--
Ticket URL: <https://trac.lrde.org/olena/ticket/165>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#155: Reuse existing script to factor the Makefile machinery in Swilena
-------------------------+--------------------------------------------------
Reporter: levill_r | Owner: levill_r
Type: enhancement | Status: new
Priority: minor | Milestone: Olena 1.0
Component: Swilena | Version: 1.0
Keywords: |
-------------------------+--------------------------------------------------
For instance, there are parts to be factored in
source:trunk/swilena/python/Makefile.am.
See what TC, Olena 0.11 and clspr used.
--
Ticket URL: <https://trac.lrde.org/olena/ticket/155>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.
#184: Clean the bread-first thinning (skeleton) algorithm
----------------------+-----------------------------------------------------
Reporter: levill_r | Owner: levill_r
Type: defect | Status: new
Priority: major | Milestone: Olena 1.0
Component: Milena | Version: 1.0
Keywords: |
----------------------+-----------------------------------------------------
* Use `image_if` and operator `|` when it is compatible with
`complex_image` in source:trunk/milena/apps/statues/mesh_complex_skel.cc.
* Likewise in source:trunk/milena/mln/topo/detach.hh.
* Use a cell iterator (when available) in the implementation of
`mln::make::cell` (source:trunk/milena/mln/make/cell.hh).
* Make `mln::topo::is_facet` (source:trunk/milena/mln/topo/is_facet.hh) a
method of `mln::complex_psite` (or even of `mln::topo::face`).
* Address various `FIXME`s in
source:trunk/milena/mln/topo/skeleton/breadth_first_thinning.hh.
* Implement the other algorithm (''A1'') from couprie.08.pami to check
the simplicity of a cell in source:trunk/milena/mln/topo/is_simple_cell
(and factor).
--
Ticket URL: <https://trac.lrde.org/olena/ticket/184>
Olena <http://olena.lrde.epita.fr>
Olena, a generic and efficient C++ image processing library.