Proposals:Adding MINC File Format: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
No edit summary
 
(19 intermediate revisions by 3 users not shown)
Line 13: Line 13:
Note, that there are readily available tools that are included in the MINC 2.X distribution (mincconvert) that will convert between the two formats.
Note, that there are readily available tools that are included in the MINC 2.X distribution (mincconvert) that will convert between the two formats.


A large amount of work on this IO module has been done already by Leila Bagdahdi of the mICE imaging Center in Toronto, this has resulted in [http://insight-journal.org/dspace/handle/1926/191 this Insight Article]
There is already a complete MINC2.0 IO module by Leila Baghdadi of the mICE imaging Center in Toronto, this has resulted in [http://insight-journal.org/dspace/handle/1926/191 this Insight Article]


== Capabilities ==
== Capabilities ==
Line 41: Line 41:
== Limitations ==
== Limitations ==


* You have to use the API to write tools, there are some who haven't and reverse engineered it and suffered... (They shall remain nameless).
* only MINC2.0 files are supported by the module. For philosophical reasons there are no plans to support the reading of MINC1.X files as there is no reason to stick with them. There is a converter tool (mincconvert) included in the base MINC2.0 distribution that will perform the conversion with (consummate) ease. Perhaps if there is sufficient backlash, MINC1.X reading will be supported in some sort of fall-back mode.


== How to use it ==
== How to use it ==


Download the latest release [http://insight-journal.org/dspace/handle/1926/191 here], then do Cmake incantations.
Download the latest release [http://hdl.handle.net/1926/191 http://hdl.handle.net/1926/191], then do Cmake incantations.


  -- more details to follow in here once I streamline the build -- Andrew Janke
* more details to follow in here once I streamline the build -- Andrew Janke


== Roadmap to get this included ==
== Roadmap to get this included ==


  - Write test-cases for all parts of the reader/writer and get them into Dashboard.
=== MINC2ImageIO ===
  - Fix problems with Build process on at least the platforms that MINC is built on (Debian, Mac, Winderz, Cygwin, Redhat, IRIX).
 
  - Write lots of lovely examples
# Write test-cases for all parts of the reader/writer and get them into Dashboard.
# Fix problems with Build process on at least the platforms that MINC is built on (Debian, Mac, Winderz, Cygwin, Redhat, IRIX).
# Write lots of lovely examples
 
=== Third party libraries ===
 
These classes require the following libraries:
 
{| border="1"
|- bgcolor="#abcdef"
! Heading1 !! Home Page !! Size Kb !! License
|-
| MINC2 || http://www.bic.mni.mcgill.ca/software/minc/ ||  7,663 Kb ||  BSD-Like (according to COPYING file in the source code)
|-
| NetCDF || http://www.unidata.ucar.edu/software/netcdf || 581 Kb || [http://www.unidata.ucar.edu/software/netcdf/copyright.html BSD-Like]
|-
| HDF5 || http://hdfgroup.com/HDF5 || 5,282 Kb ||  [http://hdfgroup.com/HDF5/doc/Copyright.html BSD-Like ]
|}
 
The current size of ITK source code is 98Mb, and the size of the Utilities subdirectory is 28.8Mb


== Questions for ITK devs ==
== Questions for ITK devs ==


  - Documentation:  
* Documentation:  
      Include Doxygen docs in code?  -- This seems to be the status quo for ITK from what I can see.
** Include Doxygen docs in code?  -- This seems to be the status quo for ITK from what I can see.
** Answer: YES, doxygen documentation must be included in the code. [[User:Ibanez|Ibanez]] 13:01, 27 August 2007 (EDT)
 
== Example Code ==
 
  - [[ExampleFileScript]] - a script to generate the test MINC data used for the reader
  - [[MINCExample01]] - the first example bit of code for how to use the reader (And test)


== Place for ITK MINC users to whinge/complain/send flowers/request things
== Place for ITK MINC users to whinge/complain/send flowers/request things ==


  - I want <this> feature included.
* I want <this> feature included.
* One limitation I noticed when testing early releases related to scaling support.
** It seems that certain types of minc image allow a scale factor to be included, but there didn't appear to be a way to access that factor from ITK, or apply it to the data.

Latest revision as of 17:14, 27 August 2007

Adding support for MINC File Format

The plan is to incorporate a fully functional (support all headers in both directions) MINC2.0 IO read/write module for ITK. The module should also read MINC 1.0 files, but not write them for compatibility.

What is MINC ?

MINC is an Image File Format, 3 level API and an Image Processing toolkit that has been developed over the past 15 years at the Brain Imaging Centre (or Centre) at the Montreal Neurological Institute. You can read more about it here and here.

MINC 1.X was originally called Medical Image NetCDF, but things have changed since given the use of large datasets as the BIC (>4GB), this necessitated a shift away from netCDF and as such HDF5 was chosen for MINC2.X. The ITK MINC library will be based upon MINC 2.X with planned support for reading MINC 1.X files.

Note, that there are readily available tools that are included in the MINC 2.X distribution (mincconvert) that will convert between the two formats.

There is already a complete MINC2.0 IO module by Leila Baghdadi of the mICE imaging Center in Toronto, this has resulted in this Insight Article

Capabilities

There have been a number of well used Medical Imaging "things" developed around MINC including N3 - Inhomogeneity Correction, registration, brainweb, the ICBM, average 305 and colin 27 models to name a few.

A short-list of things that the MINC tools can do:

  • Non Unifority Correction (John Sled)
  • linear and nonlinear (grid-transform based) registration (Louis Collins)
  • MATLAB interface (EMMA)
  • Partial Volue Estimation (PVE - Jussi Tohka)
  • Segmentation (Alex Zijdenbos, Louis Collins, Chris Cocosco and others)
  • Cortical Surface Extraction (lots, just about everyone in Alan Evans Lab for the past 15 years)
  • Diffusion, Perfusion (Andrew Janke)
  • Deformation Analysis
  • GLM Modeling
  • fMRIstat (Keith Worsley)
  • MINC Toolbox: resampling, math, arbitrary calculus across images, resampling, reshaping, lookup tables, image generation via ImageMagick,
  • MINC file format: "limitless" arbitrary named dimensions, direction cosines, abstracted range calculations from multiple underlying data formats dependant on precision, separation of voxel and world co-ordinates, automated history storage for provenance of data, "limitless" user defined header fields
  • MINC API: 2/3 levels of programming, minc_simple (slurp it all in), volume_io (more low-level), minc proper. There are also programming interfaces such as voxel_loop that allow buffered processing of multiple files (>100) with a very small memory footprint.


Limitations

  • only MINC2.0 files are supported by the module. For philosophical reasons there are no plans to support the reading of MINC1.X files as there is no reason to stick with them. There is a converter tool (mincconvert) included in the base MINC2.0 distribution that will perform the conversion with (consummate) ease. Perhaps if there is sufficient backlash, MINC1.X reading will be supported in some sort of fall-back mode.

How to use it

Download the latest release http://hdl.handle.net/1926/191, then do Cmake incantations.

  • more details to follow in here once I streamline the build -- Andrew Janke

Roadmap to get this included

MINC2ImageIO

  1. Write test-cases for all parts of the reader/writer and get them into Dashboard.
  2. Fix problems with Build process on at least the platforms that MINC is built on (Debian, Mac, Winderz, Cygwin, Redhat, IRIX).
  3. Write lots of lovely examples

Third party libraries

These classes require the following libraries:

Heading1 Home Page Size Kb License
MINC2 http://www.bic.mni.mcgill.ca/software/minc/ 7,663 Kb BSD-Like (according to COPYING file in the source code)
NetCDF http://www.unidata.ucar.edu/software/netcdf 581 Kb BSD-Like
HDF5 http://hdfgroup.com/HDF5 5,282 Kb BSD-Like

The current size of ITK source code is 98Mb, and the size of the Utilities subdirectory is 28.8Mb

Questions for ITK devs

  • Documentation:
    • Include Doxygen docs in code? -- This seems to be the status quo for ITK from what I can see.
    • Answer: YES, doxygen documentation must be included in the code. Ibanez 13:01, 27 August 2007 (EDT)

Example Code

 - ExampleFileScript - a script to generate the test MINC data used for the reader
 - MINCExample01 - the first example bit of code for how to use the reader (And test)

Place for ITK MINC users to whinge/complain/send flowers/request things

  • I want <this> feature included.
  • One limitation I noticed when testing early releases related to scaling support.
    • It seems that certain types of minc image allow a scale factor to be included, but there didn't appear to be a way to access that factor from ITK, or apply it to the data.