MeVisLab Release Notes


Table of Contents

Release Notes
Version 2.5 Release
Fixes / Enhancements (MeVisLab)
Fixes / Enhancements (Modules)
Windows Edition
Linux Edition
Mac OS X Edition
Version 2.4 Release
Fixes / Enhancements (MeVisLab)
Fixes / Enhancements (Modules)
Windows Edition
Linux Edition
Mac OS X Edition
Version 2.3.1 Stable Release (2012-09)
Platform-independent Modifications
Windows Edition
Linux Edition
Mac OS X Edition
Version 2.3 Stable Release (2012-07)
Platform-independent Modifications
Linux Edition
Mac OS X Edition
Version 2.3 Release Candidate
Fixes / Enhancements (MeVisLab)
Fixes / Enhancements (Modules)
Windows Edition
Linux Edition
Mac OS X Edition
Common
Version 2.2.1 Stable Release (2011-09)
Platform-independent Modifications
Standard Modules
Fraunhofer Modules
Windows Edition
Linux Edition
Mac OS X Edition
Version 2.2 Stable Release (2011-06)
Platform-independent Modifications
Windows Edition
Linux Edition
Mac OS X Edition
Version 2.2 Release Candidate (2011-05)
Platform-independent Modifications
Windows Edition
Linux Edition
Mac OS X Edition
Version 2.1.1 Stable Release (2010-09)
Version 2.1 Stable Release (2010-06-24)
Version 2.1 Release Candidate (2010-06-04)
Version 2.0 final (2009-06-03)
Version 2.0 rc (2009-05-08)
Version 1.6.1 (2008-08-24)
Version 1.6 (2008-03-25)
Version 1.5.2 (2007-11-09)
Version 1.5.1 (2007-08-31)
Version 1.5 (2007-05-21)
Version 1.4 (2006-05-31)
Version 1.3 (2006-01-30)
Version 1.2 (2005-07-28)
Version 1.1 (2005-04-28)
Version 1.0 (2004-08-18)
Version 1.0b2 (2004-06-16)
Version 1.0b1 (2004-05-18)

Release Notes

This document lists the most relevant changes, additions and fixes provided by the latest MeVisLab releases. For more detailed information on recent changes, the following documents are available:

  • The ML Reference for a detailed list of changes to the ML library and its interface

  • We have no What's New document for this release since there are no big new features that would require such a document.

Version 2.5 Release

Fixes / Enhancements (MeVisLab)

  • New Features

    • Improved general multi-threading support for ML modules through a new ML host implementation than can take better advantage of the page-based image processing. This is quite new and we recommend users to stick to the "classic host" (see the preferences panel) for serious work for now, but we would like to hear about your experiences with your networks under the new host.

    • MeVisLab can move module execution to another process (see the context menu of ML and macro modules). This feature has existed since version 2.2, but wasn't generally visible. It has matured since then and might be useful in some scenarios. Use this to e.g. do some work in the background. This has some restrictions that are documented in the MeVisLab reference.

    • Improved network profiling.

      • Time spent in OpenInventor node rendering and event handling is recorded now.

      • When not combining call stacks, the "Functions" tab of the profiling view displays the actual call order. The old tracing feature which relied on manually placed macros in own code has been disabled.

    • Avoid saving geometry changes in .mlab files if nothing has been moved. This reduces differences e.g. for version control systems.

  • MATE (Integrated Editor)

    • New "Watches" and "Evaluate Expression" views in Python debugger.

      • The "Watches" view manages a list of variables and expressions and always shows their values for the current stack frame while debugging (if applicable).

      • The "Evaluate Expression" view can be used to execute code for the current stack frame while debugging.

    • Can open IDE of connected MeVisLabs from MATE. This can be useful to debug (invisible) worker processes.

  • C++ API Changes

    • mlrange_cast also works for float and double types now.

    • mlTimerCounter.h uses MLint64 instead of double for time values now.

    • Introduced new function Module/Host::processMissingPages which only processes those pages that haven't been processed yet (in contrast to Module/Host::processAllPages, which does it for all pages).

    • SubImage got a new copy constructor that takes an additional translation offset. This can e.g. be used to translate an image in the calculateOutputSubImage method of a module.

    • Introduced new update{Type}Value methods on ML fields that only touch the field if the value changes. Previously one had to implement a comparison him/herself to avoid unnecessary field notifications.

  • Controls

    • Extended expressions for dependsOn and visibleOn tags. We allow simple numerical expressions and comparisons for these tags now.

    • Pass reference to EventFilter control in command callback of EventFilter control.

    • Own controls can implement MDL tags also through QObject properties, which are automatically accessible from scripting.

    • Some MDL tags of Slider and IntervalSlider controls are also available as QObject properties.

    • The visible tab of a TabView can now be controlled through a field of type integer.

    • Fixed a problem with the RemoteRendering control when displaying the same rendering in several tabs.

  • Scripting

    • New updateValue methods on fields that only touch the field if the value changes. Previously one had to implement a comparison him/herself to avoid unnecessary field notifications.

    • Added new methods MLAB.setNumberOfImageProcessingThreads and MLAB.getNumberOfImageProcessingThreads to override the default number of threads used for image processing.

  • Fixes

    • The multi-document interface of MeVisLab and MATE has been replaced by a new implementation. Subsequently it is not possible anymore to have document sub-windows that can be placed and arranged, only one document/network is visible at a time.

    • Streaming output to std::cerr with <<isn't fragmented in the debug console anymore.

Fixes / Enhancements (Modules)

  • General

    • The example modules have been updated.

  • Open Inventor

    • Fixed a bug with nested uses of OpenGL frame buffer objects.

  • Open Inventor Modules

    • New module SoView2DSlider that displays a slider control in an OpenInventor scene.

    • Added module SoBlockNotification that blocks update notifications in an OpenInventor scene graph.

    • New SoMetaInformation framework for passing information about the OpenInventor scene to e.g. a remote client.

    • Remove autoUpdateML field on SoRenderArea/SoExaminerViewer

    • SoVascularSystem can show an interactive preview of the branches that are about to be selected.

  • CSO

    • Improved CSO scripting wrappers. Added methods to create primitives.

    • Speed-up for CSOConvertTo3DMask.

    • New extensible editor plug-ins SoCSOLiveWireEditor, SoCSOBulgeEditor, and SoCSOArrowEditor.

    • Fixed CSOLiveWireGraph's Laplace feature mode.

  • WEM

    • WEMIsoSurface can generate surfaces for certain or all time points of an image.

    • SoWEMRenderer got an option to render a specific WEM patch from a set.

  • ML modules

    • New masking features for ConstrainedConnectionCost.

    • Fixes to the Histogram module.

    • ImageHash calculates hashes independent from page size now and does not ignore the last row of an image.

    • Mask2XMarkerList has been renamed to MaskToMarkers and supports a value threshold now.

    • (De)ComposeVector has been renamed to (De)ComposeVector4 and (De)ComposeVector3 was added.

  • Modules and Libraries Provided by Fraunhofer MEVIS

    • DirectDicomImport:

      • Many internals refactored to projects MLFileListTools and MLMultiFileVolume.

      • Volume list columns are better configurable now.

      • Some single-bit DICOM configurations are readable now.

      • Multiframe NM modality files with negative slice spacing are imported now.

      • New view/field showing source files of a volume.

      • Bug fixes:

        • Volume list view corruptions with special characters in tags.

        • Readabilty of cache files with special characters and spaces in file names.

    • Renamed modules:

      • DirectDicomImportImportFilterPlugin is now FileListFilterPlugin.

      • DirectDicomImportOutput is now MultiFileVolumeListBaseOutput.

      • DirectDicomImportImageOutput is now MultiFileVolumeListImageOutput.

      • DirectDicomImportWaveformOutput is now MultiFileVolumeListWaveformOutput.

      • DirectDicomImportIteratorOutput is now MultiFileVolumeListIteratorOutput.

      • DirectDicomImportFilterVolumeList is now MultiFileVolumeListFilterOutputs.

    • New module DicomSCSave added for saving secondary captures.

    • Some new tool classes for saving DICOM IODs in DICOM output project.

    • Port of Fraunhofer modules to new ML interfaces including many smaller C++ code cleanups and warning removals.

    • New tool routines added DICOMAccessories and ReleaseToolsDICOM.

    • itkImageFileReader: File meta data shown in tab.

    • Bug fixes in ITKVTKGenerator: wrong include code generation fixed.

    • MLCurveUtils: some bug fixes and performance improvements.

    • VideoCapture:

      • Made more efficient (on demand decoding).

      • Uses libv4l OpenCV backend on Linux.

    • Calculator

      • Removed "Off" mode.

      • Some bug fixes and performance improvements.

    • ThirdParty:

      • OpenCV updated.

      • libv4l added.

    • New libraries added to SDK and Public Sources:

      • MLFileListTools - Library to scan, filter (even on DICOM tag level) and manage file lists.

      • MLMultiFileVolume - Manages set(s) of 2D file/frame names as higher dimensional volume(s).

    • DiffusionMRI modules:

      • FiberBundleQuantification - new module for quantifying tracked fiber bundle.

      • SetFiberness - new module for assigning fiberness values to points of tracked fiber bundle.

      • SetFiberColor - new module for assigning color values to points of tracked fiber bundle.

      • CropFibers - new module for cropping the endings of fiber bundle using a mask image.

      • SaverFibers allows for storing fibers in VTK polydata format.

      • WrapFiberSet additionally outputs the voxelized fiber bundle (sometimes called "envelope" of fiber bundle).

Windows Edition

  • Introduced support for Visual Studio 2012.

  • Only update .vcxproj files if the .pro file has changed.

  • New visual on-the-fly network selector for selection with Tab key or mouse wheel.

Linux Edition

  • ML modules can currently not be compiled under Ubuntu 13.04 because of a name clash between a boost header and a system header. This can be avoided by changing every occurence of TIME_UTC in the file Packages/MeVis/ThirdParty/Sources/misc/boost/boost/thread/xtime.hpp in the MeVisLab installation directory to TIME_UTC_. This release is tested with Ubuntu 12.04.

  • Fixed "Restart with Current Networks" (Ctrl+K) for some distributions.

  • Fixed TestCaseManager.

Mac OS X Edition

[Note]Note

This release requires at least Mac OS X 10.7.2.

  • Fixes for MacBook Pros with Retina Display (full support is still work-in-progress).

  • Do not disable or warn about certain OpenGL features if an Intel graphics chip is detected (full support for Intel 4000).

  • Allow alternative locations for the prefs file (~/Library/Application Support/APPNAME/Settings, ~/Library/Application Support/APPNAME).

  • Allow license file to be stored in ~/Library/Application Support/APPNAME as well.

  • Added MacDependency application to MeVisLab bundle.

  • SoCSO modules are again compiled with full optimization.

  • StopWatch module now measures correctly in multi-threaded conditions.

  • The OS X video camera driver has been ported from QTKit to AVFoundation and now supports exposure locking and furthermore reads the camera frame size from the OS driver.

  • OsiriXBridge-plugin fully supports OsiriX running on Retina Display Macs.

Version 2.4 Release

Fixes / Enhancements (MeVisLab)

  • New Features

    • The default handling of fatal errors is to abort in release mode now (just as it is in debug mode).

    • New zoom style zoom-to-mouse-cursor selectable from the preferences panel.

    • The internal network of a macro can be opened with middle click.

    • One can turn off field deprecation warnings in the preferences panel.

    • Network preview in tooltip of workspace tabs.

    • Performance improvements of network rendering.

    • Macro module wizard creates comment tags instead of MDL comments.

    • The ModuleDependencyAnalyzer sorts packages, files, and directories now

    • The ModuleDependencyAnalyzer did not correctly collect local macros

  • MATE (Integrated Editor)

    • Searching whole words works as expected now.

    • Fixed timeout behavior when connected to MeVisLab.

  • C++ API Changes

    • There is a new persistence interface for Base objects. See documentation in mlAbstractPersistenceStream.h

    • All MLLinearAlgebra matrix classes are derived from a common base class now.

    • Some compiler warnings have been turned into errors in our build system.

  • Controls

    • ItemModelView can display vectors and matrices.

    • ItemModelView supports comboboxes for editing.

    • The LineEdit control supports inline controls now (for tool buttons like e.g. a 'Reload' button).

    • New DateTime control.

    • Added support for 'fieldDragging' tag to CheckBox and TextView, to allow easy field connections when using these controls.

    • A 'title' tag can be specified for fields.

  • Scripting

    • Allow to set Python objects on MLBase type fields.

    • Python Booleans are really passed as Booleans to Qt slots now.

  • Fixes

    • Remember (some) command line arguments when restarting MeVisLab.

    • Always update Inventor node name when instanceName is changed.

  • Library Updates

    • boost updated to 1.48

    • Python updated to 2.7.3

    • NumPy updated to 1.6.2

    • assimp updated to 3.0 (affects WEMSceneLoader and SoSceneLoader)

Fixes / Enhancements (Modules)

  • Open Inventor

    • SoSFDouble has been moved to the OpenInventor package, field connections to other Inventor field types work now.

  • Open Inventor Modules

    • The new module SoCreateCubeMapSampler renders an OpenInventor scene to a cube map.

    • SoView2DMarkerEditor got a new overflow mode 'Remove New'.

    • SoView2DAnnotation can show an orientation cube and a center bottom text.

    • SoView2DAnnotation can specify user length/precision for individual tags.

    • SoView2DPlane was improved.

    • SoView2DSliceShift has been renamed to SoView2DSlicePan.

    • SoView2D will perform automatic slice grabbing now, i.e. in mosaic mode mouse interactions will be restricted to the starting slice until all mouse buttons are released again.

    • So3DXMarker got a marker threshold for faster rendering.

    • The SoSampler modules have been refactored.

    • SoView2D and many extensions support an alternative event handling mode called Managed Interaction that avoids clashes of button combinations and allows discovery and re-configuration of key and button combinations in an OpenInventor scene. Set the field useManagedInteraction to use this mode.

  • GVR

    • Added new module SoGVRForceRenderingInBox to force rendering in a defined box.

  • CSO

    • The CSO classes emit change events besides the old notification system. This is also accessible from scripting.

    • Added user-data facility to CSOs, based on the new MLVariant library. This is accessible from scripting.

    • New persistence format (version 5) for CSOs, supporting user data.

    • Added new extensible CSO editor framework.

    • Fixed seed point deletion on finishing CSOs in CSOLiveWireProcessor.

  • ML modules

    • DicomTagModify got an alternative string interface to modify more than six tags at once.

    • SubImage has a center/width mode now.

    • SubImage: Fixed clamping for negative coordinates.

    • IntervalThreshold: optimized output range prediction and much improved GUI panel.

    • Fixed flipping in SwapFlipDimensions. Page size handling is now as one would expect.

    • Assorted fixes and changes on:

      • EuclideanDTF

      • RegionGrowing

  • Macro modules

    • Changed LUT handling in View2D/View3D.

    • Fixed the DicomQuery module.

  • Modules and Libraries Provided by Fraunhofer MEVIS

    • Many FME projects have been ported to the new ML interfaces.

    • For many modules, the build system no longer allows warnings.

    • In the ReleaseTools library, new sublibraries, namely ReleaseToolsIO and ReleaseToolsMisc, have been added.

    • DICOM support has been extended by refactoring the PrivateDicomTag decoders and adding new sublibraries (DICOMCachedIOTools) and functions to the DICOMCachedIO and DICOMAccessories libraries.

    • Private tag decoding has been improved and can now decode many private sequence tags, special Toshiba tags and handle unknown private tags.

    • DirectDicomImport:Several bugs have been fixed, including handling of negative slice spacings and the import of temporal series.

    • DirectDicomImport:DICOM REG deformation fields can be imported.

    • DicomSRSave: New module to export DICOM-compliant structured report files.

    • DicomREGSave: New module to export DICOM-compliant registration deformation fields.

    • ColorFromName: New module to determine and assign colors and transparencies from strings via regular expressions.

    • Audio-Waveform playing is no longer support on Linux.

    • Arithmetic and Calculator: Absolute minimum and maximum functions for vector types were added.

    • Arithmetic: A bug in the propagation of the voxel-to-world matrix has been fixed.

    • Calculator: The handling of domain errors can now be configured by the user.

Windows Edition

[Note]Note

This will be the last major version that will be released for Visual Studio 2005 and Visual Studio 2008.

We plan to release the next major version of MeVisLab only for Visual Studio 2010 (32 and 64 bit) and Visual Studio 2012 (64 bit only). This should be only of interest for you if you develop your own ML or OpenInventor modules.

  • Resolve deadlock with multi-threaded cout output under Windows.

  • Improve screenshot functionality for panels containing OpenGL widgets.

  • Simple gesture support for network area: One can close networks with a mouse gesture.

Linux Edition

  • We have a new, nicer installer.

  • Debug symbols are put into separate files when compiling.

  • Known issues:

    • Program arguments containing spaces cannot be passed correctly to any of the executable links in the bin-directory, because they are not escaped.

Mac OS X Edition

[Note]Note

This release requires at least Mac OS X 10.7.2.

  • The panels of an inactive MeVisLab will no longer overlay the active application.

  • The WorkerService is now a UserAgent instead of a SystemService and allows the use of the WorkerService on a per user base.

  • Replaced all deprecated Apple Type System function calls with Core Text function calls in MLOSXSupport & Open Inventor.

  • ADK

    • The installation of the deprecated PackageMaker application for the generation of guided installers (.pkg) is no longer required, also the build speed has been improved considerably

    • Welcome, Readme, License, Conclusion as well as Background image files may be supplied in various formats for the generation of guided installers. Use the .mlinstall file variables: INSTALLER_MACX_WELCOME, INSTALLER_MACX_README, INSTALLER_MACX_LICENSE, INSTALLER_MACX_CONCLUSION, INSTALLER_MACX_IMAGE.

    • The STANDALONE_APPLICATION_ARGS variable in .mlinstall files is now supported for standalone OSX applications.

    • The generation of application icons can now be done during the installer build process from .iconset, .pdf, or other images files if a native OSX icon cannot be supplied, if an image file is provided it should be at least of size 1024x1024.

  • OsiriXBridge: An issue with non-ascii characters in path names of DICOM files in OsiriX database has been fixed.

Version 2.3.1 Stable Release (2012-09)

Platform-independent Modifications

  • Fixed QMenu placement regression in Qt 4.8 when a submenu doesn't fit to the right of a parent menu, but fits even less to the left.

  • Use correct size for tooltips when CSS style sheet is used and the font size is changed.

  • Fixed showing the field help for modules with an instance name that differs from its type.

  • MeVisLab will only write changed settings values to the registry, so that instances running in parallel will not overwrite each others settings completely.

  • Load MATE user scripts also from user packages.

  • Added the MLABFieldExpressionEvaluator class to the public API (for creating custom controls).

  • The Field control ignored the stretchX/stretchY attributes.

  • PythonQt did not always use the correct conversion to boolean when calling slots on QObjects.

  • Fixed modules:

    • Arithmetic2: Fixed multiplication of vector image with scalar image to do the obvious operation.

    • EuclideanDTF: Various bugs have been fixed.

    • WEMMerge: Fixed a crash.

    • CSOFreehandProcessor: Don't remove the last seed point placed when in preview mode.

    • SoFramebufferSampler2D/3D: Added field clearAlpha.

    • FiberSetFilter3D: Set correct allowed type for output object.

    • IntervalMap: Optimized the calculation of the output image's min/max values.

    • DicomQuery: Did not work.

Windows Edition

  • MeVisLab and MATE did not remember the correct monitor when maximized.

  • Support NVidia Optimus technology, switching automatically to NVidia card when starting MeVisLab (with driver version 302 and above).

Linux Edition

  • Execute MeVisLab as console application if DISPLAY environment variable is not set.

Mac OS X Edition

  • File dialogs did not work correctly if the parent widget had the Qt::WindowStaysOnTopHint set.

  • Support for OSX 10.8 (aka Mountain Lion).

  • Could not enable Python Debugging in MATE.

  • Fixed endless loop when executing formal TestCenter tests.

  • TestCenter failed to generate chart when run in IDE.

  • Fixed issue with module database caches not being rebuild for updated MeVisLab applications.

  • Updated OsiriXBridge.

Version 2.3 Stable Release (2012-07)

Platform-independent Modifications

  • Documentation added for modules from some Frauhofer MeVis packages.

  • Fix annoying pause when opening welcome screen or test center results.

  • Fix that the test center result page could show old screenshots if MeVisLab was not restarted between tests.

  • Fixed modules:

    • Fixed memory leak in MLImageFormatFileCache.

    • Improved documentation on ItemModel wrappers and ItemModelView. The necessary headers for using MLItemModel are included in the SDK now.

    • Allow to specify color values as string for "colorAttribute" in ItemModelView.

    • The ConstrainedConnectionCost module doesn't try to set the image's maximum intensity value anymore.

    • SoRenderArea and SoExaminerViewer honor the grabKeyFocus flag now.

    • The Histogram module can show the standard deviation even for normalized histograms. Loading of old histogram files has been fixed.

    • Saving of curve data with multiple y curves has been fixed.

    • Module CurvatureEstimation: Fixed the erroneous determination of eigenvalues, which led to wrong results. fixed.

Linux Edition

  • Fixed matplotlib integration.

  • Including MeVisLabCommands.gdb in installers.

Mac OS X Edition

  • Fixed matplotlib integration.

  • Update proxy icon for Save As operations.

  • Fix drag&drop between module panels.

  • Fix file dialogs opened from module panels.

  • Changed text display in editor to use default font.

Version 2.3 Release Candidate

Fixes / Enhancements (MeVisLab)

  • New Features

    • Own commands can now be defined by Python scripting in the IDE, either in the main menu or in the tool bar.

    • Added auto-show feature for hidden connectors on modules in the network view.

    • Added multi-selection and re-arranging by drag&drop to Snippets List.

    • Added option to show IDE of worker processes to the context menu of remote modules.

    • Added context menu to the tab bars in MeVisLab and MATE.

    • Module tests can be excluded from automatic test runs by using the module tag testsToOmit.

    • The module inspector now also shows indirectly related modules in the Related tab, sorted by relevance.

    • Added the printing of a warning to the console when the licence is about to expire.

    • Added two-colored halos for modules that are at the same time input and output for a selected module.

    • Modules that lie over a group to which they do not belong are rendered differently now.

    • New local macros will not silently overwrite existing ones anymore.

    • When promoting local macros to global macros, existing fields can be imported and edited.

    • New rendering mode "Comic" for MeVisLab networks in the IDE.

    • New network autolayout supporting loops and groups.

  • New MATE Features

    • Own commands can now be defined by Python scripting in the IDE, either in the main menu or in the tool bar.

    • Added cursor position history function with back / forward buttons to the toolbar.

    • MATE now contains a GUI Editor.

    • Added spell-checking (e.g. for the help editor).

    • Added new functions to move up/down the help outline.

    • MATE should block less often now if MeVisLab is busy.

    • Improved Python auto completion.

    • MATE does not connect to MeVisLabs of other users and does not use background or application MeVisLabs for auto-completion.

    • Speed improvements (needed for Qt 4.8).

    • Added new function "Go to Line Number".

    • Added session handling.

    • Added XML, HTML, and CSS syntax highlighting.

    • Implicit module creation for auto-completion can now be disabled.

  • C++ API Changes

    • The ML does not use 'carrier types' anymore. If your module should support extended data types like vectors, etc., use them directly. You should probably switch to the new typed output handlers if you didn't already, since it is easier to support the desired extended types with them. For more information, see the documentation in the ML reference..

    • You get a compile time assert if you use the C abs function on floats - we did this because this usually happens in error.

    • Added new class ml::EventSource derived from ml::Base that implements a simple notification mechanism.

    • Added ml::AbstractItemModel class for displaying (hierarchical) item lists from ML modules (including a control and scripting wrappers).

    • The shared library MathUtils has been dismantled.

    • The new ML function MLGetPromotedTypeWithRange can be used to get the 'best' output type for a module combining several input images of different type.

    • Added new include file mlRangeCasts.h for integer casts with checks for valid ranges.

  • Scripting

    • MLAB.createMLBase method allows to create reference counted base objects from Python (e.g. CSOList, WEM, ItemModel).

    • MLAB.loadLibrary method offers dynamic loading of shared libraries via scripting.

    • MDL controls can now be implemented using Python/PythonQt (see MeVisLab/Examples/Modules/Controls/PythonExampleControls).

    • Base object wrappers can now throw std::exceptions to cause a Python exception.

    • The ModuleDependencyAnalyzer is accessible from scripting.

    • sqlite3 Python module is available for Mac and Linux now.

    • IconView and ListView control got a pressedCommand, which can be used for starting drag operations.

    • Spell-checking is available from scripting.

    • The Field control can have a "More" button to show a bigger input dialog.

    • Added a new GraphicsView MDL control, which is based on the QGraphicsView Qt widget.

      • It offers:

        • Inventor render areas,

        • MDL panels,

        • Line, Pixmap, Polygon, Rect, Ellipse items,

        • WebKit and WebView, and

        • HotAreas with transitions.

      • See TestGraphicsView and TestGraphicsViewHotArea for example usages.

      • A presentation which presents the GraphicsView is included in MeVisLab, just run the GraphicsViewPresentation module.

      • The presentation itself is implemented using GraphicsView, have a look at the module's script files for detail.

    • Connecting to Qt signals in Python now has an alternative syntax.

    • The ListView control now allows to edit colors that have been set with setValue.

    • Allow to pass Python callables (functions) to e.g. ctx.callLater.

    • Added scripting access to type-handling ML functions through MLAB.ML.

  • Fixes

    • Creating local macros from a selection retains module groups.

    • Fixed some issues with automatic screenshots in the module help.

    • Fixed a common crash related to diagnosis console output.

    • Fixed ML allocating a large buffer for big image extents.

    • Fixed 32-bit limitation and corresponding warnings of BitImage.

    • Fixed failing writes of memory chunks larger 2G in mlFileSystem.

  • Library Updates

    • Added libjpg-turbo for fast JPEG compression.

    • Added Open Asset Import Library (assimp).

    • Added Python matplotlib (see MatplotlibMDLExample module).

    • boost serialization library can be used in own projects.

    • ITK was updated to version 4.1.0 (snapshot 2012-01-31) with some Get-functionality fixes and warning suppressions.

    • Qt has been updated to version 4.8 (with some back-ported fixes from 4.8.1).

    • VTK was updated to version 5.9.0 (snapshot 2012-04-28 with git tag "v5.10.0 rc 1") with some Get-functionality fixes and warning suppressions.

  • Other

    • Dicom import does not do automatic adjustment of different rescale/slope values anymore.

    • Module panels and module help fiels have been updated.

Fixes / Enhancements (Modules)

  • Open Inventor

    • SGI Open Inventor (OIV) was renovated:

      • OIV reference is now generated by doxygen.

      • GLEW was integrated into OIV to allow usage of OpenGL extensions inside of OIV.

      • Vertex Array and VBO rendering have been added to speed up rendering performance.

      • Added new SoIndexedTriangleSet for performance reasons.

      • Inventor fields can now be changed without updating the scene graph/causing a redraw.

      • For details, have a look at the Open Inventor release notes.

  • Open Inventor Modules

    • New modules:

      • SoMLVolumeBox renders the bounding box of an ML volume in world coordinates.

      • SoScreenSpaceAmbientOcclusion offers screen space ambient occlusion for arbitrary geometry renderings.

      • SoFixedFunctionShader implements the fixed function OpenGL/OIV functionality as dynamically generated GLSL shader and offers per-pixel lighting and simple shader extension mechanisms.

      • SoImageSampler offers direct loading of images to textures, including compressed texture formats and cube maps.

      • SoSceneLoader provides loading meshes using the Open Asset Import Library (assimp), allowing to import almost all common 3D formats into Open Inventor.

      • SoRenderSurfaceIntersection offers interactive rendering of the intersection of 3D Open Inventor / WEM surfaces on 2D slices.

      • SoShadowMapping offers cascaded shadow mapping and soft-shadows (PCSS).

      • SoShowDepthBuffer displays the depth buffer for debugging purposes.

      • Replaced Diagram2D and ExtDiagram by SoDiagram2D.

    • So3DMarkerEditor will update externally changed markers automatically now.

    • Fixed a display problem between SoView2D and SoText2.

    • Support for vertex attributes in the SoShader framework.

    • State changes in the SoMouseGrabber and SoKeyGrabber module should not cause a scene redraw anymore.

    • Added support for sample buffers (graphics card native anti-aliasing) to SoRenderArea/SoExaminerViewer.

    • Added anti-aliasing support (MSAA) also to various off-screen rendering modules.

    • Disabled Inventor viewers will not react to mouse clicks now.

    • Fixed SoView2DPosition moving the annotations in "Ellipse" mode.

    • SoImageSamplers can now load image formats supported by the ML.

    • Added support in SoView2DMarkerEditor for using line width from the style palette when using shapes.

    • Improved depth visualization of vectors in SoView2DMarkerEditor.

    • SoView2DAnnotation can now show "numSlices" and "sliceThickness".

  • GVR

    • New modules:

      • GVRDeepShadowMapping offers deep shadow mapping for volume rendering.

      • GVRGeometryClipping provides clipping with OpenGL surfaces and implements consistent shading.

      • GVRAmbientOcclusion implements LAO (Local Ambient Occlusion) for volume rendering.

      • GVRPreloadVolume to preload a total GVR volume into the system file cache.

      • GVRGradientVolumeSave to calculate and save a gradient volume for an existing GVR volume.

    • SoGVRDepthPeel now works with GVR ray caster.

    • Fixed a LUT bug in the GVR with tagged volumes.

  • CSO

    • CSOList is now derived from ml::RefCountedBase.

    • CSOs and CSOGroups can now be created with automatically created unique labels.

    • CSOSliceInterpolator and CSOConvertTo3DMask can take inner CSOs into account (and thus produce holes).

    • CSOSliceInterpolator got an option to remove the original CSOs to prevent double CSOs in merged copies.

    • SoView2DCSOEditor can do hole correction for CSOs of the same group.

    • Added grouping feature to the CSOUndoRedoManager.

    • New module CSOTransformationProcessor for interactive rotating, translating, and scaling of CSOs.

    • Updated selection and busy mechanism in CSO processors.

    • CSOs intersecting the viewing plane can now be represented by the intersection line.

  • WEM

    • WEM visual attributes have been removed, since they where not used.

    • Allow to set alpha value of WEM nodes.

    • SoWEMRenderer is now extensible and a lot of debug functionality has been moved to extensions.

    • Added support for mapping primitive value lists (PVLs) as vertex attributes in the SoWEMRenderer.

    • SoWEMRenderer does not perform picking anymore while the mouse moves.

    • Added new module WEMThreshold to cut away parts of the surface below a certain PVL threshold.

    • added new module WEMSceneLoader that loads meshes using the Open Asset Import Library (assimp), allowing to import almost all common 3D formats as WEMs.

    • Added support for saving and loading WEM texture coordinates and normals in the .obj format.

    • Added new module MarkerListToWEMPlane that approximates a set of markers by a smoothed plane.

  • Modules and Libraries Provided by Fraunhofer MEVIS

    • Matplotlib was integrated into MeVisLab in cooperation with MMS.

      • Qt4 backend was ported to PythonQt to work in MeVisLab.

      • MatplotlibCanvas MDL control allows easy integration of plots into GUIs.

      • MatplotlibMDLExample example module demonstrates the features of the integration.

    • Added the registration module MERIT.

      The MERIT (MeVis Image Registration Toolkit) module is a software framework for image registration. It is particularly aimed at the rapid prototyping of registration methods often required in everyday work with MeVisLab. Among its core features are:

      • 2-D/3-D affine-linear image transformations (translation, rigid, similarity, rigid+scale, affine) with customizable component orders.

      • Newton-type optimization (and approximation thereof) with line-searching (linear or Armijo's rule).

      • Multi-resolution image pyramids with custom downsampling, stop levels, and number of levels.

      • Inherent pre-registration initialization schemes (e.g., initial matching of centers of gravity).

      • Five common image similarity measures (SSD, NCC, NMI, LCC, NGF).

      • Nearest neighbor, cubic, Lanczos, and linear image interpolation methods.

      • Multi-threading support using OpenMP processor threads.

      • Robust convergence criteria, e.g. Gill-Murray-Wright, for a unified convergence behavior of all algorithms.

      • Entirely graphical usage through a consistent user interface.

      • Error curve output, mask image support, plugin methods, and much more.

    • Added new module CSOSplitSelfIntersection that splits self-intersecting CSOs into not self-intersecting parts.

    • Added new module IntervalMap providing convenient user interface to map intervals of voxel values to user defined or default values.

    • The modules Arithmetic and Calculator have been revised, and come with several major changes:

      • The float and long double variables have been consolidated to double variables. Legacy mechanisms will keep field connections and expressions working, but usage of the old variable names will produce warnings.

      • Arithmetic will no longer work with images of different extents. Use a SubImage module to adjust sizes of input images.

      • Both modules are now capable of detecting domain errors while calculating and can react according to user settings.

      • Anonymous vectors and vector index operators in Calculator now accept any expression as components and index, respectively.

      • A length function for vector types has been added.

      • Calculator returns scalar results when vectors in the expression evaluate to scalars (for example, length or dot product).

      • Arithmetic can be used as a constant image by providing a type and an extent instead of working on input images.

      • In Arithmetic, expressions can use special variables to access the current voxel position.

    • DirectDicomImport and related modules:

      • Some fixes in voxel size and world matrix calculation.

      • Improved robustness against non-standard or sloppy DICOM tag settings.

      • Imports JPEG2000 compressed files now.

      • Improved import of multi-frame DICOMs with "Decompose Multi Frame Files" flag.

      • Display of some private CSA Header tags with "Dump private tag values" in "Tags" tab.

      • Result caching can create single cache file for each imported file.

      • More tag flags for columns in Volume list.

      • Configurable tolerances for import of untypical or irregular slice distances.

      • Optional non-recursive (flat) directory import option.

      • DirectDicomImportImportFilterPlugin: added invert option for regular expressions.

      • AccessDirectDicomImportCache: allows to access the DICOM tree from Python, using the DICOM tree caching mechanisms of the DirectDicomImport.

    • C++-tool and module libraries and public sources:

      • MLDICOMAccessories available in public sources now.

      • MLDICOMCachedIO (also available in public sources).

      • MLGDCMPrivateDICOMTagDecoders (also available in public sources).

      • MLPrivateDICOMTagDecoders (also available in public sources): allows implementing your own DICOM tags decoders.

      • MLPrivateTags available in public sources now.

      • MLReleaseTools and MLReleaseToolsStable (also available in public sources): collection of C++ tools for string conversions, index list parsers, directory scanning, progress logging, interrupt checking, simple path handling, (sub)image saving, icon generation, file type detection, etc.

      • MLITKManualBinding available in public sources now.

    [Note]Note

    The package structure of the Fraunhofer MEVIS contributions has changed. The Release package located under FMEwork and FMEstable has been split in Release and ReleaseMeVis, which both still appear in the package groups FMEwork and FMEstable.

  • ITK and VTK

    • ITK has been upgraded to version 4.1 from January, 31st, 2012, 12-05pm MET from the master GIT repository from http://www.itk.org. Basically FFT and deconvolution related functionality has been added by wrapping 52 new itk classes. 8 wrapped modules have been removed and 4 renamed. Some missing Get-functions and macros as well as some warnings have been fixed in the ITK-third party for that purpose. For the list of changed modules and further details please read the technical notes referenced in the help file of any modules wrapping itk classes.

    • VTK has been upgraded to version 5.10.0 from April, 28th, 2012, 18:08pm (MET) with tag "v5.10.0 rc 1" from GIT repostory from http://www.vtk.org. 156 new classes have been wrapped and 4 have been removed. Some missing Get-functions and macros as well as some warnings have been fixed in the VTK-third party for that purpose. For the list of changed modules and further details please read the release notes referenced in the help file of any modules wrapping vtk classes.

  • Other ML Modules

    • Added new module DicomFrameTagInfo and improved module DicomFrameSelect.

    • DicomTagModify got an alternative interface for modifying an unlimited number of tags.

    • Added a SUM mode for MergeRegions

    • Added an optional input for a vector image in MaskToMarkers

    • Added new output inspector for StylePalette.

    • Added new module DynamicStylePalette with a flexible number of entries.

    • Extended remote rendering to also send whole module panels (but without OpenGL viewers).

    • RasterFunctions module can generate a list of functions for an input XMarkerList.

    • RegionGrowing and RegionGrowingMacro now allow to select the precision of the internal image data representation (previously always 14 bits). This improves threshold accuracy and/or memory efficiency in certain cases.

  • Other Macro Modules

    • Added new macro module HTTPFileDownload.

    • Fixed the problems that some macro modules had with file paths containing non-ASCII characters.

    • Added new module CompoundMatrixArithmetic for calculation of arithmetic expressions for several 4x4 matrices.

Windows Edition

  • MeVisLab now uses user/AppData/Local/MeVis/MeVisLab/* to store per-user data.

  • Imported image data is now stored in user/Documents/MeVis/ImageData.

    • For backwards compatibility, INSTALLDIR/data is still used if it exists and is non-empty.

  • License and prefs file may now be located in user/Documents/MeVis, user/ and user/Documents is still supported.

  • Improved MLABWidgetControl::createScreenshot on Windows.

  • A fix for the integrated Python that previously shadowed DebugAsserts in the Microsoft runtime library in the release version of MeVisLab.

Linux Edition

  • Preferences and other related files are now located in a common directory on Linux.

  • Added Eclipse project file generation.

  • Fixed that KDE plugins are no more loaded, which could lead to crashes when opening file dialogs.

  • MoviePlayerControl support disabled, because Phonon support is disabled due to dependencies to incompatible system libraries.

Mac OS X Edition

[Note]Note

Use Xcode 4.2 on OSX 10.6 and Xcode 4.3 on OS X 10.7 for module development. This release has not yet been tested on OS X 10.8.

  • The Option (Alt) key allows you to switch between Release & Debug mode using the Option key on OS X when requesting a 'New Instance' from the context menu in the Dock.

  • Module database caches are now stored in the ~/Library/Caches/de.mevis.MeVisLab/ModuleCache/ folder.

  • NSLog messages are now sent to the Debug console of MeVisLab.

  • Added icon for .mllut files.

  • Handle Dock preferences format of Mac OS X 10.7.2.

  • Added support for OpenMP in Xcode 4.2 (using LLVM-GCC).

  • Screenshot gallery will show Quicktime .mov files; Movie creation of the SoExaminerViewer will create a .mov file by default.

  • The default application Info.plist file may be overwritten using the MACX_APP_INFO_PLIST variable in installer files.

  • Multi-document windows in the MeVisLab IDE & MATE do no longer have a titlebar when maximized.

  • MeVisLab Applications support the Mac OS X 10.7 fullscreen mode too when the tag canGoFullscreen is added to the Window control.

  • MLAB.runCommand and MLAB.runCommandStdInOut use a dedicated thread to run the command. The spinning beach ball will no longer show up but an indeterminated progress indicator.

  • MeVisLab IDE & MATE support Mac OS X 10.7 fullscreen mode.

  • ToolRunner supports creation of Xcode4 workspaces for a list of .pro files.

  • Adapted WorkerService for OS X.

  • Fixed bug in macx::Bundle::getBundleExecutable() function: [NSBundle mainBundle] executablePath] returns the executable of the current process which is not always the same as the executable referenced by CFBundleExecutable in the bundle's Info.plist file.

  • Fixed SoShaderParameter* bug on OS X 10.7 (the uniform location was not computed correctly).

  • OsiriXBridge warns if a communication protocol version mismatch is detected (Plugin and module do not match).

  • Removed -fp parameter from OsiriXBridge (DICOM conversion)

Common

  • You should not need to set QTDIR anymore if you work with QT

Version 2.2.1 Stable Release (2011-09)

Platform-independent Modifications

  • Fix hang when double-clicking in empty MATE window

  • Fixed a crash when editing the help of a changed module.

  • Improve error message when trying to access controls from the wrong FieldListener

  • Fix a crash occuring with DynamicFrame under certain circumstances

  • Fixed picking of Inventor nodes.

  • ML Module Wizard: Changed code template to correctly use the ML_CALCULATEOUTPUTSUBIMAGE_NUM_INPUTS_N_CPP macro when numInputs > 5

  • Fixed crash when exporting DICOM data and no network interface could be detected (workaround for a Windows bug)

  • Don't generate module help on MeVisLab start as this can take quite some time. If needed this can be triggered from the "Extras" menu.

  • ADK: Several fixes to the ModuleDependencyAnalyzer

  • ADK: precompilePythonFiles.py is missing in the installed SDK / ADK

  • Add DefaultProjectSetup.pri for Fraunhofer packages, needed for compiling modules from these packages

Standard Modules

  • Prevent the tabs from SoTabPlaneDragger from getting infinitely big when viewed from the edge.

  • Prevent LocalImage from resolving the default DemoDataPath file name on load.

  • HistogramParameters: Corrected x scale of histogram curve, updated help

  • SimpleRegionGrowing: Fixed a bug in the computation of the valid outbox' t-extension

  • SwapFlipDimensions: Don't change the page size if the image size doesn't change

  • ConvexHull: Correct documentation

  • CSO modules: Calculate center of gravity correctly.

  • FileDirectoy: Don't create paths that contain backslashes

  • Fixed a bug in the OutputInspector for CurveData

  • SoView2DMarkerEditor: Vectors not always visible in a slice

  • So3DXMarker: Immediately update displayed markers if changed externally

  • SoView2DMenu: Resetting draw color to white before rendering icons

  • SoView2DMenuItem: Added an example network for a 3D tool button

  • BaseSwitch: Correctly propagate field notifications

  • BitMaskConvert: Avoid crash when second input gets invalid.

Fraunhofer Modules

  • OpenCV has been updated to version 2.3.1, Visual Studio 2005 (VC8) is supported again.

Windows Edition

  • Some few modules didn't reference the included xml2.dll but libxml2.dll (which was not included)

  • Properly include MeVisPython executable in SDK

  • Correctly show VC10 project entry in context menu of C++ modules.

  • Fix a crash on startup for certain processors.

Linux Edition

  • Added sqlite3 Python module

  • ADK: Make sure LD_LIBRARY_PATH is set when running applications.

  • Retain executable bit of installed scripts.

Mac OS X Edition

  • Fixed MeVisLab restoration issues on Mac OS X 10.7

  • Editable combobox style has been fixed for Mac OS X 10.7 (QTBUG-20261)

  • Screenshot function and QuickLook support of MeVisLab network files have been fixed for Mac OS X 10.7

  • MeVisLab-based applications will no longer try to run the MLABInstallSetup macro

  • MLAB.runCommand, MLAB.runCommandStdInOut, MLABProcess.waitForExit, and MLABScriptProcess.waitForLaunch did not work correctly, they do now but will block the main thread. The spinning beach ball may be shown. A new, threaded implementation will be available with the next full MeVisLab release.

  • MLABProcess.run does now correctly return the success state

  • signfiles looks for a license in the same locations as MeVisLab itself

  • Improved Xcode4 compatibility of the MeVisLab Project Generator

  • An installation of Xcode in a folder other than /Developer is supported

  • OsiriXBridge: fixed multiple modules overwriting each others eatDicom settings

  • The OsiriX MeVisLab Bridge Guide has been updated

Version 2.2 Stable Release (2011-06)

Platform-independent Modifications

  • New Public Sources:

    • There are new FME-modules and projects in the public sources providing efficient implementations of often used standard algorithms, demonstrating some new image processing features of the ML, or allowing for a closer look into the binding of VTK modules to MeVisLab or into the programming of plugins for DirectDicomImport:

      • TensorToEigenSystem (FMEstable project MLTensorToEigensystem)

      • GaussGradient and GaussHessian (FMEwork project MLGaussFilters)

      • ImageCumulativeSum (FMEwork project MLImageCumulativeSum)

      • ImageResample (FMEwork project MLImageResample)

      • QuadraturFilter and QuadraturToTensor (FMEwork project MLQuadratureFilter)

      • TubularTracking (FMEwork project MLTubularTracking)

      • DirectDicomImportIteratorOutput and DirectDicomImportWaveformOutput (FMEwork project MLDirectDicomImportOutputs)

      • FMEwork projects VTKSupport and MLABVTKRenderWidget

    • Additional SDK-Interfaces:

      • Additional DirectDicomImport-headers (FMEwork)

      • MLInternalPageCache (FMEstable)

  • Fixed modules:

    • Fixed MLReplaceDeprecateAPI helper module.

    • VoxelizeInventorScene was not correctly restoring the OpenInventor state. Updated documentation.

    • CSOConvertToImage: values of CSOVoxelSet voxels are now filled with image values if the module should use image values.

    • CSOVoxelSets now retain the voxel-to-world-matrix of the source image that is used in CSOVoxelSetToMarkerList to create correct world marker positions.

    • The GVR renderer used GLSL shader code which caused an ATI driver crash on some ATI cards/drivers. The GLSL shaders have been modified so that the standard GVR slicer shaders used in View3D etc. should work again. The new GVR ray cast shaders and some advanced slicer shaders will still have the problem. Since this is an ATI driver bug, we filed a bug to ATI. Hopefully this will be fixed in a future ATI driver version.

    • View3D: Avoid clipping the annotations.

  • SDK:

    • Fixed Snippets List feature by using a dummy image if no screenshot could be created (e.g. because of an insufficient OpenGL driver).

    • Added a MEVISLAB_VERSION define, current value is 202.

    • Fixed that DynamicFrame control crashes when its content does not contain a GUI control.

    • Fixed a seldom crash under 64 bit versions of MeVisLab that could occur with connections between Open Inventor fields of different types.

    • Fix that module help is not generated for deprecated modules.

    • Various small documentation updates.

  • ADK:

    • Fixed that the ModuleDependencyAnalyzer macro does not find modules with an explicit instance name.

    • The standalone ModuleDependencyAnalyzer tool considers user packages now and can also consider an additional preferences file.

    • Fixes to the StandaloneInstallerWizard.

Windows Edition

  • ADK:

    • Added missing zip.exe.

Linux Edition

  • SDK:

    • Fixed wrapper scripts when used in directories containing spaces.

    • Fixed location of MeVisLabMovieWrapper.

  • ADK:

    • Installer creation requires installjammer version 1.2.14, version 1.2.15 does not work.

Mac OS X Edition

  • SDK:

    • Added initial support for Xcode 4:

      • Xcode 4 does no longer crash while trying to open project files created by qmake on behalf of the MeVisLab Project Generator (QTBUG-17247).

      • The MeVisLab Project Generator creates default Xcode 4 schemes for the Xcode projects. A Debug in MeVisLab scheme is created for MeVisLab module library projects.

  • Documentation:

    • Updated MeVisLab Mac OS X Edition User's Guide

Version 2.2 Release Candidate (2011-05)

Platform-independent Modifications

Fixes/Enhancements (MeVisLab)

  • New Features:

    • We moved to a new internal help file format (.mhelp) for modules which can be edited with the integrated MATE text editor. These are converted on-the-fly to HTML. The old HTML files are deprecated.

    • MATE has been made a separate program which communicates with MeVisLab instances (if available) for auto-completion and other needs.

    • MATE now contains the frontend for a new integrated Python debugger which support breakpoints, stopping on exceptions, call stack and variable introspection.

    • All modules from the MeVisLab/Standard package that still used JavaScript have been ported to Python.

    • MeVisLab does now provide its own Python version (called MeVisPython) for command line use. A separate installation of a Python version is not needed anymore.

    • Profiling has been improved and now contains a call graph view.

    • Implemented some performance optimizations for loading *.mlab files (especially when there are many field connections).

    • Added lazy script evaluation which can be enabled with LazyScripting = true in MeVisLab prefs file (this defers creating the script context until scripting is really used).

    • Added a "Snippets View": fragments from a network can be stored for future usage in a dock in the MeVisLab IDE.

    • Added an option to set module placement style in the IDE.

    • Added a customizable network view mouse interaction.

    • The reloading of selected modules can be triggered by F5/Cmd+Alt+R and has a visual feedback now.

    • Image inputs/outputs can be colored according to state in the network view for diagnostic purposes.

    • Added a preview and navigation feature for internal networks - press Space when no module is selected.

    • Added a context menu entry for modules to check library dependencies (calls DependencyWalker under Windows) for Linux and Mac.

    • MeVisLab now contains the Qt libraries and header files that are needed to implement custom MDL GUI controls and to make use of Qt in MeVisLab modules. It is no longer neccessary to install a separate Qt SDK. Make sure that the QTDIR variable is NOT set in your environment, so that MeVisLab can make use of its internal Qt version.

    • MeVisLab can now be installed at paths containing spaces even if Qt is used.

    • The MeVisResearch package group has been renamed and split. The new names are FMEwork and FMEstable. (MeVis Research is now a Fraunhofer institute.) Users usually should not notice this change.

    • Modules can be aligned with optional tool buttons.

    • Added an option to convert a module group to a (local) macro.

    • Added an attribute 'editable' to fields. This attribute sets the default for the 'edit' or 'editable' of controls representing this field. At the same time it sets the 'persistent' attribute if not explicitly given. Non-editable fields are also not editable in the automatic panel.

    • Added a standalone tool for static module dependency analysis (for application deployment with the ADK add-on).

    • Possibility to execute single ML or macro modules asynchronously in a separate process (with some limitations). This is an experimental feature which needs to be unlocked via the prefs file.

      Limitations:

      • OpenInventor modules/inputs/outputs do not work (but you can use the RemoteRendering module and the RemoteRendering control to do rendering in a remote module).

      • Image outputs work, but image inputs do not; read images from a file instead.

      • Base inputs and outputs work in principle, but need a Base type handler for the remote communication. Currently there exist only handlers for XMarkerLists and some specialized remote helper types.

      • The panel and scripting of a module will only work in remote modules if it does not violate some encapsulation rules.

      • Remote modules are executed asynchronously, so field updates that previously would happen immediately will happen delayed.

  • C++ API Changes:

    • Various changes to the C++ Field/FieldContainer API: ml::Module is derived from ml::FieldContainer now, and some rarely used or ill defined methods have been removed.

    • Those variants of the FieldContainer::add*() methods that take an external data pointer are renamed to FieldContainer::addDeprecated*(). Using these method versions is (and has been for quite some time) strongly discouraged.

    • The regular FieldContainer::addInt/Float/...() methods now have the initial field value as second argument to avoid an extra setInt/Float/...Value call.

    • Base fields can now be restricted to allowed sub-types of class Base (this is used in MeVisLab to do a type check when connecting Base fields).

    • Base fields now support intrusive reference counting via a new RefCountedBase class (but this is not yet used in any modules).

  • Scripting:

    • Module groups and note items in a module network are scriptable now.

    • MLABModule has a hasWindow call now.

    • Added getFrameSpecificDicomTag and getFrameSpecificDicomTagById to MLABImageField.

    • Added storingToUndoHistoryCommand and restoredFromUndoHistoryCommand commands to MDL - modules are now informed when they are moved to/from the undo buffer.

    • MLABImageField::image().getSliceAsQPixmap() and MLABImageField::image().getSliceAsQImage() allow to get a QPixmap/QImage from RGB and RGBA ML images. These images can then be used on MDL controls (e.g. MLABButtonControl::setPixmap()) or directly on the Qt API.

  • Fixes:

    • Boost was updated to version 1.43

    • SQlite was updated to version 3.7.0.1

    • Crypto++ was updated to version 5.6.1

    • GoogleTest was updated to version 1.5

    • dcmtk was updated to version 3.6.0

    • libpng was updated to version 1.4.3

    • tiff library was updated to version 3.9.4

    • xml2 library was updated to version 2.7.7

    • zlib was updated to version 1.2.5

    • iconv library was updated to version 1.11.1

    • ITK was updated to version 4.0.0 (snapshot 2011-04-01)

    • VTK was updated to version 5.9.0 (snapshot 2011-04-11)

    • Added the following libraries:

      • Eigen 3.0.0 (linear algebra template library)

      • muParser 1.32 (math parser library)

      • OpenCV 2.2 (computer vision library)

      • vigra 1.7.1 (snapshot 2011-02-02) (computer vision template library)

    • Added the following Python extensions:

      • Mako 0.3.4 (template engine)

      • Sphinx 1.0.4 (documentation generator)

      • Jinja2 2.5.2 (templating language)

      • Pygments 1.3.1 (syntax highlighter)

      • docutils 0.7 (documentation utilities)

      • setuptools 0.6c11

Fixes/Enhancements (Modules and Controls)

  • GVR:

    • Added temporal position support for secondary volumes.

    • Fixed the rendering of anisotropic GVR volumes (alpha correction and lighting).

    • The GVR Volume Renderer now offers a full featured GPU ray caster and many new modules.

    • Ray Cast Features:

      • Ray casting with empty space skipping and early ray termination.

      • Integration of opaque GL geometry and GL clipping planes.

      • Jittering (Half-step/Random).

      • First hit ray casting.

      • Support for large volumes using bricking/lookup textures.

    • Shader Pipeline Features:

      • SoGVRShaderFunctions work in both slicer and ray caster.

      • Improved coordinate system naming using postfixes.

      • Various new pipeline steps to make the ray caster extensible.

    • New Ray Cast Extensions:

      • SoGVRRayCastSettings

      • SoGVRFirstHitRayCastSettings

    • New Parameter Modules:

      • SoGVRShaderParameterPosition

      • SoGVRShaderParameterDirection

      • SoGVRShaderParameterPlane

    • New Extensions:

      • SoGVRPointLight

      • SoGVRLitSphereShading

      • SoGVRFirstHitAmbientOcclusion

    • SoGVRShaderDiagnosis was rewritten and now offers verbose introspection of the shader pipeline, the used shaders, shader errors/warnings, available state/uniforms and used uniforms.

    • SoGVRPipelineInspector was removed (it was replaced by functionality in SoGVRShaderDiagnosis).

    • GVRShaderFunctionEditor offers a new interface to edit SoGVRShaderFunctions using completion and auto-detection of used uniforms/state.

  • CSO:

    • SoView2DCSOEditor now provides id of the CSO currently under mouse cursor.

    • CSOLiveWireProcessor can use input image directly as weight image.

    • CSOConvertTo3DMask now provides an option to use approximation instead on interpolation which makes the module more robust in some cases. The performance and quality of the algorithm has been improved.

    • Added option to render inner CSOs as holes.

    • More fine-grained control by groups over the display attributes of CSOs.

  • WEM:

    • Added diagnostics for WEM patches in SoWEMDiagnosis.

    • Added standard and root mean square deviation to the WEMInfo module.

  • Modules Provided by Fraunhofer MEVIS:

    • New module CSOManualCorrectionProcessor: allows for an intuitive editing of any CSO in 2D.

    • New module ImageFileCache: allows for a simple caching of standard datatype images with flexible update handling.

    • New module RunScript: simple utility module that allows for storing and executing a Python script in the network without having an explicit Python source file (or inline code in the .script).

    • New module ImageCumulativeSum: calculates the cumulative sum over an image dimension.

    • NotificationCounter: module for analyzing field notifications, now supports differentiation between notifications on valid and on invalid images.

    • BoundingBoxExt module now correctly detects and handles empty boxes.

    • The VideoCapture framework has been extended:

      • Rare crashes while exiting MeVisLab have been fixed.

      • Access to driver-specific functions is provided via base-field access.

      • New SoVideoCaptureSampler2D module that uses a driver-specific function to provide access to the video frame in GLSL code (see SoShader modules).

    • New VideoLoad module to load video files, the supported formats depend on the platform-specific backends used by OpenCV.

    • New SoSimulateMouse module to simulate mouse interaction via scripting or network.

    • New View2DTouch macro that offers additional interaction capabilities using gestures, an image dataset my be explored from the trackpad of modern notebooks or by using an external trackpad like the Apple Magic Trackpad.

      • New modules SoTouchpadDevice, SoView2DTouchControl, SoSwipeAccess.

    • New modules: CurveSelect (selects curves from a CurveList), CurveImport (creates CurveData from ascii text).

  • Other ML Modules:

    • The ConnectedComponent module has been reworked.

    • The MergeRegions module now allows to deactivate auto-update.

    • Added the ImageClear module, which automatically invalidates its output on input image changes - the user has to "manually" pass the input image through. This can reduce notifications.

    • DirectDicomImport:

      • New plugin mechanism available (see DirectDicomImportImportFilterPlugin) for filtering and classifying DICOM files before importing them.

      • New DirectDicomImportIteratorOutput module for iterating over volumes.

      • Radio-Therapy modules are also available on Linux platform now.

      • The eatDicom importer in DirectDicomImport has been removed, which leads to a number of "missing field" messages when reloading network built with older versions. Please resave those networks.

      • Many fixes, especially in voxel size and matrix calculations.

      • Many new features, such as sorting according to DICOM tags, additional import directories, experimental waveform output.

  • Other Open Inventor Modules:

    • New module SoBypass to bypass an Inventor sub-graph.

    • Added mipmap support for 3D samplers.

    • Added a SoCameraViewAll module.

    • Improved external camera handling in the SoExaminerViewer.

  • Other Macro Modules:

    • The Counter module gained the ability to count at regular intervals.

    • New modules StringSplit, StringListSplitter and SwapViewer.

    • LocalImage has been changed to return a new dataset by default that has anisotropic voxel size, is sagittal, has DICOM tags and does not have equal image extents.

    • ModifyRegion refactored to support non-CT world/voxel matrices (e.g. from MRI)

  • Controls:

    • New MDL controls RadioButtonGroup, PushButtonGroup, ToolButtonGroup that shall replace the ButtonBar control.

    • MLABListViewControl::setItemFilter works recursively now.

    • Added a GLSLTextView control with input completion.

    • Updated MLABCheckBoxControl scripting.

    • Added tabDependsOn tag on TabViewItem control.

    • The IntervalSlider honors the "direction" tag now.

    • DicomBrowser is now a dynamically loaded control and supports .mlimage files.

Windows Edition

  • Implemented a work-around for the Aero screenshot bug.

  • Added support for Visual Studio 2010.

Linux Edition

  • MeVisLab is now compiled with gcc version 4.4.

  • Added support for DICOM RT.

  • Library symbols are now exported explicitly under Linux; this should reduce library sizes.

  • The mlbash script in <installpath>/bin has been renamed to mlshell to reflect that other shells than the bash can be used. The environment variable SHELL can be set to specify a shell. If it is not set, then the bash is the default.

  • The prefix or infix MLAB was added to most third party libraries to avoid the MeVisLab loads same named, incompatible system libraries (e.g. libQtCore.so is now called libQtCoreMLAB.so, libfreetype.so is now libMLABfreetype.so).

  • The compiler defines linux and Linux have been removed, so that only the define LINUX remains.

  • Added include paths to generated Codeblocks projects to allow more code completion.

  • New tool MeVisLabDependencyViewer: requires the unix tools nm, ldd and readelf. It can be started from the context menu of a module in MeVisLab (Debugging -> Show DLL Dependency).

  • MeVisLab now tries to use the system fonts DejaVuSerif.ttf and FreeSerif.ttf for OpenGL font rendering if they can be found. Otherwise the not so nice font AntykwaTorunska-Regular.ttf is used as a fallback (this font is shipped with MeVisLab and was always used until now).

Mac OS X Edition

[Important]Important

Mac OS X 10.6 (Snow Leopard) or newer required

New Features:

  • MeVisLab IDE:

    • Spotlight-based search is supported for the MeVisLab IDE and module help

    • To quick-start MeVisLab hold the function (fn) key while clicking the MeVisLab icon or double-clicking a MeVisLab network document

    • A new context menu for the MeVisLab icon in the Dock permits the launch of a new, separate MeVisLab instance

    • The MeVisLab IDE and MATE now provide you with a proxy icon for the current document

    • An AppleScript applet has been added to start MeVisLab in Debug Mode from the Mac OS X Dock. The applet is called mevislab-start-debug.app and is located at: MeVisLab.app/Contents/SharedSupport/Scripts/

    • The Recent Files submenu now limits the maximum number of recent documents according to the user settings. The global setting can be changed in the appearance panel of the system preferences of Mac OS X, but may also be modified on a per-app basis using the NSRecentDocumentsLimit key in the applications preferences, e.g. defaults write de.mevis.MeVisLab NSRecentDocumentsLimit 20

    • The location of application support files has changed: now the application name (CFBundleName) is used to refer to the root directory of settings, screenshot, snippets, etc. In effect, the application support files of the MeVisLab IDE are no longer stored at ~/Library/Application Support/MeVis/MeVisLab/... but at ~/Library/Application Support/MeVisLab/... .

    • Inspection of dynamic library dependencies is supported from the IDE using MacDependency 1.1 or later

    • MeVisLab will perform setup functions upon first startup of a new MeVisLab version for each user

    • Additional icons for .mhelp and .mlgraph document files

  • ToolRunner

    • The ToolRunner supports the setup of additional environment variables for the tools

  • SDK:

    • The xcode-prepare-debug.applescript script that sets up Xcode 3 for MeVisLab module debugging has now been transformed into an AppleScript applet. AppleScript applets can be executed directly without the need to load the ScriptEditor. The xcode-prepare-debug.applescript script is now called xcode-prepare-debug.app. The script is still located at: MeVisLab.app/Contents/SharedSupport/Scripts/

    • The MeVisLab API Documentation is available to Xcode users as 'MeVisLab Toolbox Reference' Doc Set. The Doc Set is located within the MeVisLab bundle at: MeVisLab.app/Contents/Packages/FMEwork/Release/Documentation/Publish/DocSets/

    • The clang compiler is now supported as an alternative compiler (version 2.9 or later). Makefiles may be generated by executing a command line like the following: /Applications/MeVisLab.app/Contents/Support/MeVisLabProjectGenerator.app/Contents/MacOS/MeVisLabProjectGenerator -qopt -spec -qopt /Applications/MeVisLab.app/Contents/Support/MeVisLabProjectGenerator.app/Contents/Resources/mkspecs/macx-clang -no-xcode -no-debug -o Makefile -auto

    • The xcode-prepare-unittest.app AppleScript applet now adds the package environment variables to the unittest executable environment in Xcode 3 facilitating the location of test data

    • The MeVisLab Project Generator evaluates any additional environment variables set via the ToolRunner settings when launched in GUI mode (e.g. when launched via Finder or Xcode)

  • ADK:

    • Package installers that are built using MeVisLab will use the new flat package format of Mac OS X 10.5 and later

    • MeVisLab standalone applications do no longer share their settings

  • Documentation:

    • Updated MeVisLab Mac OS X Edition User's Guide

    • Updated OsiriX MeVisLab Bridge User's Guide

    • MeVisLab supports the generation of Xcode Doc Sets as part of the documentation tools

  • OsiriX MeVisLab Bridge:

    • Series may be sent to multiple targets conveniently via a pop-up selector from the OsiriX toolbar, each OsiriXBridge module represents a target

    • Several series and whole studies can be sent at once if a DirectDicomImport module is used with the OsiriXBridge

    • The OsiriXBridge plugin is controlled exclusively via the toolbar icon in OsiriX

Resolved Issues:

  • MeVisLab IDE:

    • The annoying beeps triggered by keyboard events due to a Qt bug (QTBUG-6444) have been fixed by back-porting changes from Qt 4.7

  • MDL:

    • A rare crash in DynamicFrame control caused by Qt (QTBUG-4227) has been fixed

    • The additional margin around the viewer of a viewer control has been removed

  • SDK:

    • Source code files in the RELATEDFILES variable of qmake .pro files are no longer built when targeting Xcode with the MeVisLab Project Generator

  • Modules:

    • A bug in the OSX Image IO plugin has been fixed that could provoke a crash when reading images with embedded color space information

Version 2.1.1 Stable Release (2010-09)

Bug Fixes:

  • Fixed a Windows resource leak when using OpenGL rendering widgets. (This fix was already included in updated 2.1 installers.)

    Fixed crash in OffscreenRender module when no input available, removed unused autoApply field to avoid wrong expectations.

    Fixed that boolean variables set with the FieldValueTestCaseGenerator are always false

    The mlbash script now sets MLAB_COMPILER_VERSION under Linux

    MeVisLabSDK readme on Linux now includes compiler version

    Added system requirements to Getting Started documentation

    Fixed a problem with scripting function MLABModule.removeTimer, where sometimes an unrelated timer could be removed.

    Missing source files of ITKVTKGenerator files added

    Allow for decompression of (jpeg) image data of single frame DICOM files.

    ml::BackgroundTasksMessage can now be sent to the GUI thread without having a sender()

    Disabled inline completion in MATE's search combo box, which would lead to wrong searches.

    Fixed crash when deleting multiple modules when the UndoManager is disabled.

    Fixed crash in CSOConvertToImage if an attached Bypass is set to No Bypass.

    Fixed crash when deleting ListView control (observed with deeply nested trees).

    clickedCommand and rightButtonClickedCommand of IconView didn't work.

    Fixed a problem with timers with intervals <20ms disappearing under Windows

Version 2.1 Stable Release (2010-06-24)

Bug Fixes:

  • The MLCacheSize of MeVisLab 2.0 is no longer overwritten when running MeVisLab 2.1.

  • The MeVisLab 2.0 inspector layout is no longer cleared when running MeVisLab 2.1.

  • Improvements and bug fixes for the new TestCenter/TestCaseManager.

  • Fixed debug mode Qt wrappers for PythonQt on Linux and MacOS.

  • Project wizard line edits no longer jump to end of line while typing.

  • Various small bug fixes to standard modules (including various WEM fixes).

New Features:

  • A new "Search in Documentation" inspector has been added to the MeVisLab IDE and to MATE, which allows to search in the complete MeVisLab documentation (including all Doxygen references, all DocBook books, the OpenInventor reference, Python and NumPy). This feature is also available via the Help->Search in Documentation... menu item and via CTRL-SHIFT-F.

  • The MeVisLab documentation was enhanced/corrected in various places.

  • A lot of cross-links where added to the MeVisLab documentation. This makes it a lot easier to jump to relevant other documents/doxygen documentation while reading the HTML documentation.

  • "Revert To Saved" menu option was added to the MeVisLab IDE.

Version 2.1 Release Candidate (2010-06-04)

New Features

  • TestCenter/TestCaseManager

    • The MeVisLab Tester has been replaced by a new testing framework that is based on Python.

    • A TestCase consists of a Python script and a MeVisLab network that should be tested.

    • Each MeVisLab package may contain TestCases, which are managed in the TestCaseManager.

    • A simple ASSERT/EXPECT_EQ/NE/TRUE/FALSE API offers quick test writing.

    • Various other features, e.g., creation of screenshots and attachment of result files to the test report.

  • ML BackgroundTasks

    • The new library MLBackgroundTasks adds support for asynchronous image processing to MeVisLab.

    • New example modules: AsyncProcessAllPages, AsyncTypedProcessAllPages, AsyncTileProcessingExample and AdvancedBackgroundTaskExample.

    • ImageSave and GVRVolumeSave now support asynchronous writing ("Save in Background" buttons).

    • The MeVisLab IDE contains a new BackgroundTasks inspector which shows running background tasks.

    • For more details, have a look at the "ML Tool Box Reference", which contains the detailed API documentation.

  • MeVisLab Profiling

    • MeVisLab contains a new Profiling Inspector

    • Profiling measures:

      • time spent on ML image processing and field notifications.

      • memory usage of ML modules

      • number of field notifications

  • GVR Shader Pipeline

    • The GLSL shaders used by the GVR are now extensible using the SoGVRShaderFunction module. When this module is used, the shaders are built as a pipeline of GLSL functions. The user can add custom functions, and replace existing functions.

    • New modules: SoGVRShaderFunction, SoGVRShaderInclude, SoGVRShaderPipelineInspector

Common Enhancements / Fixes (MeVisLab)

  • ML:

    • The ML C++ API has been renovated and large portions have been marked as deprecated. The "ML Reference" contains a list of all deprecated functions/classes and a short introduction on the deprecation. Common abbreviations have been expanded e.g., getImgExt() is now called getImageExtent().

    • A new MeVisLab module called MLReplaceDeprecatedAPI has been added, which can be used to find and replace usage of the deprecated classes/functions.

    • Use DEFINES += ML_WARN_DEPRECATED in your profiles to enable compiler warnings about usage of deprecated APIs.

    • Use DEFINES += ML_DISABLE_DEPRECATED in your profiles to completely disable the deprecated APIs.

    • The deprecated API will stay part of the ML API for at least 2 years.

    • The image processing in an ML Module can now be implemented in an extra handler derived from CalculateOutputImageHandler, which is useful to separate the processing function from the module state, especially when multithreading support is desired.

    • CalculateOutputImageHandler is extended by TypedCalculateOutputImageHandler<> templates to support templated handlers.

    • processAllPages now supports a ProcessAllPages handler, this avoids the need to reuse the calculateOutputSubImage method of the ml::Module for processAllPages.

    • processAllPages now calls calculateOutputImageProperties() with the temporary output image, thus the user can specify the properties of the temporary output image, e.g., set the page extent or the datatypes of input sub images.

    • The bypassing mechanism of the ML has been rewritten and now works across multiple bypassed modules and for memory images.

    • ModulehandleInput supports a new enum ALLOW_INVALID_INPUT, which removes the need to use REDIRECT_TO_DUMMYOP, which has been deprecated. See the ML Guide for details.

    • ml::PagedImage now supports sparse page tables larger than 2^31 pages, thus the ML now supports very large images.

    • ml::PlaneField and ml::RotationField have been moved from MLTools to the core ML and are now available on ml::FieldContainer via addPlane() and addRotation().

    • MLLinearAlgebra now contains ml::Rotation, ml::Plane and ml::Line.

    • ml::SubImage now contains the source image extent and knows its valid region (see getSourceImageExtent() and getValidRegion().

    • ml::SubImage now supports caching via the new method ml::SubImageallocateAsMemoryBlockHandle().

    • New ml::TypeTraits<> class offers easy access to compile-time information on ML datatypes.

    • New ml::PageIDIterator class allows to incrementally calculate page ids in a given region.

    • New mlWarning(), mlError(), mlFatalError() macros have been added which support streaming additional information into them and are nicer to use than ML_WARNING, ML_ERROR macros.

    • Methods like getTile(), updateImageProperties(),... that took a module and an output index now take a PagedImage, which is less error prone (deprecated old methods are still available).

    • The preferences variable MLCacheSize is now called MLCacheSizeInMB. You may need to adapt this variable in your mevislab.prefs file if you used MLCacheSize before (the value to MLCacheSize had been in KB).

    • Some incorrect operations/results in MLHolds/MLRangeOrder and MLPromotedType where fixed.

    • Incorrect identification of all floating point vector voxels as double voxels fixed.

    • MLuint64 voxel type introduced to all ML classes, macros and switches as well as in the modules.

    • ToolsscanInput function of MLTools now also analyzes all components of non scalar voxels. This fixes incorrect min/max values in MinMaxScan and Scale modules when using real min/max values.

    • The former TVector/Vector class (now named ImageVector) has been revised and supports n-dimensional vectors now.

    • The integer voxel types Vector16, Vector, and Vector64 have been removed. Now they are provided as 8, 16, 32, and 64 bit versions for the dimensions 2,3,4,5,6,7,8,9,10,16,32, and 64 as for the floating point voxel types, too.

  • Open Inventor:

    • Input devices derived from SoQtDevice are now registered to the run-time type system, hence can be created via run-time type system (see Inventor/Qt/devices/SoQtSubDevice.h).

  • MDL:

    • The list view control (MLABListViewControl) has been re-implemented, which e.g., allows to

      • set foreground and background color and font attributes on list view items

      • store a user data object on list items

      • use a combo box when editing list cells

    • New ButtonBox control, which presents Button controls in a layout that is appropriate for the operating system's look & feel. The order in which the child Buttons appear depends on the window system.

    • Added role attribute to Button control that specifies the buttons role within the dialog and is used by the ButtonBox control

    • Fields can now be connected even if they are disabled

    • New MDL tags styleSheetString and styleSheetFile to set the Qt stylesheet for any MDL control recursively

    • The MDL attributes bgOrigin and ignoreMinSize have become obsolete

    • Labels can now contain unicode characters with codes >= 256 (provided the file contains the correct header for UTF8 encoding)

    • New WebView MDL control integrates a full WebKit based browser engine into the MDL (see TestWebView for examples)

    • The MDL offers a new interface to extend the MDL with user MDL controls written in Qt/C++. This requires a Qt 4.6.2 SDK installation which is publicly available from Nokia. Have a look at the ColorChooserExampleControlTest and DiagramExampleControlTest module.

    • Label control now supports HTML hyper links via new tags allowLinks and linkActivatedCommand/linkHoveredCommand

    • The line edit control can show a hint text if it is empty and doesn't have focus.

  • Scripting:

    • Python scripting has been upgraded to version 2.6.4 .

    • PythonQt binding has been upgraded to PythonQt 2.0

    • NumPy is now included in the Python distribution that comes with MeVisLab.

    • MeVisLab now offers complete access to the Qt libraries in Python, have a look at the MeVisLab Scripting Reference for details. This is an experimental feature.

    • Python C Extensions (*.pyd/*.so) are now supported anywhere (it is no longer required to place them in Package/lib/python), so you can place them to Package/Modules/Scripts/python as you would do with *.py files.

    • MLABImageFieldimage() offers a new API to the underlying ML image, including requesting image data via getTile() to do image processing in Python.

    • It is now possible to implement ML image processing modules in Python. Search for Python* in the quick search to see some examples.

    • New scripting classes MLABDicomTree and MLABDicomTag. MLABDicomTree is returned by MLABImageFieldgetDicomTree().

    • File dialog boxes now remember the last selected directory persistently

    • MLAB.mdlControlAtGlobalPosition() and MLAB.mdlControlAtCurrentCursorPosition() added to find an MDL control from a global screen position or the current cursor position.

    • Added classes to handle field-value test cases, that allow applying a parameterization to a network, verifing expected results and saving specified field values.

  • IDE

    • A new quick search in network has been added (CTRL-F on the network), which allows to quickly find modules, fields and associated files.

    • A lot of network rendering improvements.

    • "Debug Output" inspector now supports exploring the containing folder of a file via holding CTRL key while clicking on a file link

    • Note items will now display non-ASCII characters in the network.

    • The IDE partly relied on the Qt3Support library from Qt. The remaining parts have been rewritten so that MeVisLab solely relies on Qt4.

    • "Extras->Reload Imported Python Modules" reloads all imported Python modules, which previously required a manual reload() call or a restart of MeVisLab.

  • Packages

    • Packages now support a lib/release and lib/debug directory, which is placed into the PATH depending on the version of MeVisLab that is started (Release/Debug), this allows to place thirdparty DLLs into release/debug dirs if both debug/release DLLs use the same name

  • Tools

    • added -prefs, -ignoreprefs and -scanpath commandline options to ToolRunner

    • added -prefs and -ignoreprefs commandline options to MeVisLabPackageScanner

Incompatible changes

  • MLLinearAlgebra

    • TVector<> cannot be used as 6D vector any more, it has to be replaced with TImageVector<>.

    • Some constructors of ImageVector (the former Vector/TVector<> class) do not implicitly cast integer or differently types vectors any more, because this had many undesired side effects. These constructors must explicitly be cast now, i.e. instead of ImageVector v=17; use ImageVector v=ImageVector(17); now.

  • ML

    • ml::Module::calcInSubImgProps has been removed and needs to be manually replaced by calls to ml::PagedImage::setInputSubImage*() calls on the output image in calculateOutputImageProperties().

    • ml::Module::connectInput() has been removed, replace it by using handleInput().

    • ml::SubImage is no longer derived from ml::ImageProperties.

    • ml::SubImage/ml::ImageProperties no longer have an isUpToDate flag.

    • ml::SubImage no longer stores min/max voxel values, you may get those value via getInputImage(N).getMin/MaxVoxelValue().

    • ml::Host/Module::processAllPages no longer takes two leading integer arguments, the second argument (the input image properties that should be used for the output image) has been removed and can be replaced by code in calculateOutputImageProperties() if it wasn't set to 0.

    • ml::Field::attachField(targetField) is no longer allowed with non Notify/SoNode/Base/OutputConnector Fields as targetField.

    • TSubImage<> no longer contains a cursor. Change your code to either make use of a TSubImageCursor<> or ConstTSubImageCursor<>. Alternatively you may use the TSubImageWithCursor<> class which offers the old cursor behavior of TSubImage<>.

    • The integer voxel types Vector16, Vector, and Vector64 have been removed. See new Common Enhancements / Fixes (MeVisLab) for replacement by new types.

    • ml::PagedImage now caches its state for invalid output images as well, since it turned out to be a performance problem when updateImageProperties is called on invalid output images recursively. In some situations, this requires that you call getOutputImageField(outIndex)->touch() in your code to notify the ML that the output image has changed and that it should call calculateOutputImageProperties again. This is especially the case if you want processAllPages(outIndex) to take into account the new output image state. If you do not want to cause update notifications, you can call getOutputImage(outIndex)->setUpdateOfImagePropertiesNeeded(true) instead, but this should rarely be the case.

  • MeVisLab

    • The Vector2f, Vector3f and Vector4f fields have been renamed to Vector2, Vector3 and Vector4, this affects Python/JavaScript scripts that made use of MLABField.type or MLABField.shortClassName(), which now return "VectorX" instead of "VectorXf".

    • MDL variables OS, OSVERSION, ID, CPU and DATE removed. There is still LINUX/UNIX/MACOS/WINDOWS variables to check the OS

Common Enhancements / Fixes (Modules)

  • A new event type has been added to the ObjMgr. The event 'ConnectedToDatabase' is sent on (re)connection of ObjMgrClients to the database and may be used to update dependent networks/scripts to the current database state.

  • SoShader framework

    • Shaders attached via the shaderObject multifield are now aware of OpenGL context switches

    • Shaders may inject code into the main funtion via GLSL snippets (experimental)

    • SoShaderParameterMLImageProps adds a vec3 NameOfParameter_voxelSize uniform to access the voxel size of an ML image sampler

  • SoGVR framework

    • SoGVRMaskSettings and SoGVRMaskVolume now allow to replace the WorldToVoxel matrix of the mask image (similar to SoGVRTransformedVolume).

    • SoGVRTransformedVolume and SoGVRMaskVolume now correctly load images with three and four color dimensions.

  • New Modules

    • New CompareNetworks module allows to compare *.mlab files both textual and visual

    • New module SoGVRMeanIPMode offers Mean Intensity Projection for the GVR volume renderer

    • InventorRayPicker allows to apply a ray pick action to an inventor scene

    • SwapFlipDimensions allows to swap/flip two dimensions

    • New module WEMVascularSystem generates a smooth 2-manifold surface to represent a vascular system. This module complements SoVascularSystem.

    • The library MLVesselGraph is now available so own modules to compute on vessel graphs or to render vascular systems can be written.

    • New modules to create (FieldValueTestCaseEditor and -Generator), run (FieldValueTestCaseIterator) and convert field-value test cases to CSV (FieldValueTestCaseConvertor).

  • File IO & Data Compression:

    • New wrapped itkImageFileWriter and revisions of wrapper for itkImageFileReader. See ITK/VTK.

    • New macro module LoadAny, a multi file extension/format loader with format detection for images, meshes, and other file types. Opens most readable MeVisLab file formats automatically.

    • New very fast LZF data compressor available in MLImageFormat modules and MLDataCompressorFactory for maximum compression speed (also in SDK and public sources).

    • New LZMA data compressor available in MLImageFormat modules and MLDataCompressorFactory for high compression ratios (also in SDK and public sources).

    • Performance of "Optimize Data" option for MLImageFormatSave/Load (de)compressors (and therefore also of file IO) significantly improved and set automatically if useful (i.e. the user selectable toggle disappeared).

    • New difference coding mode added to some data compressor and in MLImageFormatSave to improve compression ratios sometimes significantly.

    • New mode "Preserve Cache File" in MLImageFormatFileCache allows persistent cache files and reusing them (from) elsewhere.

    • Fix: ImageFormatFileCache does not request useless pages from input any more when reading data from cached file.

    • Performance fix in MLDicomTree: Significant optimization of opening times of .mlimage files with huge dicom tags.

    • Further revisions of all MLImageFormat modules (documentation, internal class hierarchy, browse dialogs, better use of variables in paths, showing all file information in all modules, additional buttons etc.)

    • ImageLoad module now also reads MLImageFormat files.

  • Non scalar image support:

    • New integer voxel types for many dimensions and types available. See new ML features.

    • MPR, MPRPath AccumulateImage, Resample3D, OrthoMPR, Reformat, OrthoSwapFlip, and SoOrthoView2D also operate on non scalar image voxels now.

    • New module TypeFromDimension to create a non scalar voxel image from scalar components of a given dimension, simplifying and speeding up some often used operations.

    • Often requested mode for direct decomposition of non scalar voxels to a certain dimension (e.g., vector to color image or vector to time dimension) is now available with TypeToScalars by a newly selectable output dimension.

    • 16 new (and often requested) unary operations on non scalar voxels in Type/TensorArithmetic1 (especially operations with constants, for reordering, and sorting, Phong calculation). Some incorrect sign calculations in Comp Mul and Comp Sum modes fixed. Now these module also support float based processing, i.e. implicit conversions are reduced/removed to speed up operations.

    • View2D and View2DExtensions show all values of non scalar input voxels (enabled by default). This is configurable in View2D Options panels and its settings panel under "Voxel Value". Already saved modules reload former behavior to provide compatibility.

  • Python

    • New module PythonArithmetic is similar to Arithmetic and offers to implement ML image processing by writing the processing code using inline Python/NumPy code in the panel of the module.

  • ImageCalculationDiagnosis offers diagnosis information about the ML image calculation properties of the connected input image to debug and optimize ML modules.

  • CSO:

    • Many improvements for CSOConvertTo3DMask.

    • Fixed multi-threading related bugs for CSOConvertToImage.

    • The module WEMClip now offers the generation of CSOs along the clipped WEM border.

  • ITK/VTK:

    • Upgrade to VTK version 5.7 from 30th of April 2010, about 346 new modules added, 33 removed, many more changed. See any vtk module help for details.

    • Bug fix: Missing shader support has been fixed.

    • Upgrade to ITK version 3.19 from April, 29th, 2010, 10-20pm MET from the CVS repository from http://www.itk.org. See any itk module help for details.

      • Fix in conversion between ML and ITK patient coordinate system which occurred when coordinate systems were rotated.

      • Revised: itkImageFileReader supports non scalar voxel types, uses less memory, has new open and close buttons, provides better path proposals while browsing and the options to enable/disable sub voxel shift in patient coordinate system.

      • New: itkImageFileWriter wrapped, providing the option to save images in numerous file formats and scalar and non scalar voxels types.

      • Many modules now are compiled also for 6 dimensions to support non 2D/3D cases.

      • Some improved example networks (of some itkLevelSet-, itkFastMarching-, and itkVectorConnectedComponentImage filters).

      • Invalid usage of flat kernel elements removed.

      • Some modules compiled with incorrect input/output type combinations fixed.

      • Metric modules revised: New setting makes it configurable when to update the FixedImageRegions parameter.

      • ITKSupport is part of the public sources now.

  • Misc

    • New module DicomTagBrowser which offers an improved view over DicomTagViewer of an image's DICOM tags

    • BaseBypass changed its behavior: It disconnects input and output if bypassing is off

    • MinMaxScan and BoundingBox update behavior changed: Since both modules cannot buffer the input image, (auto)UpdateMode == "off" was removed and redirected to "clear".

    • MergeRegions:

      • Fixed output image region computation for cases where the output world boundaries exactly hit the voxel boundaries (previously the box was one voxel to large in these cases). Now consistent with SubImage behavior, except that the MergeRegions module still allows for empty boxes.

      • Improved notification behavior

      • Many small improvements/fixes.

    • Marked output fields as non-persistent in many modules to improve diff-behavior of .mlab files

    • Decreased amount of unnecessary output notifications for various modules

    • Implemented bypassing for MinMaxScan when datatype does not change

    • Surround: Added border handling to UI (can be important if object boundary touches image border)

    • IntervalThresh Bugfixes:

      • For newMin/newMax: Disabled any clipping with respect to the input image type. This is no problem since no sliders and thus no min/max values are required (previously the value clipping could cause unwanted min/max values for subsequent images)

      • For center/width/min/max: Made sure to internally clamp the thresholds explicitly to the input image datatype range before their application (previously, a cast was performed which could result in false thresholds)

      • Now also clipping user values and computed output min/max against datatype boundaries.

    • Fixed Reformat crash: Previously, the Reformat module would crash in VirtualVolume mode under certain conditions: 1. Both previously invalid inputs were validated at the same time (possibly because they were derived from the same updated image). 2. The notification from the right input (input1) arrived first. 3. An ML module with an auto-update functionality requesting image data was located behind the reformat module.

    • Counter can now also handle floating point values

    • Added fieldHelper.js and fieldHelper.py script files for some convenience scripting functionality (mainly connecting fields/setting field values only if the field is not already connected/the field value is not identical, thus improving performance by preventing unwanted notifications)

    • StopWatch now has a 'pause' functionality

    • ExtractLabels now has up to 20 outputs and allows comments for each output

    • ImageLoadMulti:

      • Fixed an error that could occur when pressing 'parse list' from the parser setting UI

      • Added an option to treat all paths as relative, even when starting with a \, / or C: (disabled by default).

  • Fraunhofer MEVIS Release Packages (ThirdParty / Foundation / Release):

    • OpenCL support + MLOpenCLKernel1 module to experiment with OpenCL

    • OpenCV support (highgui Mac OS X 64-bit is experimental)

    • New OpenCV-based video camera back-end for VideoCapture module, supports Windows + Linux in addition to the QuickTime-based Mac OS X back-end.

    • New module FastMorphology for binary image morphology (dilation, erosion, closing, opening) (also in public sources)

    • New module ImageResample for fast(er) image resampling using integer resampling factors.

    • New module FFT for fast Fourier transformation in all 6 dimensions (also in public sources).

    • New module ImageBuffer.

    • New modules QuadratureFilter and QuadratureToTensor for filtering using log-Gabor filters and generation of structure/orientation tensors.

    • New XMarkerListModules: JitterXMarkerList, XMarkerListFilter, XMarkerAtIndex (also in public sources)

    • New project StochasticCollocation with many modules for managing piecewise multilinear functions and interpolation polynomials on sparse grids in arbitrarily many space dimensions.

    • New CSOUtils modules: CSOReduce, CSOSmooth, CSOMarkerGenerator and CSOConvertToXMarkerList (some parts are also in SDK and in public sources).

    • New project CurveUtils with modules CurveFilter, CurveGenerator, and CurveDownsample.

    • Many fixes in Arithmetic module.

    • Module TensorToEigensystem have a new eigenvalue sorting option and has been optimized for performance with a new math library.

    • New modules for DICOM import: DirectDicomImport, DirectDicomImportOutput, DirectDicomImportImageOutput, DirectDicomImportRTOutput, and DirectDicomImportSROutput. This newly developed package supports or example spectroscopy, radio therapy, structured reporting, gantry tilt files (some parts are in SDK interfaces).

    • New DiffusionMRI projects with ~30 new modules for diffusion imaging, including DTI preprocessing, visualiztaion, fiber tracking and fiber clustering

    • New experimental CTCompress2 data compressor available in MLImageFormat modules and MLDataCompressorFactory for CT and MR data (also in SDK and in public sources).

    • Some DICOM tool functions of project DICOMAccessories added to SDK interfaces.

  • Removed the module Window2 and replaced it with the module Scale.

  • Replaced ComposeVolumeFromSlices by ImageComposer module

qmake build system

  • The default for TEMPLATE in *.pro files has changed from TEMPLATE = lib to TEMPLATE = app. If you are using profiles that generate shared libraries/dlls your profile now needs to contain a TEMPLATE = lib line (which was already part of the MeVisLab module wizard in 2.0, but maybe you have profiles which miss that line, these need to be adapted).

Linux Edition

  • Known Problems

    • ImageLoad crashes if the png library encounters an error. This sometimes occurs when a png image is closed.

Mac OS X Edition

New Features:

  • MeVisLab IDE:

    • MeVisLab has been optimized for 64-bit Mac OS X

    • Mac OS X 10.6 Snow Leopard is fully supported (Mac OS X 10.5.2 Leopard or newer required)

    • The GUI Toolkit Style can be changed during startup of MeVisLab by pressing the Shift key

    • The GUI Toolkit Style can be changed using the -style <style> command line option. Possible values for <style> are 'Native' and 'Application'

    • The GUI Toolkit Style is indicated by the application icon

    • MeVisLab provides audio feedback to the user after a pressed key modifier has been recognized by the MeVisLab startup process

    • Experimental AppleScript support (see MeVisLab Mac OS X Edition User's Guide)

    • Help requested via command line is printed to the console (--help, -help, -h option)

  • MDL:

    • Added support for MoviePlayer control

    • Added experimental MacControl control to enable native Mac OS X user interface mockups referenced from Apple Interface Builder Nib files (see MacControlTest example module). Full source code of the control is included

  • SDK:

    • The MeVisLabProjectGenerator provides a contextual menu to .pro files in the Mac OS X 10.6 Finder

  • Documentation:

    • Updated MeVisLab Mac OS X Edition User's Guide

    • Updated OsiriX MeVisLab Bridge User's Guide

  • OsiriX MeVisLab Bridge:

    • OsiriX plugin:

      • Patient series can be sent directly to MeVisLab from the OsiriX Database Browser (plugin type is now 'Database')

      • Added XML-RPC support to the OsiriX plugin ('SendSelectedSeriesToMeVisLab' method)

    • OsiriXBridge MeVisLab module:

      • The user's temporary directory is used for conversion instead of /tmp if possible

      • DICOM import failure messages are displayed in the OsiriX MeVisLab Bridge module panel as well

      • Experimental support for DirectDicomImport module

Changed Behavior:

  • Modules:

    • The Accelerate.framework is no longer used by default if the module has a dependency on cblas or clapack ( CONFIG+=cblas / clapack ). Add macx_accelerate to the CONFIG variable in the projects .pro file ( CONFIG+=macx_accelerate ) if you want to employ the optimized version for Mac OS X.

    • SoGVRTransformedVolume, SoGVRTransformedVolumeSettings: The transformation matrix supplied by the user now replaces the WorldToVoxel matrix of the transformed volume, and is not multiplied to it any more.

Resolved Issues:

  • MeVisLab IDE:

    • Flickering of undetermined progress indicator

    • The undetermined progress indicator did not hide if the application became inactive

    • Displaying the Help menu could take a long time

    • IDE Toolbar icons were of different sizes depending on the chosen style

  • MeVisLab ADK:

    • Shipping MeVisLab standalone applications indicated the error state in the icon which is not desired

  • Modules:

    • Recording of QuickTime movies could fail on Snow Leopard (VideoCapture)

    • Apple Remote Control device support did not work for newer MacBook Pros (SoAppleRemoteDevice)

    • MeVisLab could crash while sending DICOM data from OsiriX if the conversion directory had not been set (OsiriXBridge)

    • Mouse double-click timing is no longer a fixed value but read from the user's settings in Mac OS X

    • Slicing in the View2D did not work well with pixel-scrolling mice (e.g., Mighty Mouse / Magic Mouse)

    • Improved sensitivity of mouse wheel in SoMouseGrabber for pixel-scrolling mice

    • MatlabScriptWrapper did not work with MATLAB 2010a because of a name clash in the boost libraries

Version 2.0 final (2009-06-03)

Additional Fixes for the Final Release Version

  • Improved performance of VCPROJ generation from *.pro files on Windows (qmake).

  • Reworked example networks of SoShader library.

  • IDE now also deletes .auto file when saving with "Save Copy As".

  • CSOConvertTo3DMask:

    • Added an option to use only the seed points for generating the implicit surface function (in contrast to using only the path points).

    • The CSOs can now optionally be smoothed internally by a spline approximation to diminish the oscillation of the resulting surface function.

  • CSOLiveWireProcessor: on changing the slice while generating a CSO, the module does not crash anymore and prints out a message that the current CSO (with its id) is invalid and should be removed.

  • SoView2DCSOEditor:

    • Fixed a bug where seed points of CSOs with only 1 or 2 seed points could not be moved.

    • Seed points under the mouse cursor are now rendered a little bit bigger.

  • WEMInfo: fixed an issue with fired notifications during processing which caused the IsoSurface macro to crash under certain circumstances.

  • TestPattern: fixed the interpolation of XRamp and YRamp for complex data types (vec, mat, complex, etc.).

  • fixed typos and errata in various documentations.

  • Added the ADK documentation to the ADK installer.

  • Fixed crash on exit of standalone MeVisLab applications.

  • Fixed example networks (replaced modules by publicly available modules): CSOMarkerGenerator, XMarkerListBounds, XMarkerShortestPath, SoGVRDrawOnPlane, SoViewPortRegion, SceneInspector.

  • Added GUI panels for: ComplexArithmetic1, ComplexArithmetic2, ComplexToReal.

  • HistogramPeakEstimate: fixed a bug which caused the y-values of the peaks to be set to their x-values.

Version 2.0 rc (2009-05-08)

Common Enhancements / Fixes (MeVisLab)

  • New MeVisLab package structure:

    • MeVisLab Modules are now managed in Packages.

    • All Tools work on the new package structure.

    • New MeVisLab Tool Runner that facilitates daily developer tasks:

      • Building documentation:

        • doxygen for source code.

        • DocBook for HTML and PDF documentation.

      • Generating project files:

        • .vcproj for Windows compilers (VC8 / VC9).

        • .xcodeproj for Mac OS X Xcode (instead of using the dedicated MeVisLabProjectGenerator).

        • Makefile for Linux gcc compilers.

      • Building of projects:

        • Supports IncrediBuild on Windows platforms.

        • Supports the analysis of project dependencies and the building of multiple projects in the correct order.

  • Revamped network rendering:

    • New module colors (distinguishable for all types of color-blindnesses).

    • Advanced selection highlighting:

      • Selected modules, attached connections and attached modules are visualized.

      • Hold SPACE to let the highlighting appear more articulate.

    • Mouse over highlighting for all network items.

    • Context menu for connections:

      • Display values of parameter connections.

      • Remove single / all connections.

    • Added interactive mini map for a better navigation.

    • Added visual grouping for modules.

    • Added notes for annotating a network.

    • Added placeholders for in/out connectors in internal networks of a macro.

    • Enabled the horizontal moving of connections.

    • Added many short cuts, for example:

      • For opening the automatic panel.

      • For opening the internal network of a macro.

      • For editing the instance name of a module.

    • Print modes for network (simple rendering / black & white rendering).

  • An enhanced way to place instantiated modules on a network did not make it into the release.

  • Enhanced Scripting methods:

    • MLAB.startXxxDrag methods can now take an icon and a hotspot location.

    • MLABFileManager.getExecutable().

    • MLABFileDialog.getExistingDirectory().

  • New Scripting methods:

    • MLAB.allModulesForPackageIdentifier()

    • MLAB.compilerInfo()

    • MLAB.qobjectInherits()

    • MLAB.runCommandDetached()

    • MLAB.showColorDialog()

    • MLAB.stringToEncodedUrlString()

    • MLABField.isConnectedToFieldInSameNetwork()

    • MLABFileManager.getExecutableOnLocalMachine()

    • MLABFileManager.macGetBundleSharedSupportDir()

    • MLABModule.createConnectors()

    • MLABModule.getPackage()

    • MLABModule.isDescendentOf()

    • MLABModule.package()

    • MLABModule.scriptVariable()

    • MLABModule.setScriptVariable()

    • MLABSqlQuery.lastInsertId()

    • MLABTabViewControl.setTabText()

    • MLABTabViewControl.setTabToolTip()

    • MLABTabViewControl.tabText()

    • MLABTabViewControl.tabToolTip()

    • MLABTextViewControl.selectedText()

    • MLABTree.findChildrenRecursive()

    • MLABWindowControl.isMinimized()

    • MLABWindowControl.showMinimized()

  • Removed Scripting methods:

    • MLAB.buildInformationVariable(): use information from MLABPackage

    • MLAB.buildInformationVariables(): use information from MLABPackage

    • MLAB.hasBuildInformationVariable()

    • MLABFileManager.getDocsDir(): use MLABPackage.documentationPath()

    • MLABFileManager.getExecutableDir(): use MLABFileManager.getExecutable()

    • MLABFileManager.getFileInfo()

  • Updated / added documentation:

    • Reviewed the ML Guide.

    • Added an elaborate Getting Started document that covers all first steps from building networks to building own modules in C++.

    • Added a MeVisLab Reference Manual that covers all GUI elements of MeVisLab.

    • Added documentation concerning the new package structure and all new tools.

  • Added support for Postgres and SQLite databases (see the MLABSqlDatabase and MLABSqlQuery scripting classes for general database support).

  • Other changes to the IDE:

    • The Python scripting console can be set to execute default commands on startup. These can be edited in the preferences dialog. Default is "from mevis import *".

    • MeVisLab got a new commandline option "-quick" for faster startup performance when the module database has not changed. Under Windows, look out for the MeVisLab icons with the red arrows on it to start MeVisLab quickly.

Common Enhancements / Fixes (Modules):

  • Renamed a number of modules. The old name is left as the 'deprecatedName' to ensure compatibility with old networks. Renamed modules are: CalcGradient, CalcVolume, CatCurves, ConcatImages, ConnectComp, ConstImg, ExtConvolution, ImgLoad, ImgPropConvert, ImgSave, ImgStat, JointHist, JointHistMask, MarkerStat, StdDeviation, Subimage, SubImageStat, VoxValueRescale, SoFrameBufferSampler, SoGVRVolRen, SimpleImgStat. The new names are mostly the non-abbreviated version, e.g. ImgStat becomes ImageStatistics.

  • Added SoShadow* modules group to cast and interact with shadows.

  • ML image file format default file extension has changed from .mif to .mlimage (.mif will still be recognized though).

  • SoTexture2 no longer crashes on Win+VC8. As a side effect it is no longer possible to load SGI Image files (.rgb). Supported are JPEG + GIF. See also SoMLTexture2 for additional image formats.

  • Added event consumption mechanisms for SoView2DExtensions and SoMouseGrabber.

  • SoView2DAnnotation has more display options.

  • Added new module SoViewportRegion to allow rendering into a specified region of the render area and to combine several renderings in one render area.

  • Added MovieCreator module, to allow writing image sequences as movie files.

  • The new SoMovieScripter module allows to rotate OpenInventor scenes automatically. It also offers the linear interpolation of a variety of variables over time.

  • New Arithmetic module for image arithmetic with general mathematical expressions.

  • New Calculator module for general mathematical expressions.

  • New TubularTracking module for tracking tubular structures and vessels.

  • New GaussSmoothing module for fast filtering with a Gaussian filter kernel.

  • New GaussGradient module for calculating the image gradient using a derivative-of-Gaussian approach.

  • New GaussHessian module for calculating the image Hessian using a derivative-of-Gaussian approach.

  • New Vesselness module for calculating a vesselness measure of an image.

  • New ImageWarp module for deforming an image according to a dense vector field.

  • New TensorToEigensystem module for calculating eigenvectors and eigenvalues for a tensor/matrix image.

  • Added DeMosaic module which extracts 4D data sets from fMRI and DTI data e.g. provided by SIEMENS scanners.

  • GVRImageToVolume and GVRVolumeLoad got a parameter "additionalTransformation" to change the world position of GVR volumes.

  • XMarkerLists:

    • New module InterpolateXMarkerList for interpolating new points in an XMarkerList.

    • New module XMarkerShortestPath for finding the shortest path between two points in an XMarkerList.

    • New module SmoothXMarkerList for smoothing the positions in an XMarkerList.

    • New module TravelingSalesman for finding the shortest route visiting all positions in an XMarkerList.

    • New module XMarkerListBounds for finding a bounding box or sphere enclosing all points in an XMarkerList.

    • New module XMarkerSamplePattern for sampling pre-defined point patterns.

    • New module XMarkerListMaxDistance for finding the max distance between points in an XMarkerList.

    • New module MarkerToMask for converting an XMarkerList into an image mask.

    • New module XMarkerListConvert for converting between world and voxel coordinates.

  • Added two new options to SigmaFilter that are disable by default:

    • Use Linear Weighting: If enabled, the kernel voxels in the Sigma Interval are not all weighted equally, but relative to their distance to its center.

    • Local StdDev Max: Specifies whether and against which value the computed local standard deviation is to be clamped prior to the definition of the sigma interval. This can be useful if there is a known maximum of the noise level, but adaptive filtering is still desired in the areas with lower noise.

  • RegionGrowing:

    • Fixed a missing enum string bug that could cause a crash on some platforms. Now all 4D neighborhoods are associated with the correct enum item name.

    • Previously, the DICOM tags RescaleIntercept and RescaleSlope were only read correctly if 'auto update unit type' was enabled. Now this happens always if 'HU' is selected as unit type (no matter if automatically or manually).

    • Previously, the unit type was not auto-updated when 'auto update unit type' was enabled with an already connected input image. This is now fixed.

    • Now the default HU intercept for images with no such DICOM information is 0 instead of -1024.

    • Reduced the number of (unnecessary) output notifications.

    • Output values are no longer clamped to the uint16 range.

    • Fixed some memory leaks introduced by the 4D extension.

    • Fixed boundary overlap computation for 4d images.

    • Improved 64 bit support.

  • MergeRegions:

    • MergeRegions now supports up to 20 in- and outputs (max number can be changed in MergeRegions.h).

    • Explicit region selection adapted, requires re-save of network to remove warnings. Deprecated modes still supported though, should be fully backwards compatible.

    • Inactive in/outputs are hidden in the MeVisLab module representation. Default number of in/outputs now 2.

    • Added some new merge modes.

    • Reduced the amount of inconsistencies in the merge modes, more consistent and better documented fillValue handling.

  • New MacroModule CombineLabels: The CombineLabels module is designed to simplify label image handling by allowing to add objects to an existing label image or combine them to create a new one. In contrast to mere OR operations with specified bitmasks, the module supports the invertible encoding of all pow(2, n) objects that can be represented by an n-bit label image and thus their separate extraction using the ExtractLabels module.

  • New Module ExtractLabels: The ExtractLabels module is designed to simplify label image handling by allowing to extract up to 10 objects identified via a specific (sub)bitmask from a given (integer) label image. In contrast to a mere AND operation with the bitmask, it allows the separate extraction of any of pow(2,n) objects that can be represented by an n-bit label image.

  • CSO:

    • CSOFilter: Implemented the filtering much more efficient.

    • CSOConvertTo3DMask: The starting condition for scanning the surface is more stable now. Also added a debug mode for very large surfaces / huge amount of CSOs.

    • CSOConvertToImage: Fixed an issue with the calculation of the voxel bounding box.

    • CSOBase: Fixed some issues with the computation of the normal and area of a CSO.

    • SoView2DCSOEditor:

      • The display of and the interaction with a CSO can now be limited to CSOs that lie in the current viewer's plane.

      • If a CSO is edited so that it would be not in-plane anymore, it can optionally be auto-leveled.

    • SoCSO3DVis supports now a StylePalette.

  • WEM:

    • New module WEMPVL that generates PVLs for existing WEMs and can be used for testing.

    • Fixed issues with the copying of WEMPVLs; PVL values are also now generated for newly added primitves (i.e. in WEMSubdivide).

    • New module WEMMerge that merges all patches of incoming WEMs into one output WEM.

    • Added methods to automatically close holes in a WEM.

    • New modules SoView2DWEMContour, SoWEMInteract and WEMExtrude: can be used to draw contours on a 3D viewer and to extrude those contours to become a WEM which in turn can be used with the WEMBoolOp to interactively shape surfaces.

  • ITK:

    • Upgrade to ITK version 3.9 from September, 4th, 2008. Some modules wrapping classes from itk review directory have been removed since licensing is not clear or since they were not useful. For details see technical notes in module help of any wrapped itk module.

  • VTK:

    • Upgrade to VTK version 5.3 from September, 3rd, 2008. For details see technical notes in module help of any wrapped vtk module.

Mac OS X Edition

  • New Features:

    • MeVisLab IDE:

      • This release has been optimized to run on Mac OS X 10.5 (Leopard) or better. As a result, MeVisLab does no longer run on Mac OS X 10.4 (Tiger).

      • The MeVisLab application bundle now contains a debug and a release mode version of MeVisLab that can be started separately (press the Option key during launch to toggle the version; other methods to choose a version include the Preferences dialog or command line options).

      • An option has been added to the Preferences that allows you to choose an alternative IDE toolkit style (used for cross-platform application development).

      • MeVisLab is now Time Machine aware, log and temporary files are excluded from backup.

      • The Busy Cursor has been replaced by a more descriptive panel using an indeterminated progress indicator + text.

      • Additional document icons for ML Image (.mlimage), GVR (.gvr), and Open Inventor (.iv) files have been included.

    • Image Formats:

      • A new ML Image IO (a.k.a. MFL) plugin has been included that interfaces with the Mac OS X Image IO framework and makes most of the Mac OS X image formats readable by MeVisLab (e.g. ImageLoad). Some of the new formats now supported are: JPEG-2000, Adobe Photoshop, Camera-RAW (Canon, Nikon, ...), GIF, Radiance, Quicktime Images, DNG, PICT, Targa, SGI Image, Windows + Mac Icons, PDF Images. Images may contain multiple layers.

    • DicomService:

      • The DicomService is now part of the MeVisLab application bundle and does no longer require a separate download.

    • SDK:

      • The MeVisLabProjectGenerator (a.k.a. MacProfileTranslator) has been completely rewritten and may now be used in GUI mode (default) or from the command line (see '.../MeVisLab.app/Contents/Support/MeVisLabProjectGenerator.app/Contents/MacOS/MeVisLabProjectGenerator --help' for available options).

      • Support for the RELATEDFILES project variable (.pro files) has been added. It allows you to add related files (e.g. .def or .html files) to a 'Related Files' group in the 'Groups & Files' list of your Xcode workspace window for quick access.

    • Documentation:

      • Expanded and revised users guide MeVisLab Mac OS X Edition.

      • New document OsiriX MeVisLab Bridge.

    • Modules:

      • New ML module VideoCapture, that uses Core Video to provide live video input for all video devices supported by Mac OS X - try your iSight (also in SDK interfaces).

      • Updated OsiriX MeVisLab Bridge that supports and requires OsiriX 3.3 or later.

  • Bug Fixes:

    • MeVisLab IDE:

      • The hidden panel issue has been fixed (module panels did not show up sometimes).

      • The styles font size mismatch between Mac OS X and Windows version has been resolved (now the same font size given in point results in approximately the same pixel size on Mac OS X and Windows).

      • The automatic calculation of available texture memory for newer graphics cards has been improved.

  • Important:

    • Some of the MeVisLab helper tools have changed their name and/or id. Sometimes the Mac OS X application database (a.k.a. launch services database) does not detect the changes as soon as you would like. To be on the safe side, execute the following command-line in the Terminal to rebuild the application database after you've installed MeVisLab:

    • /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister             -kill -r -domain local -domain system -domain             user
  • Notes:

    • Leave the available texture memory setting in the MeVisLab preferences untouched for the new MacBook Pro with NVIDIA 9400&9600 chipset (5th generation), MeVisLab will automatically calculate the exact amount of texture memory for the currently active graphic chip (according to the energy settings). You may remove any manual overwriting of the texture memory setting by executing the following command-line in the Terminal:

    • defaults delete de.mevis.MeVisLab             GlobalSettings.TextureMemoryInMB

Windows Edition

  • Known issues:

    • 64bit version of MeVisLab is missing the ctypes Python module, because this cannot be build on 64bit Windows.

Linux Edition

  • Changes of the development scripts:

    • MeVisLab.sh and init.sh do not exist anymore.

    • New scripts exist in >MeVisLab-Install-Path</bin. Their purpose is to call commands with certain environment variables set:

      • MeVisLab and MeVisLab_d will start MeVisLab in release and debug mode.

      • mlmake will build MeVisLab projects. It will create the makefiles if they do not exist already by calling the bash script next to the pro-file.

      • mlgdb starts the gdb. If no arguments are given, then MeVisLab will be debugged.

      • MeVisLabPackageScanner runs the MeVisLab package scanner.

      • ToolRunner starts the tool runner.

      • mlbash starts a bash session.

      • mlcodeblocks starts the codeblocks IDE.

Version 1.6.1 (2008-08-24)

Common Enhancements / Fixes (MeVisLab)

  • ML:

    • Subtle bug in priority management of the ML Cache fixed. It required an ML interface change and update to version number 1.8.68.23.87 in mlVersion.h. Relink all libraries dependent on the ML.

  • MDL:

    • The abstract Control got an attribute destroyedCommand mirroring the initCommand.

  • Scripting:

    • MeVisLab pointer objects (e.g. controls) can now directly be used as keys in Python dictionaries.

Common Enhancements / Fixes (Modules)

  • MemCache:

    • Fixed: Module MemCache always returned the first output of a connected module, not the connected output.

  • eatDicom:

    • fixed the scanning of scouting images, where some mandatory information could be left unset, like the PatientOrientation; in those cases, a message is printed to the console and the according structures are filled with 0.

  • DICOM macros:

    • Added new module DicomQuery to query and retrieve data from a DICOM server. It's quite basic at the moment, suggestions are welcome.

  • CSO:

    • CSOLiveWireProcessor: fixed a memory leak

    • CSOIsoGenerator: fixed a memory leak

    • CSOPathPointIterator: new helper structure

    • CSOAffineTransformation: fixed numerous update issues

    • CSOFreehandProcessor: added a field for adjusting the interpolation fineness, so that contours can now be drawn onto very small images with a very high zooming level

    • CSOFilter: fixed a bug that could lead to crash if the filter string was left empty

    • CSOFilter: added filter criterion for CSOs and CSOGroups: timepoint

    • CSOLoad: uses now ifstreams internally (enables the use of UTF8 characters in the path)

    • SoView2DCSOEditor: added a missing CSO_FINISHED notification

    • SoView2DCSOEditor: the picking is now more accurate

    • SoView2DCSOEditor: the module can now render correctly in 3D

    • CSO library: added undo/redo for removing/adding whole sets of CSOs

    • CSO API: changed 'get'-methods to be 'const' where possible

  • WEM:

    • WEMClip: re-added module

    • WEMBoolOp: fixed triangulation issues

    • WEMLoad: added an 'Unload' function, fixed a bug that could lead to a crash if a lot of small WEMPatches were loaded

    • WEMSubdivide: fixed a bug that could lead to a crash if the surface has holes

    • WEMSubdivide: enhanced the speed of the module greatly

    • SoWEMRenderer: fixed an issue with the coloring of nodes

    • WEM API: added new temporary structure: WEMIndexedFace

    • WEM GUI API: added new GUI substructures

  • Viewers:

    • Stereo viewing couldn't be activated on the OpenInventor viewers, even if the graphics card supported this. (You need to enable the context menu for this and set this from the preferences dialog.)

Mac OS X Edition

  • MeVisLab startup time has been greatly reduced

Windows Edition

  • Fixed a problem when building projects where the project file name contained a dash

Version 1.6 (2008-03-25)

Common Enhancements / Fixes (MeVisLab)

  • New welcome screen for MeVisLab.

  • Automatic detection of usable screen space.

  • New integrated TextEditor (called MATE) with syntax highlighting, indention, completion and a context sensitive help (F1, ⌘+?).

    • Note: Currently, MATE uses latin-1 encoding for text files on all platforms

  • Improved Scripting consoles

    • Advanced JavaScript and Python completion.

    • Context sensitive help (F1, ⌘+?).

  • Enhanced Scripting methods:

    • MLAB.showInformation()

    • MLAB.showWarning()

    • MLAB.showCritical()

  • New Scripting methods:

    • MLAB.showQuestion()

    • MLAB.computerModelInfo()

    • MLAB.[macro|ml|inventor]Modules(), MLAB.all[Macro|ML|Inventor]Modules()

    • MLABFileManager.moveFileToTrash()

  • Python binding

    • Fixed writing of bad .pyc files when .py files have a syntax error.

    • Fixed auto-reloading of modules when a python file was changed after it had a syntax error.

    • Python errors are now printed with the courier font so allow locating the ^ marker in syntax errors.

    • If a MDL command is connected to a Python function/method, the Python function may now have less arguments than the command provides. Surplus arguments are ignored.

  • MDL

    • TextView now supports showLineNumbers = BOOL and syntaxHighlighing = (Python|QSA|MDL|GLSL).

    • LineEdit: new command lostFocusCommand.

  • SDK

    • Module wizard for ML modules improved with many new features and tooltips with references into detail documentation of ML Guide.

    • Now the Toolbox Reference uses improved doxygen layout, many classes and files have better, fixed or completed documentation and alphabetical class index.

Core Revision

  • Glut removal: Glut was only provided as a prebuild binary for the windows platform. Options would have been to provide a 64bit version of glut or to remove it from netsrc. The second choice has been selected (Glut was used for font rendering only, but libraries like ftgl can handle that much better.).

    • Removed glut from netsrc.

    • Added a bridge to MLOpenGL (see mlGL2DFont.{h,cpp}).

    • Examples of usage can be found in MLMiscModulesInv (see mlDiagram2D.{h,cpp}) and SoView2D (extends the GL2DFont class toward text rendering and usage of unicode strings).

  • GL and GLU removal: Both libs should be available on any recent system (as far as it is known, exceptions have been Win95, Win98 and WinME).

  • MLSystemInfo: Inlined assembly is not supported by the VC8-64 compiler. Therefore gathering system information has to be done with outlined assembly on this platform. This is done inside this new project that returns information on available extensions (like MMX, SSE, 3DNow, ...), number of virtual processors, cache sizes and other CPU info.

Common Enhancements / Fixes (Modules)

  • WEM library reworked: a WEM is now actually a list of WEMPatches of different type (WEMTrianglePatch, WEMQuadPatch or WEMPolygonPatch).

    • Split the WEM library into a core part and into a modules part (MLWEM and MLWEMModules).

    • Removed: WEMBrowser, WEMClip, WEMMerge

    • Renamed: WEMCollapseEdges -> WEMReducePolygons

    • Renamed: WEMSplitEdges -> WEMSubdivide

    • Renamed: WEMPurge -> WEMDemergePatches

    • Use WEMInfo instead of the removed WEMBoundingBox

    • Use BaseSwitch instead of the removed WEMSwitch

  • CSO: fixes and new modules

    • Split the CSO library into a core part and into a modules part (MLCSO and MLCSOModules).

    • Reworked CSOConvertToImage: this module works now with a page-based concept and has a OnDemand mode.

    • New processors: CSOModifyProcessor and CSOBulgeProcessor, both to modify existing CSOs.

    • New processor: CSOLiveWireProcessor for a semi-automatic segmentation.

    • SoView2DCSOEditor displays closed and fully visible CSOs in a filled manner.

    • CSOIsoGenerator offers several filtering and smoothing options.

  • SoGVRVolRen no longer supports legacy hardware LUTs (using EXT_paletted_texture) , which was last seen on NVidia GeForce3 cards (but rendering still works on these cards).

  • SoGVRSecondaryLUT and SoGVRSecondaryVolume support a variable number of LUTs and additional octree volumes in the renderer.

  • SoGVRTransformedVolume and SoGVRTransformedVolumeSettings allow so set additional volumes as 3D textures.

  • SoGVRShaderDiagnosis allows to view the shaders which the GVR generates.

  • SoShader: fixes and new modules

    • Shader modules now have GLSL syntax highlighting.

    • Added SoMLSampler1D and SoMLSamplerCubeMap.

  • Some new modules have been introduced:

    • AccumulateImage: Accumulates images (MPRs) in one image.

    • PointCloudToMask: Converts a list of pairs of points and normals (surface) to a smoothed distance image or a 3D mask.

    • TextureFilter: Applies statistic texture filters to an image.

    • MarkerStat: Computes statistical information on a marker list.

    • DtfSkeletonization: 3D distance transformation by homotopic thinning, skeletonization (replaces module Skeletonization).

    • SoCameraAnimation: Rotates a camera around an Inventor scene in a smooth pan.

    • SoMLLUTChangeColor: Modifies output of SoMLLUT modules.

    • SoMLSampler1D, SoMLSamplerCubeMap: similar to SoMLSampler2D and SoMLSampler3D.

    • BaseBypass: Like the Bypass module just for Base inputs.

    • OSType: Provides basic operating system information.

    • SoBoundingBoxVis: Computes and visualizes an axis aligned bounding box for an arbitrary OpenInventor scene.

    • SoVascularSystem: visualizes vascular systems (vessel graphs) generated by DtfSkeletonization.

    • DRR: module for computing a 2D digitally reconstructed radiograph image out of a 3D CT-image.

  • ColorModelConvert: Now supports color models LAB and XYZ.

  • CoreControl: Has been extended.

  • DistFromXMarkerList: Added calculation of maximum distance.

  • EuclideanDTF: Has been re-implemented.

  • FuzzyCluster: Has been re-worked.

  • HistogramParameters: Calculates a second user defined quantile.

  • ImgLoad: automatic load can be suppressed.

  • ImgPropConvert: Voxel Size and World Matrix are now kept consistent even with no input image connected.

  • MergeRegions:

    • Fixed a bug that could cause a 1-voxel translation of output regions created as intersections or unions of input images for non-diagonal world matrices.

    • Fixed a potential problem in output world matrix creation for merging regions in color images.

    • Improved UI.

  • MPR, MPRPath: Got new visualization parameters.

  • Reformat: Added a field for the Euler angles.

  • RegionGrowing: Added 4D capabilities.

  • Sobel3D: Fields have been renamed.

  • StringUtils: New mode ToASCII added for conversion of character values to ASCII numbers.

  • Switch: Now up to 25 inputs are available.

  • So3DXMarker: Has two drawing modes now: fast or correct.

  • SoDepthPeelRenderer: Has been reworked and should produce better results.

  • A lot of work was done on SoView2D and its extension modules, some changes are:

    • All help files and example networks have been reworked.

    • SoView2D: Added field "sliceZoomSynchronized" which updates the slice-origin when zooming. This allows to keep the viewing center in the middle of the view when updating the sliceZoom via a field synchronization.

    • SoView2D: Added field "updateInventorEvent". If this is set to "true", the following inventor nodes will not react to events that have been handled by a SoView2DExtensions.

    • SoView2D: New field "plane" contains the plane of the current slice.

    • SoView2DAnnotation: Some fields introduced to get a reliable automatic font sizing.

    • SoView2DMarkerEditor: Added option "snapToSlice" to translate any moved marker to the current slice.

  • BoolInt: Also returns inverted bool value.

  • DicomTool: Can take name template for file names.

  • MarkerListInspector: Lots of new options.

  • There are also a lot of other minor changes which don't appear in this document.

Mac OS X Edition

  • MeVisLab changes:

    • MeVisLab does no longer run on PowerPC-based Macintosh computers. This release has been optimized to run on Macintosh computers with an Intel processor.

    • Added Mac OS X 10.5 (Leopard) compatibility; MeVisLab 1.6 runs on Mac OS X 10.4.11 or 10.5.x

    • Added 'Restart With Current Networks' feature (File menu).

    • Improved handling of non-latin1 language settings.

    • Added multiple instances support, now more than one MeVisLab application can be used at the same time.

    • Added command-line support ('cmdline' license feature required).

    • Added Mac OS X Spotlight metadata importer (MeVisLabDocuments.mdimporter) that allows indexing of uncrypted MeVisLab script (.script) and definition files (.def).

    • Added Mac OS X Quick Look generator (MeVisLabDocuments.qlgenerator) for MeVisLab network files (.mlab) that enables previewing of MeVisLab networks. It requires networks to be saved by MeVisLab running on Mac OS X 10.5 (the preview gets added to the resource fork of the MeVisLab network file, thus does not affect loading and parsing of the network).

    • Added Mac OS X Quick Look support for MeVisLab script (.script) and definition files (.def) via standard Quick Look generators for text on Mac OS X 10.5.

    • Adapted shortcuts to be more consistent on Mac OS X.

    • Autodetect amount of video RAM on the graphics card (used by the volume renderer and other GPU-intensive tasks).

  • MeVisLab Mac OS X Edition User's Guide changes:

    • PowerPC sections removed

    • Spotlight importer plugin added

    • Quick Look integration added

    • Setup of User Projects Location added

    • Using the Module Wizards added

    • Creating an Xcode project from a .pro file updated

    • Debugging MeVisLab modules with Xcode added

    • Developing on Leopard for Tiger added

    • Obtaining Source Codes of MeVisLab Modules added

    • Integrating MeVisLab with OsiriX added

  • MeVisLabDicomService changes:

    • Added Mac OS X 10.5 compatibility. There are separate installers for Mac OS X 10.4 (Tiger) and Mac

      OS X 10.5 (Leopard). Please choose the appropriate installer for your Mac OS X version.

  • Module changes:

    • Added an experimental bridge between MeVisLab and OsiriX 3.0 (Advanced Mac OS X PACS Viewer) consisting of the OsiriXMeVisLabBridge plugin for OsiriX 3.0 and the MeVisLab module OsiriXBridge. This bridge enables OsiriX to send datasets directly to the MeVisLab imaging pipeline using a standard ImgLoad module (see the example network of the OsiriXBridge module). After processing the dataset, MeVisLab may send the modified data back to OsiriX. The plugin and the module require Mac OS X 10.5 (Leopard). The source codes of both the plugin and the module are included in the MeVisLab public sources package

    • Added check for user interaction in volume renderer (GVR); rendering large volumes should be more responsive now.

  • Scripting changes:

    • Added MLAB.macIsApplicationRunning(bundleId)

  • SDK changes:

    • Added MacOSSupport SDK that wraps Mac OS X specific functionality in C++ classes. See the MeVisLab Toolbox Reference.

    • Added AppleScript xcode-prepare-debug.applescript to automatically setup an MeVisLab module Xcode project for debugging (located within the MeVisLab.app bundle in /Contents/SharedSupport/Scripts/).

Linux Edition

  • All projects are now linked with the option '-z defs' in order to check all symbols at linking time. To turn this option off, add a CONFIG += NO_LIBRARY_DEPENDENCY_ERROR_CHECK to a project's .pro-file.

MeVisLab Public Sources Installer

  • Sources of many projects added:

    • MLBase

    • MLBinaryTree

    • MLGeometry

    • SoLUTTools

    • SoMLSupport

    • SoFlash

    • SoShader

    • SoQtMeVis

    • SoTensorFieldVis

    • SoVirtualVolume

    • OsiriXMeVisLabBridge & MLOsiriXBridge

ML, mlLinearAlgebra, mlUtils and Image Processing For details about the following changes see the ML release notes in mlDoc.h.

  • New version number 1.8.67.23.86 which includes binary and compile interface changes. Some source will require updates before they compile again.

  • Fixed: day() function in DateTime class now returns the correct day instead of always 0.

  • Many constants and macros (e.g. from mlLinearAlgebraDefs.h), ML and mlUtils without ML_-prefix renamed or even removed if they are available on common system.

  • Many interfaces, parameters and internal structures changed for 64 port, activation of 64 bit warnings on VC8 and non WIN32 platforms.

  • New and changed image processing properties in BaseOp class for bypassing, multithreading.

  • Revision of basic multithreading support in mlUtils, new class Mutex introduced which replaced mlCriticalSection.

  • File system interface in mlUtils changed for 64 bit fixes and new functions added.

  • Partial refactoring and revision of header files of project MLBase. Some stuff now located in its own header files such as CurveData, CurveList (from mlDiagramData.h), ParserBase, BaseItemParser (from mlListParser.h).

  • Access to id of BaseItem only via functions from now on.

  • New macros ML_PRINT_INFO and ML_PRINT_INFORMATION.

  • Bugfixes in cursor movements and new functions for bounding box calculations and BitImage to BitImage copying in BitImage class.

  • Fixed: Calculation of image statistics in ImageStat module when image has more than 3 dimensions.

  • New error codes in mlTypeDefs.h and some MLErrorCodeDescriptions renamed or added, e.g MLOk string renamed to Ok.

  • Runtime type system in mlUtils has new functions or paarmeters for class, dll, and inheritance dependencies.

  • Fixed: MLImageFormatLoad cannot read nonwritable files.

  • Many sections in ML Guide improved with new details and examples.

  • Fixed: TextureFilter module crashing on non Win32 platforms.

  • Fixed: KernelEditor creating wrong kernel strings on non Win32 platforms.

  • Fixed: TimeCounter in mlUtils used/returned incorrect time units on different platforms. This lead to complete revision of the class interface. Interface was not clear enough such that a complete revision was necessary. It is not compile compatible any more and requires revision of the places of use. See header or SDK documentation for new interfaces.

  • New module FloydSteinberg.

  • New module ImageCompare.

  • New Module CommandNotifyer.

  • New module BitImageArithmetic, MLToBitImage, and BitImageToML in project BitImageTools as well as improved source box/region suppport and bug fixes.

ITK & VTK:

  • Help pages revised and additional module specific information and limitations added.

  • Many ITK and VTK modules now support correct conversion of world matrix and voxel size settings to itk/vtk orientation and voxel scaling. In some cases (e.g. ITK registration modules) this may change module behaviour slightly.

  • Wrapper modules for itk/vtk classes have hyperlinks in parameter panels to doxygen class documentation.

  • ITKVTKGenerator now supports the suppression of export symbols from user defined libraries and supports creation of platform dependent modules.

  • Fixed minor bugs, typos in GUI, additional information.

  • ITK:

    • Missing Sigma parameters and limitations fixed in itkGradientRecursiveGaussianImageFilter, itkGradientMagnitudeRecursiveGaussianImageFilter, itkLaplacianRecursiveGaussianImageFilter, itkHessianRecursiveGaussianImageFilter.

    • Fix in region calculation of itkLaplacianRecursiveGaussianImageFilter.

    • Fixed invalid connectors of modules:

      • itkCannySegmentationIF,

      • itkCurvesLevelSetIF,

      • itkGeodesicActiveContourLevelSetIF,

      • itkGeodesicActiveContourShapePriorIF,

      • itkLaplacianSegmentationIF,

      • itkShapeDetectionLevelSetIF,

      • itkThresholdSegmentationLevelSetIF, and

      • itkVectorThresholdSegmentationLevelSetImageFilter.

    • New itk classes wrapped as modules:

      • itkBinaryMorphologicalClosingImageFilter,

      • itkBinaryMorphologicalOpeningImageFilter,

      • itkBinaryProjectionImageFilter,

      • itkBinaryThresholdProjectionImageFilter,

      • itkMaximumProjectionImageFilter,

      • itkMeanProjectionImageFilter,

      • itkMedianProjectionImageFilter,

      • itkMinimumProjectionImageFilter,

      • itkMorphologicalWatershedFromMarkersImageFilter,

      • itkMorphologicalWatershedImageFilter,

      • itkNarrowBandCurvesLevelSetImageFilter,

      • itkNarrowBandThresholdSegmentationLevelSetImageFilter,

      • itkRegionalMaximaImageFilter,

      • itkRegionalMinimaImageFilter,

      • itkStandardDeviationProjectionImageFilter,

      • itkSumProjectionImageFilter,

      • itkValuedRegionalMaximaImageFilter, and

      • itkValuedRegionalMinimaImageFilter.

  • VTK:

    • Pop up window of vtk modules suppressed; errors are redirected to MeVisLab console and ML error manager now.

    • 56 new vtk classes wrapped, 51 useless classes removed. See the module comparison for details.

    • vtkInputInfos shows more information about connected input classes.

Version 1.5.2 (2007-11-09)

MeVisLab Core and IDE:

  • Fixed a bug causing screenshots to capture the wrong display area on Windows and Linux systems

  • Fixed uncheckable MLABPopupMenuItems

  • Fixed handling of html file urls with spaces

  • Mac OS X Platform:

    • The 1.5.x editions are the last releases for the PowerPC-based Macintosh computers. The next major revision will be only available for Macintosh computers with an Intel processor.

    • Fixed crash occuring when closing MeVisLab with image connector preview on

    • Fixed placing of About and SystemInfo windows in panel child mode

    • Removed obsolete 'Default FileDialog path' field in preferences panel

    • Improved creation of Xcode 3 projects from *.pro files on Mac OS X 10.5 (Leopard is not officially supported yet)

MeVisLab MDL/Scripting:

  • Fixed MLABGraphics/MFLImageIOPlugin bug: bmp files are written correctly now

  • Fixed preferences file parsing: system and debug/release variables are now defined before reading prefs

  • Fixed usage of QWidget.setVisible()

  • Added operation system version number variable for Mac OS X (MACOS_10_4 or MACOS_10_5)

  • Fixed signing of Python files for Mac OS X and Linux

  • Fixed shouldCloseCommand, which was not able to prevent window closing

Core Libraries:

  • DICOM:

    • ImgSave: Fixed memory leak saving DICOM slices

    • ImgSave: Fixed swapping of voxel size x/y in stored DICOM images

    • eatDicom: Fixed number format in output information with the -rules option

  • 2D Viewing:

    • Fixed a potential memory leak in SoView2D if in mosaic mode and a slice step other than 1 is used

  • Volume Rendering:

    • Fixed crash in GVRVolumeSave when a none DICOM file was attached and automatic filename was enabled

    • Fixed bug in SoGVRVolRen occuring with color dimension c==2 was given. Color == 2 is NOT supported by the GVR

    • Improved interaction with large volumes by adding render abort on interaction for Mac OS X

  • CSO:

    • Fixed memory leaks

    • Fixed handling of Group and List rules

    • Fixes in the CSOMath class

    • CSOConvertTo3DMask now reduces the amount of considered points automatically, making the module much faster and stable

    • Fixes in the convertor modules (double computation, internal hash keying, output image min/max values)

    • Fixes in the SoView2DCSOEditor: editing of non-parallel CSOs (relative to the current viewer's plane) and moving a CSO while editing

    • CSOIsoProcessor: Enabled further editing of existing CSOs

  • Object Manager:

    • Fixed crash in ObjLoader occuring when 'use loader with name' is non-empty and does not refer to a valid loader name

Modules:

  • MLOffscreenRender works better now, fields for transparency and stencil buffer added

  • Diagram2D: Fixed occasional crash on disconnecting input object

  • MergeLists: Fixed a bug that lead to a crash under Windows Visual Studio 2005 (VC8)

  • SoLUTEDitor: Fixed a bug that caused the module to hang if a new range with a min and max value both outside the original range was set

  • JointHist: Fixed a bug that caused an invalid diagram output of the histogram of the first image if its bin size was greater/equal than of the histogram of the second input image

  • ImageStat: Fixed invalid bounding box calculations on images with c-, t-, or u-extent > 1

  • Draw3D: Fixed incorrect 2D and 3D fill operations

  • MLImageFormatSave: Missing documentation of compression options and their additional parameters added

Add-On's:

  • ITK: Many itkLevelSetImageFilters with invalid function connectors have been fixed (itkCannySegmentation-, itkCurves-, itkGeodesicActiveContour-, itkGeodesicActiveContourShapePrior-, itkLaplacianSegmentation-, itkShapeDetection-, itkThresholdSegmentation-, itkVectorThresholdSegmentationLevelSetImageFilter),

Version 1.5.1 (2007-08-31)

MeVisLab IDE:

  • Fixed inconsistencies when pressing the up or down key in the quick module search.

  • Fixed editing of list view items that were not added initially.

  • Fixed a bug when module windows in an unregistered MeVisLab were not expanding.

MeVisLab MDL/Scripting:

  • MDL validator did not include the LineEdit's lostFocusCommand.

  • An unnamed LineEdit control now shows a blinking cursor.

  • Fixed a bug in the ButtonBar: It had always a minimum size, which was not a desired behavior.

  • Fixed the shell script template MLModule.sh, which is used by the MLModuleWizard.

Core Libraries:

  • Fixed a bug in eatDicom where number to string conversion resulted in an endless loop.

  • Fixed eatDicom problems related to output paths with umlauts and non-latin1 encoded input files.

Modules:

  • HistogramPeakEstimate: crash if the given VOI was empty.

  • LoadBase: crash if an empty list was loaded.

  • CSOConvertToImage: crash if CSOs were to be converted to different time points.

  • SoTensorFieldVis: wrong colors if a color image and a vec3/vecf3/mat3 image was attached.

  • RasterFunction: corrected a half-voxel issue, so that primitives with a scale value of 1 are correctly rastered now.

  • RasterFunction: a scale value of 0 now leads to an empty image and no matrix errors are printed out anymore.

  • StringUtils: case-insensitive string comparsion always returned 'EQUAL'.

  • MPR in ForceUpright mode now keeps the size of the field of view.

  • Added a field Time Point to the macro View3D.

  • Changed the evaluation of the parameter depthVisibility on the SoView2DMarkerEditor.

  • Fixed export of time point information in ImgSave and DicomTool modules

  • MLABMoviePlayerControl: the loop option did not control the looping of the player (Windows).

Mac OS X Platform: Note: The 1.5.x editions will be last releases for the PowerPC-based Macintosh computers. The next major revision will only be available for Macintosh computers with an Intel processor.

  • GUI inconsistencies and MeVisLab style support have been fixed.

  • Screenshots of OpenGL renderings are now fully supported.

  • Movie generation within MeVisLab has been added using Apple's Quicktime.

  • Better font size match for certain GUI controls.

  • A dialog misplacement of the 'save as' dialog in the screenshot gallery has been fixed.

  • Frequent authorization requests during DicomService installation have been fixed.

  • The 'storescp' zombie when terminating the DicomService is fixed.

  • More robust font management for SoView2D.

Version 1.5 (2007-05-21)

Installation:

  • New platforms supported:

    • Windows with VC7 or VC8 development environments

    • Mac OS X

      • Minimum system requirements:

        • Macintosh computer with PowerPC G4, G5, or Intel Core processor; 1 GB RAM

        • ATI Radeon 9600 or NVIDIA GeForce FX 5200, 1280x800 screen resolution

        • 2 GB of available hard disk space

        • Mac OS X 10.4.8

        • Apple Xcode 2.4 or later for module development

      • Recommended system:

        • Mac Pro, 4 GB RAM

        • ATI Radeon X1900, 1920x1200 screen resolution

    • Note: The main platform supported by MeVisLab is still the Windows VC6 environment. The Windows VC7/8 and Mac OS X versions are offered as beta versions. The Mac OS X PowerPC version is completely unsupported and only provided for non-commercial installations.

  • The MeVisLab 1.5 settings are partly incompatible with the MeVisLab 1.4 settings, especially the user defined IDE layouts will be lost.

MeVisLab Core:

  • Major revisions in all core libraries

    • Migrated from application framework Qt3 to Qt4

    • OpenInventor-Qt-binding SoQt (Coin3D) has been replaced by SoQtMeVis (port from SoXt to Qt4). The modified sources and additional documentation are available for download at www.mevislab.de/inventor.

    • All third-party libraries have been updated to current versions.

  • New PythonQt binding for Qt4 (see also pythonqt.sourceforge.net)

    • Update to Python 2.5

    • Support for Python remote debugging (see MeVisLab Scripting Reference: Python: Section on Debugging)

    • New auto-completion feature in Python scripting console

    • The new Python binding changes the interface to several QVariant types, including QSize, QRect, QPoint, QDate, QDateTime, QTime. Where these classes are used within Python scripting, the property access typically has to be changed into a method call (e.g. instead of size.height user size.height()).

    • New builtin help() function which can be called with any Python or MeVisLab Object as its argument

MeVisLab IDE:

  • New output inspectors for marker lists and CSO contour objects (see below), improved existing inspectors

  • New tab bar for switching between open network windows

  • New command to search for a module in the current network (Ctrl+F)

  • Plain (un-fancy) network rendering mode has been removed.

MeVisLab MDL/Scripting:

  • The TabView control now supports "mode = left" and "mode = right" alignment of Tabs.

  • The Splitter control now has "color" and "shadow" tags.

  • The Box control has a "boxCheckedField" tag which can be used to enable/disable a Box with a checkbox.

  • The ColorEdit control has an "edit" tag that can be used to disable editing of the color.

  • The Field control has a new tag "useSheet" to control the use of "sheets" for dialog displays (only used on Mac OS X).

Open Inventor:

  • Open Inventor is now part of the MeVisLab SDK, no separate installation is needed.

  • New getName() method available in the C++ code of an Inventor node, returns the module's instance name

  • Improved font handling in the SoFont and SoFontStyle modules:

    • On Windows, a font file with the specified font name and one of the extensions "", ".ttf", ".pfa", ".pfb", ".otf" is searched in the Windows font directory.

    • On Linux, a font file with the specified font name and one of the extensions "", ".ttf", ".pfa", ".pfb", ".otf" is searched in /usr/share/data/fonts or in the directory pointed to by the FL_FONT_PATH environment variable.

    • On Mac OS X, fonts are loaded using the Apple Type Services. A font can be specified by its Postscript font name (e.g. 'LucidaGrande-Bold') or its regular font name (e.g. 'Lucida Grande Bold').

  • New input device drivers

    • Via SoCustomExaminerViewer: SoQtSpacemouse (Windows + Mac OS X only), SoQtPowerMate (Mac OS X only), SoQtAppleRemote (Mac OS X only) - device drivers for the 3Dconnexion Space Traveler 6DOF input device, the Griffin PowerMate input device, and the Apple Remote Control device

    • SoSpacemouseAccess, SoPowerMateAccess, SoAppleRemoteAccess - provide access to the input devices (buttons, sliders etc.)

ML and Related Libraries:

  • New support for numeric min/max/epsilon handling in mlUtils

  • Fields vec2, vec3, vec4, SubImgBoxf and long double use correct precisions in string representation now.

  • Quaternion support added to mlLinearAlgebra and as a new voxel type in MLTypeExtensions

  • New support for extensible image properties (classes ImagePropertyExtension, ImagePropertyExtensionContainer). This mechanism is used by the new representation of DICOM image properties (class MLDicomTreeImagePropertyExtension, see below).

  • DataCompressor classes and factory added, as well as specializations for BZip2 and ZLib data compressors. User implemented compressors are supported.

  • New functions and platform independent support for very large files even on 32 bit systems (mlFileSystem in mlUtils)

  • Several new error codes and utility functions

  • For details see ML Library Reference.

Other Core Libraries:

  • DICOM:

    • Access to DICOM image properties is now available through the class MLDicomTreeImagePropertyExtension as part of the extensible image properties framework.

    • DICOM data is represented using the new DCMTree library, including support for DICOM sequences.

    • The DICOM import in MeVisLab now preserves frame-specific DICOM data and provides them through the StructuredMF interface in the DCMTree library. The new module DicomFrameSelect can be used to access frame specific DICOM tags.

    • The old DicomTags library is no longer supported.

  • New MLImageFormat package with dedicated ML image file format, supporting 6D, compression, extended voxel types, DICOM information, user tags, files > 4GB, and image file caching. C++ interfaces are included in the SDK.

  • New Contour Segmentation Object (CSO) library for generating, visualizing and processing contours, with C++ interface and several new modules:

    • CSOAffineTransformation, CSOConvertTo3DMask, CSOConvertToImage, CSOFilter, CSOInfo, CSOIsoGenerator, CSOLoad, CSOManager, CSOSave, LocalCSOLoad

    • CSOFreehandProcessor, CSOIsoProcessor, CSOPrimitiveProcessor

    • SoCSO3DVis, SoView2DCSOEditor

  • New SoShader framework providing a framework to use the OpenGL Shading Language (GLSL) in MeVisLab networks.

    • Example source available for the SoGoochShader module

    • New modules: SoCheckShaderSupport, SoClearShaderState, SoVertexShader, SoFragmentShader, SoShaderProgram, SoShaderParameter1f, SoShaderParameter2f, SoShaderParameter3f, SoShaderParameter4f, SoShaderParameter1i, SoShaderParameter2i, SoShaderParameter3i, SoShaderParameterColor, SoShaderParameterMatrix, SoShaderParameterMLImageProps, SoShaderParameterMLImageSize, SoMultiplePass, SoGLRenderState, SoMLSampler2D, SoMLSampler3D, SoFramebufferSampler, SoMultiPassFramebufferSampler, SoInheritedFramebufferSampler, SoGoochShader

  • 2D Viewing:

    • SoView2DMarkerEditor: The depth visibility parameter is now used correctly for picking and visualizing.

    • SoView2D has options to automatically unzoom on input image change and to disable writing to the z buffer in 3D renderings.

    • SoMouseGrabber and all View2D extensions support changing the cursor shape.

    • SoView2DBorder/Highlight can use the information of SoFocus to draw a highlighted border.

    • SoView2DOverlay supports a different data filtering instead of inheriting the SoView2D settings, see inheritFilterMode and filterMode fields.

    • SoView2DOverlay can draw check-tiles, see checkerTileSize, isCheckerTiling, areCheckerTilesInverted fields.

    • SoView2DTransRot has been modified to allow full mouse configuration instead of fixed settings, e.g. for MPR interaction.

    • SynchroView2D has been reimplemented.

    • New module GVROrthoView2D is a fast alternative to the SoView2DOrthoView by using the SoGVRVolRen module to render the images.

  • Volume Rendering:

    • New module SoLUTEditor2D allows to create 2D LUT's that can be used with the SoGVRVolRen module and tag volumes.

    • SoGVRVolRen now uses OpenGL Shading Language shaders when available and supports on-the-fly gradients (set gradientQuality field to "Highest").

    • SoGVRVolRen has a new "filterVolumeData" mode that supports Nearest, FilterLinear, FilterLinearPreClass and an experimental FilterCubic, the "classificationMode" has been removed.

    • SoGVRQualitySettings has a flag "forceHighQualityRendering" that forces rending in the highest possible quality (e.g. for offscreen rendering).

    • GVRVolumeLoad now has a Close button to close the opened file.

    • GVRImageToVolume, GVRVolumeSave now support a "padSize" field to set the padding of the Octree (currently PAD1, PAD3 and AUTO), PAD3 is needed for on-the-fly gradients.

  • WEM:

    • New module IsoSurface allows to easily create WEM iso surfaces.

    • Added dynamic user value vectors to the WEMNodes that can be used in networks (internally in modules) and for LUT control.

    • WEMImageData module supports trilinear interpolation and RGB images, setting of LUT range is fixed.

    • WEMIsoSurface module optionally generates quad meshes (in addition to triangle meshes) and supports using only the maximum iso value.

    • WEMModify module facilitates rotation.

    • WEMLoad/WEMSave support binary and ASCII STL formats.

    • WEMSmooth module reworked, offers Laplacian surface smoothing and normal smoothing. Both smoothing algorithms can be used in serial.

    • WEMSurfaceDistance contain new fields for the min/max normalized distances for the closest points positions.

    • SoWEMRenderer module supports face sorting for correct transparencies without a SoDepthPeelRenderer.

    • New adaptors to VTK

Modules:

  • Image I/O, DICOM

    • New modules BitImageLoad, BitImageSave: Saving/Loading of bit images from/to base objects or ML images

    • ImgLoad/Save support BMP format.

    • ImgLoad now supports loading raw images of datatype "double".

    • ImgSave allows to select subsets of DICOM tags to be discarded (per-frame tags, private tags, ...).

    • DicomLUT now supports VOI LUT's and non-linear modality LUT's.

    • DicomRescale problems for slope!=1 fixed.

  • Image Transformations:

    • New module SubImageStat allows to do statistics/projections on selectable dimensions of the input image.

    • New module MPRLight provides functionality of MPR without Open Inventor features.

    • New module OrthoTriplePlaneViewer displays an image in oblique orthogonal 2D views.

    • New module TransformEdit for numerical, incremental and manual editing of transformations.

    • AffineTransformation3d has new modes selectable via a new transformationMode field.

    • EuclideanDTF uses an improved algorithm which is two times faster.

    • MPR,MPRPath: drawImageOn can be used to disable image drawing.

  • Visualization and Interaction:

    • New module SoFocus allows to handle focus changes on viewers.

    • New module SoView2DDeformationGridView displays a grid showing a vector field deformation.

    • New module OffscreenRenderer allows to render Inventor Scenes into images using offscreen render buffers.

    • SoExaminerViewer has a new field "mouseInteraction" that allows complete mouse interaction re-mapping.

    • SoLUTEditor now has fields "window" and "level" to allow interactive windowing of the current LUT, a field "currentIndex" to view/edit the current point's index, and an option "newRangeMode" to either clip or scale the LUT on range change.

    • SoFlash has fields for a target color and a color output.

    • SoDepthPeelRenderer has a new "sceneDepthCompare" mode that renders the depth peel layers with correct depth layers (to include it with other renderings in the depth buffer).

    • VoxelizeInvScene now allows to voxelize triangles and lines in an anti-aliased manner. Thickness can be specified in either voxels or world units.

    • SoTensorFieldVis module now accommodates to vector data automatically.

    • SoRLAxis: Bug fix for negative annotation range or negative origin

  • Miscellaneous:

    • New arithmetic modules: Arithmetic0 (scalar and vectors), BoolArithmetic (boolean values), MatrixArithmetic (matrices)

    • New module StringUtils provides string helper functionality (e.g. concatenation).

    • New module FieldBypass allows to enable/disable propagation of field notifications.

    • New module RasterMacro offers test images of geometry primitives.

    • New module TestPrinting shows how to create PDFs from rich-text using Python or JavaScript.

    • ImageIteratorStart/End now support file caching.

    • PrintCurves was improved.

Add-On's:

  • VTK:

    • Update to version 5.1 of April 16th, 2007

    • New converter modules between WEM, ML, points, arrays lookup tables and vtk

    • New VTKQtRenderWindow and VTKQtRenderWindowInteractor

    • Hiding of multi inputs controllable in panels to reduce amount of connectors

    • Module inspector for vtk added

    • About 260 additional modules from wrapping process of vtk classes, including many new readers and writers.

    • Bug fixes related to non-scalar voxel types and voxel spacing in ML/VTK conversion. Fixed display of large module panels.

    • Some modules removed that caused problems due to unresolvable symbols, platform dependencies or other issues

    • For detailed release notes see any vtk module help.

  • ITK:

    • Update to version 3.3 of April 16th, 2007

    • Four modules removed, 22 functions and 14 filters/modules added

    • For detailed release notes see "Technical Notes" in any itk module help.

  • New Wrapper code generator module ITKVTKGenerator for itk and vtk.

  • MeVisLab Public Sources – Sources of several projects added:

    • misc/MLDataCompressors/MLDataCompressor

    • misc/MLDataCompressors/MLBZip2DataCompressor

    • misc/MLDataCompressors/ZLibDataCompressor

    • misc/MLDicomTreeImagePropertyExtension

    • std/ML/MLImageFormat

    • std/ML/MLImageIterator

    • std/ML/MLBitImageTools

    • std/ML/MLTypeExtensions

    • std/AddOns/VTK/VTKAdapters

    • std/AddOns/VTK/WEMVTKAdapters

Known issues:

  • The SoGVRVolRen module creates border artifacts when rendering in 2D texturing legacy mode (this should only be an issue on very old graphics boards or older notebooks).

  • VC7 and VC8 versions of MeVisLab do not contain the msvc*d.dll debug DLLs, because the Microsoft EULA forbids deploying these files.

  • In the Mac OS X version of MeVisLab, "Restart with current network" is not and probably never will be supported.

Version 1.4 (2006-05-31)

MeVisLab Core:

  • Fixes in macro reloading process and several other bug fixes

MeVisLab IDE:

  • Improved output inspector:

    • In addition to ML image and OpenInventor inspectors, specialized inspectors for different MLBase datatypes have been added.

    • New inspectors for LUT, CurveData, WEM and GVRVolumeData objects

    • ML image and OpenInventor inspectors have been improved.

    • Users can add own inspectors for MLBase derived datatypes

    • Inspector settings (e.g. details on/off toggle state) are persistent.

  • Preferences now contains a "Limits" panel that allows to set the available resources, e.g. texture memory and volume data cache sizes.

  • Fixed bug with editing instance name in module inspector

  • Improved module reference pages

MeVisLab MDL/Scripting:

  • MLABModule::remove() and MLABNetwork::removeModule() are now non-undoable (which is the desired behaviour in most cases), new methods MLABModule::removeUndoable() and MLABNetwork::removeModuleUndoable() remove a module undoable (which is what the former methods did in the previous version).

  • MLABField::connectFrom() and MLABModule::connectField() now check if connection is possible and return true on success.

  • New MDL tag tabEnabled = BOOL for items of TabView controls. In previous versions, tab view items could only be enabled/disabled by scripting commands.

OpenInventor:

  • SoQtSpacemouse: Driver for Spacemouse/Spacetraveller device (SoQtSpacemouse/SoQtSpacemouse.h in InventorWrapper)

ML:

  • Minor changes: Warnings removed, bug fixes in (T)SubImage and DateTime classes, some support macros for extended data types added. For details see ML Library Reference.

Other Core Libraries:

  • Lookup Tables (MLLUT):

    • New modules LUTCompose, DicomLUT, TableLUT

    • Fixes in handling of invalid LUTs

    • Added sigmoid LUT primitive

    • Added interpolation mode "constant" to LUTFLinear/SoLUTEditor

  • Volume Rendering (GVR), 2D/3D Visualization:

    • New module SoDepthPeelRenderer implements order-independent transparency of unsorted meshes

    • New module SoGVRDepthPeel allows to mix transparent geometry into the SoGVRVolRen volume renderer

    • SoGVRVolRen and View3D have new "gradientQuality" field specifying the quality of the gradients in illumination mode

    • SoView2DScene has been improved and now allows to render a 3D scene with a given slab size onto any SoView2D slice

    • SoGVRSlabHint in connection with SoGVRVolRen allows the VolumeRenderer to render slabs on any SoView2D/SoOrthoView2D, see SoGVRSlabHint example network

    • Fixed bug in updating View2D extensions

  • Winged-Edge Meshes (MLWEM/SoWEM):

    • New modules:

      • SoWEMDiagnosis: Handling and visualization of errors

      • SoWEMSynchroViewer: Synchronized views of WEMs

      • WEMImageData: Set image data to the WEM nodes' LUT values

    • Enhancements:

      • SoWEMRenderer: More detailed impacts on visualization parameters, optional display of statistical data on the WEM

      • WEMBoundingBox: Added object-aligned bounding box computation and visualization

      • WEMClip Added control of the output parts of the clipped WEM

      • WEMCollapseEdges: Enhanced algorithm, edges are collapsed based on angular information now, produces better results due to local smoothing

      • WEMInfo: Added statistical output compatile to Diagram2D

      • WEMInitialize: Added erroneous test surface

      • WEMLoad/WEMSave: Added a proprietary binary .wem format for fast loading and saving

      • WEMPerformance: Redesigned module panel and added a module filter

      • WEMPurge: Now shows a list of all connected components that can be removed and permits interactive choice, also added an automatic selection option

      • WEMSurfaceDistance: Faster computation

    • Bug fixes:

      • WEMIsoSurface: Fixed a bug with the lutValue interpolation

      • WEMSmooth: Fixed Displacement Correction algorithm

    • General features:

      • Delayed computation of edges for a faster loading/saving/display

      • Several new toolbox classes and basic data structures

  • Object Manager:

    • Fixed a rare event notification bug due to recursive notification

Modules:

  • New ML and OpenInventor modules:

    • Blinking material: SoFlash

    • Segmentation with automatic threshold selection: OtsuThreshold

  • Enhancements:

    • New modes in TypeArithmetic1 and TypeArithmetic2 for processing vector and matrix images

    • Performance optimization of BoundingBox (for integer images), RegionGrowing (output generation), ConnectComp (completely new, more efficient algorithm)

    • VoxelizeInvScene is more time efficient now and offers a filling of closed surfaces (scan lines).

    • ContourManager: Modification mode for freehand contours, drawing of label string at contours, copy and paste functionality, group ID for 3D objects, binary mask can be restricted to contours with an individual group ID.

    • JointHist: New feature to compute a 2D histogram from a single image (i.e. image value vs. x,y,z,c,t or u-coordinate), improved module panel, AutoApply bug resolved.

  • Bug Fixes:

    • DicomTagModify: AutoApply bug resolved

    • OrthoSwapFlip/OrthoReformat3: Fixed bug with certain oblique voxel coordinate systems

    • ImgSave: Correctly handle suppression of special tags in case the DICOM tag list is not associated to a file

Add-On's:

  • VTK:

    • Upgrade to VTK 5.0: About 80 new modules, some modules removed

    • A large number of bug fixes (especially in writer modules)

    • New module VTKInputInfo to retrieve class parameters (e.g. scalar range)

    • New module VTKToMLImage to embed VTK image processing in ML image pipelines and vice versa

    • Module MLBaseToVTKPoints provides conversion of Base points, vectors etc. to VTK PolyData.

    • For details see main page of VTK module documentation.

  • ITK:

    • Upgrade to ITK 2.7

    • A few new 2.7 modules added (itkMorphologicalGradient-, itkInvertIntensity- and itkModulusImagefilter)

    • Some filters with incorrect paging support have been changed to work globally (itkScalarConnectedComponent- and itk*Reconstruction*ImageFilters).

    • Metrics support optional mask images now.

Version 1.3 (2006-01-30)

MeVisLab Core:

  • Support for user module HTML documentation and index creation

  • Destructors of modules are now always called on exit of MeVisLab (to allow user cleanup of resources)

  • Several bug fixes

MeVisLab IDE

  • Automatic show/hide of open panels when active network is maximized (Panels->Hide Panels of Invisible Networks)

  • New tab card "Related" in the FieldInspector for quick access to referenced modules and modules in the same genre/library

  • New "Quick Add Module" feature: Typing with the focus on a network automatically activates the module quick search

  • New menu items "Show Module in Network" and "Module Context Menu" in the context menu of Field controls and in the widget debug context menu

  • Auto-save of untitled networks, optionally restored at restart of MeVisLab after a crash

    • (This is especially useful if MeVisLab is started in a debugger and the debugger kills the MeVisLab process.)

  • Flexible drag-and-drop handling of files to networks allows users to extend file dropping with their own modules by file extension

  • Several bug fixes

MeVisLab MDL/Scripting:

  • Added initCommand tag to all GUI controls

  • ColorEdit control has new mode = triangle to allow HSV inplace editing of colors

  • New tags for MenuItem and SubMenu

  • Added additional scripting access methods to various GUI controls

OpenInventor:

ML:

  • Revision of mlLinearAlgebra, new classes mat2, mat5 and mat6.

  • Several new vector and matrix voxel types

  • Many new features in mlAPI and in classes Host, SubImg, TSubImg, BaseOp, PagedImg, Vector and SubImgBox

  • Improved documentation

  • (See detailed release notes in the ML library reference)

Other Core Libraries:

  • Lookup Tables (MLLUT):

    • Support for 2D- and 3D-LUTs (especially useful for tagged volume rendering, see GVR)

    • New method LUTFunction::isValid() to check whether a LUT function can be rendered

    • New module SoLUTEditor for interactive specification of RGBA lookup tables

    • New LUT modules LUTChannelMap, LUTCombiner, LUTConcat, LUTBlend, LUTSelect

  • Volume Rendering (GVR):

    • The GigaVoxelRender (GVR) library has been completely reorganized and rewritten

    • A lot of new features and performance optimizations, see the documentation of SoGVRVolRen

    • New image object "GVRVolume" representing an image as a multi-resolution octree

    • New modules to handle GVRVolumes: GVRImageToVolume, GVRVolumeToImage, GVRVolumeLoad, GVRVolumeSave

    • New GVR extension modules: SoGVRTagVolume, SoGVRGradientVolume, SoGVRIlluminationSettings, SoGVRSubVolumeSettings, SoGVRQualitySettings, SoGVRIncrementalUpdater

  • Object Manager:

    • Improvements and bug fixes

  • Kernel Filters (MLKernel):

    • Support for separable kernel filters

    • Support for multiple inputs and outputs

    • Support for different input and output types

    • New code examples for kernel classes

Modules:

  • New ML modules:

    • New arithmetic and conversion modules for improved processing of vector- and matrix-valued images: TypeArithmetics1, TypeArithmetics2, TypeToScalars, TypeFromScalars, TypeComposer*, TypeDecomposer* (* = 8, 16, 32, 64)

    • Fast Fourier transform: FFT1D, FFT2D

    • Orthogonal min/max/sum/average projection: OrthoProjection

    • Geometry: ImageSeparator, InterleaveDimension, SwapDimensions, TransformEdit

    • Switch image input streams: Switch1toN

  • New Open Inventor modules:

    • Display 3D geometry in a SoView2D viewer: SoView2DScene

    • Display vector fields in a SoView2D viewer: SoView2DVectorFieldView

    • Render into textures, fill rate reduced rendering: SoFramebufferRenderer, SoFramebufferTexture, SoCheckFramebufferObjectSupport

    • Load 2D textures from ML images, switch according to complexity requests, enable multi-texturing, etc: SoMLTexture2, SoComplexitySwitch, SoImagePlane, SoTextureUnit

    • Display orientation hints within a 3D scene: SoOrientationInset, SoOrientationModel

    • New SoTensorFieldVis for 3D tensor and vector visualization

    • New 3D viewer with new camera control buttons, customizable buttons and 3D input support: SoCustomExaminerViewer

  • New library for dealing with surfaces represented by "winged-edge meshes" (WEMs), including several ML (MLWEM*) and OpenInventor (SoWEM*) modules for generating (iso-surface, load/save), processing (smoothing, primitive reduction, subdivision etc), visualizing (OpenInventor rendering in different modes with LUT support) and for an interactive modification of surfaces

    • Special thanks to Bart De Dobbelaer (KU Leuven, Belgium) for his great contribution to this library

  • SmallImageInterface (with examples) for simple image processing examples in educational contexts

Add-On's:

  • New download package "MeVisLabPublicSources.exe" with complete source codes of selected MeVisLab modules and libraries, considered as additional documentation to the MeVisLab developer

  • ITK and VTK:

    • ITK Add-On 1.1:

      • Based on ITK 1.3 (Nov. 2005), several new modules

      • Includes registration framework

      • Several new example networks, e.g. from the ITK book

    • VTK Add-On "PreAlpha":

      • Several hundred VTK modules, some adaptors, and numerous example networks

    • Special thanks to Julien Jomier (CADDLab at UNC, North Carolina) for his great contributions to the code generators for ITK and VTK

Version 1.2 (2005-07-28)

MeVisLab Core:

  • MeVisLab Core refactored

    • Performance of module destruction improved, large speedup when freeing networks/modules

  • Improved handling of debug/release libs on Linux systems (with/without _d suffix, as on Windows)

MeVisLab IDE:

  • Output Inspector: Improved formatting and layout

Modules:

  • New OpenGL support using GLEW and MLOpenGL library

  • New module SystemInfo showing details on the OS and OpenGL driver that MeVisLab is running on

  • Diagram/curve data classes now available as MLBase objects in MLBase/mlDiagramData.h

  • SoView2D and extensions:

    • Supports upto 16 bit hardware LUTs on cards that support ARB_fragment_program or OpenGL Shading Language

    • LUT support for RGB and RGBA images

    • Editing functionality in SoView2DPlane and MPR to allow editing an MPR plane in a 2D viewer interactively

    • New module SoView2DBorderHighlight to draw a border around a selected range of slices

  • Image import/export:

    • Support for JPEG and PNG file formats

    • Support for files up to 4GB

  • New module DicomRescale

Version 1.1 (2005-04-28)

MeVisLab Core:

  • Full unicode support in:

    • Networks

    • MDL

    • Image, Dicom and Base I/O

  • MDL:

    • Translation support

    • New MDL controls: EventFilter, Log, ContextMenu

    • PreloadDLL allows to load DLLs on MeVisLab startup (e.g. for adding new types to the ML)

    • Various new tags have been added to different controls

  • New support for Python scripting language

  • New scripting classes/methods:

    • New scripting API for LineEdit control

    • MLABProcess class for asynchronous process control

  • GUI Rescaling improved

MeVisLab IDE:

  • Improved Preferences dialog, includes settings controlled by global modules (error handling, tracing, debugging). The corresponding global modules are no longer visible.

  • Added "Scripting Assistant" docking window

  • Improved advanced search, now including "name+keywords", "common tags" and "seeAlso"

  • Bug fixes and improvements in module wizards

Open Inventor:

(See Open Inventor release notes for a complete change log)

  • New documentation

  • New option to catch, report, and suppress runtime errors and to provide error tracing information

  • UTF-8 support for path names

  • Several bug fixes

ML:

(See detailed release notes in the ML library reference)

  • Tracing functionality added to ML and to many modules. Now runtime catching, tracing and reporting runtime crashes is possible if the ML is configured to do so.

  • Platform independent interfaces for unicode strings and file access

  • Support for images larger than 4 Giga voxels, handled by several page-based modules

  • MLint data type has changed from 32 to 64 bit, which results to 64 bit voxel indexing in several classes (Vector, SubImg, SubImgBox, VirtualVolume, ...).

  • Some new extended data types for float vectors (vec2f, ..., vec32f)

  • New MultiField classes for signed and unsigned 32 bit integers

  • Various new features in classes TSubImg, ErrorOutput, VirtualVolume, and other toolbox classes, in TemplateSupport and API

  • Many bug fixes

  • Improved ISO and coding style compliance of ML, examples and modules

  • Example programs and modules improved and extended

Modules:

  • New DicomService module and Windows-NT service

  • Image import/export:

    • Added "Save DICOM header file only" field in ImgSave for DICOM/TIFF images

    • Enabled LZW compression in ImgSave for TIFF images

    • Added "Allow overwrite" field in ImgSave

    • Added "Page Size Hint" field in ImgLoad to control page size of loaded image data

    • Fixed handling of DICOM position coordinates

  • SoView2DMarkerEditor:

    • New field "selectionBoxesForCurrentOnly" to suppress manipulators of non-current vector markers

    • New field "selectiveDrawing"

    • Bug fix: markerSize of a connected StylePalette is used now

  • New base classes and modules for lookup tables, see misc/MLLUT and ML/MLLUTTools

  • Other new modules:

    • SoView2DVoxelView module for voxel value inspection (View2D extension)

    • Compose/DecomposeArray

    • SoSilhouette and SoEdgeEmphasize to draw the outer contour and inner feature lines

  • New scripting helper functions:

    • assert(), see scripts/debugAssert.js

    • Convenience functions for creating HTML tables, see scripts/hypertextHelper.js

  • Renamed GlobalStatBase to ImageStat

  • Disabled currently unmaintained SoMeasurement modules, select "Deprecated SoMeasurement" group to re-enable

  • Bug fixes and improvements in many modules:

    • MPR, Reformat, OrthoSwapFlip, OrthoReformat and OrthoView2D support large datasets via paging and virtual volume concepts

    • LocalMaxima: Min/max of the output image are set correctly now if the "Return source value" option is enabled

    • SmartMarker: Added delay to avoid resetting a smart marker immediately after delete on click

    • MorphologicalGradient: Fixed a bug that occured when "threeDimensional" was on

    • IntervalThresh: Fixed bug where the output image was not invalidated on disconnected/invalid input

    • Added/enhanced drag-and-drop support for LoadBase, ImgLoad, OpenImage, FileDirectory, ObjLoader, MakeName

    • ModifyRegion: Fixed "make extensions dividable by" mode

    • ComposeBaseList now allows the specification of IDs for both input objects

    • ConnectComp: Fixed a few bugs, one of them concerning the largest cluster mode

    • LoadBase/SaveBase: Added keyboard shortcuts

    • Resample3D bugfix: Several bug fixes, new field "filterAlwaysTolerance" for compensation of rounding errors

    • More fixes...

Version 1.0 (2004-08-18)

Core:

  • Fixed bug in *.mlab persistence (strings which started with * could not be saved/restored)

  • Fixed #ifnset bug in MDL parser

  • various minor MeVisLab core fixes and improvements

  • Improved multi-user installation

  • added UserLibraryPath to Preferences and mevislab.prefs file, DLLs found in UserModulePath are copied into the UserLibraryPath if it is set, it is automatically added to the PATH/LD_LIBRARY_PATH

InventorWrapper:

  • SoSFXVImage was renamed to SoSFMLImage, please adjust your projects to use #include <SoSFMLImage.h> and SoSFMLImage instead of SoSFXVImage

  • InventorWrapper API and doxygen docs were cleaned and improved

  • removed deprecated sources: SoDatatypes.h (SoMarkerList, SoVectorList)

Wizards:

  • Fixed support for target paths which contain spaces

  • Fixed minor bugs in Inventor Module Wizard

EatDicom:

  • Fixed recursive data scan on Linux

Module changes:

  • Fixed popupMenu of SoExaminerViewer

  • Minor fixes and improvements to several modules

New Modules:

  • AnonymizeMacro

  • CacheView

  • Checksum

  • DicomReceiver

  • ImageComposer

  • TypeComposer

  • TypeDecomposer

  • RuntimeDump

New ObjectManager Modules: The ObjectManager is a new concept that can be used for application-wide sharing for datastructures and event handling. See the ObjMgr online help for details.

  • ObjBaseTypeConnection

  • ObjConstrainedIterator

  • ObjDump

  • ObjFieldConnection

  • ObjInfo

  • ObjInspector

  • ObjLoader

  • ObjLoaderDump

  • ObjMgr

  • ObjMgrEventClient

  • ObjMgrMultiClient

  • ObjMgrMultiClient2

  • ObjVolume

Version 1.0b2 (2004-06-16)

Wizards:

  • All wizards have been improved, the settings of a wizard can now be saved to a ".wiz" file, so that one can create templates for later modification/extension. Be careful: re-creating the module/project in the same place will overwrite existing files!

  • New wizard for Inventor modules, allowing the creation of SoNodes and SoView2DExtensions

Module changes:

  • Improvements to ContourManager, LiveWire

  • Fixes to DICOM support

  • Various diffusion filter modules have been merged to a single, optimized Diffusion module. The experimental ansitropic diffusion filter module AnisoDiffOp has been removed.

  • Minor fixes and improvements to several modules

Core:

  • New MDL tags Label:textFormat, ToolButton:textPosition, ToolButton:autoScale

  • MDL tag CheckBox:command no longer supported, use a FieldListener instead

  • @IF (ML_HELP)

  • Added MLAddEventFilterCB() function to allow modules to process native window events

  • Renamed MLMin(), MLMax() functions to MLDataTypeMin/Max(), resp.

  • Added FieldContainer::removeField() method

  • @ENDIF

  • Fixed various MeVisLab core bugs

  • Documentation improved, although still not perfect...

Version 1.0b1 (2004-05-18)

First public beta version of MeVisLab.