2.4.6

   * Fix building with boost-1.65

2.4.5

   * Fix that mia-3dsegment-local-cmeans would fail when the number of
     slices N was relatwed to the grid size G according to k*G+1
     (k integer)
   * Reduce the amount of template instanciations created by the *ncc cost
     functions. This should reduce the memory requirements during build time.

2.4.4
   Issues fixed: 

   #129: Move all optional parts to addon
   #167: Add alternative FastICA implementation and 
         move IT++ based version to addons
   #191: Use C11 integer data types for consistent sizes 
   #192_ Replace lazy copy by move semantics 
   #193: Make documentation creation and nipype interfaces compatible 
         with python3 
   #194: Create a complete facate for XML handling 
         - remove dependency from libxml++ (use libxml directly)
   #195: Correct errors in Nifti s-form handlig 
   
   Additional changes:  

   * New SO-version
   * Add tools for localized c-means segmentation
   * Add fluid-symetric registration 
   * Fix lots of coverity reported problems 
   * Make VTKIO compatible with VTK-7
   * Add Sobel and Scharr filters
   * Improve test coverage 

2.4.3

   * m/c/utils.cc: Always define PATH_MAX when it is not defined by 
     system headers
   * Correct spellings
   * Replace use of boost::regex by std::regex

2.4.2

    * correct installed headers

2.4.1

    * Add additional search path for MathJax
    * Correct type in VistaIO 
    * Change file load handling to throw when file is not available 

2.4.0

    * Add support for a repeatable command line option; Closes: #183
    * Add interface for pixel type filter conversion test; Closes:  #5
    * Work on enabling compiling against DCMTK that requires ICONV
    * Make it compile on FreeBSD
    * Add new filters
    * Add tests and improve code coverage
    * Improve fuzzy-segmentation algorithms by using tested code
      (kmeans, probability estimation)
    * Add support for piping through the vista plugin interface
    * correct type of sparse histogram bin value
    * Add new program that applies a 2D local cmeans segmentaion
    * Correct Coverity issues
    * Clean up code of similarity_profiles and add test
    * Add test for 2D image comparison
    * Add a sparse histogram implementation
    * Remove the code for the so-called auto-ICA estimation
    * install lxml in travis via pip to work around travis-ci/travis-ci#4948
    * Remove need to use a dummy file for plug-in and test creation
    * disable unused registration code in build
    * Prepare mia for compilation with boost-1.60
    * Correct compilation with g++-6
    * Correct copyright
    * remove obsolete create_2dinterpolation_factory function
    * remove the create_XXinterpolation_factory functions
    * Correct reading of 24-bit RGB BMP images
    * Update bmp image io to support compressed 4bit pixel reading
    * Correct critical point and matrix eigenvalue/vector handlinG
    * Remove all optimization from coverage build
    * Remove the src/ directory from coveralls check, can't be tested in time
    * Add possibility to use installed mathjax files
    * Add generic get_minmax function to images
    * Correct code to prepare for auto-threshholding
    * Enable compilation with libxml++3.0 and libxml-2.6
    * Start implementing switchable ICA implementations.
    * Use c++11 threads as default, instead of TBB
    * Change reading nifti oriention
    * Update CXDBitImage to not use vector<bool>
    * Read nifti files without applying the slope transformation
    * Add SpacingBetweenSlices Attribute to DCMTK IO
    * More code parallelization
    * Add const-correctnes to the gsl::matrix class and its iterators. Closes [tickets:#169]


2.2.7

    * Correct tests that fail on arm64, armhf and ppc64el
    * Make the m/2d/mlv use always the same random seed

2.2.6

    * Correct pkg-config dependencies
	* Change label type in fifof to unsigned int

2.2.5

   Bug Fixes:
    * Fix SSE2 alignment bugs on 32 bit x86
    * Correct test to use BOOST_CHECK_CLOSE for floating point numbers
    * Fix a series of Coverity reported bugs
      - Change the CXMLElement to track ist children
      - fix past-end access in histograms
      - check for empty histogram in new CMeans implementation
    * Correct explicite instanciation of 3diterator, clang++ needed this

    Other fixes

    * Remove outdate documentation files
    * Correct licenses

2.2.4

  New features:

  * Add programs for
      - cmeans on sparse input data
      - combining an abitrary number of images with an comutative operation
      - estimating a bounding box around the data in an image
      - applying a deformabale model to a mesh
      - evaluating statistics in a masked area of an 3d image
  * Add mesh filters
      - remove triangles based on normal direction
      - select largest connected mesh part
      - add a scale value taken from a 3D image to each vertex

  * enable use of parallel gzip/xz in IO if available
  * Add image filters
      - 3D labelmap filter
      - 3D re-orientation filter re-enabled
      - 2D maxflow/mincut segmentation filter 
      - 2D sobel filter  
  
  * Cleanups
      - remove eigen3 from public interface 
      - remove libxml++ from public interface (Closes: #178)
      - remove boost/filesystem from public interface (Closes: #177)
      
  * Coverity fixes 
  * Implement 2d gradient normalized cross correlation 
  * Parallize some filter for speedup 
  * Add new bounded parameter type that replaces ranged parameter 
  * Add cmeans class with different initializers given by plug-ins 
  * correct evaluation of normalization filter in nonlinearregistration 
    (Closes #185) 
  *  Remove cost name test from s/2dmany-to-one.cc (Related to #186)
  * Add a 3D to image drawtool
  * remove time stamp from man pages for reproducible builds
  * Lots of minor changes and fixes (see git log for details) 

2.2.3

  New features:

  * Add some more speceliyed 3D image transformations
  * Install the documentation tools
  * Add nipype interfaces to all command line tools
  * Add (localized) normalized cross correlation as cost function

2.2.2

  Fixes:

  * #165 throw exception where "exit" was used before
  * Add boost_system to required link libraries in *.pc files
  * Reduce the number of explicitely libraries used from VTK
  * vtkmash.cc: Add explicit cast to make it compile with clang++
  * test_cmdlineparser: Correct failing test if NDEBUG is defined

2.2.1

  * fixes for potential bugs discovered by Coverity
  * src/2dmyoica-full.cc: fixes and error in the order of
     parameters passed

2.2.0

  New features:

  * Major ABI changes
  * Add support for HDF5 and NIFTI1 IO
  * Support for masked cost functions in voxel based image registration
  * Use Eigen3 for  the 3D matrix eigenvalue/eigenvector evaluation
  * More C++11, minimal requirement is now g++ >= 4.7
  * Keep track of orientations
  * Add perfusion motion compensation programs that are specifically
    designed to use a global reference even if the algorithm doesn't
    dictate this
  * automatically set C++11 compiler flag by cmake

  Fixes for tracked issues:

 * #4 add 2D/3D filters that actually run a combiner,
 * #12 add basic support for loading and stroring nifti
 * #14 load and store ImageOrientationPatient and ImagePositionPatient related
 * #19 Add positional information to C3DTransform::const_iterator
 * #49 Parallize the 3D scale filter
 * #57 Add parameter type that can take a vector of coma separated values.
 * #76 Remove the old divcurl penalty interface in 2D Closes
 * #90 Add voxel/pixel size attribute to vector field
 * #100 Make the 3D image combiner similar to the 2D combiner
 * #108 Change segmentation set IO to possible make use of plug-ins
 * #117 Add support to query minimal image size for transformations
 * #123 Correct handling of ica instance when RV/LV classification fails in all cases,
 * #124 Add attribute to indicate the pixel size is from the imager
 * #125 Make slicelocation and slicespacing non-obligatory
 * #126 Correct plug-in file suffix mapping for 2D and 3D images.
 * #127 Correct documentation and output to refer to 2D data.
 * #128 Add program to convert multi-record 2D image to 3D image

 * #129 Move plug-ins that are configurable to the addons source tree
 * #132 add 2D normalized local cross correaltion, see
 * #135 Read from created file name instead of in_filename.
 * #136 Add a normalization parameter to the spline penalty,
 * #138 Handle compressed file extension properly when selecting the IO plugin.
 * #139 Do not throw when opening the HDF5 file fails
 * #140 add property flag for IO piping
 * #141 Add attribute IO to the available 2d/3d transform IO backends
 * #143 Fix zero boundary condition handling
 * #144 Parallelize the prefiltering in the 3D interpolator
 * #145 make sure the interpolator output range always includes zero

 * #147 Add function to override interpolator once.
 * #152 add 3 label-voting downscale filter
 * #153 Add traits for the range iterators
 * #156 add additional flags to to the XML document creation CStringParameter,
 * #157 split range iterator in version with and without boundary flags.
 * #158 Consistently implement the lncc metric for masked and unmasked images
 * #159 Add option to chain filters into one entity.
 * #160 Add a new gradient descent implementation with some step adjustment

 Additional fixes:

  * make all source files lowercase
  * correct compilation with visibility=hidden
  * handles signed and unsigned pixel values in DICOM
  * let the xml-help write to a file instead of stdout
  * Correct default suffix for 2D transforms.
  * add attributes to boost::serialization transform IO
  * Add the _1 quaternion that corresponds to no rotation
  * Add printing of CAttributedData for testing
  * Add an affine matrix with OpenGL like layout
  * add a program to evaluate the pixel wise maximum intensity of  number of images
  * add support for setting the minimum number of digits in the output file names.
  * Add SSD cost function with automasking baswed on intensity thresholds.
  * Add xz to the possible compressors/decompressors that can be invoked on the fly.
  * Add a 3D distance transform filter
  * add label distance evaluation program
  * add a min-frequency parameter to the classifier in the ICA perfusion analysis
  * update to use supprt VTK >= 6.0 
  * add photometric interpretation and correct acquisition time saving in DICOM 
   	
2.0.13

  Fixes for tracked bugs:

  * #138 Handle compressed file extension properly when selecting the IO plugin.
  * #143 Fix zero-fill boundary condition handling
  * #144 Parallelize the prefiltering in the 3D interpolator



  * 2dimageregistration: Exit if no cost functions are given
  * 3dgetimage: add support for setting the minimum number of
                digits in the output file names.
  * factoryplugins: throw error if a factory plugin is not found
  * make the basic interpolator operator in 3D thread save

2.0.12

  Fixes for tracked bugs:

  * #49:  Parallize the 3D scale filter
  * #125: Make slicelocation and slicespacing non-obligatory
  * #127: Correct documentation and output to refers to 2D data.
  * #128: Add program to convert multi-record 2D image to 3D image

  Partial fixes:

  * #126: (partially) add override for do_get_preferred_suffix()
  * #129: (partial) move optional plug-ins that depend on external
          libraries to /addons

  Additional fixes:

  * Fix 147 issues reported by Coverty http://scan.coverity.com
  * Dissmiss 37 issues reported by Coverty als intentional or false positive

  * wavelet slope statistics will now throw an exception if the slope is too short
  * set the C++11 flag correctly in UNIX
  * Correct strides when writing to the 2D output tensor field.

2.0.11

  Fixes of tracked bugs:

  * #106: mia-2dmyomilles - save feature images also when no segmentation is requested
  * #122: boundary-condition plug-ins - remove width parameters since it is set internally
  * #123: Correct handling of ICA instance when RV/LV classification fails for all numbers of components

  Partial fixes:

  * #104: improve some of the command line parameter descriptions

2.0.10

  Fixes of tracked bugs:

  * #3   add a image load plugins to filters
  * #11  make the author information for the programs a possible program specific parameter
  * #79 (experimental) remove the need to provide "<>" delimiters when reading 2d/3d vectors and don't write them
  * #28 Add a filter that applies a transformation (2d/3d)
  * #91 Fix regression by reintroducing the parameter 's' in the scale filter
  * #93 Properly interpret the pixel value signedness when loading DICOM images
  * #94 3d crop filter: change the parameter 'begin' to 'start' to conform with the 2D implementation
  * #96 Add functions to TDelayedParameter to check key availability
  * #97 Propper filling of output image in scale filters
  * #98 (experimental) Dicomio: add  support for reading multiframe dicom images
  * #102 Correct a race condition in the image filtering when downscaling.
  * #114 mia/3d/transform/rigid.cc lock access to m_matrix_valid, making code thread save
  * #116 src/2dmyopgt-nonrigid.cc Add a missing coma in the transform creation.

  Partial fixes:

  * #14  core: add patient position enum and string-enum translator
  * #89 (experimental) vtkio: change the method of storing vector field data from structured grid to structured points
  * #101 [23]d/transform/spline.cc Check for the range/c-rate ratio in spline transfromations and give better error messages
  * #103 2dimagefilterstack.cc: Add options to select first and last image of the series of images to be filtered
  * #106 2dmyomilles.cc save the coefficient matrix also if no segmentation was requested
  * #113 (needs testing): correct race conditions in parallel code

  Additional fixes:

  *  3D filters: correct buggy string in morphometric shape definition
  *  3D transform: deduct the output image size from the deformation field range instead of the input image size
  *  Dicom: Remove required flag from the MediaStorageSOPClassUID tag
  *  3D datafield: add functions to test whether the data hold by a field is unique (required for parallelization)
  *  Add mia/core/statistics.hh to the installed files.
  *  check precicion of pixel values in jpg and throw if it is larger than 8.
  *  remove some attribute translators that don't make sense

  new image filters

  * 2D load, transform
  * 3D load, transform, morphological thinning

  new notable command line tools

  * mia-3dcrispsegment - evaluate a segmentation by first using fuzzy-cmeans and then classify based on the highest class probability
  * mia-3dlandmarks-distance (experimental) evaluate the Euclidean distance between corresponding 3D landmarks
  * mia-3dlandmarks-transform (experimental) transform landmarks by applying some 3D transform

2.0.9

  Fixes of tracked bugs:


  * fix 58: mia-fluid3d: Add parallelization
  * fix 52,59,60,61,62: Add 2D Rotation only transformation and centerparameter to rigid and rotation
  * fix 74: Tests: Fix failing tests on PowerPC
  * fix 82: core: Add padding to the arrays in splineparzenmo
  * fix	83: core: Add more tests to the Array-vector wrapper to ensure its proepr working
  * fix	84: AnalyzeIO: Discard voxel-offset bytes when reading the image data.
  * fix	85: IO: Add MetaImage IO support based on VTK.
  * fix	86: Build: Test for Altivec and SSE and discard modules that require it
	    if not available, Closes Debian Bug #705384
  * fix 87: core: Set default numbers of threads to 1 on powerpc is the Intel threading building blocks
	    version is < 4.1u2 (Interface version 6101), and warn user if she sets it higher
	    This is a workaround for Debian Bug  #705385
  * fix 88: core:  add the --threads option to the options that are always provided

  Additional fixes and changes:

  * add a program to binarily combine two 3d images
  * correct the evalation of the gradient-from vectorfield evaluation
  * correct the gradient from vector field translation
  * correct the handling of zero-argument flags to satisfy the address sanitizer of LLVM
  * Parallelize some more code
  * Correct the libinclude path in the pkg-config files
  * Relax some tests that compare floating point evaluation to pass tests on i386 were
	  the limited amount of available registers results in a lower accuracy. 
	  Closes Debian Bug #705383


2.0.8

  Fixes of tracked bugs:

 * fix #69: GSL simplex optimizer now interprets parameter epsilon as simplex size termination parameter
 * fix #68: Add obtion to revert the triangle winding at surface creation.
 * fix #65 #66, #67: Store the transformation vector field as transformation in fluid registration
 * fix #55: isoscale filter now scales to the exact requested voxel size
 * fix #54: Call cost.reinit() before evaluating the value.
 * fix #53: make handler initialization thread save,
 * fix #51: proper relebaling in stack filters
 * fix #50: correct test for changed coefficient field size
 * fix #46: Spline transformation now takes the penalty term as parameter (experimental)
 * fix #41: correct tensor file header.
 * fix #39: vtk-IO (exterimental):  images (XML and legacy), mesh, and vector field
 * fix #8:  Add the interface to store attributes with transformations

  Additional fixes and changes:

 * fix compiling with clang-3.2
 * fix error in voxel size scaling when (down)scaling 3D
 * fix the transform upscaling to be based on the reference image size
 * Fix the preferred suffix specification for vector field storing
 * fix dependecies in miacore.pc to include TBB and BLAS
 * fix comparison of entries and reading of the histogram.
 * fix test for required option to use the method 'is_required()' instead of the enum 'required'.
 * fix compilation errors with clang 3.2 that enforce more standard conformance
 * fix stackfilter label join map evaluation,  distance evaluation, label remap evaluation

 * add xml scheme for xml-help output
 * add test to make sure the scaling is to a positive size, even if the voxel size carries negative values.

 * add initial implementation of voxel-to-isometric scaling
 * add support for unsigned short and unsigned int to vistaio

 * DICOM change the dicom loading interface, to allow default values for entries that should be
   in the DICOM file and are needed for slice sorting in 3D data
 * DICOM reading: When the locations show a negative Z-scale, then flip the output image to have a positive scale.
 * DICOM  also read the instance number for slice sorting
 * update copyright year
 * update BLAS handling
 * update filter help for meshes

 * enable section name based file names for userref
 * remove empty option groups from --help-xml output
 * remove obsolete VTK imageio implementation
 * remove the requirement of equal-sized images in rigid registration, because it is not needed
 * rename mesh distance program for consitency
 * remove the vistaio files and always use the system provided version 

2.0.7
  * change build dependencies to cmake 2.8.5 because of GNUInstallDirs
  * change installation directories to support multiarch
  * add test for STRICT_DEPENDENCIES to nlopt and xsltproc

2.0.6
  * move to new vistaio interface, minimum required external vistaio is now
	 version 2.1.14
  * add a new 3D rotation only transformation
  * fix regressions introduced with 2.0.4

2.0.4
  * Intrusive changes
    - change file nameing scheme of the 2D and 3D files
    - change program description type and adapt all programs
    - change the virtual method interface of 2D and 3D transformations
    - eliminate fatcost related classes and plug-ins, use Fullcost
    - remove the THROW macro in favour of the variadic template based create_exception function
    - library SO version bump

  * Added programs and functions:
    - evaluate 2D and 3D transformation quantities
    - 2D/3D transformation to strain matrix program
    - mesh-to-mask distance for out-of core mask processing
    - distance transform evaluation function
    - add RGB image output (jpg, bmp, png)
    - 3D trackpoint class
    - new segmentation XML format and drawing method
    - mesh filtering program
    - program for out-of-core distance evaluation between masks
    - program to create a norm image of the cost function gradient after translating it by means of a transformation
    - estimating of percetual range reduction of histogram
    - filter facility for meshes and a scaling filter
    - gray scale jpeg support
    - io handler links to parameter descriptions
    - missing header to installation
    - more tests for 3D point tracking
    - option to spline based mutual infomation to eliminate outliers at the extrems of the histogram
    - plugin for RGB<unsigned char> image saving
    - possibility to store a prefered reference index and     - tests accordingly
    - program to combine three gray scale 8-bit images to one color image
    - program to extract an iso-surface from a stack of images
    - program to get a volume from a segmentation series
    - program to track 2D pixel movement defined by a 2D transform
    - some parallelization
    - storing the prefered_reference parameter to the series registration programs
    - support for plug-in hints in string parameters
    - support for the attributes in the segmentation set version 2
    - support for writing information about the supported file types for IO plugins
    - supported data types and file extensions to IO plugin docu
    - test case for 3d derivative at abitrary point
    - test cases for more weights?
    - test drawing version 2 segmentations and correct for closed/open line sections
    - test for derivative_at and correct code
    - test for distance from real function
    - test for moving the pixels
    - test for reading
    - test for reading version 2 segmentation
    - test for reading/writing version 2 segmentation
    - test to see if all attributes are reordered
    - tests for base class of new penalty model
    - 2D trackpoint implementation
    - algorithm for evaluating distances without getting the whole distance slice
    - marching triangles mesh extraction program
    - mesh filter
    - C2DTransform: add derivative evaluation at abitrary coordinates, closes #2
    - for vector based command line parameters: if the input size != 0, then expect exatly the corresponding number of coma separated values
    - slopestatistics: add test for avarage level change

  * Bug fixes:
    - correct install filess: meanvar.hh
    - 3d/image.cc:  evaluating the cost at lower resolutions would actually deform  the high resolution image
    - Correct bug in normal evaluation on meshes
    - Make most of the code compile with clang++ 3.1, g++-4.6.3 stdc++ std::atomic still conflicts, now uses tbb::atomic
    - SegFrame: correct section test to set is_open properly
    - cost correction to the iso-surface extraction
    - to correct the number of output slices in FIFO filter
    - correct bad mapping in label joining
    - correct build order and tests
    - correct build with clang and g++ 4.6.3
    - correct gradient evaluation at the image boundaries
    - correct mesh colorization to use dot product correctly
    - correct plugin-path search for new locations
    - correct preferred suffix for some IO plug-ins
    - correct spline transform initialization to fix #22
    - correct test for evaluating gradinet along the boundaries
    - correct type of C3DTransformMock
    - correct upper boundary for default unsigned short intensity range for histograms
    - histogram: correct off-by-one error in histogram tail cutting function
    - make test-history pass when compiling with -DNDEBUG
    - mia/2d/iterator.cxx correct postfix increment of range iterator
    - mia/3d/iterator.cxx correct postfix increment of range iterator


  * Other changes:
    - Change default of histogram tail cutting.
    - Correct to wavelet slope classifier to account for stronger RV enhancement and handle free-breathing
     and initial free breathing + later breathhold equally.
    - Move the estimation of LV and RV peak to the first ICA.
    - unified class to combine 2D images to 3D volumes
    - add base class for spline penalty model
    - 2D/3D transformation: add derivative_at for non-grid points
    - assert that the generic load_image function is not instanciated
    - avoid some missing return values warning by turning asserts into exceptions on release build
    - change the plugin search path type
    - clean up the load/save functions for transforms
    - code cleanup: replace THROW by variadic template and review asserts
    - copy attributes in syntetic reference creation based on ICA
    - disable gsl error handler in release builds
    - make studyid not needed when reading DICOM
    - move from anonymous enummerates to static const for pixel type traits
    - make the io-plugin know about its own suffixes
    - make the slice counter short, this should suffice for stack based distances 

  * Documentation
    - Sort members in Doxygen documentation
    - myocard intensity curve estimation: Update the reference frame help and allow that the frame
      is selected as the LV peak from the registered set. As a fallback the last frame may be used.
    - IO plugin hint to command line parameters
    - add a xml scheme for the segmentation sets
    - docu about supported extensions and data types
    - more internal linking of documentation
    - correct output for non-parameter taking plugins (i.e. IO plugins)
    - correct plug-in descriptions
    - correct the help for IO options that use the plugin-hint


2.0.3
  * version bump to reflect API changes in 3D transform
  * add more vector field conversion programs
  * remove save function and add vector field transformation
  * add a creator string to the output PNG file
  * correct bugs in the the fifo filter (thanks Matt Skinner for pointing it out)
  * add a program to track pixel movement
  * add a convertor from a 3D transform to an according vector field
  * correct docu
  * revise the error message and handling of output file type
  * properly install miamesh-*.pc

2.0.2
  * correct code to work on 32 bit
  * Correct implementation of landmarklistio test
  * Add non-SSE implementation of Divcurl
  * turn off sse implementation on non-64 bit arch
  * remove some unneeded sse code
  * update docu
  * correct bad handling of missing argument in command line parser
  * add the preferred suffix for analyze files
  * add infrastruture for axamples and a first example
  * remove StudyID from required 3D reading parameters, since it may not be available
  * add loading and saving the landmarks
  * add run_filters based on variadic templates
  * add a resize filter that can also enlarge the image and uses the center of the data as reference point

2.0.1
  * update installation of files
  * test proper reset of parameters and correct it
  * add support for 64 bit integer on 64 bit platforms
  * 2dseries2sets: correct bug that would result in empty files if output directory is the same as location of the input files
  * correct passing of attributes in filters
  * add a pc file for the mesh library
  * correct installation of pkg-config files
  * correct attribute handling in ICA reference image creation
  * Add insertion of a range of attributes
  * update  build system to silence warnings
  * update icons and desktop files
  * add menu entries for the documentation
  * add a specific boolean option
  * fix race condition in the build process
  * correct the doc installation path and remove GZIP from man page compression
  * make watch test more tolerant (still a shaky test that depends on the system load) 

2.0.0
  * docu: update doxygen generated docu
  * docu: add support for building all the documentation

2.0_pre20120305

  * library: correct compile errors with g++4.6

2.0_pre20120302 is considered to be the initial release
