SMIL 1.1.1
Loading...
Searching...
No Matches
Release Notes

Smil 1.1.1 (17 September 2024)

  • New
    • Function Version() on Python interface - returning Smil Version
  • Change
    • Remove dependencies on X86 and Linux, to be able to run on other architectures and operating systems.
  • Bug
    • Bug on function fromNumpyArray() which works only on 3D images.

Smil 1.1 (14 May 2024)

  • New
    • Structuring elements CenteredLineSE() and CenteredLine3DSE() created in complement to LineSE() and Line3DSE()
    • functions rectangleDilate(), rectangleErode(), rectangleOpen() and rectangleClose(). Generic functions based on line morphology.
  • 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)

  • Bug
    • gaussianFilter() - wrong results on image borders and when radios = 0

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 :
      • labelWithMaxima() => labelWithMax()
      • labelFlatZones() => labelFlatZonesWithProperty()
      • rangeScale() => scaleRange()
  • Bug
    • parameter borderValue didn't appear in functions erode() and dilate()
    • Function NumpyInt() didn't work;
    • drawBlobs() had a bug when one blob had the last pixel of the image in it;
    • bresenhamLine() and bresenhamPoints() didn't appear in the Swig Python interface.
    • gradientHLS() segmentation fault on the function returning Image.

Smil 0.11.3 (23 Mar 2021)

  • New
    • packages for Anaconda
    • A new group of functions to check the similarity between two images. For the moment :
      • indexJaccard()
      • indexRuzicka() - weighted Jaccard index
      • indexAccuracy()
      • indexPrecision()
      • indexRecall()
      • indexFScore()
      • indexSensitivity()
      • indexSpecificity()
      • indexFallOut()
      • indexMissRate()
      • indexOverlap()
      • distanceHamming()
      • distanceHausdorff()
  • Bugs
    • function nonZeroOffsets() return UINT when should return size_t - problem for images with more than 4 Gpixels.
    • method printSelf() of class Image doesn't handle parameter indent
  • Documentation
    • improved documentation about Python programming with Smil.

Smil 0.11.2 (25 Feb 2021)

  • Bugs
    • Getting an image from an URL (Image(), getHttpFile(), createFromFile() or read()) didn't work neither with URL redirections nor with https protocol (only http).
  • Change
  • Documentation
    • Beginning of documentation about Smil programming under Python

Smil 0.11.1 (24 Feb 2021)

  • New
    • NEW : Python module smilFuncRewrite - this module is transparent to final users. It allows a better management of functions renamed and shortcuts.
    • NEW : Added FAQ and Troubleshooting pages to web site.
    • NEW : submodule geodesic tools inside Advanced Algorithms. With functions (not yet documented):
      • geodesicDiameter()
      • geodesicElongation()
      • geodesicTortuosity()
      • geodesicExtremities()
      • geodesicMeasure()
      • geodesicPathOpening()
      • geodesicPathClosing()
      • geodesicUltimatePathOpening()
      • geodesicUltimatePathClosing().
      • labelFlatZones()
  • Bugs
    • Incompatibility between Jupyter notebooks and Qt when importing smilPython. An environnement variable (SMIL_DISABLE_GUI) was added to disable Gui when running Smil with notebooks.
    • fillHoles() function didn't work with 3D and 1D images.

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)
    • measImageEntropy() => measEntropy()
    • gradient_HLS() => gradientHLS()
    • gradient_LAB() => gradientLAB()
    • measAreas() => blobsArea()
    • measVolumes() => blobsVolume()
    • measMinVals() => blobsMinVal()
    • measMaxVals() => blobsMaxVal()
    • measRangeVals() => blobsRangeVal()
    • measMeanVals() => blobsMeanVal()
    • valueLists() => blobsValueList()
    • measModeVals() => blobsModeVal()
    • measMedianVals() => blobsMedianVal()
    • measBarycenters() => blobsBarycenter()
    • measBoundBoxes() => blobsBoundBox()
    • measBlobMoments() => blobsMoments()
    • measBlobsEntropy() => blobsEntropy()
    • ImFastLineOpen_Morard() => imFastLineOpen()
  • 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 :
    • measGranulometry() - changes to handle gray level images
    • measGranulometry() - add parameter maxSeSize to limit the size of Structuring Element
  • 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 :
    • geoDil() and geoErode() => geoDilate() and geoErode()
    • dist() => distance()
    • dist_euclidean() => distanceEuclidean()
    • GeoDist() => distanceGeodesic()
    • measMedianVal() and measModeVal => medianVal() and modeVal()
    • measCenteredCovariance() => measCenteredAutoCovariance() (notice the new function added to represent the centered covariance between two images)
  • 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 :
    • distanceGeodesic()
  • Addons :
    • Filters
    • Graph Cuts
    • Stochastic Watershed
    • Fast Area and Path Opening
  • Anaconda integration (See config-smil)