https://svn.lrde.epita.fr/svn/oln/trunk/milena
Index: ChangeLog
from Thierry Geraud <thierry.geraud(a)lrde.epita.fr>
Start a tutorial.
* doc/tutorial: New directory.
* doc/tutorial/slides.tex: New.
* mln/value/internal/value_like.hh: Fix typos.
doc/tutorial/slides.tex | 550 +++++++++++++++++++++++++++++++++++++++
mln/value/internal/value_like.hh | 6
2 files changed, 553 insertions(+), 3 deletions(-)
Index: doc/tutorial/slides.tex
--- doc/tutorial/slides.tex (revision 0)
+++ doc/tutorial/slides.tex (revision 0)
@@ -0,0 +1,550 @@
+% $Header: /cvsroot/latex-beamer/latex-beamer/examples/beamerexample1.tex,v 1.46
2004/10/07 20:53:07 tantau Exp $
+
+\documentclass{beamer}
+%\usepackage{beamerthemesplit}
+
+%\documentclass{article}
+%\usepackage[envcountsect]{beamerarticle}
+
+% Do NOT take this file as a template for your own talks. Use a file
+% in the directory solutions instead. They are much better suited.
+
+% Try the class options [notes], [notes=only], [trans], [handout],
+% [red], [compress], [draft] and see what happens!
+
+% Copyright 2003 by Till Tantau <tantau(a)users.sourceforge.net>et>.
+%
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+
+% For a green structure color use:
+%\colorlet{structure}{green!50!black}
+
+ \mode<article> % only for the article version
+ {
+ \usepackage{fullpage}
+ \usepackage{myhyperref}
+ }
+
+
+ \mode<presentation>
+ {
+ \setbeamertemplate{background canvas}[vertical shading][bottom=red!10,top=blue!10]
+ \usetheme{Warsaw}
+ \usefonttheme[onlysmall]{structurebold}
+
+
+% Put the page number too.
+\defbeamertemplate*{footline}{infolines theme without institution}
+{
+ \leavevmode%
+ \hbox{%
+ \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1.125ex,center]{author in
head/foot}%
+ \usebeamerfont{author in head/foot}\insertshortauthor
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1.125ex,center]{title in
head/foot}%
+ \usebeamerfont{title in head/foot}\insertshorttitle
+ \end{beamercolorbox}%
+ \begin{beamercolorbox}[wd=.333333\paperwidth,ht=2.25ex,dp=1.125ex,right]{date
+in head/foot}%
+ \usebeamerfont{date in head/foot}\insertshortdate{}\hspace*{2em}
+ \insertframenumber{} / \inserttotalframenumber\hspace*{2ex}
+ \end{beamercolorbox}}%
+ \vskip0pt%
+}
+
+
+}
+% end of mode presentation
+
+
+
+%\setbeamercolor{math text}{fg=green!50!black}
+%\setbeamercolor{normal text in math text}{parent=math text}
+
+\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps,pgfshade}
+\usepackage{amsmath,amssymb}
+\usepackage[latin1]{inputenc}
+\usepackage{colortbl}
+\usepackage[english]{babel}
+
+%\usepackage{lmodern}
+%\usepackage[T1]{fontenc}
+
+\usepackage{times}
+\usepackage{multicol}
+\usepackage{xspace}
+\usepackage{ulem}
+
+\usepackage{graphicx}
+\graphicspath{{./figs/}}
+
+\usepackage{listings}
+\lstloadlanguages{[ISO]C++}
+\lstset{language=[ISO]C++,
+ texcl=true,
+ columns=fullflexible,
+ basicstyle={\small\sffamily}, % normal footnote small scriptsize tiny
+ commentstyle=\itshape,
+ showstringspacesúlse,
+ numberstyle=\tiny,
+% morekeywords={where, auto, concept, concept_map, axiom, late_check, final, abstract},
+ morecomment=[s]{/*}{*/}
+}
+
+
+\setbeamercovered{dynamic}
+
+%
+% The following defintions are peculiar to this particular
+% presetation. They have nothing to do with the beamer class
+%
+
+\newcommand{\Lang}[1]{\operatorname{\text{\textsc{#1}}}}
+
+\newcommand{\Class}[1]{\operatorname{\mathchoice
+ {\text{\normalfont\small #1}}
+ {\text{\normalfont\small #1}}
+ {\text{\normalfont#1}}
+ {\text{\normalfont#1}}}}
+
+\newcommand{\DOF}{\Class{DOF}}
+\newcommand{\NOF}{\Class{NOF}}
+\newcommand{\DOFpoly}{\Class{DOF}_{\operatorname{poly}}}
+\newcommand{\NOFpoly}{\Class{NOF}_{\operatorname{poly}}}
+
+
+\newcommand{\Nat}{\mathbb{N}}
+\newcommand{\Set}[1]{\{#1\}}
+
+
+
+\title[Milena: A Tutorial]
+{Milena: A Tutorial}
+
+\author[Milena Team]{Milena Team}
+
+\institute[LRDE]{EPITA Research and Development Laboratory (LRDE)}
+
+\date[EPITA-LRDE 2007]{November 2007}
+
+\subject{}
+
+%\pgfdeclaremask{lrde}{lrde-logo-mask}
+%\pgfdeclareimage[mask=lrde,width=0.6cm]{lrde-logo}{lrde}
+%\pgfdeclareimage[width=0.6cm]{lrde-logo}{lrde}
+
+%\logo{\vbox{\hbox to 1cm{\hfil\pgfuseimage{lrde-logo}}}}
+\logo{}
+
+
+
+%###########################################################
+% NEW!
+%###########################################################
+
+\newcommand{\fal}{$\bullet$\xspace}
+\definecolor{darkgreen}{rgb}{0.1,0.7,0.1}
+
+%###########################################################
+% end of NEW!
+%###########################################################
+
+
+
+\begin{document}
+
+\frame{\titlepage}
+
+\section<presentation>*{Outline}
+
+\begin{frame}
+ \frametitle{Outline}
+{\scriptsize
+ \tableofcontents[part=1,pausesections]
+}
+\end{frame}
+
+\AtBeginSubsection[]
+{
+ \begin{frame}<beamer>
+ \frametitle{Outline}
+{\scriptsize
+ \tableofcontents[current,currentsubsection]
+}
+ \end{frame}
+}
+
+\part<presentation>{Main Talk}
+
+
+
+
+% macros
+
+\newcommand{\oln}{\textsc{Olena}\xspace}
+\newcommand{\mln}{\textsc{Milena}\xspace}
+
+% end of macros
+
+
+
+%############################################################
+\section{Part 1: Introduction}
+
+
+
+%==============================
+\subsection{What is \mln?}
+
+
+%........................................................................
+\begin{frame}
+ \frametitle{What is \oln?}
+
+ \oln is the name for
+ \begin{itemize}
+ \item the project of building some modern image processing tools
+ \item the platform, including
+ \begin{itemize}
+ \item a library
+ \item command line executables
+ \item some documentation
+ \item etc.
+ \end{itemize}
+ \end{itemize}
+
+ \bigskip
+
+ \begin{block}{\mln}
+ \mln is the C++ image processing\footnote{In the following, IP is
+ ``Image Processing'' for short.} library of \oln.
+ \end{block}
+
+\end{frame}
+
+
+
+%........................................................................
+\begin{frame}
+ \frametitle{Yet Another Image Processing Library (YAIPL) ?}
+
+ \begin{block}{Yes!}
+ \begin{itemize}
+ \item Many libraries exist that can fulfill one's needs.
+ \item If you're happy with your favorite tool, we cannot force you
+ to change for \mln...
+ \item Though, you might have a look at \mln and being seduced!
+ \end{itemize}
+
+ \end{block}
+
+ \bigskip
+
+ \begin{block}{No!}
+ \begin{itemize}
+ \item \mln is rather different that available libraries.
+ \item A lot of convenient data structures that \emph{really} helps
+ you in developing IP solutions.
+ \end{itemize}
+ \end{block}
+
+\end{frame}
+
+
+%........................................................................
+\begin{frame}
+ \frametitle{A Short History of the \oln Project}
+
+ {\small
+
+ \begin{itemize}
+ \item 2000: Start of the project.
+ \item From Nov. 2001 to April 2004: Evolution from version 0.1 to 0.10.\\
+ The level of genericity we expected from the lib was partially obtained...
+ \item February 2007: Update to conform modern C++ compilers = version 0.11.\\
+ \end{itemize}
+
+ \medskip
+
+ \textit{During 3 years we developed a prototype to experiment with
+ genericity and to try to meet our objectives.}
+
+ \medskip
+
+ \begin{itemize}
+ \item From June 2007 up to new: Re-writing of the library with a
+ programming paradigm that rocks.
+ \end{itemize}
+
+}%small
+
+\end{frame}
+
+
+
+%==============================
+\subsection{Features of the \mln Library}
+
+%........................................................................
+\begin{frame}
+ \frametitle{Feature List}
+
+ \begin{itemize}
+ \item Generic...
+ \item Efficient so that one can process large images.
+ \item Quite as easy to use than a C or Java library.
+ \item Many tools to help writing readable algorithms in a concise way.
+ \item C++.
+ \end{itemize}
+
+\end{frame}
+
+
+%........................................................................
+\begin{frame}
+ \frametitle{Genericity}
+
+ FIXME
+
+\end{frame}
+
+
+%........................................................................
+\begin{frame}
+ \frametitle{Efficiency}
+
+ FIXME
+
+\end{frame}
+
+
+%........................................................................
+\begin{frame}
+ \frametitle{Easy to Use}
+
+ FIXME
+
+\end{frame}
+
+
+%........................................................................
+\begin{frame}
+ \frametitle{Many Tools}
+
+ FIXME
+
+\end{frame}
+
+
+%........................................................................
+\begin{frame}
+ \frametitle{C++}
+
+ FIXME
+
+\end{frame}
+
+
+
+
+%==============================
+\subsection{Getting Started with \mln}
+
+
+%........................................................................
+\begin{frame}
+ \frametitle{What Is Needed}
+
+ \begin{itemize}
+ \item A C++ compiler (\texttt{g++-4} is great and fast).
+ \item A browser (e.g., \texttt{Firefox})
+ \item A pdf reader (e.g., \texttt{kpdf})
+ \item Either \texttt{unzip} or (\texttt{gzip} and \texttt{tar})
+ \item A directory to uncompress the \mln archive.
+ \end{itemize}
+
+\end{frame}
+
+
+%........................................................................
+\begin{frame}[fragile]
+ \frametitle{Installation}
+
+ \begin{enumerate}
+ \item Get a snapshot of \mln from the web\\
+ {\scriptsize \url{http://olena.lrde.epita.fr/}}
+ \item Uncompress the archive.
+ \item Have a look. % FIXME
+ \end{enumerate}
+
+ For instance:
+
+{\tiny
+\begin{verbatim}
+tegucigalpa% cd
+tegucigalpa% mkdir milena
+tegucigalpa% cd milena
+tegucigalpa% mv /tmp/milena-1.0-alpha.tar.gz .
+tegucigalpa% tar zxvf *
+tegucigalpa% ls doc
+tegucigalpa% ls mln
+\end{verbatim}
+}
+
+\end{frame}
+
+
+
+%........................................................................
+\begin{frame}
+ \frametitle{The Main Directories}
+
+ \begin{center}
+ \begin{tabular}{ll}
+ \texttt{doc} & some documentation materials \\
+ \texttt{img} & few tiny images to play with \\
+ \texttt{demo} & several examples of what can be done with \mln \\
+ \texttt{mln} & the library \\
+ \end{tabular}
+ \end{center}
+
+\end{frame}
+
+
+
+%........................................................................
+\begin{frame}
+ \frametitle{\mln Documentation}
+
+FIXME
+
+\end{frame}
+
+
+
+%........................................................................
+\begin{frame}
+ \frametitle{\mln Brief Overview of the Library Contents}
+
+ In \texttt{mln}:
+\smallskip
+
+{\scriptsize
+\hspace*{-5mm}
+ \begin{tabular}{|ll|ll|}
+ \hline
+\texttt{accu} & accumulator objects &
+\texttt{arith} & arithmetical operators \\
+\texttt{border} & routines about virtual border &
+\texttt{canvas} & canvases \\
+\texttt{convert} & conversions routines &
+\texttt{core} & the library core \\
+\texttt{debug} & debugging tools &
+\texttt{display} & display tools \\
+\texttt{draw} & drawing routines &
+\texttt{estim} & estimation operators \\
+\texttt{fun} & functions &
+\texttt{geom} & geometrical routines \\
+\texttt{histo} & histogram-related tools &
+\texttt{io} & input/output routines \\
+\texttt{labeling} & labeling algorithms &
+\texttt{level} & point-wise operators on levels \\
+\texttt{linear} & linear operators &
+\texttt{literal} & definitions of literals \\
+\texttt{logical} & logical operators &
+\texttt{make} & routines to make objects \\
+\texttt{math} & mathematical functions &
+\texttt{metal} & static hard-core (metallic) tools \\
+\texttt{morpho} & mathematical morphology &
+\texttt{norm} & norms and related distances \\
+\texttt{pw} & tools to point-wise expressions &
+\texttt{set} & mathematical set routines \\
+\texttt{tag} & some tags &
+\texttt{test} & testing routines \\
+\texttt{trace} & tracing helpers &
+\texttt{trait} & definitions of traits \\
+\texttt{util} & miscellaneous utilities &
+\texttt{value} & types of values \\
+\texttt{win} & windows & & \\
+ \hline
+ \end{tabular}
+} % scriptsize
+
+\end{frame}
+
+
+
+%........................................................................
+\begin{frame}[fragile]
+ \frametitle{Illustration}
+
+
+\begin{minipage}{0.5\linewidth}
+{\it Algorithm:}\\
+\smallskip
+{\tiny
+$\forall p \in \mathcal{D}(f), \;\; \mathit{oper}(f(p), \, c)$
+}
+
+\bigskip\medskip
+
+{\it Olena in 2007:}
+\smallskip
+\begin{lstlisting}[basicstyle={\tiny\sffamily}]
+template <typename O, typename I, typename T>
+void op(Image<I>& f, T c)
+{
+ O oper;
+ oln_piter(I) p(f.domain());
+ for_all(p)
+ oper(f(p), c);
+}
+
+\end{lstlisting}
+
+\end{minipage}
+ %
+ \hspace*{2mm}
+ %
+\begin{minipage}{.45\linewidth}
+
+{\it Olena in 2000:}
+\smallskip
+\begin{lstlisting}[basicstyle={\tiny\sffamily}]
+template< typename O,
+ template< class U > class get_A = get_value,
+ typename P = Pred_true >
+struct op
+{
+ template< typename I > static
+ void on( I& f,
+ const get_A< I::value_type >::output_type& c,
+ P pred = P() )
+ {
+ O oper;
+ get_A< I::value_type > access;
+ I::iterator_type iter( f );
+ for ( iter.first(); ! iter.isDone(); iter.next() )
+ if ( pred( access( iter() ) ) )
+ oper( access( iter() ), c );
+ }
+};
+\end{lstlisting}
+
+\end{minipage}
+
+\end{frame}
+
+
+
+%############################################################
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% eval: (ispell-change-dictionary "american")
+%%% TeX-master: t
+
+% LocalWords: IP interoperability morphers Milena
Index: mln/value/internal/value_like.hh
--- mln/value/internal/value_like.hh (revision 1417)
+++ mln/value/internal/value_like.hh (working copy)
@@ -71,13 +71,13 @@
/// Interoperation associated type.
typedef N interop;
- /// Explicit convertion towards equivalent type.
+ /// Explicit conversion towards equivalent type.
V to_equiv() const;
- /// Explicit convertion towards encoding type.
+ /// Explicit conversion towards encoding type.
const C& to_enc() const;
- /// Explicit convertion towards interoperation type.
+ /// Explicit conversion towards interoperation type.
N to_interop() const;