[Insight-users] multidimensional EM with volumetric images in ITK

Luis Ibanez luis.ibanez at kitware.com
Mon Apr 30 11:51:51 EDT 2007


Hi Audette,

The version with the hard-coded number of components will run
faster than the version that only knows the number of components
at run time.

The reason is that, for the second version (number of components
at run time), you will need to use the itkVectorImage, and in
this class, the (vector) pixel values are constructed on the fly
every time that you access a pixel. Therefore, there is a price
to pay for the flexibility of allowing to choose the number of
components at run time.



    Regards,


       Luis


----------------------
Audette, Michel wrote:
> Hi Luis, 
> 
> Thanks for your kind reply. I can hard-code the number of inputs, but I would otherwise keep it general, and have the program respond to the number of inputs that I supply it at runtime. How does it affect this processing pipeline? Is there a significant advantage to the hard-coded option?
> 
> Best regards, 
> 
> Michel
> 
> 
> -----Original Message-----
> From: Luis Ibanez [mailto:luis.ibanez at kitware.com]
> Sent: Mon 4/30/2007 3:32 PM
> To: Audette, Michel
> Cc: Insight Users
> Subject: Re: [Insight-users] multidimensional EM with volumetric images in ITK
>  
> 
> 
> Hi Audette,
> 
> 
> Thanks for the clarification.
> 
> 
> Regarding the construction of a multi-component image out of a
> series of   single-component images, one option is to use the:
> 
>       ImageToVectorImageFilter
> 
> http://www.itk.org/Insight/Doxygen/html/classitk_1_1ImageToVectorImageFilter.html
> 
> 
> You may do this by taking a single ImageFileReader
> and inside a for loop do the following:
> 
> 
>    for( i =0 to number of input volumes )
>      {
>      reader->SetFileName( of this volume )
>      reader->Update();
>      ImageType::ConstPointer image = reader->GetOutput();
>      image->DisconnectPipeline();
>      imageToVectorFilter->SetNthInput( i, image );
>      }
> 
>    imageToVectorFilter->Update();
> 
>    MultiComponentImageType::ConstPointer vectorImage =
>       imageToVectorFilter->GetOutput();
> 
> 
>    ... then connect this vectorImage to an ImageToListAdaptor...
> 
>    ... then use the EM framework....
> 
> 
> 
> An important question:
> 
> 
>    Do you know in advance (at compilation time) the number of
>    components of your image ?  or you only will know this number
>    at run-time ?
> 
> 
> 
> 
> 
>    Regards,
> 
> 
> 
>      Luis
> 
> 
> 
> ------------------------
> Audette, Michel wrote:
> 
>>Hi Luis, 
>>
>>first, VTK was a typo. I meant ITK. 
>>
>>Second, how is a series of volumetric images read into the FixedArray? Does one use a SetInput() for each of the image components? I cannot find a good example that uses truly multidimensional data, amongst the standard examples.
>>
>>Best regards, 
>>
>>Michel
>>
>>-----Original Message-----
>>From: Luis Ibanez [mailto:luis.ibanez at kitware.com]
>>Sent: Mon 4/30/2007 3:00 PM
>>To: Audette, Michel
>>Cc: insight-users at itk.org
>>Subject: Re: [Insight-users] multidimensional EM with volumetric images in ITK
>> 
>>
>>Hi Audette,
>>
>>
>>Yes,
>>what you are planning to do is entirely feasible with ITK.
>>
>>
>>1) Why do you want to pass the image through  VTK ?
>>    it seems that most of it can be done directly in ITK
>>
>>
>>2) You may want to look at the papers regarding new
>>    readers for the MINC format in the Insight Journal:
>>      http://www.insight-journal.org/
>>http://insight-journal.org/dspace/handle/1926/191
>>
>>
>>3) If you read your images using a Vector type as pixel
>>    type, for example, FixedArray<double,6>, you can then
>>    connect this image to an ImageToListAdaptor, and then
>>    use the resulting ListSample class in the framework
>>    of any classifier, such as the EM methods.
>>
>>    When you take a image with multiple-components pixel
>>    type and adapt it as a ListSample, it generates a
>>    multi-variate sample.
>>
>>
>>
>>   Regards,
>>
>>
>>      Luis
>>
>>
>>-----------------------
>>Audette, Michel wrote:
>>
>>
>>>Dear Insight Users,
>>>
>>>I would like to read in several image (minc format) volumes, and use those to define a multidimensional VTK image. I would then like to run an Expectation Maximization method that attempts to find multidimensional Gaussians, using some kind of ImageToListAdaptor (vector itkImageToListAdaptor?). Each input would be read separately, but how does one go about casting those scalar image inputs as part of a vector-valued image, over which to run EM? Is such a thing feasible in ITK?
>>>
>>>Cheers,
>>>
>>>Michel
>>>
>>>Michel Audette, Ph.D. 
>>>Innovation Center Computer Assisted Surgery (ICCAS) 
>>>Philipp-Rosenthal-Strasse 55
>>>Leipzig, Germany
>>>Phone: ++49 (0) 341 / 97 - 1 20 13
>>>Fax: ++49 (0) 341 / 97 - 1 20 09
>>>
>>>
>>>
>>>_______________________________________________
>>>Insight-users mailing list
>>>Insight-users at itk.org
>>>http://www.itk.org/mailman/listinfo/insight-users
>>>
>>
>>
>>
> 
> 


More information about the Insight-users mailing list