SMIL  1.1
Release Notes

Smil 1.1 (14 May 2024)

  • New
  • Change
    • In functions LineSE() and Line3DSE(), angle units changed from degres do radians.
    • function stretchHist() renamed to stretchHistogram().)
    • function fastLambdaLabel() removed as its results are wrong. Use function lambdaLabel() which gives correct results.
    • Option –imagetypes to define data types for gray images. Default values is UINT8;UINT16;UINT32
    • A plugin Samg was added with functions from old Chabardes plugin. These functions are needed by Samg functions. The aren't documented.
    • Experimental code to do SIMD parallel processing was removed as it is specific to Intel processors. Better use OpenMP feature for this.
  • Bug
    • Deprecated function in Numpy API, since release 1.19. New code needs release 1.15 or newer.
    • Problems when getting the cardinality of values in UINT32 images in the cardinality() function.
    • Attribute opening/closing based on MaxTree - Problem with memory allocation on MaxTree limiting the size of image being handled.
    • circleErode() and circleDilate() - functions based on line StrElt doesn't match expected radius. Improved but still not perfect.
    • some warnings about Qt deprecated functions.
  • Documentation
    • minor error corrections and adaptation to the above changes.

Smil 1.0.3 (15 Jan 2024)

Smil 1.0.1 and 1.0.2 (30 Sep 2023)

  • New
    • Packaging for Linux Anaconda

Smil 1.0.0 (30 Sep 2022)

  • New
    • Functions :
      • labelWithProperty() -
      • getBlobIdFromOffset() - returns the blob ID (map key) given the offset of a pixel/voxel.
      • merge() to create a structuring element from the merge of two other s.e.;
      • buildLineSE() to build a line structuring elements;
    • Structuring elements :
      • LineSE() and Line3DSE() - a 2D and 3D line Structuring Elements with arbitrary length and angles;
      • StrElt::merge() Structuring element method to merge some structuring element into the current one;
    • Image() allows now to create images from Numpy arrays (calls NumpyInt() function).
    • Image() function completely rewritten with better error verification and some lacking features. See documentation;
    • Advanced module line based operators (ported from Morph-M) completely rewritten from scratch to use Bresenham 3D line structuring elements and Smil native dilate() and erode() functions. The new code is 10 to 20 times faster than the old one.
  • Change
    • distanceEuclidean() - replaced by another one based on hierarchical queues. The previous one, a slightly faster, had a but on regions touching the border of the image.
    • labelFlatZones() - order of parameters to agree with Smil logic and set default value to method parameter.
    • geodesicMeasure() - set default value to method parameter.
    • Functions renamed :
  • Bug

Smil 0.11.3 (23 Mar 2021)

Smil 0.11.2 (25 Feb 2021)

Smil 0.11.1 (24 Feb 2021)

Smil 0.11.0 (04 Dec 2020)

  • New and change on functions
    • NEW and CHANGE : zhangSkeleton() moved to an Addon and reviewed. Other derived versions of this algorithm added
    • CHANGE : AreaOpen functions moved from Addon MorphoExtras to Advanced branch
    • NEW : images directory with test images to avoid need to access
    • NEW : Smil-build.h added to help load test images in test_XXX.cpp programs. Smil web server to launch make test
    • NEW : areaOpening using algorithm UnionFind ported and rewrote
    • CHANGE : AddOn ZoneMatrix - functions converted to functor
    • CHANGE : function isBinary(), now return true if there are only two values in the image : 0 and any other positive value.
    • NEW - function exp() to revert the function log()
  • Functions renamed to avoid confusion (mostly on Blobs)
  • Documentation
    • Lots of Doxygen documentation being reorganized and completed. Work in progress
    • QuickReferenceGuide

Smil 0.10.5 (14 Sep 2020)

  • Download link changed
  • New and changes on functions
    • NEW : functions measImageEntropy() and measBlobsEntropy() to evaluate entropy on images and blobs;
    • NEW : function inertiaMatrices() on blobs;
    • CHANGE : functions measMoments() and measBlobMoments() now can also evaluate centralized moments with respect to barycenters;
    • NEW : function areaThreshold() to filter blobs based on their area (number of pixels). Useful in granulometry;
    • CHANGE : function trans() renamed to translate() to avoid confusion by short names;
    • NEW :function rotateX90() to rotate images by multiples of 90 degres (handle 3D images);
    • CHANGE : function gaussianFilter() rewritten to handle 3D images;
    • CHANGE : function matTrans() now can handle 3D images and was renamed to matTranspose() to avoid confusion with translate();
    • CHANGE : function matMul() renamed to matMultiply() to avoid confusion by short names;
    • NEW : function pruneSkiz() based on a work of Theodore Chabardes;
    • CHANGE/NEW : vFlip() function renamed to vertFlip() and rewritten to handle 3D images. Added function horizFlip().
    • CHANGE : resize() and scale() functions rewritten with trilinear algorithm to be able to handle 3D images. An optional parameter is added to this functions to allow to select between trilinear (for 3D images), bilinear (for 2D images) or closest algorithm. auto value selects closest for binary images and XXXlinear for gray level images.
    • REMOVAL : functions resizeClosest() and scaleClosest(), as this algorithm is integrated into new resize() and scale() functions. The choice being done by a parameter.
    • NEW : '-' (minus) operator added to Point<T> class, allowing to retrieve the difference between two points.
  • Bug fixes
    • When creating images of type UINT32, printSelf() function doesn't show image type. Just a cosmetic problem.
  • Library documentation
    • changing the order of items inside pages;
    • new examples;
    • library documentation : lots of work being done - work still in progress fir some time...

Smil 0.10.4 (10 Jul 2020)

  • Changes :
  • Bug fixes
    • fromNumpyArray() function not working as intended
  • Code cleaning : work in progress while documenting

Smil 0.10.3 (10 Jul 2020)

  • Bug fixes
    • Filesystem conflicts on CentOS packages
    • other small bugs
  • Library documentation : work in progress

Smil 0.10.2 (27 Jun 2020)

  • New modules
    • Parsimonious - Parsimonious Path Opening - (port from Morph-M) thanks to Petr Dokladal
    • Line Morphology - (port from Morph-M)
  • New functions
    • distanceGeodesic() - thanks to Beatriz Marcotegui
    • measCenteredCovariance() (see below why this function was renamed and a new one written)
  • Functions renamed to be consistent with naming conventions, and homogeneous naming across the library :
  • Building system updated to ensure compatibility with new versions of cmake, gcc, Fedora32 and CentOS8;
  • Many small bugs corrected, most of them related to segmentation faults or image size limited to $2^{32}$ octets;
  • some parts of code being rewritten with functors to hide local private code
  • documentation for some functions. Much more to be done in this area.
  • binaries available for :
    • Ubuntu (16, 18 and 20)
    • Debian (8, 9 and 10)
    • CentOS (7 and 8)
    • Fedora (30, 31 and 32)

Smil 0.10.0

  • A lot of (not so visible) small bugs corrected
  • Binary packages for Ubuntu, Debian and CentOS
  • A web site ... going on...
  • Advanced branch :
    • Line Morphology (See [16] P. Soille, Morphological Image Analysis, 2003, p.89)
    • Gray Level Distance
  • Functions renamed :
    • dist_xxx() => distanceXxx()
    • measInertiaMatrix() and measInertiaMatrices() => measImageMoments() and measImageBlobsMoments()
  • New functions :
  • Addons :
    • Filters
    • Graph Cuts
    • Stochastic Watershed
    • Fast Area and Path Opening
  • Anaconda integration (See config-smil)