History of MITK


MITK 1.x: 初步的数据和算法封装,初步实现数据读取、滤波、分割、配准、可视化等功能。

MITK 2.0: 引入了Out-of-Core机制,实现对大数据的缓冲。

MITK 2.2: 在原有算法集的基础上引入了前重建这个新的分支。

MITK 2.3: 使用Kitware的CMake工具重新进行工程组织,工程被分割成多个模块,这样便于管理,同时实现对更多开发环境的兼容。

目前MITK正在新的更加灵活的框架下进行包括GPU算法在内的多方面扩展。

MITK 2.4.0 Key changes from 2.3.6


    (1) 新增 Additional\mitkOpenCL 模块,这个模块是一个基于OpenCL的MITK GPU 计算子框架。目前,主要提供了一些用于体绘制的类。与基于CUDA的体绘制相比,这个模块在设计上采用了更细的粒度。
    (2) 基于兼容想考虑,移除了上一个版本在mitkVisualization2中引入的OpenCL类。
在mitkCommon中新增了一组用于中心线提取的细化算法
    (3) 新增mitkVis2SurfaceScene于mitkVisualization2,提供depth-peeling的支持

MITK 2.3.6 Key changes from 2.3.5


    (1) 新增 mitkIsosurfaceCurvatureFilter 于 mitkCommon: 一个用来计算等值面曲率的三维体数据滤波器。

    (2) 新增 mitkPath 于 mitkCommon:用来储存路径数据。

    (3) 新增 mitkCLMIPVRScene 于 mitkVisualization2: 基于OpenCL的MIP体绘制。

    (4) 新增 mitkCLIsosurfaceScene 于 mitkVisualization2: 基于OpenCL的等值面体绘制。

    (5) 新增 mitkCLFullVRScene 于 mitkVisualization2: 基于OpenCL的完全体绘制。

    (6) 新增 mitkCLEndoscopySliceScene 于mitkVisualization2: 基于OpenCL的内窥镜切片导航。

    (7) 新增 mitkCUDADeltaAccStateVRScene 于mitkCUDAVolumeRendering: 一个基于状态转移模型的体绘制场景,CUDA实现。

    (8) 新增 mitkCUDAValueBasedStateVRScene于mitkCUDAVolumeRendering: 另一个基于状态转移模型的体绘制场景,CUDA实现。

    (9) 新增 mitkCUDAWallCarvingVRScene于mitkCUDAVolumeRendering: 一个采用Wall-Carving技术的体绘制内窥镜场景,CUDA实现。

    (10) 新增 mitkCUDAWallPenetrateVRScene 于 mitkCUDAVolumeRendering: 一个采用Wall-Penetrating 技术的体绘制内窥镜场景,CUDA实现。
    (11) 为内窥镜体绘制场景增加了中心线导航功能。

MITK 2.3.5 Key changes from 2.3.4


    (1) 新增 mitkFFTFilter于 mitkCommon: 一个用来对体数据进行三维FFT的滤波器。

    (2) 新增 mitkRadom.h于 mitkCommon: 提供了一组用于随机数生成的工具函数。
    (3) 新增 mitkSheetFilter.h于 mitkCommon: 一个用来检测薄板特征的滤波器。
    (4) 新增 mitkEndoscopySliceScene于mitkVisualization2:一个用于内窥镜导航的场景类(采用CPU插值)。
    (5) 新增 mitkTargetMeasurementScene于mitkVisualization2:一个用于测量目标物体长短轴的场景类。
    (6) 新增 mitkCUDAEndoscopySliceScene于mitkCUDAVolumeRendering: 一个用于内窥镜导航的场景类(采用GPU插值),CUDA实现。

    (7) 新增 mitkCUDAROIDistanceVRScene于mitkCUDAVolumeRendering: 一个用于测量ROI物体到边界距离的场景类,CUDA实现。

    (8) 新增 mitkCUDAStructureFunctionVRScene于mitkCUDAVolumeRendering: 一个用于结构、功能双模态体绘制的场景类,CUDA实现。
    (9) 新增 mitkCUDAVersatileVRScene于mitkCUDAVolumeRendering: 一个体绘制场景类,采用了versatile 光学模型。

    (10) 为所有体绘制场景增加了内窥镜支持。
    (11) 为所用体绘制场景增加了包围盒裁减功能。
    (12) 为部分体绘制场景增加了示意图功能。

MITK 2.3.4 Key changes from 2.3.3


    (1) 新增mitkCUDAAugmentedSurfaceVRScene于Additional/mitkCUDAVolumeRendering: 一个用于体数据可视化的"增强等值面绘制"3D场景,与mitkCUDAIsosurfaceVRScene相比,这个绘制方法在着色方面更加丰富。

    (2) 新增mitkCUDADecomposedIsosurfaceVRScene于Additional/mitkCUDAVolumeRendering: 一个用于较大数据量下体数据可视化的"分解数据等值面绘制"3D场景,在绘制前首先对数据进行了分块和判空,因此这个算法可以处理相对较大的数据,即使不能完全装入显存也可以绘制。同时也支持等值面的颜色增强技术。

    (3) 新增 mitkMIPVRScene 于 mitkVisualization2:一个进行MIP体绘制的3D场景,通过CPU多线程实现。

    (4) 新增 mitkVersionCounter 于 mitkCommon:一个用于对成员对象进行版本计数的辅助类,可以用来判断是否需要刷新。

    (5) 重新设计了mitkVisualization2 和 mitkCUDAVolumeRendering 两个模块的内部结构,接口基本保持不变,只有mitkGLSLShadedVRScene类改名为 mitkGLSLFullVRScene, mitkCUDAShadedVRScene 改名为 mitkCUDAFullVRScene。

    (6) 修改了各个分割类的输出方式,现在统一输出二值蒙板。

MITK 2.3.3 Key changes from 2.3.2


    (1) 新增 mitkCUDASegmentedVRScene 于 Additional/mitkCUDAVolumeRendering: 一个用于绘制分割过的体数据的3D场景,CUDA实现。

    (2) 新增 mitkFullVRScene 于 mitkVisualization2:一个进行完全体绘制的3D场景,通过CPU多线程实现。

    (3) 新增 mitkWatershedSegFilter 于 mitkSegmentation:一个采用watershed算法的体数据分割滤波器。

    (4) 修改了mitkRectWidgetModel2D 和其他一些类中的Bug.

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).