Projects/Slicer3/2007 Project Week Slicer Matlab Pipeline for scalars and tensors

From NAMIC Wiki
Revision as of 22:47, 20 June 2007 by Kquintus (talk | contribs)
Jump to: navigation, search
Home < Projects < Slicer3 < 2007 Project Week Slicer Matlab Pipeline for scalars and tensors


Key Investigators

  • BWH: Katharina Quintus
  • Isomics: Steve Pieper
  • BWH: Sylvain Bouix


Objective

To extend and test Matlab client for reading and writing tensor data from/to Slicer.


Approach, Plan

  • Pipe data from running Slicer3 to Matlab and back to do quick prototyping with Matlab
  • Provide matlab tools for tensor transformation from IJK space to gradient space and the other way around
    • Test if these transformations in matlab are consistent with vtkNRRDReader
    • Quantify numerical error when transformation from ijk space to gradient space and back to ijk space is done.
  • Application testing

Progress


References

Slicer Deamon Wiki page

Additional Information

When Slicer is started with the "--daemon" flag, a server socket is created that is listening and waiting for new connections. This network service can be used to connect to an instance of Slicer and access the MRML scene or other objects in Slicer memory. Several clients have been written or are beeing worked on at the moment:

  • Tcl scripts that reads out volumes to stdout or writes to stdin
  • Python based clients
  • Matlab clients

The Slicer Deamon Wiki page provides more details.

The Matlab client

Motivation

Matlab pipeline client can be used to send data from a running slicer to Matlab, where the data can be used as input for whatever great algorithms you have implemented in matlab. The data can then be sent back to slicer for visualisations or further processing. No file I/O is necessary. Can be very useful since a lot of methods or algorithms are first prototyped in Matlab. Ideas what can be done easily in matlab while Slicer does not have the functionality yet:

  • Tensors:
    • Thresholding
    • Do tensor statistics after masking tensor with labelmap
    • Average two tensors
    • smoothing of tensor field (Marco's algorithm?)
  • Scalars:
    • plot histogram (that allows to quantify, at the moment slicer-histograms are not associated with numbers )

Tensor transformation issues

When tensors are loaded into Slicer, the vtkNRRDReader performs transformation from diffusion gradient space into image space (IJK space). This is done to improve performance since most itk-filters need the data to be in ijk space. Tensors that are piped to The decision has been made toSlicer


Back to Project week