NEWS 14.2 KB
Newer Older
Roland Levillain's avatar
Roland Levillain committed
1
* Olena 2.1	July 8, 2014
2

Roland Levillain's avatar
Roland Levillain committed
3
4
5
	* Compilation issues with recent versions of GCC (up to
	  version 4.8) and Clang (up to version 3.5) have been
	  addressed.
6

Roland Levillain's avatar
Roland Levillain committed
7
	* Improved and more complete documentation.
8

Roland Levillain's avatar
Roland Levillain committed
9
	* General cleanup of the distribution.
10

Roland Levillain's avatar
Roland Levillain committed
11
	* Simplification of the build system.
12

Roland Levillain's avatar
Roland Levillain committed
13
14
15
	* Trimesh sources have been removed from Olena.  The parts of
	  Trimesh that were actually used have been re-implemented
	  using Milena.
16

Roland Levillain's avatar
Roland Levillain committed
17
18
	* Automake's silent rules and parallel tests have been
	  enabled.
19

Roland Levillain's avatar
Roland Levillain committed
20
	* Many bug fixes.
21

22

Guillaume Lazzara's avatar
Guillaume Lazzara committed
23
* Olena 2.0	September 16, 2011
24

25
26
27
28
	* 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
Roland Levillain's avatar
Roland Levillain committed
29
	  for clang.
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

	* 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.
65

66
	* New function concept: Function_n2v.
67

68
69
	* The routine labeling::colorize is now deterministic with
	  respect to an execution run.
70

71
72
73
74
75
76
77
	* 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.
78

79
80
	* New graph image types supporting mixed site types (both
	  edges and vertices).
81

82
83
84
85
	* Improvements in accumulators.
	  - New properties.
	  - New RGB 3D histrogram (accu::stat::histo3d_rgb)
	  - Add new methods.
86

87
	* New default 3D neighborhoods/windows.
88
89
90

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

91
92
93
	* New debug tools.
	  - debug::mosaic.
	  - debug::z_order.
94

95
96
97
98
99
100
101
102
103
104
	* 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.
105
106
107

	* Various bug fixes and improvements.

108

Guillaume Lazzara's avatar
Guillaume Lazzara committed
109
* Olena 1.0	July 14, 2009
Roland Levillain's avatar
Roland Levillain committed
110

Roland Levillain's avatar
Roland Levillain committed
111
112
113
114
115
116
	* 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
117
118

	* Milena uses a simplified version of the SCOOP 2 paradigm
Roland Levillain's avatar
Roland Levillain committed
119
120
121
	  (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
122

Roland Levillain's avatar
Roland Levillain committed
123
124
125
	* 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
126

127
	* A reference documentation including a tutorial and a quick
Roland Levillain's avatar
Roland Levillain committed
128
129
	  reference guide have been started.  They do not cover the whole
	  Milena library yet.
130

Roland Levillain's avatar
Roland Levillain committed
131
	* Olena includes some demos and applications using Milena.
132
133


Roland Levillain's avatar
Roland Levillain committed
134
* Olena 0.11	February 21, 2007
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154

	* 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
155
156


Roland Levillain's avatar
Roland Levillain committed
157
* Olena 0.10	April 15, 2004
Roland Levillain's avatar
Roland Levillain committed
158
159

	* New documentation system.
Roland Levillain's avatar
Roland Levillain committed
160
	  Now any comment should use Doxygen style (i.e. /*! ... */).
Roland Levillain's avatar
Roland Levillain committed
161
162
	  You can also write some programs inside the comments. They are
	  compiled at documentation generation time. It is useful to
163
	  illustrate some algorithms with concrete input and output. To
Roland Levillain's avatar
Roland Levillain committed
164
	  use this feature the program has to be between \code and \endcode
Roland Levillain's avatar
Roland Levillain committed
165
166
167
168
169
170
171
172
173
174
	  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
175
	  border will be seen. Three behaviors are available: mirror,
Roland Levillain's avatar
Roland Levillain committed
176
177
178
179
180
	  replicate or user defined value.

	* Attribute opening/closing enhancement
	  - Make the algorithm more generic.
	  - Add a lot of attributes (area, disk, square, dist,
181
	    rectangle, volume, height, maxvalue, minvalue).
Roland Levillain's avatar
Roland Levillain committed
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197

	* 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
198
* Olena 0.9	August 8, 2003
Roland Levillain's avatar
Roland Levillain committed
199

Roland Levillain's avatar
Roland Levillain committed
200
	* New static hierarchy paradigm
Roland Levillain's avatar
Roland Levillain committed
201
	  - Complete rewrite of the image hierarchy.
Roland Levillain's avatar
Roland Levillain committed
202
	  - The new hierarchy benefits from multiple inheritance and
Roland Levillain's avatar
Roland Levillain committed
203
	    diamond constructs.
Roland Levillain's avatar
Roland Levillain committed
204
205
	  - Objects' abstract interfaces made available, leading to
	    safer and easier algorithm writing.
Roland Levillain's avatar
Roland Levillain committed
206
207
	  - Label images such as binary_image or vectorial_image added.

Roland Levillain's avatar
Roland Levillain committed
208
209
210
	* 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
211

Roland Levillain's avatar
Roland Levillain committed
212
	* Color conversions fixed and improved.
Roland Levillain's avatar
Roland Levillain committed
213

Roland Levillain's avatar
Roland Levillain committed
214
	* Cleanup and coding style conformance.
Roland Levillain's avatar
Roland Levillain committed
215

Roland Levillain's avatar
Roland Levillain committed
216
217
	* Many bug fixes.
	* Improved test-suite.
Roland Levillain's avatar
Roland Levillain committed
218
219


Roland Levillain's avatar
Roland Levillain committed
220
* Olena 0.8	April 10, 2003
Roland Levillain's avatar
Roland Levillain committed
221
222
223
224

	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
225
	created. Please read the UPGRADING file for more information.
Roland Levillain's avatar
Roland Levillain committed
226
227
228
229
230
231
232
233
234
235

	* 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
236
* Olena 0.7	February 10, 2003
Roland Levillain's avatar
Roland Levillain committed
237
238
239
240
241
242
243
244

	* 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
245
	* Olena now works on Mac OS X, NetBSD, FreeBSD and Cygwin.
Roland Levillain's avatar
Roland Levillain committed
246
247


Roland Levillain's avatar
Roland Levillain committed
248
* Olena 0.6	January 15, 2003
Roland Levillain's avatar
Roland Levillain committed
249

Roland Levillain's avatar
Roland Levillain committed
250
251
252
253
254
255
	* 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
256
257


Roland Levillain's avatar
Roland Levillain committed
258
259
260
261
262
263
264
265
266
267
268
269
270
* 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
271
272


Roland Levillain's avatar
Roland Levillain committed
273
* Olena 0.4.1	April 25, 2002
Roland Levillain's avatar
Roland Levillain committed
274
275
276
277

	* Buglet in the 0.4 Makefiles.


Roland Levillain's avatar
Roland Levillain committed
278
* Olena 0.4	April 24, 2002
Roland Levillain's avatar
Roland Levillain committed
279
280
281
282
283
284
285
286
287
288
289

	* 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
290
* Olena 0.3	January 14, 2002
Roland Levillain's avatar
Roland Levillain committed
291
292
293
294
295
296

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


Roland Levillain's avatar
Roland Levillain committed
297
* Olena 0.2b	December 13, 2001
Roland Levillain's avatar
Roland Levillain committed
298
299
300
301
302
303
304
305
306
307
308
309

	* 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
310
* Olena 0.2	November 28, 2001
Roland Levillain's avatar
Roland Levillain committed
311
312
313

	* Color:
	  - nrgb_8, nrgb_16, nrgb_32: new types for NTSC RGB.  The
314
	    conversion from and to YIQ and HSI which assumed NTSC RGB
Roland Levillain's avatar
Roland Levillain committed
315
316
317
318
319
320
	    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

321
322
		    hsi   yuv
		      \  /
Roland Levillain's avatar
Roland Levillain committed
323
	       rgb -- nrgb
324
325
		\     /  \
		  xyz     yiq
Roland Levillain's avatar
Roland Levillain committed
326
327
328
329
330
331
332
333
334

	* 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
335
* Olena 0.1f	November 22, 2001
Roland Levillain's avatar
Roland Levillain committed
336
337
338
339
340
341
342
343
344
345
346
347
348
349

	* 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
350
	    output type's range.
Roland Levillain's avatar
Roland Levillain committed
351
352
353
354
355
356
357
358
359
360
361

	* 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'.
362
	  - `morpho::get_plus_se_only', `morpho::get_plus_se_p',
Roland Levillain's avatar
Roland Levillain committed
363
	    `morpho::get_minus_se_only', `morpho::get_minus_se_p': Split
Roland Levillain's avatar
Roland Levillain committed
364
	    a structural element in a `plus' (lexically before than the center)
Roland Levillain's avatar
Roland Levillain committed
365
366
367
368
369
370
371
	    and `minus' (after).

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


Roland Levillain's avatar
Roland Levillain committed
372
* Olena 0.1d	November 15, 2001
Roland Levillain's avatar
Roland Levillain committed
373
374
375
376
377
378
379
380

	* 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
381
	    and accepts builtin types.
Roland Levillain's avatar
Roland Levillain committed
382
383
384
385
386
	  - `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
387
	  - All basic morphological processings (`opening',
Roland Levillain's avatar
Roland Levillain committed
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
	    `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
407
* Olena 0.1b	November 8, 2001
Roland Levillain's avatar
Roland Levillain committed
408
409
410
411
412
413
414
415
416
417
418
419

	* 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>
420
421
		  ^
		  |
Roland Levillain's avatar
Roland Levillain committed
422
	    conversion_to_type<To,Inferior>
423
424
		  ^
		  |
Roland Levillain's avatar
Roland Levillain committed
425
426
427
428
429
430
	    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
431
	  `save'.  The other functions (`read', `write', `read_pnm',
Roland Levillain's avatar
Roland Levillain committed
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
	  `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
448
* Olena 0.1	November 1, 2001
Roland Levillain's avatar
Roland Levillain committed
449

Roland Levillain's avatar
Roland Levillain committed
450
	* Initial public release.
Roland Levillain's avatar
Roland Levillain committed
451
452
453
454
455
456
457
458
459


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

----

Roland Levillain's avatar
Roland Levillain committed
460
461
Copyright (C) 2001, 2002, 2003, 2004, 2007, 2009, 2011, 2012, 2013,
2014 EPITA Research and Development Laboratory (LRDE).
Roland Levillain's avatar
Roland Levillain committed
462
463
464
465
466
467
468
469
470
471
472
473
474
475

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/>.