NEWS 13.6 KB
Newer Older
1
2
* Olena 1.0a

3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
	* This release includes for the first time the SCRIBO module
	  for Document Image Analysis (DIA).

	* Add compilation support for g++ 4.5 and some limited support
          for clang.

	* Compilation with multiple files is now possible using the
	  MLN_WO_GLOBAL_VARS macro.

	* New algorithms.
	  - clustering::kmean_rgb.
	  - data::split.
	  - histo::equalize.
	  - labeling::value_and_compute.
	  - subsampling::antialiased.
	  - world::rgb::invert.
	  - geom::horizontal_symmetry.
	  - geom::vertical_symmetry.
	  - geom::translate.
	  - morpho::tree::component_tree.
	  - morpho::tree::dual_input_tree.
	  - morpho::watershed::topological.
	  - transform::influence_zone_geodesic_saturated.
	  - upscaling::art::scaling2x.
	  - upscaling::art::scaling3x.

	* Add fast/fastest implementations for various algorithms.
	  - arith::revert.
	  - data::paste.
	  - labeling::compute.
	  - morpho::skeleton_constrained.
	  - transform::influence_zone_geodesic.

	* Overall performance improvements in morphological skeleton
	  computation.

	* New labeling canvas.
	  - canvas::labeling::blobs (replace canvas::labeling).
	  - canvas::labeling::sorted.
	  - canvas::labeling::video.
43

44
	* New function concept: Function_n2v.
45

46
47
	* The routine labeling::colorize is now deterministic with
	  respect to an execution run.
48

49
50
51
52
53
54
55
	* New type conversions.
	  - New convert::from_to overloads.
	  - New convert::to_qimage and convert::to_qimage_nocopy
	    (conversion towards Qt's QImage type).
	  - New conversion functions : fun::v2v::qt_rgb_to_int_u,
	    fun::v2v::rgb8_to_rgbn, fun::v2v::rgb_to_int_u,
	    fun::v2v::rgb_to_luma.
56

57
58
	* New graph image types supporting mixed site types (both
	  edges and vertices).
59

60
61
62
63
	* Improvements in accumulators.
	  - New properties.
	  - New RGB 3D histrogram (accu::stat::histo3d_rgb)
	  - Add new methods.
64

65
	* New default 3D neighborhoods/windows.
66
67
68

	* New 3D window type: win::sline3d.

69
70
71
	* New debug tools.
	  - debug::mosaic.
	  - debug::z_order.
72

73
74
75
76
77
78
79
80
81
82
	* New drawing tools.
	  - draw::box_plain.
	  - draw::dashed_line.
	  - draw::site_set.
	  - draw::polygon.

	* I/O improvements.
	  - New raw data I/O functions.
	  - Improved ImageMagick/GraphicsMagick I/O performances.
	  - Support for FLD format.
83
84
85

	* Various bug fixes and improvements.

86

Guillaume Lazzara's avatar
Guillaume Lazzara committed
87
* Olena 1.0	July 14, 2009
Roland Levillain's avatar
Roland Levillain committed
88

Roland Levillain's avatar
Roland Levillain committed
89
90
91
92
93
94
	* The core C++ library, renamed to Milena, has been rewritten from
	  scratch and features numerous additions over the past releases.
	  Some features have also been dropped or disabled, and some of them
	  will be reintegrated in future releases.  The programming
	  interface has changed from previous versions, but most programs
	  using Olena 0.11 can be adapted to the Olena 1.0 API.
Roland Levillain's avatar
Roland Levillain committed
95
96

	* Milena uses a simplified version of the SCOOP 2 paradigm
Roland Levillain's avatar
Roland Levillain committed
97
98
99
	  (informally called SCOOP 1.5), to improve the speed of compilation
	  and make developing easier while still providing very good
	  run-time performances.
Roland Levillain's avatar
Roland Levillain committed
100

Roland Levillain's avatar
Roland Levillain committed
101
102
103
	* A first (re)implementation of Swilena featuring Python wrappers
	  for a very small subset of Milena is available.  The bundled
	  Swilena Python Shell (sps) allows interactive Olena sessions.
Roland Levillain's avatar
Roland Levillain committed
104

105
	* A reference documentation including a tutorial and a quick
Roland Levillain's avatar
Roland Levillain committed
106
107
	  reference guide have been started.  They do not cover the whole
	  Milena library yet.
108

Roland Levillain's avatar
Roland Levillain committed
109
	* Olena includes some demos and applications using Milena.
110
111


Roland Levillain's avatar
Roland Levillain committed
112
* Olena 0.11	February 21, 2007
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132

	* The whole Olena distribution compiles with the GNU C++
	  Compiler (G++) 4.0 and 4.1.  The compatibility with previous
	  versions of the compiler has been broken.

	* Revamp of Swilena.
	  The Swilena wrappers have been repaired, as they had become
	  incompatible with recent versions of SWIG, G++, Python and Ruby.
	  Moreover, a lot of small bugs have been fixed in Swilena.
	  The test suite of Rblena, the Ruby wrappers for Olena, has
	  been completed and is comparable to Pylena's (the Python
	  wrappers for Olena).

	* Libtool.
	  The whole package uses GNU Libtool to handle libraries.
	  Swilena benefits this, and uses Libtool to create shared
	  libraries upon which SWIG wrappers are built.

	* Miscellaneous corrections in Olena and Integre, as well as in
	  their test suites.
Roland Levillain's avatar
Roland Levillain committed
133
134


Roland Levillain's avatar
Roland Levillain committed
135
* Olena 0.10	April 15, 2004
Roland Levillain's avatar
Roland Levillain committed
136
137

	* New documentation system.
Roland Levillain's avatar
Roland Levillain committed
138
	  Now any comment should use Doxygen style (i.e. /*! ... */).
Roland Levillain's avatar
Roland Levillain committed
139
140
	  You can also write some programs inside the comments. They are
	  compiled at documentation generation time. It is useful to
141
	  illustrate some algorithms with concrete input and output. To
Roland Levillain's avatar
Roland Levillain committed
142
	  use this feature the program has to be between \code and \endcode
Roland Levillain's avatar
Roland Levillain committed
143
144
145
146
147
148
149
150
151
152
	  tags. If you produce an image, you can include it in the comments
	  with the \image command, using the same name you used to produce
	  it, but with the png extension. To make sure your image will not
	  overwrite another existing one, you should name it taking care of
	  the namespace you are using: e.g. if you comment the function
	  oln::boo::bar::fun, the image should be named oln_foo_bar_fun.ppm.
	  The macros IMG_IN and IMG_OUT correspond to the path of the images.

	* Border behavior can be controlled with the behavior hierarchy.
	  If an algorithm support it, you can choose the way the image
153
	  border will be seen. Three behaviors are available: mirror,
Roland Levillain's avatar
Roland Levillain committed
154
155
156
157
158
	  replicate or user defined value.

	* Attribute opening/closing enhancement
	  - Make the algorithm more generic.
	  - Add a lot of attributes (area, disk, square, dist,
159
	    rectangle, volume, height, maxvalue, minvalue).
Roland Levillain's avatar
Roland Levillain committed
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175

	* Change the color conversion system
	  - CIE RGB is the main color system i.e. it can be converted
	    directly into any other color system.
	  - Conversion between 2 color systems should pass by the RGB one.

	* Generic and concrete morphers are now implemented in Olena.
	  - Five morphers are included in this release:
		 Color morpher
		 Sub quantifying morpher
		 Piece morpher
		 Iter morpher
		 Slicing morpher
	  - These morphers can be manipulated as if they were normal images.


Roland Levillain's avatar
Roland Levillain committed
176
* Olena 0.9	August 8, 2003
Roland Levillain's avatar
Roland Levillain committed
177

Roland Levillain's avatar
Roland Levillain committed
178
	* New static hierarchy paradigm
Roland Levillain's avatar
Roland Levillain committed
179
	  - Complete rewrite of the image hierarchy.
Roland Levillain's avatar
Roland Levillain committed
180
	  - The new hierarchy benefits from multiple inheritance and
Roland Levillain's avatar
Roland Levillain committed
181
	    diamond constructs.
Roland Levillain's avatar
Roland Levillain committed
182
183
	  - Objects' abstract interfaces made available, leading to
	    safer and easier algorithm writing.
Roland Levillain's avatar
Roland Levillain committed
184
185
	  - Label images such as binary_image or vectorial_image added.

Roland Levillain's avatar
Roland Levillain committed
186
187
188
	* Partial rewrite of images I/O
	  - Support for 1d, 3d images and windows.
	  - Better handling of built-in types.
Roland Levillain's avatar
Roland Levillain committed
189

Roland Levillain's avatar
Roland Levillain committed
190
	* Color conversions fixed and improved.
Roland Levillain's avatar
Roland Levillain committed
191

Roland Levillain's avatar
Roland Levillain committed
192
	* Cleanup and coding style conformance.
Roland Levillain's avatar
Roland Levillain committed
193

Roland Levillain's avatar
Roland Levillain committed
194
195
	* Many bug fixes.
	* Improved test-suite.
Roland Levillain's avatar
Roland Levillain committed
196
197


Roland Levillain's avatar
Roland Levillain committed
198
* Olena 0.8	April 10, 2003
Roland Levillain's avatar
Roland Levillain committed
199
200
201
202

	IMPORTANT NOTE: This version is not compatible with older
	versions of Olena. The project has been split into three part,
	so many header files have moved and new namespaces have been
Roland Levillain's avatar
Roland Levillain committed
203
	created. Please read the UPGRADING file for more information.
Roland Levillain's avatar
Roland Levillain committed
204
205
206
207
208
209
210
211
212
213

	* Many source code cleanups.
	* The source code has been split into 3 parts: image
	  processing (olena/), data types (integre/) and meta-programming
	  tools (metalic/).
	* First part of the new static hierarchy paradigm implementation.
	* Support for combinatorial maps.
	* Many bug fixes.


Roland Levillain's avatar
Roland Levillain committed
214
* Olena 0.7	February 10, 2003
Roland Levillain's avatar
Roland Levillain committed
215
216
217
218
219
220
221
222

	* Manual pages for the command-line utilities.
	* New, saner, source tree layout.
	* Each `part' of the source tree can be excluded from the
	  build process with configuration flags.
	* New `oln.m4' file for use by autoconf'ed user projects.
	* Major documentation updates.
	* New `oln-config.sh' scripts for user Makefiles.
Roland Levillain's avatar
Roland Levillain committed
223
	* Olena now works on Mac OS X, NetBSD, FreeBSD and Cygwin.
Roland Levillain's avatar
Roland Levillain committed
224
225


Roland Levillain's avatar
Roland Levillain committed
226
* Olena 0.6	January 15, 2003
Roland Levillain's avatar
Roland Levillain committed
227

Roland Levillain's avatar
Roland Levillain committed
228
229
230
231
232
233
	* Complete rewriting of data types.
	* Command line utilities.
	* Fully implementation of convolutions
	* Fast Fourier Transform (FFT)
	* Discrete Wavelet Transform (Daubechie's wavelet) (DWT)
	* Many bug fixes.
Roland Levillain's avatar
Roland Levillain committed
234
235


Roland Levillain's avatar
Roland Levillain committed
236
237
238
239
240
241
242
243
244
245
246
247
248
* Olena 0.5	July 25, 2002

	* Documentation in LaTeX (instead of Texinfo).
	* Support reading/writing gziped images
	  (include <oln/io/gz.hh> and link with libz).
	* Complete rewrite of the static arrays
	  (meta::array1d, meta::array2d, meta::array3d).
	* Preliminary implementation of convolutions
	  (oln::convol::convolve)
	* All headers should now be referenced with the `oln/' prefix,
	  as in `#include <oln/basics2d.hh>'.
	* New conversion operator: convert::stretch.
	* Many bug fixes.
Roland Levillain's avatar
Roland Levillain committed
249
250


Roland Levillain's avatar
Roland Levillain committed
251
* Olena 0.4.1	April 25, 2002
Roland Levillain's avatar
Roland Levillain committed
252
253
254
255

	* Buglet in the 0.4 Makefiles.


Roland Levillain's avatar
Roland Levillain committed
256
* Olena 0.4	April 24, 2002
Roland Levillain's avatar
Roland Levillain committed
257
258
259
260
261
262
263
264
265
266
267

	* New morpho:: operators:
	  - thinning
	  - thickening
	* New convert:: operators:
	  - ng_to_se
	  - ng_to_cse
	* First sketch of a test suite.
	* Many bug fixes.


Roland Levillain's avatar
Roland Levillain committed
268
* Olena 0.3	January 14, 2002
Roland Levillain's avatar
Roland Levillain committed
269
270
271
272
273
274

	* fast_morpho() speeded-up.
	* Minor bug fixes.
	* "Documentation" updates.


Roland Levillain's avatar
Roland Levillain committed
275
* Olena 0.2b	December 13, 2001
Roland Levillain's avatar
Roland Levillain committed
276
277
278
279
280
281
282
283
284
285
286
287

	* Value:
	  - Support for HSL and HSV color systems.
	  - Define internal::default_less<vec<N,T>>.

	* Core:
	  - New window generator: mk_win_ellipse, mk_win_disc,
	    mk_win_ellipsoid, and mk_win_ball.

	* Various #include fixes.


Roland Levillain's avatar
Roland Levillain committed
288
* Olena 0.2	November 28, 2001
Roland Levillain's avatar
Roland Levillain committed
289
290
291

	* Color:
	  - nrgb_8, nrgb_16, nrgb_32: new types for NTSC RGB.  The
292
	    conversion from and to YIQ and HSI which assumed NTSC RGB
Roland Levillain's avatar
Roland Levillain committed
293
294
295
296
297
298
	    has been adjusted to actually use nrgb_* (instead of rgb_*)
	    and renamed accordingly.
	  - yuv_8, yuv_16, yuv_32: New types.

	  The currently available conversions are

299
300
		    hsi   yuv
		      \  /
Roland Levillain's avatar
Roland Levillain committed
301
	       rgb -- nrgb
302
303
		\     /  \
		  xyz     yiq
Roland Levillain's avatar
Roland Levillain committed
304
305
306
307
308
309
310
311
312

	* Various cleanups and bug fixes.  Especially:
	  - border handling (mirroring, copying) simplified and fixed.
	  - ++k, --k: return a value with the same type as k.

	* I/O:
	  - pnm/P1, pnm/P3, and pnm/P6 support for image_3d.


Roland Levillain's avatar
Roland Levillain committed
313
* Olena 0.1f	November 22, 2001
Roland Levillain's avatar
Roland Levillain committed
314
315
316
317
318
319
320
321
322
323
324
325
326
327

	* Core:
	  - Several bug fixes in memory handling.

	* Types:
	  - New color types: HSI, YIQ; with conversions to and from RGB.
	  - `min()' and `max()' are now defined with the types (i.e.
	    not in math/macros.hh), along with the other operators.
	    Also, these procedures will two arguments of different
	    types.

	* Casts:
	  - `cast::round': similar to C's round()
	  - `cast::rbound': ditto, but constrained to fit the
328
	    output type's range.
Roland Levillain's avatar
Roland Levillain committed
329
330
331
332
333
334
335
336
337
338
339

	* I/O:
	  - Support for `image_3d<int_u<N> >' (as PNM P2 & P5).

	* Processings
	  - `level::is_greater_or_equal', `level::is_greater',
	    `level::is_lower_or_equal', `level::is_lower',
	    `level::is_equal': Comparisons between images.
	  - `level::connected_component': Number connected components.
	  - `morpho::geodesic_dilation', `morpho::simple_geodesic_dilation'.
	  - `morpho::geodesic_erosion', `morpho::simple_geodesic_erosion'.
340
	  - `morpho::get_plus_se_only', `morpho::get_plus_se_p',
Roland Levillain's avatar
Roland Levillain committed
341
	    `morpho::get_minus_se_only', `morpho::get_minus_se_p': Split
Roland Levillain's avatar
Roland Levillain committed
342
	    a structural element in a `plus' (lexically before than the center)
Roland Levillain's avatar
Roland Levillain committed
343
344
345
346
347
348
349
	    and `minus' (after).

	* Misc:
	  - `utils::timer': for benchmarking
	  - `level::lut', `level::hlut': Lookup tables.


Roland Levillain's avatar
Roland Levillain committed
350
* Olena 0.1d	November 15, 2001
Roland Levillain's avatar
Roland Levillain committed
351
352
353
354
355
356
357
358

	* Core:
	  - `point's, `dpoint's, and `image_size's feature a `nth()' method,
	    that returns the value of the nth coordinate.
	  - `fold': new high order operator.

	* Types:
	  - `vec<N,T>' uses an array to store its elements
359
	    and accepts builtin types.
Roland Levillain's avatar
Roland Levillain committed
360
361
362
363
364
	  - `rgb<T>' has been replaced by `rgb_8', `rgb_16', `rgb_32'
	  - `xyz_8', `xyz_16', `xyz_32' are new types.
	  - the latter six types are instances of the `color' type.

	* Processings:
Roland Levillain's avatar
Roland Levillain committed
365
	  - All basic morphological processings (`opening',
Roland Levillain's avatar
Roland Levillain committed
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
	    `hit_or_miss', `beucher_gradient', etc.) from namespace
	    `morpho::' have their fast equivalent in namespace
	    `morpho::fast::'.
	  - `convert::apply' is similar to `apply' but will work
	    for all types of conversions while `apply' can only work
	    on `conversion_to_type' conversions.

	* Tools:
	  - `utils::fill': fill an image
	  - `utils::f_moments', `utils::f_minmax': statistical functors.

	* Casts:
	  - `cast::bound': similar to `convert::bound'.

	* I/O:
	  - It's possible to load and save as PPM any kind of image2d
	    whose color has 3 components on 8 bits.


Roland Levillain's avatar
Roland Levillain committed
385
* Olena 0.1b	November 8, 2001
Roland Levillain's avatar
Roland Levillain committed
386
387
388
389
390
391
392
393
394
395
396
397

	* New type: rgb<T>

	* New processings:
	  - morpho::watershed_con
	  - convol::fast::gaussian
	  - convol::fast::gaussian_derivative
	  - convol::fast::gaussian_second_derivative

	* Conversion are organized in the following hierarchy

	    conversion<Inferior>
398
399
		  ^
		  |
Roland Levillain's avatar
Roland Levillain committed
400
	    conversion_to_type<To,Inferior>
401
402
		  ^
		  |
Roland Levillain's avatar
Roland Levillain committed
403
404
405
406
407
408
	    conversion_from_type_to_type<From,To,Inferior>

	  All children of conversion_from_type_to_type are models of
	  Adaptable Unary Function.  See conversion.hh for more comments.

	* The only two functions that perform file i/o are `load' and
Roland Levillain's avatar
Roland Levillain committed
409
	  `save'.  The other functions (`read', `write', `read_pnm',
Roland Levillain's avatar
Roland Levillain committed
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
	  `write_pnm') have been removed.

	* image2d<rgb<int_u8> > can be loaded and saved as ppm.

	* All iterators support a new method, cur(), that returns
	  the current point (or dpoint).  It is meant to be used
	  at places where the compiler is unable to implicitly convert
	  an iterator into a point (or dpoint).

	* Bug fixes:
	  - Olena now compiles successfully with -pedantic.
	  - `image2d<int_u8> lena = load("lena.pgm");' works.
	  - Multiplications and subtractions on 'vec' no longer
	    perform additions.


Roland Levillain's avatar
Roland Levillain committed
426
* Olena 0.1	November 1, 2001
Roland Levillain's avatar
Roland Levillain committed
427

Roland Levillain's avatar
Roland Levillain committed
428
	* Initial public release.
Roland Levillain's avatar
Roland Levillain committed
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453


Local Variables:
mode: outline
ispell-local-dictionary: "american"
End:

----

Copyright (C) 2001, 2002, 2003, 2004, 2007, 2009 EPITA Research and
Development Laboratory (LRDE)

This file is part of Olena.

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.

Olena is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with Olena.  If not, see <http://www.gnu.org/licenses/>.