MDSTk Logo

Medical Data Segmentation Toolkit

FIT Logo
April 7, 2012: MDSTk v1.1.1 released
New version of the MDSTk (v1.1.1) has been released.
Changelog:
  • Fixed bug in installation of Eigen header files.
  • File mdsString.cpp has been correctly added to the libSystem library.
  • Fixed bug in RGBA pixel definition (i.e. the CRGBA class).
  • Found and fixed bug in calculation of a matrix inverse using Eigen.
  • Fixed bugs in CVolume::create() and CImage::create() methods that cause wrong initialization of data when a small subvolume was copied out.
  • Fixed bug in CRectBox<>::copyTo() and CRectBox<>::copyFrom() methods.
  • A modified version of the MDS_UNUSED() macro.
  • Fixed bug in mdsAnisotropic.hxx (parallelization via OpenMP).
  • Fixed compilation using MinGW on Windows.
Zipped source codes can be downloaded here MDSTk-v1.1.1.

February 20, 2012: MDSTk v1.1.0 released
New version of the MDSTk (v1.1.0) has been released.
Changelog:
  • Math library has been ported from Eigen2 to Eigen3!
  • Added preliminary support for Unicode filenames.
  • Changes in the iterator concept that result in its simplification and better performance.
  • Added OpenMP support.
  • Improvements of CImageBase<>, CVolumeBase<>, CMatrixBase<> and other class templates that implements the curiously recurring template pattern.
  • New class templates CRect<>, CRectBox<>, CImageRow<> and CVolumeRow<> providing views of images and volumes.
  • Improved support for forEach() concept.
  • Added CArray<> class template that provides the same functionality like the old-style CVector<>. It allows to make references to existing vectors.
  • Added a new data allocator - CPartedData<> - able to allocate large volumetric data in smaller blocks.
  • Upgraded to newer versions of several 3rd party libraries (i.e. zlib, libpng, freeglut, FFTW).
  • All get(i,j) methods returning reference to a matrix coefficient, vector element, image pixel, etc. were newly replaced by at(i,j) methods.
  • New CPartedData<> allocator able to allocate a large block of memory in parts. This is the default allocator for CVolume<> from now.
  • FindOpenCV2.cmake has been modified so that it supports OpenCV 2.3.1.
Zipped source codes can be downloaded here MDSTk-v1.1.0.

November 7, 2010: MDSTk v1.0.2 released
New version of the MDSTk (v1.0.2) has been released.
Changelog:
  • Fixed bug in 'FindMDSTk.cmake' file.
  • Added new modules for loading and saving sequences of images from/to specified directories (see mdsLoadJPEGDir, mdsLoadDicomDir, etc.).
  • Fixed bug in the experimental OpenCV support. An obsolete macro still used in the code caused errors during the compilation...
  • The 'FindOpenCV.cmake' file was modified so that the latest OpenCV 2.1 is supported and works fine with the toolkit.
  • Description of all modules was reviewed.
Zipped source codes can be downloaded here MDSTk-v1.0.2.

November 1, 2010: VectorSeg v1.1 released
This MDSTk extension package provides image segmentation technique based on 2D/3D Delaunay triangulation. Triangular/tetrahedral mesh is used to partition 2D/3D image data into primitives, while the mesh construction process respects significant image edges. Therefore, surfaces of image regions are well described and can be easily derived. To provide high quality meshes, methods like the isotropic meshing and the variational tetrahedral meshing can be found in the package. Finally, every element of the mesh (e.g. tetrahedron) is characterized by its feature vector detailing underlying image data. The library provides several clustering methods to classify these feature vectors into groups - image segments.

Changelog:
  • Many changes in the 3D Delaunay triangulation and improved functionality of the tetrahedral meshing.
  • Several minor changes and many bugfixes.
  • Modified meshing scripts and samples.
Zipped source codes can be downloaded here VectorSeg-v1.1.

September 3, 2010: MDSTk v1.0.1 released
New version of the MDSTk (v1.0.1) has been released.
Changelog:
  • Fixed bugs in serialization methods of the vctl::MCVertex class.
  • Added missing specializations of the mds::lbp::CLBPTraits class.
  • Found bug in the mds::img::CvImage<>::convert() method.
  • Corrected and improved functionality of the mds::img::CAdjacencyGraph class.
  • Directory 'lib' as well as prebuilt GLUT library were removed from the MDSTk distribution pack. Packages of all required prebuilt 3rd party libraries can be downloaded separately from now.
  • Modified 'CMakeLists.txt' in order to simplify the compilation process.
  • Added pkgconfig files detailing MDSTk libraries.
  • Added sample scripts running MDSTk modules (see the 'temp' directory).
  • Solved problem with dereferencing of a wrapped STL iterator during comparison of two iterators. Such dereferenceng may result in runtime error in case of the end() iterator on some platforms.
  • Several minor changes and bugfixes.
Zipped source codes can be downloaded here MDSTk-v1.0.1.

June 29, 2010: MDSTk v1.0.0rc released
New version of the MDSTk (v1.0.0rc) has been released.
Changelog:
  • Many changes in the math library! The library is based on open source libraries Eigen and UMFPACK from now. Dependency on the ATLAS library was removed.
  • A new experimental support for the OpenCV library. You can take advantage of using both libraries within a one project! See the mds::img::CVImage<> class template for details.
  • Many changes in the CMake build system. Installed system libraries libJPEG, libPNG, etc. can be used instead of ones supplied with MDSTk toolkit.
  • Naming convention of built MDSTk libraries has been changed to mdsXYZ.lib, libmdsXYZ.a, etc. format.
  • Some modifications and tuning of the EM algorithm have improved its functionality.
  • Few changes in the concept of container iterators (added mds::base::CIteratorTraits and mds::base::CIteratorBase class templates.
  • Fixed bug in the mds::base::CSTLIterator wrapper of STL iterators (dereferencing of end() interator in the constructor).
  • The toolkit can be built for 64-bit environment on Linux platform.
  • Many bugfixes and minor changes!
Zipped source codes can be downloaded here MDSTk-v1.0.0rc.

June 02, 2009: New version of MDSTk brief guide published
Revised version of the brief MDSTk guide has been published.
Zipped PDF can be downloaded from SourceForge.net.

June 02, 2009: MDSTk v0.8.1 released
New version of the MDSTk (v0.8.1) has been released.
Changelog:
  • A special lossless compression method of medical density data has been added.
  • Modified template-based implementation of the serialization interface.
  • Experimental XML support via the TinyXML library added. A newly coded XML serializer allows you to load/save all serializable objects from/to text XML file.
  • Added functions for bicubic and Lanczos image interpolation.
  • Added module providing affine geometrical image transforms.
  • Re-organized hierarchy of the Image library.
  • Added implementation of the Fast Watershed Transform algorithm.
  • Sample module providing image segmentation based on watershed transform and subsequent region merging.
  • Added a new module option used to change filename of the output log.
  • Implementation of well known LBP (Local Binary Pattern) texture features (+ sample modules).
  • Macro MDS_CLASS_NAME() was removed from the mds::base::CObject class. A new class mds::base::CNamedObject has been added.
  • Changes in the VectorEntity library (english comments ;-).
  • Minor changes and bugfixes.
Zipped source codes can be downloaded here MDSTk-v0.8.1.

July 29, 2008: MDSTk v0.8.0beta released
New version of the MDSTk (v0.8.0beta) has been released.
Changelog:
  • Added support for simple progress monitoring. Channel serializer is now able to notify calling process about the current state of a running I/O operation.
  • New definition of a base MDSTk runtime exception class. See the mds::mod::CSerializer class that shows the prefered way how exceptions can be declared, thrown and handled.
  • Few changes in CMakeLists.txt files. The newest CMake version 2.6 may be used for now.
  • Added implementation of the Lucas-Kanade optical flow estimation method.
  • Modified definition of image/volume filters hoping that the class hierarchy is more transparent.
  • Added some basic methods for image histogram thresholding (iterative thresholding with multiple thresholds, Otsu's algorithm, etc.).
  • Certain new components (e.g. implementation of the Connected Component Labeling algorithm and class encapsulating the Region Adjacency Graph).
  • Improved implementation of the region growing segmentation (see the SliceSegRG module).
  • Other minor changes and bugfixes.
Zipped source codes can be downloaded here MDSTk-v0.8.0beta.

March 4, 2008: MDSTk v0.7.2beta released
New version of the MDSTk (v0.7.2beta) has been released.
Changelog:
  • Corrected default settings used to link against the OpenGL and GLUT library on linux. The old ones didn't work on some linux systems.
  • Added simple implementation of functors and first version of signals whose concept was partially inspired with the Boost library.
  • Global signals represented as singletons suitable for distribution of events within an application.
  • Modified CMake rules so that all header files are present in generated MSVC projects.
  • All necessary DLL libraries are copied to a predefined destination directory during installation step.
  • Changed meaning of pixeles in density medical images so that CT image pixels imported from DICOM format represents Hounsfiled units [Hu]. Hence, negative values are allowed too (values in the range -1500..7000 are permitted). See include/MDSTk/Image/mdsPixelTraits.h for details.
  • Fixed bug in the mdsSliceSubsampling module.
Zipped source codes can be downloaded here MDSTk-v0.7.2beta.

December 3, 2007: MDSTk v0.7.1beta released
New version of the MDSTk (v0.7.1beta) has been released.
Changelog:
  • Added 'install' target which copies all header files, compiled libraries and modules to a predefined installation directory.
  • Corrected few bugs in implementation of smart pointers.
  • Singleton lifetime tracker has been modified with respect to some actual changes in the Loki library. This corrects few problems of the previous version.
  • Corrected bugs in specialization of CTypeTraits::getMax() and CTypeTraits::getMin() template methods.
  • Others minor changes and bugfixes.
Zipped source codes can be downloaded here MDSTk-v0.7.1beta.

November 27, 2007: Short introduction to VectorEntity released
First version of a short introduction to Vector Entity library, which is a part of the MDSTk toolkit, has been released. See the download section at SourceForge.net.

November 9, 2007: Sample volumetric data available
Sample volumetric data (results of several CT scans) in two formats are available for now. Data can be downloaded in the MDSTk native format as well as RAW data without any compression and special headers.
See the download section at SourceForge.net.

September 28, 2007: MDSTk v0.7.0beta released
New MDSTk beta version v0.7.0beta has been released.
Changelog:
  • Build system completely changed to the CMake framework. Former manually prepared Makefiles and MSVC solutions have been removed.
  • Changes in directory structure of the toolkit regarding the CMake system philosophy.
  • Added 'configure.h' header file.
  • Added Harris & Stephens image corner detection algorithm. New modules providing 2D and 3D corner detection.
  • Corrected bug in the JPEG library on windows platform (definition of the boolean type in 'rpcndr.h' system header file differs from the original one).
  • Others minor changes and bugfixes.
Zipped source codes can be downloaded here MDSTk-v0.7.0beta.

September 28, 2007: New version of MDSTk brief guide published
Revised version of the brief MDSTk guide has been published.
Zipped PDF can be downloaded from SourceForge.net.

September 20, 2007: Added CMake build system support
Excellent CMake build system may be used for the MDSTk compilation from now.
See the CMake home page.

September 17, 2007: MDSTk hosted on SourceForge.net
The MDSTk project has been registered on SourceForge.net. The most important thing is that you can use all interesting SF services such as mailing list, forums, bugtrack, etc.
Please, visit the http://sourceforge.net/projects/mdstk/ page.

June 26, 2007: New version of the brief MDSTk guide published
Updated version of the brief MDSTk guide has been published.
Zipped PDF can be downloaded here MDSTk: A Brief Guide.

June 26, 2007: MDSTk v0.6.0beta released
New MDSTk beta version v0.6.0beta has been released.
Changelog:
  • Many changes in data entity serialization over channels. New binary serializer as well as SHM serializer added. Images and volumes supports direct sharing of data over SHM for now. So, its not necessary to copy any memory during the deserialization of image/volume from shared memory.
  • Reorganized ImageIO library to allow loading of JPEG and PNG images into different types of images (e.g. RGB and grayscale). Removed classes CJPEGSlice and CPNGSlice for loading PNG and JPEG images as medical slices. Added universal functions loadPNG(), savePNG(), etc. which are able to read/write any MDSTk image from/to PNG or JPEG image.
  • Modified code of basic and cumulative histogram computation.
  • Added new modules for image/volume histogram equalization.
  • Added new iterator's base classes.
  • Modified spirit of smart pointer initialization.
  • Added elementary support for sparse matrices and sparse system solver that uses popular UMFPACK library.
  • New parameters of the mdsLoadJPEG and mdsLoadPNG modules.
  • Others minor changes and bugfixes.
Zipped source codes can be downloaded here MDSTk-v0.6.0beta.

January 05, 2007: MDSTk v0.5.3beta released
New MDSTk beta version v0.5.3beta has been released.
Changelog:
  • Disabled security warnings generated by the MS Visual C++ 2005 compiler.
  • Modified serialization approach of data entities. It is not neccessary to count accurate size of stored data because a block channel organizing data into fixed sized blocks is used for now.
  • Many changes in the VectorEntity library!
  • Several bugs fixed.
Zipped source codes can be downloaded here MDSTk-v0.5.3beta.

January 5, 2007: New version of the brief MDSTk guide published
Updated version of the brief MDSTk guide has been published.
Zipped PDF can be downloaded here MDSTk: A Brief Guide.

November 09, 2006: MDSTk v0.5.2beta released
New MDSTk beta version v0.5.2beta has been released.
Changelog:
  • Added full LAPACK library. The optimized ATLAS library implementing BLAS routines and few LAPACK functions and the full CLAPACK library are linked together. You can use routines from both libraries thenceforth. Pre-compiled library is optimized for the Pentium II processor and it doesn't use any SSE or 3DNow instructions. Performance of the library is not optimal but it is more portable.
  • Function for computation of eigenvalues and eigenvectors of a square symmetric matrix.
  • Added first version of a brief guide.
  • Others minor changes.
Zipped source codes can be downloaded here MDSTk-v0.5.2beta.

November 9, 2006: First version of a brief MDSTk guide published
First version of a brief MDSTk guide has been published.
Zipped PDF version can be downloaded here MDSTk: A Brief Guide.

September 27, 2006: MDSTk v0.5.1beta released
New MDSTk beta version v0.5.1beta has been released.
Changelog:
  • Added CLogNum class representing numbers in logarithmic space. All arithmetic operations like addition and multiplication are performed in the logarithmic space
  • General implementation of two clustering algorithms: Fuzzy C-Means and Gaussian Mixture Models (GMMs) optimized using the Expectation-Maximization (EM) algorithm. Input incomplete data are feature vectors, or just numbers, stored in a container which must provide iterators to pass through.
  • Several bugs fixed.
Zipped source codes can be downloaded here MDSTk-v0.5.1beta.

August 11, 2006: MDSTk v0.5.0beta released
New MDSTk beta version v0.5.0beta has been released.
Changelog:
  • Completely remade directory structure of the MDSTk toolkit. All required header files can be found in the /include directory and source files in the /src directory for now.
  • P. Krsek's library called VectorEntity has been added to the MDSTk toolkit. This library provides a number of vector graphics functions. It containes classes for vertices, edges, triangles, tetrahedrons, ... in 3D space.
  • Modified approach of data entities. Every data entity provides simple serialization and deserialization interface that allows to use inheritance and hierarchy of the data entities.
  • Added support for complex images as well as fundamental image conversion functions.
  • New functions for computation of two-dimensional Discrete Fourier Transform (DFT) which uses the well known FFTW library. Note that the library is distributed under the GNU General Public License which is more restrictive than the license of MDSTk toolkit.
  • Few modifications of the image/volume filtering approach which may improve its usability. Removed several bugs in implementations.
  • Many others minor changes and bugfixes.
Zipped source codes can be downloaded here MDSTk-v0.5.0beta.

March 30, 2006: MDSTk v0.4.0beta released
New MDSTk beta version v0.4.0beta has been released.
Changelog:
  • New template based library libMath including matrix and vector classes. Fast numerical rutines for linear algebra, e.g. matrix factorization and inverse, are provided through the use of the ATLAS library.
  • Modified design of the CImage and CVolume classes. Methods such as getMin(), getVariance() and convolve() were removed and reimplemented as global functions.
  • Many others minor changes and bugfixes.
Zipped source codes can be downloaded here MDSTk-v0.4.0beta.

January 26, 2006: MDSTk v0.3.2beta released
New MDSTk beta version v0.3.2beta has been released.
Changelog:
  • Modified mds::CChannel class representing I/O channels. Global functions mds::chCreate() and mds::chSeparate() were moved into the class CChannel. Now these functions are static members of the class.
  • Corrected horrible bug in the method mds::CDicomSlice::loadDicom() which causes huge memory leaks!
  • Improved DICOM medical image format parsing provided by the mds::img::CDicomSlice class. Added new attributes like slice tilt.
  • Modified Doxygen projects (version 1.4.5) for automatic generation of the source code documentation.
  • Clases and others sources were divided into individual namespaces. There are new namespaces called mds::base (most of the libBase library), mds::img (libImage and libImageIO), mds::mod (libModule) and finally mds::sys (libSystem).
  • Removed header file libModule/mdsModule.h. Its content has been moved to the libBase/mdsSetup.h file.
  • Few changes in the way of running MDSTk modules. Console module (class mds::mod::CConsole) doesn't execute separate threads for each input channel. Just a one processing thread is used which can be cancelled by ^C key sequence. The class mds::mod::CView works in the same way.
  • System singleton mds::base::CSystemSingleton has been renamed to the mds::base::CLibrarySingleton.
  • All MDSTk libraries can be compiled as singlethreaded (no locking) or multithreaded. Singlethreaded version is faster, therefore is prefered. You can switch between both versions by defining macro MDS_MULTITHREADED in the libBase/mdsSetup.h header file.
Zipped source codes can be downloaded here MDSTk-v0.3.2beta.

December 23, 2005: MDSTk web site has been updated.
Web pages detailing installation of the MDSTk toolkit has been updated. Compilation under the MS Visual C++ version 7.1 and above is described.

December 23, 2005: MDSTk v0.3.1beta released
New MDSTk beta version v0.3.1beta has been released.
Changelog:
  • Toolkit has been completely ported to the MS Visual C++ compiler. Required compiler version is 7.1 or higher.
  • New small objects allocator implementation based on actual version of the Loki library.
  • Extended functionality of image and volume iterators. Constant objects can be tranversed using const iterators. Iterator can be initialized to point at any pixel position.
  • Modified internal matrix representation which is now similar to that of images.
  • Matrix operations like matrix inverse computation are excluded from matrix class. Hence, they could be used for both static and dynamic matrixes.
  • All testing programs are distributed together with the toolkit now. Even though they are very simple, you can use them for studying.
  • Added new modules.
Zipped source codes can be downloaded here MDSTk-v0.3.1beta.

October 11, 2005: MDSTk v0.3.0beta released
New MDSTk beta version v0.3.0beta has been released.
Changelog:
  • Completely remade makefiles and whole compilation. All object files are stored in a separate directory, so they don't disturb you in directories containing source files. Full dependencies can be now generated using 'make depend' command.
  • Modified logging interface and functionality. Classes representing global application log and log channels were defined. Now, you can make and register your own output logging channels.
  • Macros MIN, MAX, ABS and etc. were replaced by template functions having same meaning. The old macros are still there but marked as obsolete.
  • Added operator '<' (less) for smart pointers comparison.
  • New built-in pixel/image types such as RGB image and so on. Added templates for pixel traits and pixel conversions.
  • Image(volume) pixel(voxel) range is a global property now. You can't set it individually for an image. On the other side a method 'convert(...)' has been added that allows you to convert images of different types to each other.
  • Pixel types 'tFPixel' and 'tUPixel' have been renamed to 'tFloatPixel' and 'tDensityPixel'.
  • Classes mds::CUImage (usnigned short/density image) and mds::CDVOlume are renamed to mds::CDImage and mds::CDVolume as well as its pixel types.
  • Modified templates and classes for image/volume filtering. Every filter is represented by a specialized generic filter template. Many basic filters such as Gaussian, Median, Sobel and Prewit operators and so on have been added.
  • Removed modules mSlice(Volume)MedianFilter. Median filtering is now provided by the mSlice(Volume)Filter module now.
  • Advanced edge detection algorithms were added. E.g. Canny Edge Detector, DoG (Difference of Gaussians) and LoG Zero Crossings.
  • Corrected bug in the 'mVolumeCut' module which causes the module malfunction.
  • Many others not so important changes and corrected bugs.
Zipped source codes can be downloaded here MDSTk-v0.3.0beta.

July 20, 2005: MDSTk v0.2.3beta released
New MDSTk beta version v0.2.3beta has been released.
Changelog:
  • Support for identification of objects on the heap was added. Objects created via 'new' operator have references counter initialized to zero, statically created object always have at least one reference. On the other hand, small object allocation model and intrusive reference (as well as smart pointers) can't be used together.
  • The GNU GCC compiler option '-ansi' was removed from all makefiles. It seems that this compilation option causes that GCC v3.4.x (and above) cannot compile the sources.
  • Several bugs has been fixed.
Zipped source codes can be downloaded here MDSTk-v0.2.3beta.

March 7, 2005: MDSTk v0.2.1beta released
New MDSTk beta version v0.2.1beta has been released. Some bugs have been corrected and the concept of data entities and channels has been remade and fixed. New feaure, RLE channel compression, was added. Zipped source codes can be downloaded here MDSTk-v0.2.1beta.

February 21, 2005: MDSTk v0.2.0beta released
First MDSTk beta version v0.2.0beta has been released and is now avaliable to public. This free version containes several base libraries and modules giving you a small set of image and volume processing functions. See the Home section for details. Zipped source codes can be downloaded here MDSTk-v0.2.0beta.

Last Change: 2012/02/21