Page MenuHomePhabricator

2024 Week 11 (Mid March)
Updated 47 Days AgoPublic

Previous changelog โ€ข Next changelog

๐Ÿ›  Third-party dependency changes

In an effort to make MITK compatible with recent compiler versions, we upgraded a few dependencies.

At least on Ubuntu, we highly recommend to upgrade Qt to v6.6.2 or later, since with Qt v6.6.1, the MITK Workbench spams warnings related to GLEW into the terminal.

DependencyOld versionNew version
HDF5v1.8.17v1.14.3 (with v1.8 API)
PCREv8.35v8.45
VTKv9.2.6v9.3.0 (patched)

โœจ New features

  • Added the following command-line apps to our official installers:
    • GenericFittingMiniApp: Make a pixel-based fitting on the intensity signal over time for a given model function.
    • PixelDumpMiniApp: Dump (potentially masked) pixel values of passed images into a CSV file.
    • Fuse3Dto4DImageMiniApp: Fuse several 3-d images with the same geometry into a dynamic 4-d (3d+t) image.
  • Made MITK compatible to recent compiler versions
  • Visibility of toolbars can now be set in preferences
  • Qt command-line arguments for GUI applications are supported now in the MITK Workbench and alike
  • MITK extensions
    • Dependencies of MITK's third-party dependencies are customizable now
    • mitkFunctionAddExternalProject() supports the PREPEND argument now
    • Doxygen's EXAMPLE_PATH is customizable now

๐Ÿ› Bugfixes

  • Fixed several bugs in the segmentation 3-d interpolation
  • Added the MitkLog module to a few whitelists that had not been updated when mbilog moved from MitkCore into MitkLog
  • Touch events are no longer being handled as mouse events, for example when using a touch pad on a MacBook, which constantly interacted with the scene in the 3-d render window
  • MITK Workbench and alike: unknown or invalid command-line arguments do not result in crashes anymore
    • On Windows, use Unix-style arguments (--, resp. - instead of /) from now on
  • On Linux, if not requested explicitly otherwise, use the "xcb" instead of the "wayland" Qt platform, which seems not to be fully compatible with our mix of VTK and Qt
  • A few non-GUI unit tests that rely on Qt use the "minimal" Qt platform now for better compatibility
  • Removed EGL as default option for the VTK build

๐Ÿ”ฅ API-breaking changes

MITK-IGT moved into separate MITK extension

Everything related to image-guided therapy (IGT) moved into an MITK extension, whose repository will be available on GitHub soon. Until then, MITK-IGT can be accessed temporarily via rIGT MITK-IGT.

MITK-IGT consists of the following dependencies, modules, and plugins, which are no longer available directly in MITK:

Third-party dependencies
  • OpenCV
  • OpenIGTLink
Modules
  • OpenIGTLink
  • IGTBase
  • IGT
  • CameraCalibration
  • OpenCVVideoSupport
  • ToFHardware
  • ToFProcessing
  • ToFUI
  • US
  • USUI
  • OpenIGTLinkUI
  • IGTUI
Plugins
  • org.mitk.gui.qt.igtexamples
  • org.mitk.gui.qt.igttracking
  • org.mitk.gui.qt.openigtlink
  • org.mitk.gui.qt.toftutorial
  • org.mitk.gui.qt.tofutil
  • org.mitk.gui.qt.ultrasound
  • org.mitk.gui.qt.igt.app.ultrasoundtrackingnavigation
  • org.mitk.gui.qt.igt.app.hummelprotocolmeasurements

Removal of the LabelSet class

The mitk::LabelSet class introduced too much complexity for features that are not needed anymore or that are covered by the C++ Standard Library now. All remaining methods have been moved into the mitk::LabelSetImage class.

Const version of GetLabelsInGroup() renamed to GetConstLabelsInGroup()

Use the new method name.

AddLabelSetLayer() replaced by ReplaceGroupLabels()

Use ReplaceGroupLabels() if you want to exchange labels. To generate new layers use AddLayer().

RemoveLayer() replaced by RemoveGroup()

Use the new method name.

Removal of GetLayerImage()

Use GetGroupImage() instead.

Refactoring of CreateLabelMask()

The parameters useActiveLayer and layer have been removed. They are implicitly defined by index now. If you used useActiveLayer = false with layers that didn't contain the specified label (leads to an empty image), you need to do this manually by yourself now.

AddLayer() no longer calls SetActiveLayer() anymore

Call mitk::LabelSetImage::SetActiveLayer() manually if necessary. Use the return value of mitk::LabelSetImage::AddLayer().

Renamed UnlabeledValue to UNLABELED_VALUE

Use the new variable name.

LabelSetImage uses ITK events instead of MITK messages now

MITK messages did not allow 1:n scenarios, as the sender wasn't clear. To adapt, see mitkMultiLabelEvents.h and as an example see e.g. QmitkSimpleLabelListWidget.h.

Removal of obsolete label widgets

Use the new widgets QmitkMultiLabelManager or QmitkMultiLabelInspector instead of QmitkLabelsWidget, QmitkLabelSetWidget, or QmitkLayersWidget.

Removal of other obsolete modules and plugins

The following modules and plugins have been removed from MITK without replacement:

  • OpenCL support
  • TubeGraph module and plugin
  • Semantic relations modules and plugin
  • Deformable clipping plane plugin
  • Geometry tools plugin
  • Material editor plugin
  • Multispectrum pointset interaction plugin
  • Unstructured grid visualization plugin
  • Event recorder plugin

Command-line argument style on Windows

On Windows, the MITK Workbench and alike exclusively used Windows-style command-line arguments like /BlueBerry.clean in the past. Please use Unix-style command-line arguments like --BlueBerry.clean from now on on all supported platforms.

Previous changelog โ€ข Next changelog

Last Author
kislinsk
Last Edited
Mar 11 2024, 1:10 PM