Diffusion MITK d4573cedc319

2022 Week 12 (Late March)


2022 Week 12 (Late March)

The following - possibly updated - changelog can be viewed as formatted
article at https://phabricator.mitk.org/w/mitk/changelog/2022.12/.

🛠 Third-party dependency changes

NOTE: Because of the major upgrade of ITK from version 4.13.3 to version 5.2.1, it is very likely that you have to migrate your MITK-based code to the API of ITK v5. See the API-breaking changes section further below for more details.
DependencyOld versionNew version

✨ New features

  • The Segmentation View and Multilabel Segmentation View are now merged into a single Segmentation View
  • Streamlined the creation of new segmentations and labels with default names
  • Added the nnUNet segmentation tool (see the User Manual for more details)
  • Added F1 context help page for Standard Display editor
  • Custom perspectives can be saved in the View Navigator now
  • Allow seed points inside existing segmentations in Region Growing segmentation tool
  • Raised the minimum required C++ standard from 14 to 17
  • Made MITK compatible with GCC 11

🐛 Bugfixes

  • 3D threshold segmentation tool works correctly with multiple labels and layers now
  • Fixed colors of drawn contours with the Paint segmentation tool
  • Fixed decimal point format in some copy'n'paste scenarios

🔥 API-breaking changes

Image Statistics

While not strictly an API-breaking change, we want to inform you explicitly that we changed the calculation of variance in our Image Statistics from population variance to sample variance, utilizing Bessel's correction. The effective difference is to divide by the number of pixels minus one instead of the number of pixels.


As a consequence of changes in the formulas and numerical stability of VTK's vtkCurvature class in VTK 9.1, some curvature-based statistical values will be different.

ITK v5 upgrade

If you are affected by any API changes corresponding to the ITK v5 upgrade, we recommend the official ITK v5 Migration Guide, in particular regarding changes in multi-threading.

You may also want to have a look into the Git history of MITK around commit 33923500841b7a4c4eb66aea91f61cff972383f9, since it contains a good amount of migrations.

You will figure out that the majority of necessary changes are simple replacements. The most prominent ones are:

  • Component types: itk::ImageIOBase::INT and similar itk::IOComponentEnum::INT and similar
  • Pixel types: itk::ImageIOBase::SCALAR and similar itk::IOPixelEnum::SCALAR and similar
  • ITK mutexes and mutex lock holders std::mutex and std::lock_guard<std::mutex>
  • Return type of itk::Object::GetMTime() is now itk::ModifiedTimeType

RenderingManager class

The bool initializeGlobalTimeSNC parameters of the InitializeView() methods were removed, as they were never called with non-default values.

WARNING: Since the last two parameters were default-initialized bool parameters, check if you ever made use of them and now accidentally pass the old initializeGlobalTimeSNC parameter as resetCamera parameter.


kislinskAuthored on Mar 23 2022, 10:02 PM
kislinskPushed on Mar 23 2022, 10:07 PM
rMITKcf7f3935c4b6: Merge branch 'bugfix/T29045-OperationNothingToSeeHere' into develop
rMITKaadc05393e01: 2021 Week 12 (Late March)
tag: snapshots/2022-03-23

Merged Changes

This commit merges a very large number of changes. Only the first 50 are shown.