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 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 '. * 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>. * 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 >' (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' uses an array to store its elements and accepts builtin types. - `rgb' 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 * 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 ^ | conversion_to_type ^ | conversion_from_type_to_type 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 > 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 lena = load("lena.pgm");' works. - Multiplications and subtractions on 'vec' no longer perform additions. Olena 0.1 November 1, 2001 * Initial public release.