- News for MITK Workbench users
- In-application help pages
- Segmentation
- Image Statistics
- Data Selection
- Visualization
- Improved support of DICOM files
- News for developers
- โจ New features
- New selection concept and UI
- Snapshot installers
- Project organization in Visual Studio
- OpenSSL
- Auto-cleaning of external projects on updates
- Packaging on Windows
- CMake-style dependencies
- Build status on GitHub
- Doxygen documentation warnings
- ๐ Third-party dependency changes
- ๐ฅ API-breaking changes
MITK v2021.02
๐กจ Previous changelog โข Next changelog ๐กช
News for MITK Workbench users
In-application help pages
We revised all of our in-application help pages and user manuals. Whenever you feel lost or overwhelmed, just press the universal help key F1, to open the help page for the currently active plugin.
Segmentation
Following MITK v2018.04.2, which put much focus on the segmentation tools, we did not stop for this release and continued to improve our segmentation.
Besides many minor bugfixes and new features, we put most of our effort into the robust segmentation of dynamic, time-resolved patient images. A prominent difference to the previous release is the option to create either static segmentations that span over all time steps, or dynamic segmentations that enable individual segmentations for different time steps.
{F2104093, loop, autoplay, alt="Static and dynamic segmentation"}
Image Statistics
Our image statistics were completely overhauled. They are much more efficient now and reliably cache the results of calculations to increase productivity. Speaking of productivity, it is now possible to display the statistics of multiple images at once, while multiple image masks can automatically be considered. Statistic values can now be copied directly into spreadsheet software like Microsoft Excel.
Data Selection
Data selection is now separate for each plugin, giving you a filtered pre-selection of suitable data for the task. Plugins do no longer interfere with each other through an out-of-context selection in the Data Manager, supporting you in establishing stable workflows. It also better supports the working with big scenes and many data items as you now also can mark data items as favorite to easy and quickly reuse them in other views or by using the selection history to reuse former selections.
Visualization
We improved the visualization of translucent objects. Also a correct depth perception is now retained in combination with volume rendering (see video below). The visualization in general has a smoother appearance since we use so-called anti-aliasing techniques to reduce jagged pixel edges of objects.
Improved support of DICOM files
We have to admit that this went unfortunate for previous releases on Linux and macOS. ๐
We were always proud of our broad support of DICOM files. Our sophisticated, configurable loading mechanism matured over many years to come up with image blocks in the application even in difficult scenarios, when many other tools failed to deliver. However, it turned out that for quite some years now we screwed up the packaging of our installers without noticing. Hence, your experience on Linux and macOS potentially differed from our expectations and advertisements, as we didn't see any issues in our build versions of MITK.
Well, we are happy to announce that this belongs to the past now. ๐
News for developers
- ๐งญ We added navigation links to the top and bottom of the Phabricator-versions of our changelogs. Please use them to flip through the past changelogs for a comprehensive overview of changes.
- ๐ก After a short list of a few mentions to raise awareness of new features and concepts, we focus on merging the tables of dependency changes over time and on referencing all relevant API-breaking changes.
โจ New features
New selection concept and UI
A new selection concept was introduced, following our mission to decouple plugin views from selections in the Data Manager view. We recommend that you adapt your plugins to the new concept in an effort to unify user experience.
Snapshot installers
You certainly noticed that we merge the latest developments once or twice a month into our master branch and tag these commits as snapshots. These snapshots are always accompanied by comprehensive changelogs. We also started to automatically deploy unofficial (as in "no guarantees given") snapshot installers to our website for convenient previews.
Project organization in Visual Studio
Projects in the MITK Visual Studio solution are now automatically organized into folders for applications, modules, plugins, and so on. MITK extensions have separate root folders to easily navigate through MITK's and your code.
OpenSSL
OpenSSL as run-time dependency was a bit tricky to get right in particular on Windows and in installers in general. It is now an optional default dependency of the MITK superbuild. When it is found during configuration, OpenSSL-specific features like the HTTPS support of POCO are automatically enabled.
On Windows, we recommend to use the Qt online installer to install OpenSSL. MITK will look for it at this specific location by default.
Until we figured out how to reliably query the DLL locations of OpenSSL in CMake, everything you need to do is to set their locations in the MITK build through the CMake cache variables MITK_OPENSSL_CRYPTO_DLL and MITK_OPENSSL_SSL_DLL.
Auto-cleaning of external projects on updates
Updates of external projects like CTK, ITK, or VTK were difficult to get right in existing MITK builds as sometimes old build artifacts, header files, or configuration files had to be removed manually to successfully build MITK again. This is no longer the case since we implemented a mechanism to automatically clean an external project, if its definition file changed. This feature can be disabled through the MITK_AUTOCLEAN_EXTERNAL_PROJECTS CMake cache variable.
Packaging on Windows
Installers do no longer need to include an extra installer for Visual Studio redistributables. All necessary run-time libraries are now packaged, making installers fully installable without administrator rights.
We also generate shortcuts for packaged applications now so no need to crawl through the bin folder anymore to find the MITK Workbench or any other command-line app.
CMake-style dependencies
Besides the PACKAGE_DEPENDS mechanism you can now also use TARGET_DEPENDS to specify plain CMake targets without any indirection. These targets are passed down verbatim to target_link_libraries().
Build status on GitHub
Beside our CDash site for detailed build status reports, we now provide a quick overview of build statuses on our GitHub page.
Doxygen documentation warnings
We fixed all Doxygen documentation warnings. We encourage you to check your documentation build output after migration to discover potential warnings that previously drowned in noise.
๐ Third-party dependency changes
The following table shows a complete list of changed third-party dependencies. Considerable changes include:
- Minimum required versions of our prerequisites
- CMake 3.18
- Qt 5.12 (5.12.9 on Windows)
- NSIS 3 for building Windows .exe installers
- Major core dependency updates
- VTK 8.1 ๐กช VTK 9 (migration guide)
- Replacements
- TinyXML ๐กช TinyXML-2 (migration guide)
- ACVD ๐กช OpenMesh (rationale)
Some outdated and experimental components of MITK were removed which resulted in the removal of a few dependencies without replacement.
Dependency | Old version | New version |
---|---|---|
3d5ae388 (Dec 19, 2014) | ||
Boost | 1.68 | 1.74 |
cpprestsdk | 2.10.16 | |
CMake | 3.10 | 3.18 |
CppUnit | 1.12.1 | 1.15.1 |
CTK | fc06bedc (Aug 10, 2018) | 7210c5bc (Nov 08, 2020) |
DCMQI | d067f81c (Jun 26, 2018) | 83f498e9 (Feb 8, 2021) |
DCMTK | 29f9de10 (Jun 15, 2018) | 3.6.5 |
GDCM | 2.6.3 | 3.0.8 |
2.8.1 | ||
ITK | 4.13.1 | 4.13.3 |
MatchPoint | 24ef6072 (Apr 13, 2018) | f2a64255 (May 02, 2019) |
NSIS | 2 | 3 |
OpenCV | 3.4.1 | 3.4.8 |
OpenIGTLink | 54df50de (Aug 21, 2014) | 3.0 |
OpenMesh | 8.1 | |
Qt | 5.11.1 | 5.12 (5.12.9 on Windows) |
Qwt | 6.1.0 | 6.1.5 |
2.0.15 | ||
0.9.32 | ||
1.0.17 | ||
9d510bef (Mar 1, 2018) | ||
2.6.2 | ||
TinyXML-2 | 8.0.0 | |
VTK | 8.1 | 9.0.1 (patched) |
zlib | 66a75305 | 1.2.11 |
๐ฅ API-breaking changes
Dangerous changes
- โ ๏ธ Migration from TinyXML to TinyXML has a few implicit but major pitfalls. Please follow the migration guide thoroughly.
- โ ๏ธ Render window names were changed from stdmulti.widget[1-4] to stdmulti.widget[0-3]. Since it is only a change of literal strings it has a high potential to fail unnoticed.
Behavioral changes
- The default mechanisms of assembling DICOM images from a collection of files or a folder changed
Documentation changes
- Implementation files like .cpp files are now excluded from the doxygen parser
Build system changes
- ITK dependencies of modules and plugins were completely redone
- The PACKAGE_DEPENDS mechanism (third-party dependencies of modules and plugins) was overhauled for many dependencies like Boost, OpenMesh, OpenMP, OpenSSL, or Python3
- Auto-load modules are not allowed as link-time dependencies anymore
- The SUBPROJECTS parameter of mitk_create_module() is not parsed anymore
Other API-breaking changes
- ๐ Modules
- ๐ Core
- ๐ CommandLine
- ๐ ContourModel
- ๐ DataTypesExt
- ๐ DICOMReader ๐กช ๐ DICOM
- ๐ DICOMReaderServices ๐กช ๐ DICOM/autoload/DICOMImageIO
- ๐ DicomRT ๐กช ๐ RT
- ๐ DicomRTIO ๐กช ๐ RT/autoload/DICOMRTIO
- ๐ DicomUI ๐กช ๐ DICOMUI
- ๐ ImageStatistics
- ๐ QtWidgets
- QmitkRenderWindow (also here and here)
- QmitkRenderWindowMenu
- StdMultiWidget
- ๐ Remeshing
- ๐ Segmentation
- ๐ Plugins
- ๐ org.mitk.gui.qt.common
- ๐ org.mitk.gui.qt.ext.stdmultiwidgeteditor
- ๐ org.mitk.gui.qt.segmentation
- QmitkDeformableClippingPlaneView ๐กช ๐ org.mitk.gui.qt.deformableclippingplane
Removed modules, plugins, and classes
- ๐ Modules
- ๐ Biophotonics
- ๐ BiophotonicsHardware
- ๐ DataTypesExt
- ๐ Mesh
- ๐ MeshUtil
- ๐ GPGPU
- ๐ MapperExt
- ๐ MeshMapper2D
- ๐ MeshVtkMapper3D
- ๐ PhotoacousticsAlgorithms
- ๐ PhotoacousticsHardware
- ๐ PhotoacousticsLib
- ๐ PlanarFigureSegmentation
- ๐ RDF
- ๐ SpectroCam
- ๐ US
- ๐ USDiPhASDeviceCustomControls
- ๐ USHardwareDiPhAS
- ๐ USUI
- ๐ QmitkUSControlsCustomDiPhASDeviceWidget
- ๐ Plugins
- ๐ org.mitk.gui.qt.lasercontrol
- ๐ org.mitk.gui.qt.photoacoustics.imageprocessing
- ๐ org.mitk.gui.qt.photoacoustics.pausmotioncompensation
- ๐ org.mitk.gui.qt.photoacoustics.pausviewer
- ๐ org.mitk.gui.qt.photoacoustics.simulation
- ๐ org.mitk.gui.qt.photoacoustics.spectralunmixing
- ๐ org.mitk.gui.qt.spectrocamrecorder
F2108428: Capture.PNG | |
Feb 15 2021, 11:10 AM |
F2108385: Capture.PNG | |
Feb 15 2021, 10:07 AM |
F2108339: statdyn.mp4 | |
Feb 15 2021, 9:31 AM |
F2104219: Capture2.PNG | |
Feb 12 2021, 5:15 PM |
F2104149: Capture.PNG | |
Feb 12 2021, 4:22 PM |
F2103870: opensslqt.PNG | |
Feb 12 2021, 11:50 AM |
F2103841: clean.PNG | |
Feb 12 2021, 11:37 AM |
F2103808: installer.PNG | |
Feb 12 2021, 11:26 AM |
- Last Author
- floca
- Last Edited
- Feb 13 2021, 1:09 PM