README 8.75 KB
Newer Older
1
Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
2

3
This file is part of Olena.
4

5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Olena is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation, version 2 of the License.

The complete GNU General Public Licence Notice can be found as the
'COPYING' file in the root directory.

=======================
 Introduction to Olena
=======================

Olena_, a platform dedicated to image processing.

.. _Olena: http:://olena.lrde.epita.fr


Overview
========
23

24
25
26
27
28
29
Olena is a platform dedicated to image processing. At the moment it is
mainly composed of a C++ library: Milena. This library features many
tools to easily perform image processing tasks. Its main
characteristic is its genericity: it allows to write an algorithm once
and run it over many kinds of images (grey scale, color, 1D, 2D, 3D,
...).
30

31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Olena is a project developed by the `EPITA Research and Development
Laboratory (LRDE)`__ since 1997.  We did numerous prototypes and
throwaway experiments before settling into the kind of programming
paradigm which is finally here.

__ http://www.lrde.epita.fr

We do our image processing research using this library, but most
importantly we have gathered (and still do) generic programming
expertise from the library development.

Yet, Olena is an ongoing development project. Few algorithms or
definitions may change in a near future. A list of potential changes
is maintained here :
https://olena.lrde.epita.fr/FeaturesSubjectToChange.

Likewise, the documentation does not cover the whole project yet. In the
`doc/' directory you will find the first draft of a reference
manual. It includes a quick reference guide and a tutorial. This is a
good start.  In `milena/tools' and `milena/doc/examples' few sample
programs are available. Most of them are already used to illustrate
the tutorial.  For the rest, we're afraid you will have to dig the
code or e-mail us.
54
55
56
57
58

   Please direct any question or comments to <olena@lrde.epita.fr>, or
<olena-bugs@lrde.epita.fr>.

   Olena also has a web page, located at
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
<http://olena.lrde.epita.fr>.


Installation
============

To install Olena on your system, type in the classical sequence at
the command prompt::

	./configure
	make
	make install (as root)

Note that an installation is  specific to the compiler used to install
it. Indeed, the call  to ``./configure`` enables some workarounds and,
consequently,  users must  compile  with the  same  compiler to  avoid
compatibility problems.

Between ``make`` and ``make install``, you may also want to run::

	make check

 ``make check`` will run the test suite to check the whole library.
Running the test suite may require up several hours.


Please read the INSTALL file for more information about building and
installing Olena.


Additional features
-------------------

Python bindings are provided thanks to Swilena. It is disabled by
default because it requires extra dependencies: Swig. To enable the
compilation of this module use::

       ./configure --enable-swilena


Sample tools are shipped in the tarball. To enable the compilation of
       these tools use:: ./configure --enable-tools


Sample applications are shipped in the tarball. To Enable the
compilation of these applications use::

       ./configure --enable-apps


To read/write TIFF images with Olena, libtiff is required. To specify
the base directory, use::

       ./configure --with-tiff=/path/to/basedir


To read/write GDCM images with Olena, libgdcm is required. To specify
the base directory, use::

       ./configure --with-gdcm=/path/to/basedir



Layout of the tarball
---------------------

The Olena project directory layout is as follows:

build-aux
   Auxialiary tools used by the GNU Build System during ``configure``
   and ``make`` stages.

external
   Sources of Shipped dependencies.


m4
   Portability macros from the ``gnulib`` library.

milena

  apps
     Application examples.

  mln
     Header of the Milena library.

  tests
     The test suite.

  doc
     The documentation.

  tools
     Example tools.

  mesh
     Mesh images.

  img
     Test images.

  demos
     Demos of Milena.


swilena
   Python binding sources.


Requirements
============

Olena has been tested on the following configurations:

System                   Compiler
Linux                    g++ 3.3, 3.4, 4.0, 4.1, 4.2
			 icc 10.1, 11.0
Linux-64 		 g++ 4.1
MacOS X                  g++ 4.0.1


According to the wanted features, some dependencies may be required:


To enable I/O with TIFF images, `libtiff`_ must be installed.

.. _libtiff: http://www.libtiff.org/

To enable I/O with GDCM images, `libgdcm`_ must be installed.

.. _libgdcm: http://sourceforge.net/apps/mediawiki/gdcm/


To support many image formats in Olena's I/O system, `libmagick++`_ must
be installed.

.. _libmagick++: Please see your distribution package manager.


`Boost`_ may be needed if you want to support tuple accumulators.

.. _Boost: http://www.boost.org/


See Also
========

There are other sources of interest in the distribution.

- Headline news about the project can be found in the file ``NEWS`` at
  the root of the source tree.

- The library reference HTML documentation, generated by Doxygen_, is
  located in ``doc/user/html/``.

.. _Doxygen: http://www.doxygen.org


License
=======

Olena is released under the GNU General Public Licence. See the file
``COPYING`` (at the root of the source tree) for details.


Contacts
========

The team can be reached by mail at olena@lrde.epita.fr. Snail mail
addresses follow.

* Olena - LRDE

233
  | Laboratoire de Recherche et Développement de l'EPITA (LRDE)
234
  | 14-16 rue Voltaire
235
  | F-94276 Le Kremlin-Bicêtre CEDEX
236
237
238
  | France


239
240
241
242
243

Bibliography
============

Further information about Olena can be found into the following related
244
papers.
245

246
About Image Processing Programming:
247

248
249
250
251
252
   * `Milena: Write Generic Morphological Algorithms Once, Run on Many
     Kinds of Images`. Roland Levillain, Thierry Géraud, Laurent
     Najman.  In the proceedings of the 9th International Symposium on
     Mathematical Morphology (ISMM) http://www.cs.rug.nl/~ISMM09/
     Groningen, The Netherlands August 24 - 27, 2009.
253

254
255
256
   * `Generic Algorithmic Blocks Dedicated to Image Processing`,
     Jérôme Darbon, Thierry Géraud, Patrick Bellot. In the proceedings
     of ECOOP PHD Oslo, Norway, June 2004.
257

258
259
260
261
   * `Generic Implementation of Morphological Image Operators`, Jérôme
     Darbon, Thierry Géraud, and Alexandre Duret-Lutz, submitted to
     International Symposium On Mathematical Morphology VI (ISMM
     2002), April 3-5, 2002, Sydney, Australia.
262

263
264
265
266
267
268
   * `Applying Generic Programming to Image Processing`, Thierry
     Géraud, Yoann Fabre, and Alexandre Duret-Lutz.  In the
     Proceedings of the IASTED International Conference on Applied
     Informatics (AI'2001) - Symposium Advances in Computer
     Applications, ACTA Press, pages 577-581, Innsbruck, Austria,
     February 2001.
269

270
271
272
273
274
275
   * `Obtaining Genericity for Image Processing and Pattern
     Recognition Algorithms`.  Thierry Géraud, Yoann Fabre, Alexandre
     Duret-Lutz, Dimitri Papadopoulos-Orfanos, and Jean-François
     Mangin.  In the Proceedings of the 15th International Conference
     on Pattern Recognition (ICPR'2000), IEEE Computer Society,
     vol. 4, pages 816-819, Barcelona, Spain, September 2000.
276

277
About Generic Programming Paradigm:
278
279
280
281
282
283
284
285
286

   * `Semantics-Driven Genericity: A Sequel to the Static C++
     Object-Oriented Programming Paradigm (SCOOP 2)`.  Thierry Géraud,
     Roland Levillain.  In the proceedings of the 6th International
     Workshop on Multiparadigm Programming with Object-Oriented
     Languages
     http://homepages.fh-regensburg.de/~mpool/mpool08/welcome.html
     Paphos, Cyprus July 7, 2008.

287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
   * `Static C++ Object-Oriented Programming (SCOOP)`, Nicolas Burrus,
     Alexandre Duret-Lutz, Thierry Géraud, David Lesage, and Raphaël
     Poss. In the Proceedings of the Workshop on Multiple Paradigm
     with OO Languages (MPOOL'03) Anaheim, CA, October 2003.

   * `Generic Design Patterns in C++`. Alexandre Duret-Lutz, Thierry
     Géraud, and Akim Demaille.  In the Proceedings of the 6th USENIX
     Conference on Object-Oriented Technologies and Systems
     (COOTS'2001), pages 189-202, San Antonio, Texas, USA,
     January-February 2001.

   * `Olena: a Component-Based Platform for Image Processing, mixing
     Generic, Generative and OO Programming`. Alexandre Duret-Lutz.
     In the Proceedings of the 2nd International Symposium on
     Generative and Component-Based Software Engineering (GCSE 2000),
     Young Researchers Workshop (published in "Net.ObjectDays2000";
     ISBN 3-89683-932-2), pages 653-659, Erfurt, Germany, October
     2000.
305
306
307
308
309
310


   You can download these papers and related materials from
<http://www.lrde.epita.fr/cgi-bin/twiki/view/Publications>


311
312
313
314

.. Local Variables:
.. mode: rst
.. End: