News‎ > ‎

Changelist 2.1

Changes to DIPimage

  • Setting up DIPimage under Windows with MATLAB 7.2 or newer now is easier: it is no longer necessary to set the PATH environment variable (or copy library files to some common directory). We might be able to implement this also for earlier versions of MATLAB under Windows in a future version of DIPimage.
  • New functions:
    • fmmatch and transform deformation/matching of two 2D images by Fourier-Mellin transformation (rotation, scaling and translation)
    • affine_transform and find_affine_transform deformation/matching of two 2D images by a homogeneous transformation (rotation, scaling and translation)
    • mae returns the mean absolute error between two images.
  • Changed functions:
    • The "Step through slices" mode in the figure windows now hopefully works a little better.
    • The "Save display..." option in the figure windows now remembers the last directory used.
    • The 'zerobased' color map has changed, it now has better discriminating abilities for values close to 0.
    • The figure windows no longer revert to the 'grey' color map every time the grey-value range is changed.
    • Now there's also a check mark by the "Manual..." mapping menu option in the figure windows.
    • bmajority, countneighbours and label now use ndims(in) as the default connectivity (instead of 2, which didn't make sense on images that weren't 2D).
    • readtimeseries should now be faster, and it also is more flexible in the selection of files to read.
    • dipmex now allows more than one input argument.
    • max and min overloaded methods for images no longer produce an sfloat output when both input images are uint8; abs and sign overloaded methods now also produce a more sensible output data type.
  • Bug fixes:
    • fillholes didn't work well with 8-connected backgrounds.
    • get_subpixel had a bug for 1D images.
    • The logarithmic display mode now fails gracefully when logarithmic display doesn't make sense.

Changes to DIPlib

(Some of these changes propagate to DIPimage)

  • New functions:
    • dip_PathOpening() and dip_DirectedPathOpening().
  • Changed functions:
    • The following functions now ignore image dimensions of size 1 (singleton dimensions, in MATLAB-speak): dip_Bilateral(), dip_SeparableConvolution(), dip_FiniteDifferenceEx(), dip_Gauss(), dip_GaussIIR(), dip_GaussFT() (and all derivative functions that depend on these, such as dip_GradientMagnitude()), dip_GaborIIR(), dip_Uniform(), dip_Dilation(), dip_Erosion(), dip_Opening(), dip_Closing(), dip_RadialMaximum(), dip_RadialMinimum(), dip_RadialMean() and dip_RadialSum(). This change produces a different output on derivative operations along the singleton dimension and, depending on boundary conditions, morphological operations; however, the old behaviour was always unexpected and reported as "buggy" by the users. For other functions and situations, this merely improves the speed of the operation.
    • DIPlib now uses the Mersenne Twister pseudo-random number generator, using code modified from the mtwist-0.8 package by Geoff Kuenning. The previously used algorithm introduced a very slight correlation when adding white noise to images.
  • Bug fixes:
    • dip_VarianceFilter() produced overflow errors on integer input images.
    • dip_GreyWeightedDistanceTransform() had a bug that SEGV MATLAB 7.7, but didn't show under earlier versions.