History of MITK


MITK 1.x: Implemented basic encapsulation of data structures and algorithms, which included most fundamental functions of data handling, filtering, segmentation, registration and visualization.

MITK 2.0: The Out-of-Core mechanism was introduced, which supported the buffering of large datasets.

MITK 2.2: Some reconstruction functions were introduced which formed a new branch of the algorithm hierarchy.

MITK 2.3: The project was reorganized with the CMake tool provided by Kitware. The source code as well as the binaries were divided into multiple modules, which simplified the management, and made it possible that more compiling environments were supported.

Currently, MITK is extending itself in multiple aspects including the support of GPU alogorithms in a more flexible framework.

MITK 2.4.0 Key changes from 2.3.6


    (1) NEW Additional\mitkOpenCL module, this module is a GPU-computing sub-framework of MITK based on OpenCL. Currently, it contains some classes for volume rendering. Comparing to CUDA based volume rendering, this module is designed on a more fined-grained basis thanks to the dynamic-compilation mechanism of OpenCL.

    (2) The OpenCL classes in mitkVisualization2 introduced during the last release are removed for compatibility issues.

    (3) NEW volume thinning algorithms for centerline extraction are added in mitkCommon.

    (4) NEW mitkVis2SurfaceScene scene in mitkVisualization2 added providing depth-peeling feature.

MITK 2.3.6 Key changes from 2.3.5


    (1) NEW mitkIsosurfaceCurvatureFilter in mitkCommon: A volume filter class for calculation of isosurface curvature from volume datasets.

    (2) NEW mitkPath in mitkCommon: for storage of paths such as center lines.

    (3) NEW mitkCLMIPVRScene in mitkVisualization2: OpenCL based MIP Volume Rendering.

    (4) NEW mitkCLIsosurfaceScene in mitkVisualization2: OpenCL based Isosurface Volume Rendering.

    (5) NEW mitkCLFullVRScene in mitkVisualization2: OpenCL based Full Volume Rendering.

    (6) NEW mitkCLEndoscopySliceScene in mitkVisualization2: OpenCL based endoscopy navigation.

    (7) NEW mitkCUDADeltaAccStateVRScene in mitkCUDAVolumeRendering: A state-transition model based volume rendering scene, implemented using CUDA.

    (8) NEW mitkCUDAValueBasedStateVRScene in mitkCUDAVolumeRendering: Another state-transition model based volume rendering scene, implemented using CUDA.

    (9) NEW mitkCUDAWallCarvingVRScene in mitkCUDAVolumeRendering: A endoscopy volume-rendering scene with Wall-Caring.

    (10) NEW mitkCUDAWallPenetrateVRScene in mitkCUDAVolumeRendering: A endoscopy volume-rendering scene with Wall-Penetrating.

    (11) Centerline navigation support for endoscopy volume rendering scenes.

MITK 2.3.5 Key changes from 2.3.4


    (1) NEW mitkFFTFilter in mitkCommon: A volume filter class for 3D FFT of volume datasets.

    (2) NEW mitkRadom.h in mitkCommon: Some tools functions for radom-number generation.

    (3) NEW mitkSheetFilter in mitkCommon: A volume filter class for sheet feature detection.

    (4) NEW mitkEndoscopySliceScene in mitkVisualization2: A scene class for endoscopy navigation. (CPU interpolation)

    (5) NEW mitkTargetMeasurementScene in mitkVisualization2: A scene class for the measurement of the length of the long/short axis of a target object.

    (6) NEW mitkCUDAEndoscopySliceScene in mitkCUDAVolumeRendering: A scene class for endoscopy navigation (GPU interpolation), implemented using CUDA.

    (7) NEW mitkCUDAROIDistanceVRScene in mitkCUDAVolumeRendering: A scene class for the measurement of the distance of a ROI object to the boundary, implemented using CUDA.

    (8) NEW mitkCUDAStructureFunctionVRScene in mitkCUDAVolumeRendering: A scene class for rendering a structural volume together with a functional volume, implemented using CUDA. (Dual-modal volume rendering)

    (9) NEW mitkCUDAVersatileVRScene in mitkCUDAVolumeRendering: A scene class for volume rendering using the versatile optical model, implemented using CUDA.

    (10) Endoscopy support added for all volume rendering scenes.

    (11) Bounding-box cropping support added for all volume rendering scenes.

    (12) Illustrative rendering support added for some of the volume rendering scenes.

MITK 2.3.4 Key changes from 2.3.3


    (1) NEW mitkCUDASegmentedVRScene in Additional/mitkCUDAVolumeRendering: A 3D scene to display segmented volume datasets, implemented using CUDA.

    (2) NEW mitkFullVRScene in mitkVisualization2: A 3D scene for full volume rendering, implemented using CPU Multi-threading.

    (3) NEW mitkMIPVRScene in mitkVisualization2: A 3D scene for MIP volume rendering, implemented using CPU Multi-threading.

    (4) NEW mitkVersionCounter in mitkCommon: A simple class for version counting of member objects, in order to decide whether an update is needed.

    (5) Rearranged internal structure of the mitkVisualization2 module and the mitkCUDAVolumeRendering module. Renamed classname mitkGLSLShadedVRScene to mitkGLSLFullVRScene, mitkCUDAShadedVRScene to mitkCUDAFullVRScene.

    (6) Modified the Output of the Segmentation Filters. All Segmentation Filters now generates binary masks.

MITK 2.3.3 Key changes from 2.3.2


    (1) NEW mitkCUDAAugmentedSurfaceVRScene in Additional/mitkCUDAVolumeRendering: A 3D scene to display isosurfaces from volume datasets with augmented color which reflects the neighborhood density distribution.

    (2) NEW mitkCUDADecomposedIsosurfaceVRScene in Additional/mitkCUDAVolumeRendering: A 3D scene to display isosurfaces from volume datasets. The dataset is first decomposed for empty test. Augmented coloring is also supported in this class. This class can handle relatively larger datasets that cannot be fitted into the graphics memory.

    (3) NEW mitkWatershedSegFilter in mitkSegmentation: A volume segmentation filter using the watershed algorithm.

    (4) Bugs fixed in mitkRectWidgetModel2D and some other classes.

MITK 2.3.2 Key changes from 2.3.1


    (1) NEW Additional\mitkCUDAVolumeRendering module, currently contains the following scene classes for a variety of volume ray casting works.
            mitkCUDAIsosurfaceVRScene: A 3D scene to display isosurfaces from volume datasets. Accelerated with the CUDA interface (developed by NVIDIA company).
            mitkCUDAMIPVRScene: A 3D scene for MIP Rendering from volume datasets. Accelerated with the CUDA interface.
            mitkCUDAShadedVRScene: A 3D scene for shaded semi-transparent rendering from volume datasets. Accelerated with the CUDA interface. This module is a extension based on the mitkVisualization2 module and will be further extended in the future.

    (2) NEW mitkConnectivityLabelFilter in mitkSegmentation: A class that label each connected region with 1, 2, 3.....

    (3) NEW mitkDICOMDIRTree in mitkCommon. A data Object class that stores the DICOMDIR structure of a data base.

    (4) NEW mitkDICOMDIRReader in mitkCommon. A reader class that reads a DICOMDIR file from disk, The result is stored as mitkDICOMDIRTree.

    (5) NEW mitkEuclideanDistanceTransformFilter in mitkCommon. Implements the Euclidean DT using Meijster's Linear Time Algorithm.

    (6) NEW mitkEuclideanSkeletonFeatureExtraction in mitkSegmentation. Decomposes a volume based on Euclidean DT and Reverse DT and calculates some features like radius, size.

    (7) NEW mitkEuclideanSkeletonGraphCut in mitkSegmentation. A segmentation class implementing the Skeleton-Cut algorithm.

    (8) NEW mitkOrthogonalImageModel in mitkVisualization. Transplanted from the In-Core version of MITK. Enables a orthogonal slice browsing interface.

MITK 2.3.1 Key changes from 2.3.0


    (1) NEW mitkVisualization2 module, currently contains the following scene classes for a variety of volume ray casting works:
            mitkIsosurfaceVRScene: A 3D scene to display isosurfaces from volume datasets. Optimized for multicore CPU.
            mitkGLSLIsosurfaceVRScene: A 3D scene to display isosurfaces from volume datasets. Accelerated with the GLSL interface.
            mitkGLSLMIPVRScene: A 3D scene for MIP Rendering from volume datasets. Accelerated with the GLSL interface.
            mitkGLSLShadedVRScene: A 3D scene for shaded semi-transparent rendering from volume datasets. Accelerated with the GLSL interface.
This module will be extended in the future as an alternative to the old mitkVisualization module.

    (2) NEW mitkSTLReader in mitkCommon: A reader class for the mesh files of STL type.

    (3) NEW mitkNeighborhood in mitkCommon: A light-weight container object for storing an N-dimensional neighborhood of values.

    (4) NEW mitkNeumannBoundary in mitkCommon: A function object that determines a neighborhood of values at an image boundary according to a Neumann boundary condition where first, upwind derivatives on the boundary are zero. This is a useful condition in solving some classes of differential equations.

    (5) NEW support for 64 bit environments.

MITK 2.3.0 Key changes from 2.2.1


    (1) Rearranged the directory structures of MITK. Headers and libraries are distributed into the following packages:
            mitkCommon: Core classes commonly used by other packages, including IO routines and other basic classes that cannot be sorted into other packages.
            mitkSegmentation: Segmentation algorithms.
            mitkRegistration: Registration algorithms.
            mitkVisualization: Visualization algorithms
            mitkReconstruction: Basic reconstruction algorithms (only for MSVC compiler)
            Additional \ mitkReconstructionCG : Reconstruction algorithms take advantage of the cg libraries provided by NVIDIA.(only for MSVC compiler)
            Additional \ mitkReconstructionCUDA: Reconstruction algorithms take advantage of the CUDA libraries provided by NVIDIA.(only for MSVC compiler)

    (2) NEW mitkSceneBase in mitkVisualization: An abstract class defining the interface of a scene.

    (3) NEW mitkScene in mitkVisualization: Defines a scene to display 3D surface rendered or volume rendered image.

    (4) NEW mitkImageScene in mitkVisualization: Defines a scene to display 2D images

    (5) NEW mitkSceneContainer in mitkVisualization: An abstract class defining the interface of a scene container window.

    (6) NEW mitkGLWindow in mitkVisualization: Defines a window(or child window) that maintains an OpenGL context

    (7) UPDATE mitkView in mitkVisualization: Redefined as a wrapper of mitkGLWindow and mitkScene, providing the compatibility to the previous version.

    (8) UPDATE mitkImageView in mitkVisualization: Redefined as a wrapper of mitkGLWindow and mitkImageScene, providing the compatibility to the previous version.

    (9) NEW mitkBackProjection in mitkReconstruction: An abstract base class for CT back projection.

    (10) NEW mitkBackProjectionUsingGPU in mitkReconstructionCG: An abstract base class for CT back projection using GPU.

    (11) NEW mitk2DBackProjectionUsingGPU in mitkReconstructionCG: A class for 2D CT back projection using GPU.

    (12) NEW mitk3DBackProjectionUsingGPU in mitkReconstructionCG: A class for 3D CT back projection. using GPU.

    (13) Fix bugs found in MITK 2.2.1.

MITK 2.2.1 Key changes from 2.2.0


    (1) NEW mitk3DUSPixelBasedGPU class: provides the 3DUS PNN reconstruction algorithm accelerated by GPU;

    (2) NEW mitkCBFDKReconCFGPU class: provides the CT FDK reconstruction algorithm accelerated by GPU;

    (3) NEW mitkCannyEdgeDetectFilter: support the canny edge detection algorithm;

    (4) NEW mitkPhantomElement, mitkPhantom classes: represent the basic classes which can be used to create a user-defined phantom;

    (5) NEW mitkPhantomToVolumeFilter: provides the method which coverts a user-defined phantom to a volume;

    (6) NEW mitkOoCVolumeRendererShearWarp,mitkOoCVolumeShearPerspective,mitkOoCVolumeShearFunction,mitkShear classes: provides the shear warp volume rendering algorithm which supports out-of-core;

    (7) NEW mitkOstuSegmentationFilter, mitkOstuSegmentationFilter classes: provide the OSTU segmentation method;

    (8) NEW mitkGraphCutImageFilter : support the interactive graph cut segmentation method;

    (9) Fix bugs found in MITK 2.2.0.

MITK 2.2.0 Key changes from 2.1


    (1) NEW mitkAnalyzeImageReader and mitkAnalyzeImageWriter: support the I/O of Analyze medical image format;

    (2) NEW mitkMetaImageReader and mitkMetaImageWriter: support the I/O of Meta medical image format;

    (3) NEW mitkNetCDFImageReader and mitkNetCDFImageWriter: support the I/O of NetCDF medical image format;

    (4) NEW mitk registration framework including support for out-of-core volume data and point set registration;

    (5) NEW mitkBSplineFreeFormTransform: provides the B-Spline based free-form deform method;

    (6) NEW mitkThinPlateSplineTransform: a concrete thansform class to perform thin-plate spline transform;

    (7) NEW mitkDeformFieldGenerator: generate the explicit deformation field resulting from non-rigid registration;

    (8) NEW mitkPointSetRegistrationFilter: represents the pairwise point sets registration framework;

    (9) NEW mitkLandmarkRegistrationFilter: provides the landmark-based image registration method;

    (10) NEW mitkThread, mitkThreadMasterWorker, mitkThreadFactory, mitkMutex, mitkSPMD, mitkConditionVariable, etc: provide the support for multi-threading;

    (11) New mitkHistogram1D, mitkHistogram2D: support 1D histogram and 2D histogram;

    (12) NEW mitkGaussianFilter: provides the Gaussian filter;

    (13) NEW mitkTransferFunction2DRGBA, mitkTF2DRGBAClassifier, mitkTF2DRGBAEllipsoidClassifier, mitkTF2DRGBAPyramidClassifier, mitkTF2DRGBARampClassifier, mitkTF2DRGBASlopeClassifier: provide RGBA2D Classifiers for volume rendering;

    (14) NEW mitkTF2DRGBAPSPSplineClassifier, provides PSP spline classifier for volume rendering;

    (15) NEW Multi-Mode image forward reconstruction framework, including classes encapsulating 3D Ultra Sound and CT forward reconstruction algorithms;

    (16) NEW mitkRawData class, the abstract class that represents original data acquired from the imaging equipments;

    (17) NEW mitkRawDataToVolumeFilter class, the abstract class that represents forward reconstruction;

    (18) NEW mitkRawDataReader, mitkRawDataWriter classes, the abstract classes that represent Reader and Writer of mitkRawData respectively;

    (19) NEW mitkTrackedBscanDataReader,mitkTrackedBscanDataWriter classes, the concrete classes that represent Reader and Writer of 3D Ultra Sound original data respectively;

    (20) NEW mitk3DUSReconstructionFilter, mitkCTReconstructionFilter classes,abstract classes that represent 3DUS and CT forward reconstruction respectively;

    (21) NEW mitk3DUSPixelBased, mitk3DUSPixelBasedMT classes, concrete classes that represent 3DUS PNN reconstruction algorithms respectively;

    (22) NEW mitkTrackedBscanData,mitkTrackedBscanICData,mitkTrackedBscanOoCData classes, the abstract class and concrete classes, which represent 3DUS data respectively;

    (23) NEW mitkCTProjectionData class, the abstract class that represents CT Projection data;

    (24) NEW mitk2DbeamPD,mitk2DBeamICPD,mitk2DBeamICPD classes, the abstract class and concrete classes, which represent 2D CT Projection data respectively;

    (25) NEW mitkConeBeamPD,mitkConeBeamICPD,mitkConeBeamOoCPD classes, the abstract class and concrete classes, which represent cone beam CT Projection data respectively;

    (26) NEW mitkConeBeamRealTimePD class, the concrete class, which represents cone beam CT real-time Projection data;

    (27) NEW mitkParallelBeamReconFromCirle, mitkPBFBPReconCF classes, the abstract class and concrete class, which represent parallel beam CT reconstruction respectively;

    (28) NEW mitkFanBeamReconFromCirle, mitkFBFBPReconCF, mitkFBFBPReconCFCpu classes, the abstract class and concrete classes, which represent fan beam CT reconstruction respectively;

    (29) NEW mitkConeBeamReconFromHelix, mitkCBFDKReconCF, mitkCBFDKReconCFCPU, mitkCBTFDKReconCF classes, the abstract class and concrete classes, which represent Cone beam CT reconstruction respectively;

    (30) Fix bugs found in MITK 2.1.

MITK 2.1 Key changes from 2.0


    (1) NEW CT forward reconstruction framework, including classes encapsulating project data and classes encapsulating fan beam and cone beam CT reconstruction algorithms;

    (2) NEW mitkProjectData class, the abstract class that represents CT project data;

    (3) NEW mitkProjectDataToVolumeFilter class, the abstract class that represents CT reconstruction;

    (4) NEW mitkFanBeamProjectDataToVolume, mitkFbFbpSpeed, mitkFbFbpSpeedUsingGpu classes, the abstract class and concrete classes, which represent fan beam CT reconstruction respectively;

    (5) NEW mitkConeBeamProjectDataToVolume, mitkFDK, mitkTFDK, mitkFDKSpeedUsingGPU classes, the abstract class and concrete classes, which represent fan beam CT reconstruction respectively;

    (6) NEW mitkTransferFunction2D class: provide the 2D opacity Transfer Function for volume rendering;

    (7) NEW mitkTFLevPyramid class, NEW mitkTFLevSquare class, NEW mitkLevTriangle class: map the data property (data and gradient magnitude) to opacity using some objects in a square;

    (8) NEW mitkTransferFunctionLev class: is a virtual class and the parent class of mitkTFLevPyramid , mitkTFLevSquare and mitkLevTriangle class;

    (9) Fix bugs found in MITK 2.0.

MITK 1.5 Key changes from 1.4


    (1) NEW mitkSTLReader class: provide the loading of "STL" format files;

    (2) NEW mitkGaussianFilter class: provide the Gaussian smooth filter;

    (3) NEW mitkCannyEdgeDetectFilter class: provide the Canny filter for edge detection;

    (4) NEW mitkLoGFilter class: provide the Laplacian of Gaussian filter for edge detection;

    (5) NEW mitkMeanShiftImageFilter class: provide Mean Shift algorithm for image segmentation;

    (6) NEW mitkOrthogonalImageModel class: a image model that provides the rapid and accurate 3D orthogonal slice view;

    (7) NEW mitkTransferFunction2D class: provide the 2D opacity Transfer Function for volume rendering;

    (8) NEW mitkTFLevPyramid class, NEW mitkTFLevSquare class, NEW mitkLevTriangle class: map the data property (data and gradient magnitude) to opacity using some objects in a square;

    (9) NEW mitkTransferFunctionLev class: is a virtual class and the parent class of mitkTFLevPyramid , mitkTFLevSquare and mitkLevTriangle class;

    (10) ADD a particular user manual of MITK (Examples\\DetailedManual);

    (11) ADD particular examples of MITK to show the funtion and usage of algorithm in MITK (Examples\\DetailedManual);

    (12) Fix bugs found in MITK 1.4.

MITK 1.4 Key changes from version 1.3


    (1) New Shear-Warp volume rendering algorithm(supports cropping, clipping, shading, MOP and LOD),including mitkVolumeRendererShearWarp (main algorithm class), mitkVolumeShearFunction and its sub-classes;

    (2) New mitkSimilarity2DTransform class: to apply similarity 2D transformation in 2D image space;

    (3) New mitkSubtractImageFilter class: to apply subtraction of two volumes, can be used to verify registration precision of two images;

    (4) mitkImageModel class: add support of displaying large size 2D image without GPU texture limit;

    (5) Structure and efficiency improvement of mitkVolumeRendererTexture3D class;

    (6) Parameters and effect improvement of mitkVolumeRendererSplatting class;

    (7) Improvement and update of the registration framework, including the changes of mitkInterpolateFilter and its sub-classes, mitkOptimizer and its sub-classes, mitkMetric and its sub-classes, mitkTransform and its sub-classes, mitkRegistrationFilter, mitkResampleFilter,and mitkGaussianDerivativeImageFilter;

    (8) Improve sub-classes of mitkVolumeRenderer (mitkVolumeRendererRayCasting, mitkVolumeRendererRayCastingLoD,mitkVolumeRendererSplatting,mitkVolumeRendererShearWarp) to support reslicing and pseudocolor functions of mitkReslicePlaneWidgetModel in volume rendering, now all concrete volume renderers support interactive volume clipping and can display correctly under most circumstances, please see the "VolRen" example at Examples\\"VolRen\" for details.

    (9) Add two volume renderer switcher (shear-warp and splatting) and a toolbar menu (delete selected reslice widget)to the "VolRen" example at Examples\\"VolRen\";

    (10) Fix bugs of mitkQEMSimplification algorithm;

    (11) Fix other small bugs found in MITK 1.3.

MITK 2.0 Key changes from 1.x


    (1) NEW fully support of out-of-core data set, including out-of-core volume and out-of-core mesh: update the class hierarchy of mitkDataObject; add mitkOoCVolume, mitkOoCTriangleMesh and mitkHEOoCTriangleMesh to support out-of-core volume, mesh and half-edge mesh:
        Some changes to the interfaces:
        a. mitkVolume::Allocate() no longer return the pointer to the volume data, return a bool value to indicate whether the space allocation is successful;
        b. mitkVolume::GetData() does not always return a valid pointer to the volume data, it will return NULL for mitkOoCVolume;
        c. mitkVolume add new interfaces (e.g. GetSliceForRead(), GetSliceForWrite(), GetSliceForReadWrite(), ReadSliceData(), WriteSliceData(), etc.) for accessing slice data in the volume which are recommended to use (see class documentation for details);
        d. mitkMesh::GetVertexData() and mitkMesh::GetFaceData() do not always return the valid pointers to the vertex/face data, they will return NULL for out-of-core mesh;
        e. mitkMesh add new interfaces (e.g. GetVertex(), GetFace(), SetVertex(), SetFace(), etc.) for accessing the vertex/face data(see class documentation for etails).

    (2) NEW mitkOoCVolumeRayCastCompositeFunction and mitkOoCVolumeRendererRayCasting classes: provide out-of-core volume ray casting algorithm;

    (3) NEW mitkOoCVolumeRendererTexture3D class: provide 3D texture based volume rendering algorithm;

    (4) NEW mitkOoCSurfaceRendererStandard and mitkOoCSurfaceRendererUseVA classes: support surface rendering for the out-of-core mesh;

    (5) NEW mitkCacheVolumeReader and mitkCacheVolumeWriter classes: provide I/O functions for the disk cache data of mitkOoCVolume, which can reuse the cache data and accelerate the loading process of the out-of-core volume data;

    (6) UPDATE mitkMarchingCubes and mitkBinMarchingCubes classes: provide out-of-core Marching Cubes algorithm;

    (7) UPDATE the basic I/O classes (e.g. mitkDICOMReader/Wirter, etc.): support out-of-core data I/O;

    (8) UPDATE filter classes: support out-of-core input and output data;

    (9) UPDATE examples: add out-of-core test part, configure two lines in MITKTest.h #define TEST_OOC // comment it and rebuild to remove out-of-core test part char const DISK_CACHE_PATH[] = "i:\\temp\\ooctemp\\";

    (10) Fix others bugs found in MITK 1.x.

MITK 1.3 Key changes from 1.2


    (1) Improvement and update of the registration framework, including the changes of mitkRegistrationFilter, mitkMetric, mitkInterpolateFilter, etc., and changing the data type of the internal computation to 32bit float so as to simplify the algorithm implementation;

    (2) NEW mitkLinearInterpolateFilter class: provide bi-linear and tri-linear interpolation for registration algorithm;

    (3) NEW mitkBSplineInterpolateFilter class: provide B spline interpolation for registration algorithm;

    (4) NEW mitkGradientDescentOptimizer class: provide a Gradient Descent Optimizer for registration algorithm;

    (5) NEW mitkGaussianDerivativeImageFilter class: provide Gaussian Derivative Recursive algorithm for the registration optimizer;

    (6) NEW mitkResampleFilter class: to get multi-resolution images;

    (7) NEW Splatting volume rendering algorithm, including mitkVolumeRendererSplatting (main algorithm class), mitkFootprint and its sub-classes, mitkVolumeSplatFunction and its sub-classes, mitkSplatCamera (specific camera for splatting), etc.

    (8) NEW mitkVolumeRendererTexture3D class: provide volume rendering based on 3D texture acceleration;

    (9) Add support for handling mouse wheel message;

    (10) Add calculation of the frame speed in mitkView;

    (11) Add a registration example (Examples\ImageRegistration);

    (12) Add a Splatting volume rendering example (Examples\VolumeSplatting);

    (13) Add renderer switcher (ray casting <-> 3d texture) to the "VolRen" example, and displaying the frame speed in the title bar;

    (14) mitkVolumeCropFilter & mitkVolumeResizeFilter: fix bug of setting wrong pixel spacings for the output volume;

    (15) Fix others bugs found in MITK 1.2.

MITK 1.2 Key changes from 1.1


    (1) mitkReslicePlaneWidgetModel & mitkReslicePlaneWidgetModel: Add separate control for each side of the plane: select a side with left button pressed and drag to move the selected side on the plane, so as to change the width or height of the plane; select a side with right button pressed and drag to rotate the plane around the midline of the plane. The zooming of the plane is also improved to keep the change following the movement of the mouse;

    (2) mitkVolumeRendererRayCasting & mitkVolumeRendererRayCastingLoD: Solve the problem that when the pixel spacing is 1.0mm (e.g. 0.001mm) the rendering result is too small to see. This change also affects the member functions GetBounds() and GetCenter() of mitkVolumeModel. They return the bounding box and center point in voxel space in MITK 1.1, but now return them in physical space (model space). The bug of intermixing rendering with other models is also fixed and the rendering result is improved (note that intermixing rendering is still not perfect now because of the particularity of the volume rendering algorithm).

    (3) mitkVolumeRenderer: Because of the changes in (2), mitkVolumeRenderer accepts clipping plane in model space now by default. In order to keep compatibility with old codes, a new function SetAdjustClippingPlane() is added. If you use AddClippingPlane() to add clipping plane in the voxel space when performing volume rendering, please call aVolModel->GetRenderer()->SetAdjustClippingPlane(false) first.

    (4) mitkQEMSimplification: Add some constraints to improve the simplification result;

    (5) mitkHEMesh: Fix the bug of vertex manifold test;

    (6) mitkWidgetModel3D: Fix bugs in _drawCylinder() function and _drawCone() function;

    (7) mitkSurfaceRendererUseVBO: Fix a memory operation bug;

    (8) mitkMesh: Add a function TestClockWise() to test the orientation of front-facing polygons;

    (9) mitkMatrix & mitkVector: Add SSE acceleration;

    (10) Improve "Examples/Demo" by adding pixel information of current mouse position in the image view to the status-bar.

    (11) Complete the GetRegionMask() functions of 2D widgets, and add an example "Examples/InteractiveSegment" to demonstrate the use of these functions: interactive segmentation. At the same time, the "InteractiveSegment" example also introduces how to add 2D widgets by mouse interactively.

    (12) Improve "Examples/VolRen" by adding clipping function using mitkReslicePlaneWidgetModel or mitkReslicePlaneWidgetModel. Now you can use mouse to control the clipping plane interactively.

    (13) Fix others bugs found in MITK 1.1.

Compared with MITK 1.0, MITK 1.1 has following new features


    (1) Volume re-slice function: add class mitkVolumeResliceFilter to generate a group of new slices (a new volume) at an arbitrary position and along an arbitrary direction of a given volume; add class mitkReslicePlaneWidgetModel based on mitkClippingPlaneWidgetModel to generate the transect image interactively;

    (2) A simple LoD function of volume rendering: add class mitkVolumeRendererRayCastingLoD which provides two level of rendering precision, and adjust the design of mitkManipulator to support LoD;

    (3) A new volume resizing filter: mitkVolumeResizeFilter;

    (4) A new volume cropping filter: mitkVolumeCropFilter;

    (5) A new image smoothing filter: mitkDiffusionFilter;

    (6) A new image edge detection filter based on Sobel operator: mitkSobelEdgeDetectFilter;

    (7) Enhanced pseudocolor function: add class mitkPseudocolorWidgetModelEx to directly map original pixel values (including 8-bit, 16-bit, 32-bit integers and float point values) to RGB colors, and use mitkColorTable to set color table freely;

    (8) A new multi-raw-file reader: mitkRawFilesReader;

    (9) Adjust the design of mitkManipulator's interfaces: move common responding operations of different mouse messages to public functions OnMouseDown/Up/Move(), and place particular operations of derived classes to the protected virtual functions _onMouseDown/Up/Move(). So users who implement their own manipulators which are derived from mitkManipulator must change the name of functions OnMouseDown/Up/Move() to _onMouseDown/Up/Move() and place them in protected functions, if they want to move their derived class to MITK 1.1;

    (10) Fix some bugs found in MITK 1.0;

    (11) Add a complex demo example (Examples/Demo), an enhanced image browser example (Examples/ImageBrowserEx), a enhanced surface reconstruction example(Examples/SurfaceReconEx2) and a simple volume rendering example (Examples/VolRen).