## File: ChangeLog

package info (click to toggle)
mia 2.4.3-5
 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592 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 * 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 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