
* Makefile.am: add new rule "tools". * doc/examples/Makefile.am, * doc/Makefile.am: rename rule data to examples. * doc/ref_guide/ref_guide.tex: remove useless chapters. * doc/tutorial/tutorial.tex: write two new chapters. --- milena/ChangeLog | 13 + milena/Makefile.am | 15 +- milena/doc/Makefile.am | 12 +- milena/doc/examples/Makefile.am | 2 +- milena/doc/ref_guide/ref_guide.tex | 18 +- milena/doc/tutorial/tutorial.tex | 718 ++++++++++++++++++++++++++++++++++-- 6 files changed, 728 insertions(+), 50 deletions(-) diff --git a/milena/ChangeLog b/milena/ChangeLog index 8f4a879..db4cab5 100644 --- a/milena/ChangeLog +++ b/milena/ChangeLog @@ -1,3 +1,16 @@ +2009-03-12 Guillaume Lazzara <lazzara@lrde.epita.fr> + + Improve tutorial and documentation. + + * Makefile.am: add new rule "tools". + + * doc/examples/Makefile.am, + * doc/Makefile.am: rename rule data to examples. + + * doc/ref_guide/ref_guide.tex: remove useless chapters. + + * doc/tutorial/tutorial.tex: write two new chapters. + 2009-03-11 Thierry Geraud <thierry.geraud@lrde.epita.fr> Fix missing update in labeling extrema. diff --git a/milena/Makefile.am b/milena/Makefile.am index 593fbf9..b394cf2 100644 --- a/milena/Makefile.am +++ b/milena/Makefile.am @@ -4,17 +4,20 @@ SUBDIRS = \ doc \ mesh \ - tests \ - tools + tests # apps -.PHONY: doc tutorial +.PHONY: doc tutorial tools + doc: $(MAKE) -C doc doc tutorial: $(MAKE) -C doc tutorial +tools: + $(MAKE) -C tools all + .PHONY: regen-dist regen-dist: $(srcdir)/headers.mk # FIXME: Change generate_dist_headers.sh so that the action looks like this: @@ -54,4 +57,8 @@ img/tiny.ppm \ img/toto.pbm EXTRA_DIST += \ -generate_dist_headers.sh +generate_dist_headers.sh\ +tools \ +tools/area_flooding.cc \ +tools/seed2tiling.cc + diff --git a/milena/doc/Makefile.am b/milena/doc/Makefile.am index ad25545..14da88f 100644 --- a/milena/doc/Makefile.am +++ b/milena/doc/Makefile.am @@ -6,9 +6,9 @@ SUBDIRS = tutorial white_paper DOXYGEN = doxygen -.PHONY: doc user-doc complete-doc html-complete html-user tutorial white-paper regen-dist +.PHONY: doc user-doc complete-doc html-complete html-user tutorial white-paper regen-dist examples -doc: user-doc +doc: user-doc tutorial white_paper ref-guide complete-doc: html-complete @@ -20,10 +20,10 @@ html-complete: Doxyfile tuto-html ref-guide-html html-user: Doxyfile tuto-html ref-guide-html $(DOXYGEN) Doxyfile_user -tuto-html: data fig-convert +tuto-html: examples fig-convert $(MAKE) -C tutorial tuto-html -tutorial: data fig-convert +tutorial: examples fig-convert $(MAKE) -C tutorial tutorial white-paper: @@ -36,8 +36,8 @@ ref-guide-html: $(MAKE) -C ref_guide ref-guide-html -data: - make -C examples data +examples: + make -C examples examples fix-refdata: make -C examples fix-refdata diff --git a/milena/doc/examples/Makefile.am b/milena/doc/examples/Makefile.am index 74f68f1..c343312 100644 --- a/milena/doc/examples/Makefile.am +++ b/milena/doc/examples/Makefile.am @@ -108,7 +108,7 @@ run-samples: all done -data: run-samples diff-data split-samples split-outputs +examples: run-samples diff-data split-samples split-outputs diff-data: diff --git a/milena/doc/ref_guide/ref_guide.tex b/milena/doc/ref_guide/ref_guide.tex index 4df8efa..28bc543 100644 --- a/milena/doc/ref_guide/ref_guide.tex +++ b/milena/doc/ref_guide/ref_guide.tex @@ -1119,9 +1119,9 @@ Voir les vset => attendre que ca soit ameliore? \clearpage \newpage %Ugly workaround to avoid missing chapter references in doxygen. -\begin{htmlonly} -\doxychapter{1}{} -\end{htmlonly} +%\begin{htmlonly} +%\doxychapter{1}{} +%\end{htmlonly} \doxychapter{winneigh}{Structural elements: Window and neighborhood} In Olena, there are both the window and neighborhood concept. A window can be @@ -1923,9 +1923,9 @@ site set. \newpage \clearpage %Ugly workaround to avoid missing chapter references in doxygen. -\begin{htmlonly} -\doxychapter{2}{} -\end{htmlonly} +%\begin{htmlonly} +%\doxychapter{2}{} +%\end{htmlonly} \doxychapter{graphandima}{Graphes and images} FIXME: REWRITE @@ -2186,9 +2186,9 @@ mln\_edge\_nbh\_edge\_iter(G) & G : graph type & Iterator on the edges adjacen \newpage \clearpage %Ugly workaround to avoid missing chapter references in doxygen. -\begin{htmlonly} -\doxychapter{2}{} -\end{htmlonly} +%\begin{htmlonly} +%\doxychapter{2}{} +%\end{htmlonly} \doxychapter{debugtools}{Debugging tools} FIXME write it diff --git a/milena/doc/tutorial/tutorial.tex b/milena/doc/tutorial/tutorial.tex index 87949d9..903ac14 100644 --- a/milena/doc/tutorial/tutorial.tex +++ b/milena/doc/tutorial/tutorial.tex @@ -305,6 +305,15 @@ $$ \end{latexonly} } +\newcommand{\path}[1]{ +\textit{#1} +} + +\newcommand{\dir}[1]{ +\textbf{\textit{#1}} +} + + \begin{document} % Doxygen use only - Generate the left menu. @@ -344,21 +353,684 @@ A copy of the license is provided in the file COPYING.DOC. %\begin{htmlonly} %==================================== -\doxychapter{tuto0}{Step 0: Foreword} +\doxychapter{tuto1}{Welcome} -- image2d -- typical use case +Welcome to Milena's tutorial. -\begin{htmlonly} - \begin{center}% - \hspace{1cm} Go to \doxyref{tuto1}~ \longrightarrow% - \end{center}% -\end{htmlonly} + +%************************** +\doxysection{tuto1howotlearn}{How to learn Milena} + +Milena is only a subpart of Olena but tends to be a large system too. +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 developping their own data structures and extend an existing 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. + +As an \textit{end user}, you may start with this simple tutorial and the Quick +tour (FIXME: ref). They describe and illustrate the key features of the library. +\textit{End users} getting familiar with Milena and \textit{designers}, should +take a look at the Quick Reference Guide (FIXME: 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 +examples provided with the documentation and the tutorial. The source code is +available in \path{milena/doc/examples} (FIXME: ref) and is usually pointed +out and commented by the documentation. + +Taking a look at the test suite is also a good idea. The tests usually focus on +a single functionality and handle several use cases which may overlap your needs. +The test suite is located at \path{milena/tests} (FIXME: ref?). + +Still not enough information? More information about all the functions is +available in the User HTML documentation (FIXME:ref). +It mainly targets \textit{designers} and \texit{providers}. +The latter may also be interested by the Developer HTML documentation +(FIXME:ref). + + + +%************************** +\doxysection{tuto1obtainingthelib}{Obtaining the library} + +There are two ways of getting Milena on the web: +\begin{itemize} + \item Download a tarball/package from the website, + \item Checkout the SVN repository. +\end{itemize} + +Downloading a package or a tarball is the best choice for a new user. Except +for nightly builds which are packages generated every night from the SVN repository, +packages and tarballs contain only a released version of Milena. It guaranties a +certain quality: no building issues, no bugs (ok, maybe some...), \ldots + +This tutorial is based on the latest released version of Milena. Therefore, +if you decide to use the SVN version, you may notice different behaviors or results +compared to what it is described in this document. + +Using the SVN version implies some drawbacks: the code might crash, not +compile or produce incorrect results. +Besides, The SVN version is always up to date and you may find new functionalities, +bug fixes and new syntax improvements. +This version targets users familiar with build systems and compilation issues. +We strongly advise you to not use it for production use. + + + +%************************** +\doxysection{tuto1downloading}{Downloading the library} + + + +%download page. + +%-------------------------- +\subdoxysection{tuto1downloadingsvn}{Downloading from SVN} + +First, be sure that SVN is already installed on your system. +Open a terminal and type: + +\begin{verbatim} +\$ svn --version --quiet +1.4.6 +\end{verbatim} + +You should see your version of SVN installed. If you read 'Command not found' +then you need to install SVN. + +Usually, systems providing packages reference SVN's package as 'subversion'. + +Once you have SVN installed, go to the directory where you woudl like to +download Olena and create a new directory. + +\begin{verbatim} +\$ cd $HOME +\$ mkdir olena +\$ cd olena +\end{verbatim} + +Then 'checkout' (download) the repository with the following command. + +\begin{verbatim} +\$ svn co https://svn.lrde.epita.fr/svn/oln/trunk +\end{verbatim} + +Enter the 'trunk' directory. + +\begin{verbatim} +\$ cd trunk +\end{verbatim} + +You are now ready to configure the directory and install Milena as described +in section \ref{tuto2}. +We invite you to take a look at the description of the directory structure +(\ref{tuto1dirstruct}. +If you encounter any issues in the installation process or if you have any +question, do not forget to join the mailing lists (\ref{tuto1mailinglists} +and/or use the other documentations ressources (\ref{tuto1ressources}). + + + + + +%-------------------------- +\subdoxysection{tuto1downloadingpackages}{Downloading packaged releases} + +%details. + +Milena's packages can be downloaded from: + +\begin{centerize} +\begin{verbatim} +http://www.lrde.epita.fr/Olena/Download +\end{verbatim} +\end{centerize} + +On this page you will find the latest and past releases. +Currently, we provide only '.tar.gz' and 'tar.bz2' archives. + +Once download, you just need to uncompress the archive. + +For the '.tar.gz' archive: +\begin{verbatim} +$ tar zxvf olena-1.0.tar.gz +\end{verbatim} + +For the '.tar.bz2' archive: +\begin{verbatim} +$ tar jxvf olena-1.0.tar.bz2 +\end{verbatim} + +Then, enter the new created directory: +\begin{verbatim} +$ cd olena-1.0 +\end{verbatim} + + +You are now ready to configure the directory and install Milena as described +in section \ref{tuto2}. +We invite you to take a look at the description of the directory structure +(\ref{tuto1dirstruct}. +If you encounter any issues in the installation process or if you have any +question, do not forget to join the mailing lists (\ref{tuto1mailinglists} +and/or use the other documentations ressources (\ref{tuto1ressources}). + + + +%************************** +\doxysection{tuto1mailinglists}{Join the mailing lists} + +Regardless your use of Olena, we strongly advise you to join our mailing lists. +This is the best way to keep up to date about new releases, bug +notifications/fixes and future updates. +This is also a good opportunity to tell us what you would like to find in +Milena and what could be improved. + +Currently four mailing-lists are available: + +\begin{tabular}{l l} +\textbf{Olena} & Discussion about the project Olena \\ +\textbf{Olena-bugs} & Bugs from Olena projects \\ +\textbf{Olena-core} & Internal list for the Olena project \\ +\textbf{Olena-patches} & patches for the Olena project \\ +\end{tabular} + +You can subscribe to these mailing lists at the following adress: + +\begin{center} +\begin{verbatim} +https://www.lrde.epita.fr/mailman/listinfo/ +\end{verbatim} +\end{center} + +Just click on the name of the mailing list you want to subscribe to and fill +out the form. + + + +%************************** +\doxysection{tuto1dirstruct}{Directory structure} + +Milena's directory is composed of several subdirectories. In order to help +you finding what you need, you will find a description of all these +subdirectories. + + +List of \path{milena}'s subdirectories: +\begin{itemize} + +\dir{apps} --- A full example of a 3D mesh visualization tool. It + uses milena. + +\dir{doc} --- THE directory you must know. Contains all the + documentation material. + +\dir{img} --- A set of common test images. They are used in the + test suite. Feel free to use it in your programs. + +\dir{mesh} --- A set of 3D meshes. They can be used with the full + example located in \path{milena/apps}. + +\dir{mln} --- The core of the libray. Contains all the library headers. + +\dir{tests} --- The test suite. Is it subdivided in sub directories. + The directory hierarchy respects \path{milena/mln}'s. + +\dir{tools} --- Small tools written with milena. They can be used as examples. + +\end{itemize} + + + +List of \path{mln}'s subdirectories: +\begin{itemize} + \item \dir{accu} --- Set of Accumulators. + \item \dir{algebra} --- Algebraic structures like vectors or matrices. + \item \dir{arith} --- Arithmetical operators. + \item \dir{binarization} --- Routines to binarize an image. + \item \dir{border} --- Image border related routines. + \item \dir{canvas} --- Generic canvas. They define generic ways of browsing + an image, compute data, \dots. + \item \dir{convert} --- Automatic conversion mechanism. + \item \dir{core} --- Core of the library. Here you can find the image types, + the site set types and basic concepts. + \item \dir{data} --- Routine that modify image data. + \item \dir{debug} --- Debug related routines. + \item \dir{display} --- Display images on the screen. + \item \dir{draw} --- Draw geometric objects in an image. + \item \dir{essential} --- Set of essential headers for 1,2,3-D manipulations. + \item \dir{estim} --- Compute data on image values. + \item \dir{extension} --- Image extension manipulation. + \item \dir{extract} --- FIXME: extract will be removed and replaced by thru(). + \item \dir{fun} --- Set of functions applying on sites, values, \ldots + \item \dir{geom} --- Functions related to image geometry. + \item \dir{graph} --- Graph related routines. + \item \dir{histo} --- Histogram related functions. + \item \dir{io} --- I/O related routines. + \item \dir{labeling} --- Labeling related routines. + \item \dir{level} --- Point-wise operators on levels. + \item \dir{linear} --- Linear operators. + \item \dir{literal} --- Generic image values such as zero, black, white \ldots + \item \dir{logical} --- Logical operators. + \item \dir{make} --- Small routines to construct images, windows, \ldots + \item \dir{math} --- Mathematical functions. + \item \dir{metal} --- Metalic macros/structures. Static library helping + developing doing static tests. + \item \dir{morpho} --- Mathematical morphology. + \item \dir{norm} --- Norm computation + \item \dir{opt} --- Optional routines. Routines which may work on a + specific image type only. + \item \dir{pw} --- Point-wise image related routines. + \item \dir{registration} -- Registration related routine. + \item \dir{set} --- Set related routines. + \item \dir{subsampling} --- Subsampling related algorithms. + \item \dir{tag} --- Tag traits. + \item \dir{test} --- Definition of predicates. + \item \dir{topo} --- Complex related structures. + \item \dir{trace} --- Debug trace mechanism. + \item \dir{trait} --- Internal traits mechanism. + \item \dir{transform} --- Algorithms based on the level::transform. + \item \dir{util} --- Various utilitarian classes. + \item \dir{value} --- Set of value types which can be used in an image. + \item \dir{win} --- Set of various window kinds. +\end{itemize}} + + +The source code and the material of the documentation is available in \path{ +milena/doc}. +List of \path{doc}'s subdirectories: +\begin{itemize} +\item \dir{examples} --- All the source code of the documentation examples. +\item \dir{benchmark} --- Some benchmarks. +\item \dir{tools} --- Small tools used for generating documentation / + building examples. + +\item \dir{tutorial} --- Tutorial sources. +\item \dir{white\_paper} --- White paper sources. +\item \dir{technical} --- Technical documentation. (DEPRECATED) +\item \dir{ref\_guide} --- Reference guide sources. +\item \dir{figures} --- Reference figures for documentation generation. +\item \dir{outputs} --- Reference outputs for documentation examples. + +\end{itemize} + + + + +%************************** +\doxysection{tuto1ressources}{Documentation} + +This tutorial is not the only documentation of Milena. Other documents are available: + +\begin{itemize} + \item \dir{White paper} --- a small document of few pages presenting the key + features of the library. It intents to give a big picture of the library. + + \item \dir{Quick tour} --- it aims giving an overview of Milena's possibilities. + It does not only give the concepts but illustrate them with small sample + codes. + + \item \dir{Quick reference guide} --- Present in details all the main + 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}. + + \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 + categories and the source code is directly accessible from the documentation. + This is the reference document for any \textit{algorithm designer} and/or + \textit{provider of data structures}. + + \item \dir{Header files} --- Every object or algorithm is declared in a '.hh' file. + The documentation is provided as comments in these file. +\end{itemize} + + +%************************** +\doxysection{tuto1ressources}{Community and Support} + +Even though Milena is currently developped by the LRDE in EPITA, we are open +for new contributors. + +\begin{itemize} + \item If you are a user, please send us feedback about the library. + Did you find what you wanted? Do you miss something? + + \item Please report bugs and defect in the API. Mailing lists are the best + way for reporting that. + + \item Developers, if you write cool open source programs or algorithms with Milena, + send them to us. We may ship your code with Olena and/or add it to + our download page. + + \item Educators, if you use Olena for your courses and you are ready to + share your materials, you can send it to us through our mailing-lists. + + \item We are also interested in partnership or commercial use of Milena. + If you are interested, contact us directly (\ref{tuto1contacts}). + +\end{itemize} + + +%************************** +\doxysection{tuto1projectstatus}{Project status} + +If you want to stay tuned to Milena's development, the best way is probably +the mailing-lists (\ref{tuto1mailinglists}). + +There are other ways to get to know what is the status of the project. + +\begin{itemize} +\item Olena's trac --- \href{https://trac.lrde.org/olena} --- Here is the +roadmap, the current open tickets/bugs/improvements which are taken in +consideration. A source browser is also available. + +\item Olena's Buildfarm --- https://buildfarm.lrde.org/buildfarm/oln/ --- The +official buildfarm. Every night and after each commit, tests are compiled and run. +The buildfarm can show you whether it is safe to update your svn copy of Milena or not\ldots + +\item Test failures --- http://www.lrde.epita.fr/dload/olena/test-failures-daily.html +--- Through this page, you can see exactly which tests do not compile or pass. +This page is updated every night. + + + +%************************** +\doxysection{tuto1ressources}{A brief history of Milena} + +The Olena project aims at building a scientific computation platform oriented +towards image processing, image recognition, and artificial vision. +This environment is composed of a high performance generic library (Milena), +a set of tools for shell scripts, together with, in the more distant future, +an interpreter (a la Octave, MatLab etc.) and a visual programming environment. + +The Olena project started in 2000 from a small prototype on 2-D images. +From November 2001 to April 2004, this prototype evolved from version 0.1 to 0.10. +More image types were supported and the level of genericity expected from the +library was partially obtained. During these three years, the prototype was used +to experiment with genericity and to try to meet our objectives. +In February 2007, Olena 0.11 was released to conform modern C++ compilers. +At that time, the code was not enough readable though and the compilation time +was too long. + +Since June 2007 up to now, The library of the Olena platform is called Milena +and the library has been rewritten. The programming paradigm has been +simplified: the code is more readable and the compilation time is acceptable. +The level of genericity still meets our objectives though. + +Milena is now getting ready for being considered as stable and distributable. +The core of the library is getting frozen and we aim at enriching the library, +its documentation and the related tools. + + +%************************** +\doxysection{tuto1contacts}{Contacts} + +If you want to reach us directly, you can contact one of the following people: + +\begin{itemize} + \item Thierry Geraud - Project Manager - thierry.geraud@lrde.epita.fr +\end{itemize} + + + + + + +%\begin{htmlonly} %==================================== -\doxychapter{tuto1}{Step 1: Load and save images} +\doxychapter{tuto2}{Installation} + +%pre-requis/compatibility +This section describes the installation process of Milena. +Do not forget that Milena is a library, not a program. Therefore, no program +will be installed. + +Milena's examples and tests are compiled on the following platforms: +\begin{itemize} + \item Apple Tiger Darwin 8, PowerPC, GCC 4.0.1 + \item Apple Leopard Darwin 10.5, X86-64, GCC 4.0.1, 4.2 + \item Linux, i486, GCC 3.3, 4.1, 4.2, 4.3 + \item Linux, x86-64, GCC 4.1 +\end{itemize} + +We guaranty that Milena compiles on these platforms, e.g. Linux and Unix +platforms. It may compiles on other platforms though but we have not tested. +If you did, and you succeeded, please let us know in order to update this +section. + +Milena is known NOT to work with GCC-2.95. + + +Milena is actively developed under Unix systems. As a result, the build system +is based on the Autotools. +Autotools make sure that every dependencies are resolved before compiling +or installing a program. + +Milena is different from usual libraries in a way that nothing needs to be +compiled to use it. The library itself is composed of headers which must be +included when you need them. +Then, your application will be compiled with the parts of the library used in +that program. That's all. + +So, why do we have a build system? It is useful for installing the library on +your system, generating the doc and compiling the test suite and the examples. + + + +%************************** +\doxysection{tuto2bootstrap}{Bootstrap (SVN Sources)} + +If you got the sources from a package/tarball, you can skip this section. Go +to section \ref{tuto2configure}. + +If you downloaded the sources from the SVN repository, you must launch a +script before configuring the build directory. + +Run the following: +\begin{verbatim} +$ cd /my/path/to/olena-1.0 +$ ./bootstrap +\end{verbatim} + +Running 'bootstrap' can take a while. Some files are generated during this +process. +When it's done, you are ready to configure the build directory. + + + +%************************** +\doxysection{tuto2configure}{Configure} + +First, make sure you are at the root directory of the milena source: + +\begin{verbatim} +$ cd /my/path/to/olena-1.0 +\end{verbatim} + +First, create and enter a build directory: +\begin{verbatim} +$ mkdir build +$ cd build +\end{verbatim} + +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. + +\textbf{Important Note}: the Install 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} +to the configure script (see below). Replace '/installation/path/prefix' with the +wanted installation path prefix. + +now, you can run: +\begin{verbatim} +$ ../configure +\end{verbatim} +OR +\begin{verbatim} +$ ../configure --prefix=/installation/path/prefix +\end{verbatim} + +The configure script will perform various tests. If there is no dependency +issues, the last lines shown before the prompt are: + +\begin{verbatim} +config.status: creating config.h +config.status: executing depfiles commands +$ +\end{verbatim} + +The build directory is now configured, the library can be installed. + + + +%************************** +\doxysection{tuto2install}{Install} + +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 +\end{verbatim} + +If you did not change the default install path prefix, set to +\path{/usr/local}, you will need to have administrator privileges to +perform the installation. Then, you may type: +\begin{verbatim} +$ sudo make install +\end{verbatim} + +Otherwise, if you set the install path prefix to a directory own by your +user, simply type: +\begin{verbatim} +$ make install +\end{verbatim} + +When the installation is finished, you are done. Milena is installed on your +system. But maybe you would like to build the examples? This is described +in the next section \ref{tuto2optionalcomp}. + +A description of the installation content is also available in section +\ref{tuto2installcontent}. + + + +%************************** +\doxysection{tuto2optionalcomp}{Optional compilation} + +The library itself does not need to be compiled, therefore installing +Milena does not require compilation. + +Though, some examples and tools are provided with the library and must be +compiled if you want to use them. + +\doxysubsection{tuto2examples}{Examples} + +Examples are part of the documentation. The sources are located in +\path{milena/doc/examples}. + +To compile the examples simply run: +\begin{verbatim} +$ cd /my/path/to/olena-1.0/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 +$ make examples +\end{verbatim} + +Text and image outputs will be respectively stored in +\path{build/milena/doc/outputs} and \path{build/milena/doc/figures}. + + + +\doxysubsection{tuto2examples}{Tools} + +Few tools are provided with Milena. They can be considered as full program +examples. + +Currently two tools are available: +\begin{tabular}{l l} +area\_flooding.cc & FIXME:description \\ +\hline +seed2tiling.cc & FIXME:description \\ +\end{itemize} + +To build these tools, run: +\begin{verbatim} +$ cd /my/path/to/olena-1.0/build/milena/tools +$ make +\end{verbatim} + + +\doxysubsection{tuto2examples}{Tests} + +The test suite used for Milena's development is shipped with 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 +$ make check +\end{verbatim} + +Running the test suite is memory and CPU consumming and will take a while. + + +%************************** +\doxysection{tuto2installcontent}{Installation content} + +Once installed, Milena's files are located in the installed path prefix +you passed to the configure script or in the default path /usr/local. + +In the installed path prefix, Milena's files are located in: + +\begin{itemize} + \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. +\end{itemize} + + + +%\begin{htmlonly} +%==================================== +\doxychapter{tuto3}{Getting started with Milena} + +** intent + +A very simple processing chain; the target is the end-user! + +OR (?) +this chain plus a sample tiny generic algorithm + +** misc +/!\ step by step... +compilation time w.r.t compilation options (O1, DNDEBUG). + + + + +%==================================== +\doxychapter{tuto4}{Step 4: Load and save images} After this step you shoud know how to: \begin{itemize} @@ -392,12 +1064,12 @@ The supported file formats and their associated image value types are listed in section \doxyref{imaio}. \vspace{2cm} -\tutotoc{tuto0}{tuto2} +\tutotoc{tuto3}{tuto5} %==================================== -\doxychapter{tuto2}{Step 2: Create your first image} +\doxychapter{tuto5}{Step 5: Create your first image} After this step you should know how to: \begin{itemize} @@ -440,12 +1112,12 @@ though. A more detailed description can be found in section \vspace{2cm} \begin{center} - \tutotoc{tuto1}{tuto3} + \tutotoc{tuto4}{tuto6} \end{center} %==================================== -\doxychapter{tuto3}{Step 3: Read and write images} +\doxychapter{tuto6}{Step 6: Read and write images} After this step you should know how to: \begin{itemize} @@ -495,12 +1167,12 @@ the reference guide. \vspace{2cm} \begin{center} - \tutotoc{tuto2}{tuto4} + \tutotoc{tuto5}{tuto7} \end{center} %==================================== -\doxychapter{tuto4}{Step 4: Regions of interest} +\doxychapter{tuto7}{Step 7: Regions of interest} After this step you should know how to: \begin{itemize} @@ -711,23 +1383,9 @@ value in \var{label} is equal to 16'. \vspace{2cm} \begin{center} - \tutotoc{tuto3}{tuto5} + \tutotoc{tuto6}{tuto8} \end{center} -%====================================% -%%Ugly workaround to avoid missing chapter references in doxygen. -%\begin{htmlonly} -% \doxychapter{1}{} -% \doxychapter{tuto5}{Step 5: Conversion between image values} -%\end{htmlonly} - - -%==================================== -\doxychapter{tuto6}{Step 6: Using structural elements with algorithms} - - -%==================================== -\doxychapter{tuto7}{Step 7: Handle graphes with an image} %\end{htmlonly} -- 1.5.6.5