NEWS 9.19 KB
Newer Older
Roland Levillain's avatar
Roland Levillain committed
1
2
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
Olena 1.0

	* SCOOP 2 paradigm.


Olena 0.10	April 15, 2004

	* New documentation system.
	  Now any comment should use doxygen style (i.e. /*! ... */).
	  You can also write some programs inside the comments. They are
	  compiled at documentation generation time. It is useful to
          illustrate some algorithms with concrete input and output. To
 	  use this feature the program has to be between \code and \endcode
	  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
          border will be seen. Three behaviors are available: mirror,
	  replicate or user defined value.

	* Attribute opening/closing enhancement
	  - Make the algorithm more generic.
	  - Add a lot of attributes (area, disk, square, dist,
            rectangle, volume, height, maxvalue, minvalue).

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


Olena 0.9	August 8, 2003

        * New static hierarchy paradigm
	  - Complete rewrite of the image hierarchy.
          - The new hierarchy benefits from multiple inheritance and
	    diamond constructs.
          - Objects' abstract interfaces made available, leading to
            safer and easier algorithm writing.
	  - Label images such as binary_image or vectorial_image added.

        * Partial rewrite of images I/O
          - Support for 1d, 3d images and windows.
          - Better handling of built-in types.

        * Color conversions fixed and improved.

        * Cleanup and coding style conformance.

        * Many bug fixes.
        * Improved test-suite.


Olena 0.8	April 10, 2003

	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
	created. Please read the UPGRADING file for more informations.

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


Olena 0.7	February 10, 2003

	* 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.
	* Olena now works on MacOS X, NetBSD, FreeBSD and cygwin.


Olena 0.6       January 15, 2003

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


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.


Olena 0.4.1	April 25, 2002

	* Buglet in the 0.4 Makefiles.


Olena 0.4	April 24, 2002

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


Olena 0.3	January 14, 2002

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


Olena 0.2b	December 13, 2001

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


Olena 0.2	November 28, 2001

	* Color:
	  - nrgb_8, nrgb_16, nrgb_32: new types for NTSC RGB.  The
            conversion from and to YIQ and HSI which assumed NTSC RGB
	    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

                    hsi   yuv
                      \  /
	       rgb -- nrgb
                \     /  \
                  xyz     yiq

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


Olena 0.1f	November 22, 2001

	* 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
            output type's range.

	* 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'.
          - `morpho::get_plus_se_only', `morpho::get_plus_se_p',
	    `morpho::get_minus_se_only', `morpho::get_minus_se_p': Split
	    a structural element in a `plus' (lexicaly before than the center)
	    and `minus' (after).

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


Olena 0.1d	November 15, 2001

	* 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
            and accepts builtin types.
	  - `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:
	  - All basic morpholohical processings (`opening',
	    `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.


Olena 0.1b	November 8, 2001

	* 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>
                  ^
		  |
	    conversion_to_type<To,Inferior>
                  ^
		  |
	    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
 	  `save'.  The other functions (`read', `write', `read_pnm',
	  `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.


Olena 0.1	November 1, 2001

        * Initial public release.