[ITK-users] Get for each voxel of a 4D image inside a mask, their corresponding 4D values

Javier Juan Albarracín javij1 at gmail.com
Wed May 4 14:15:22 EDT 2016


Hello,

I am sorry if the question is too simple but I am a newbie with ITK and 
I don't find the way to solve my problem

I have a 4D image, which is a DSC Perfusion weighted MRI. First of all, 
the type of the image must be  itk::Image<unsigned short, 4>   or  
itk::Image<itk::Vector<unsigned char, N>, 3>  ?? In the later case, I do 
not know at compile time the value of N.

And the core question, supose the image is of size 270x270x171x34, I 
want to extract for each voxel of the image which is inside the 
intracraneal mask, their 34 corresponding values. The intracraneal mask 
is not a rectangular region, but is a brain-like mask (itk::Image<bool, 
3> volume).

In a classic "for loop" scheme (where I come from) the code would be

for (int x = 0; x < image.width(); x++)
{
      for (int y = 0; y < image.height(); y++)
      {
          for (int z = 0; z < image.depth(); z++)
          {
              if (!mask(x, y, z))
                  continue;

              for (int c = 0; c < image.spectrum(); c++)
                  int v = image(x, y, z, c);
              i++;
         }
     }
}


How can do this in ITK?? I have read several ImageRegionIterator 
examples, but I do not find a clean and correct way to do what I want.

Thank you very much.
Regards.

Javier.


More information about the Insight-users mailing list