* doc/examples/accu-wrong-instanciation.cc.raw: Fix an incomplete namespace specification. * doc/figures/fill-subimage-cfun-1.ppm, * doc/outputs/fill-subimage-cfun.txt, * doc/examples/fill-subimage-cfun.cc, * doc/examples/split/fill-subimage-cfun-1.cc.raw, * doc/examples/split/fill-subimage-cfun-2.cc.raw, * doc/examples/split/fill-subimage-cfun-3.cc.raw: Rename as... * doc/figures/fill-imageif-cfun-1.ppm, * doc/outputs/fill-imageif-cfun.txt, * doc/examples/fill-imageif-cfun.cc, * doc/examples/split/fill-imageif-cfun-1.cc.raw, * doc/examples/split/fill-imageif-cfun-2.cc.raw, * doc/examples/split/fill-imageif-cfun-3.cc.raw: ... this. * doc/examples/tuto3/first_routine.cc, * doc/examples/tuto4_genericity_and_algorithms.cc, * doc/examples/split/tuto3_first_routine-1.cc.raw, * doc/examples/split/tuto3_first_routine-5.cc.raw, * doc/examples/split/tuto3_first_routine-7.cc.raw, * doc/examples/split/tuto4_genericity_and_algorithms-2.cc.raw: Update sample code * doc/examples/examples.mk, * doc/figures/figures.mk, * doc/outputs/outputs.mk: Regen. * doc/ref_guide/ref_guide.tex, * doc/tutorial/tutorial.tex: Fix typos and update according to some Yann's comments. --- milena/ChangeLog | 37 ++++++++ .../doc/examples/accu-wrong-instanciation.cc.raw | 2 +- milena/doc/examples/examples.mk | 6 +- ...{fill-subimage-cfun.cc => fill-imageif-cfun.cc} | 0 ...ge-cfun-1.cc.raw => fill-imageif-cfun-1.cc.raw} | 0 ...ge-cfun-2.cc.raw => fill-imageif-cfun-2.cc.raw} | 0 ...ge-cfun-3.cc.raw => fill-imageif-cfun-3.cc.raw} | 0 .../examples/split/tuto3_first_routine-1.cc.raw | 30 ++++++- .../examples/split/tuto3_first_routine-5.cc.raw | 4 +- .../examples/split/tuto3_first_routine-7.cc.raw | 3 +- .../split/tuto4_genericity_and_algorithms-2.cc.raw | 2 +- milena/doc/examples/tuto3/first_routine.cc | 19 +++-- .../examples/tuto4_genericity_and_algorithms.cc | 2 +- milena/doc/figures/figures.mk | 2 +- ...subimage-cfun-1.ppm => fill-imageif-cfun-1.ppm} | Bin 206 -> 206 bytes ...ill-subimage-cfun.txt => fill-imageif-cfun.txt} | 0 milena/doc/outputs/outputs.mk | 2 +- milena/doc/ref_guide/ref_guide.tex | 30 +++++-- milena/doc/tutorial/tutorial.tex | 94 ++++++++++++++----- 19 files changed, 181 insertions(+), 52 deletions(-) rename milena/doc/examples/{fill-subimage-cfun.cc => fill-imageif-cfun.cc} (100%) rename milena/doc/examples/split/{fill-subimage-cfun-1.cc.raw => fill-imageif-cfun-1.cc.raw} (100%) rename milena/doc/examples/split/{fill-subimage-cfun-2.cc.raw => fill-imageif-cfun-2.cc.raw} (100%) rename milena/doc/examples/split/{fill-subimage-cfun-3.cc.raw => fill-imageif-cfun-3.cc.raw} (100%) rename milena/doc/figures/{fill-subimage-cfun-1.ppm => fill-imageif-cfun-1.ppm} (100%) rename milena/doc/outputs/{fill-subimage-cfun.txt => fill-imageif-cfun.txt} (100%) diff --git a/milena/ChangeLog b/milena/ChangeLog index 1d123b0..6f01493 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,5 +1,42 @@ 2009-08-19 Guillaume Lazzara <lazzara@lrde.epita.fr> + Update documentation. + + * doc/examples/accu-wrong-instanciation.cc.raw: Fix an incomplete + namespace specification. + + * doc/figures/fill-subimage-cfun-1.ppm, + * doc/outputs/fill-subimage-cfun.txt, + * doc/examples/fill-subimage-cfun.cc, + * doc/examples/split/fill-subimage-cfun-1.cc.raw, + * doc/examples/split/fill-subimage-cfun-2.cc.raw, + * doc/examples/split/fill-subimage-cfun-3.cc.raw: Rename as... + + * doc/figures/fill-imageif-cfun-1.ppm, + * doc/outputs/fill-imageif-cfun.txt, + * doc/examples/fill-imageif-cfun.cc, + * doc/examples/split/fill-imageif-cfun-1.cc.raw, + * doc/examples/split/fill-imageif-cfun-2.cc.raw, + * doc/examples/split/fill-imageif-cfun-3.cc.raw: ... this. + + * doc/examples/tuto3/first_routine.cc, + * doc/examples/tuto4_genericity_and_algorithms.cc, + * doc/examples/split/tuto3_first_routine-1.cc.raw, + * doc/examples/split/tuto3_first_routine-5.cc.raw, + * doc/examples/split/tuto3_first_routine-7.cc.raw, + * doc/examples/split/tuto4_genericity_and_algorithms-2.cc.raw: + Update sample code + + * doc/examples/examples.mk, + * doc/figures/figures.mk, + * doc/outputs/outputs.mk: Regen. + + * doc/ref_guide/ref_guide.tex, + * doc/tutorial/tutorial.tex: Fix typos and update according to + some Yann's comments. + +2009-08-19 Guillaume Lazzara <lazzara@lrde.epita.fr> + Small fixes. * mln/core/concept/image.hh: Always include data/compare.hh. diff --git a/milena/doc/examples/accu-wrong-instanciation.cc.raw b/milena/doc/examples/accu-wrong-instanciation.cc.raw index 27f8a86..888d36e 100644 --- a/milena/doc/examples/accu-wrong-instanciation.cc.raw +++ b/milena/doc/examples/accu-wrong-instanciation.cc.raw @@ -1 +1 @@ -data::compute(accu::meta::max, ima); +data::compute(accu::meta::stat::max, ima); diff --git a/milena/doc/examples/examples.mk b/milena/doc/examples/examples.mk index fac55db..c0b75be 100644 --- a/milena/doc/examples/examples.mk +++ b/milena/doc/examples/examples.mk @@ -24,6 +24,9 @@ examples/split/fill-3.cc.raw \ examples/split/fill-call-1-1.cc.raw \ examples/split/fill-call-1-2.cc.raw \ examples/split/fill-call-1-3.cc.raw \ +examples/split/fill-imageif-cfun-1.cc.raw \ +examples/split/fill-imageif-cfun-2.cc.raw \ +examples/split/fill-imageif-cfun-3.cc.raw \ examples/split/fill-part-image-1.cc.raw \ examples/split/fill-part-image-2.cc.raw \ examples/split/fill-subdomain-1.cc.raw \ @@ -32,9 +35,6 @@ examples/split/fill-subdomain-3.cc.raw \ examples/split/fill-subdomain-4.cc.raw \ examples/split/fill-subdomain-shorter-1.cc.raw \ examples/split/fill-subdomain-shorter-2.cc.raw \ -examples/split/fill-subimage-cfun-1.cc.raw \ -examples/split/fill-subimage-cfun-2.cc.raw \ -examples/split/fill-subimage-cfun-3.cc.raw \ examples/split/forall-piter-1.cc.raw \ examples/split/fun-p2v-1-1.cc.raw \ examples/split/graph-data-1.cc.raw \ diff --git a/milena/doc/examples/fill-subimage-cfun.cc b/milena/doc/examples/fill-imageif-cfun.cc similarity index 100% rename from milena/doc/examples/fill-subimage-cfun.cc rename to milena/doc/examples/fill-imageif-cfun.cc diff --git a/milena/doc/examples/split/fill-subimage-cfun-1.cc.raw b/milena/doc/examples/split/fill-imageif-cfun-1.cc.raw similarity index 100% rename from milena/doc/examples/split/fill-subimage-cfun-1.cc.raw rename to milena/doc/examples/split/fill-imageif-cfun-1.cc.raw diff --git a/milena/doc/examples/split/fill-subimage-cfun-2.cc.raw b/milena/doc/examples/split/fill-imageif-cfun-2.cc.raw similarity index 100% rename from milena/doc/examples/split/fill-subimage-cfun-2.cc.raw rename to milena/doc/examples/split/fill-imageif-cfun-2.cc.raw diff --git a/milena/doc/examples/split/fill-subimage-cfun-3.cc.raw b/milena/doc/examples/split/fill-imageif-cfun-3.cc.raw similarity index 100% rename from milena/doc/examples/split/fill-subimage-cfun-3.cc.raw rename to milena/doc/examples/split/fill-imageif-cfun-3.cc.raw diff --git a/milena/doc/examples/split/tuto3_first_routine-1.cc.raw b/milena/doc/examples/split/tuto3_first_routine-1.cc.raw index 4470aa7..3e66206 100644 --- a/milena/doc/examples/split/tuto3_first_routine-1.cc.raw +++ b/milena/doc/examples/split/tuto3_first_routine-1.cc.raw @@ -1,3 +1,26 @@ +#include <mln/core/image/image2d.hh> +#include <mln/core/image/dmorph/image_if.hh> +#include <mln/core/alias/neighb2d.hh> + +#include <mln/data/fill.hh> + +#include <mln/labeling/blobs.hh> +#include <mln/labeling/compute.hh> +#include <mln/labeling/blobs.hh> + +#include <mln/data/compare.hh> + +#include <mln/util/array.hh> + +#include <mln/value/label_8.hh> + +#include <mln/accu/math/count.hh> + +#include <mln/pw/all.hh> + +#include <tests/data.hh> +#include <doc/tools/sample_utils.hh> + namespace mln { @@ -17,7 +40,9 @@ namespace mln V nlabels; mln_ch_value(I,V) lbl = labeling::blobs(ima, nbh, nlabels); util::array<unsigned> - count = labeling::compute(accu::meta::math::count(), lbl, nlabels); + count = labeling::compute(accu::meta::math::count(), + lbl, + nlabels); mln_concrete(I) output; initialize(output, ima); @@ -25,7 +50,8 @@ namespace mln for (unsigned i = 1; i <= nlabels; ++i) if (count[i] < 10u) - data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(), literal::zero); + data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(), + literal::zero); trace::exiting("my_algorithm"); return output; diff --git a/milena/doc/examples/split/tuto3_first_routine-5.cc.raw b/milena/doc/examples/split/tuto3_first_routine-5.cc.raw index 3d16132..846e805 100644 --- a/milena/doc/examples/split/tuto3_first_routine-5.cc.raw +++ b/milena/doc/examples/split/tuto3_first_routine-5.cc.raw @@ -2,4 +2,6 @@ V nlabels; mln_ch_value(I,V) lbl = labeling::blobs(ima, nbh, nlabels); util::array<unsigned> - count = labeling::compute(accu::meta::math::count(), lbl, nlabels); + count = labeling::compute(accu::meta::math::count(), + lbl, + nlabels); diff --git a/milena/doc/examples/split/tuto3_first_routine-7.cc.raw b/milena/doc/examples/split/tuto3_first_routine-7.cc.raw index 7a9c927..71c730c 100644 --- a/milena/doc/examples/split/tuto3_first_routine-7.cc.raw +++ b/milena/doc/examples/split/tuto3_first_routine-7.cc.raw @@ -1,3 +1,4 @@ for (unsigned i = 1; i <= nlabels; ++i) if (count[i] < 10u) - data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(), literal::zero); + data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(), + literal::zero); diff --git a/milena/doc/examples/split/tuto4_genericity_and_algorithms-2.cc.raw b/milena/doc/examples/split/tuto4_genericity_and_algorithms-2.cc.raw index edae3e8..2c08459 100644 --- a/milena/doc/examples/split/tuto4_genericity_and_algorithms-2.cc.raw +++ b/milena/doc/examples/split/tuto4_genericity_and_algorithms-2.cc.raw @@ -1 +1 @@ - box2d roi = make::box2d(20, 20, 40, 40); + box2d roi = make::box2d(20, 20, 39, 39); diff --git a/milena/doc/examples/tuto3/first_routine.cc b/milena/doc/examples/tuto3/first_routine.cc index 7b0725b..609fd4e 100644 --- a/milena/doc/examples/tuto3/first_routine.cc +++ b/milena/doc/examples/tuto3/first_routine.cc @@ -1,5 +1,7 @@ -/// \file doc/examples/tuto3/first_routine.cc +/// \file +/// \brief First generic routine. +// \{ #include <mln/core/image/image2d.hh> #include <mln/core/image/dmorph/image_if.hh> #include <mln/core/alias/neighb2d.hh> @@ -23,7 +25,6 @@ #include <tests/data.hh> #include <doc/tools/sample_utils.hh> -// \{ namespace mln { @@ -43,7 +44,9 @@ namespace mln V nlabels; mln_ch_value(I,V) lbl = labeling::blobs(ima, nbh, nlabels); util::array<unsigned> - count = labeling::compute(accu::meta::math::count(), lbl, nlabels); + count = labeling::compute(accu::meta::math::count(), + lbl, + nlabels); mln_concrete(I) output; initialize(output, ima); @@ -51,7 +54,8 @@ namespace mln for (unsigned i = 1; i <= nlabels; ++i) if (count[i] < 10u) - data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(), literal::zero); + data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(), + literal::zero); trace::exiting("my_algorithm"); return output; @@ -88,7 +92,9 @@ namespace sandbox V nlabels; mln_ch_value(I,V) lbl = labeling::blobs(ima, nbh, nlabels); util::array<unsigned> - count = labeling::compute(accu::meta::math::count(), lbl, nlabels); + count = labeling::compute(accu::meta::math::count(), + lbl, + nlabels); // \} // \{ @@ -100,7 +106,8 @@ namespace sandbox // \{ for (unsigned i = 1; i <= nlabels; ++i) if (count[i] < 10u) - data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(), literal::zero); + data::fill((output | (pw::value(lbl) == pw::cst(i))).rw(), + literal::zero); // \} // \{ diff --git a/milena/doc/examples/tuto4_genericity_and_algorithms.cc b/milena/doc/examples/tuto4_genericity_and_algorithms.cc index b906a60..78237a4 100644 --- a/milena/doc/examples/tuto4_genericity_and_algorithms.cc +++ b/milena/doc/examples/tuto4_genericity_and_algorithms.cc @@ -81,7 +81,7 @@ int main() image2d<value::rgb8> lena_bak = duplicate(lena); // \{ - box2d roi = make::box2d(20, 20, 40, 40); + box2d roi = make::box2d(20, 20, 39, 39); // \} // \{ data::fill((lena | roi).rw(), literal::green); diff --git a/milena/doc/figures/figures.mk b/milena/doc/figures/figures.mk index 1ae617c..38fc1d1 100644 --- a/milena/doc/figures/figures.mk +++ b/milena/doc/figures/figures.mk @@ -8,11 +8,11 @@ figures/extend-4.ppm \ figures/extend-5.ppm \ figures/fill-1.ppm \ figures/fill-2.ppm \ +figures/fill-imageif-cfun-1.ppm \ figures/fill-subdomain-1.pbm \ figures/fill-subdomain-2.ppm \ figures/fill-subdomain-3.ppm \ figures/fill-subdomain-4.ppm \ -figures/fill-subimage-cfun-1.ppm \ figures/ima2d-rot-1.ppm \ figures/ima2d-rot-2.ppm \ figures/ima_save.pbm \ diff --git a/milena/doc/figures/fill-subimage-cfun-1.ppm b/milena/doc/figures/fill-imageif-cfun-1.ppm similarity index 100% rename from milena/doc/figures/fill-subimage-cfun-1.ppm rename to milena/doc/figures/fill-imageif-cfun-1.ppm diff --git a/milena/doc/outputs/fill-subimage-cfun.txt b/milena/doc/outputs/fill-imageif-cfun.txt similarity index 100% rename from milena/doc/outputs/fill-subimage-cfun.txt rename to milena/doc/outputs/fill-imageif-cfun.txt diff --git a/milena/doc/outputs/outputs.mk b/milena/doc/outputs/outputs.mk index 88f892b..ac71800 100644 --- a/milena/doc/outputs/outputs.mk +++ b/milena/doc/outputs/outputs.mk @@ -10,10 +10,10 @@ outputs/estim-sites.txt \ outputs/extend.txt \ outputs/extension-ignore.txt \ outputs/fill-call-1.txt \ +outputs/fill-imageif-cfun.txt \ outputs/fill-part-image.txt \ outputs/fill-subdomain-shorter.txt \ outputs/fill-subdomain.txt \ -outputs/fill-subimage-cfun.txt \ outputs/fill.txt \ outputs/first_routine.txt \ outputs/forall-piter.txt \ diff --git a/milena/doc/ref_guide/ref_guide.tex b/milena/doc/ref_guide/ref_guide.tex index 4acf619..d978d3e 100644 --- a/milena/doc/ref_guide/ref_guide.tex +++ b/milena/doc/ref_guide/ref_guide.tex @@ -249,6 +249,7 @@ Before writing your first program, please be aware of these hints: \begin{verbatim} $ g++ -DNDEBUG -Ipath/to/mln my_program.cc \end{verbatim} +%$ \item If you decide to use optimization flags to compile for debugging, prefer using \code{-O1}. It is much faster to compile and it gives good @@ -256,6 +257,17 @@ $ g++ -DNDEBUG -Ipath/to/mln my_program.cc \end{itemize} + +%==================================== +\clearpage +\newpage +\doxychapter{concepts}{Concepts} + + + + + + %==================================== \clearpage \newpage @@ -309,7 +321,7 @@ Name & Description \\ \hline \type{point2d} & 2D point on a regular grid \\ \type{point} & Generic point ($n$D) on a regular grid \\ -\type{util::vec} & Algebraic vector \\ +\type{algebra::vec} & Algebraic vector \\ \type{util::vertex} & Graph vertex \\ \type{util::edge} & Graph edge \\ \end{tabular} @@ -488,8 +500,8 @@ Value type & underlying data type \\ \type{int\_u8} & \type{unsigned char} \\ \type{int\_u16} & \type{unsigned short} \\ \type{int\_u32} & \type{unsigned int} \\ -\type{rgb16} & \type{mln::util::vec$<$unsigned short$>$} \\ -\type{rgb8} & \type{mln::util::vec$<$unsigned char$>$} \\ +\type{rgb16} & \type{mln::algebra::vec$<$unsigned short$>$} \\ +\type{rgb8} & \type{mln::algebra::vec$<$unsigned char$>$} \\ \end{tabular} \\ @@ -1499,7 +1511,7 @@ Output: Then, use \code{labeling::compute()} with the bbox accumulator: \doxycode[3]{labeling-compute} -\code{labeling::compute()} hold an accumulator for each component, which means it +\code{labeling::compute()} holds an accumulator for each component, which means it returns an array of accumulator results. In this case, it returns an array of \type{box2d}. @@ -1619,14 +1631,14 @@ In this example, the image is restricted to its odd lines. A new image is created in which odd lines are in red and others in black. Here is the simple C function used as predicate: -\doxycode[1]{fill-subimage-cfun} +\doxycode[1]{fill-imageif-cfun} Restrict the image with it: -\doxycode[3]{fill-subimage-cfun} +\doxycode[3]{fill-imageif-cfun} Output: \begin{center} -\doxyfigure[1]{fill-subimage-cfun}{3cm} +\doxyfigure[1]{fill-imageif-cfun}{3cm} \end{center} % \medskip @@ -1827,10 +1839,10 @@ Output: Name & Description & Possible values \\ \hline literal::zero & Generic zero value. Can be used with various types such as -util::vec, dpoint\dots & n.a.\\ +algebra::vec, dpoint\dots & n.a.\\ & & \\ literal::one & Generic one value. Can be used with various types such as -util::vec, dpoint\dots & n.a.\\ +algebra::vec, dpoint\dots & n.a.\\ & & \\ literal::origin & Generic value for the origin point on a grid.& n.a.\\ & & \\ diff --git a/milena/doc/tutorial/tutorial.tex b/milena/doc/tutorial/tutorial.tex index 407c982..7ddbb60 100644 --- a/milena/doc/tutorial/tutorial.tex +++ b/milena/doc/tutorial/tutorial.tex @@ -116,23 +116,27 @@ Therefore it is not possible to present all the functionalities in a tutorial. -Milena targets several audiences: \textit{end users}, \textit{designers} and -\textit{providers}. \textit{End users} want to apply and assemble algorithms -to solve image processing, pattern recognition or computer vision problems, -\textit{designers} build new algorithms and \textit{providers} are interested -in developing their own data structures and extend an existing library. +Milena targets several audiences: \textit{assemblers}, +\textit{designers}, \textit{providers} and +\textit{architects}. \textit{Assemblers} want to apply and assemble +algorithms to solve image processing, pattern recognition or computer +vision problems, \textit{designers} build new algorithms, +\textit{providers} are interested in developing their own data +structures and extend an existing library and \textit{architects} are +basically developpers extending the core library. -Whatever the kind of user you are, the key to learning how to use Milena is to -become familiar with its palette of objects and the way of combining them. +Whatever the kind of user you are, the key to learning how to use +Milena is to become familiar with its palette of objects and the way +of combining them. -As an \textit{end user}, you may start with this simple tutorial and the Quick +As an \textit{assemblers}, you may start with this simple tutorial and the Quick tour \tofix{ref}. They describe and illustrate the key features of the library. -\textit{End users} getting familiar with Milena and \textit{designers}, should +\textit{Assemblers} getting familiar with Milena and \textit{designers}, should take a look at the Quick Reference Guide \tofix{ref!}. It is a more detailed explanations of the library's features. -\textit{end users} and \textit{designers} may be also interested by all the +\textit{Assemblers} and \textit{designers} may be also interested by all the examples provided with the documentation and the tutorial. The source code is available in \hpath{milena/doc/examples} \tofix{ref} and is usually pointed out and commented by the documentation. @@ -256,17 +260,17 @@ Once downloaded, you just need to uncompress the archive. For the '.tar.gz' archive: \begin{verbatim} -$ tar zxvf olena-1.0.tar.gz +$ tar zxvf olena.tar.gz \end{verbatim} For the '.tar.bz2' archive: \begin{verbatim} -$ tar jxvf olena-1.0.tar.bz2 +$ tar jxvf olena.tar.bz2 \end{verbatim} Then, enter the new created directory: \begin{verbatim} -$ cd olena-1.0 +$ cd olena \end{verbatim} @@ -439,7 +443,7 @@ This tutorial is not the only documentation of Milena. Other documents are avail functionalities of Milena. Hints and full examples are also provided. The sample codes are commented and each concept in the library is detailed. This is the reference document for any - \textit{end user} and \textit{algorithm designer}. + \textit{assembler} and \textit{algorithm designer}. \item \dir{HTML user doc} --- The full documentation of the library. The full API is described in details. Each part of the library is classified by @@ -603,7 +607,7 @@ script before configuring the build directory. Run the following: \begin{verbatim} -$ cd /my/path/to/olena-1.0 +$ cd /my/path/to/olena $ ./bootstrap \end{verbatim} @@ -619,7 +623,7 @@ When it's done, you are ready to configure the build directory. First, make sure you are at the root directory of the milena source: \begin{verbatim} -$ cd /my/path/to/olena-1.0 +$ cd /my/path/to/olena \end{verbatim} First, create and enter a build directory: @@ -632,6 +636,9 @@ We are now about to configure the build directory. This process will create the necessary files to compile documentation, examples and tools and prepare the installation. +Note that once the configuration ends the build directory cannot be +moved elsewhere without following the following steps again. + \textbf{Important Note}: the installation path prefix must be chosen at this step. By default, Milena will be installed in /usr/local but you may like to install it elsewhere. To do so, pass the option \textit{-{}-prefix=/installation/path/prefix} @@ -674,7 +681,7 @@ First, be sure to be in the build directory. If you followed the previous steps, the build directory should be in the Milena sources root directory. \begin{verbatim} -$ cd /my/path/to/olena-1.0/build +$ cd /my/path/to/olena/build \end{verbatim} If you did not change the default install path prefix, set to @@ -716,14 +723,14 @@ Examples are part of the documentation. The sources are located in To compile the examples simply run: \begin{verbatim} -$ cd /my/path/to/olena-1.0/build/milena/doc/examples +$ cd /my/path/to/olena/build/milena/doc/examples $ make \end{verbatim} These examples can produce outputs and images. May be you would like to run all the examples and take a look at the outputs? To do so, run: \begin{verbatim} -$ cd /my/path/to/olena-1.0/build/milena/doc/examples +$ cd /my/path/to/olena/build/milena/doc/examples $ make examples \end{verbatim} @@ -751,7 +758,7 @@ seed2tiling.cc & \tofix{description} \\ To build these tools, run: \begin{verbatim} -$ cd /my/path/to/olena-1.0/build/milena/tools +$ cd /my/path/to/olena/build/milena/tools $ make \end{verbatim} @@ -764,7 +771,7 @@ extending the library. In order to build and run it, just do the following: \begin{verbatim} -$ cd /my/path/to/olena-1.0/build/milena/tests +$ cd /my/path/to/olena/build/milena/tests $ make check \end{verbatim} @@ -783,6 +790,7 @@ In the installation path prefix, Milena's files are located in: \item include/mln/ --- The library. All the headers are located here. \item share/olena/images --- Mesh sample files which may be used with example programs. + \item share/olena/doc --- HTML and PDF documentation. \end{itemize} \vspace{2cm} @@ -810,6 +818,9 @@ implementation would look like this one: \doxyrawcode{tuto3/fill_non_generic} +See milena/doc/examples/tuto3/fill\_non\_generic.cc. + + In this example, there are a lot of \B{implicit} assumptions about the input: \begin{itemize} \item The input image has to be 2D; @@ -1147,7 +1158,7 @@ then the image itself which stores the values. %************************** -\doxysection{tuto4images}{Sites} +\doxysection{tuto4sites}{Sites} A pixel is an element having both information, localization and value. In Milena, we make a difference between a pixel, a pixel value and a pixel @@ -1158,12 +1169,14 @@ For instance, in an image defined on a 2D regular grid, it is a 2D point with \doxycode{tuto4_point2d} -The image site type is defined by its underlying site set. +Output: +\doxyoutput{tuto4_point2d} +The image site type is defined by its underlying site set. %************************** -\doxysection{tuto4images}{Site sets} +\doxysection{tuto4sitesets}{Site sets} Site sets are mainly used to define image domains. They hold all the available sites in an image, consequently they do not store any values. @@ -1181,7 +1194,36 @@ A list of available site sets is available in section \ref{siteset}. In this section, we will detail how to create common site sets. -This is actually simple. +The most used site set is \type{mln::box}. The main reason is that +common images have this kind of domain. Since it is a plain set only +two sites are needed to define a box: the top left corner, \var{pmin}, +and the bottom right corner, \var{pmax}. + +By default, \var{pmin} is set to \val{(0,0)} so a box can be +constructed from given \var{pmax} coordinates: + +\doxycode[1]{tuto4_site_set_create} + +This box is defined from \val{(0,0)} to \val{(4,4)} : + +\doxymoutput[1]{tuto4_site_set_create} + +A box can also starts from a site different from \val{(0,0)}. + +\doxycode[4]{tuto4_site_set_create} + +This box is defined from \val{(0,0)} to \val{(4,4)} : + +\doxymoutput[3]{tuto4_site_set_create} + + +Another common site set is \type{p\_array}. It contains only sites which have been added to it. + +\doxycode[2]{tuto4_site_set_create} + +This site only contains : + +\doxymoutput[2]{tuto4_site_set_create} %-------------------------- @@ -1206,6 +1248,8 @@ In this section, we will detail how to create common images. %-------------------------- \doxysubsection{tuto4accessdata}{Accessing data} + + \vspace{2cm} \begin{center} \tutotoc{tuto3}{tuto5} -- 1.5.6.5
participants (1)
-
Guillaume Lazzara