[Insight-users] NthElement Image output

Bradley Lowekamp brad at lowekamp.net
Tue Nov 5 19:40:19 EST 2013


Hello,

Adaptors are not compatible with the Readers and Writers. The memory layout just doesn't match.

You could use some filter to extract a component. The VectorIndexSelectionCastImageFilter should be able to do it for you.

http://www.itk.org/Doxygen/html/classitk_1_1VectorIndexSelectionCastImageFilter.html

Brad


On Nov 5, 2013, at 7:10 PM, jmerkow <jmerkow at gmail.com> wrote:

> I am trying to use the Nth Element Image Adapter to access the two different
> components of the gradient.  The examples show how to access a single pixel,
> or pass it to a blur filter, but I am having some trouble figuring it out.
> 
> Basically, what I want to do is read in some (2D) image find the gradient,
> write each component as an image (2 components)
> 
> My code looks something like this:
> 
> reader->SetFileName(inputFilename);  // reader is <float,3>
> writer->SetFileName(outputFilename); // writer is <float,2>
> //extract a 2D slice
> 
> typedef itk::ExtractImageFilter<
> IImageType,OImageType
>> ExtractType; // IImageType is <float,3>, MImageType is <float,2>
> extract->InPlaceOn();
> extract->SetDirectionCollapseToSubmatrix();
> 
> IImageType::RegionType newRegion(start,size); // start and size are set
> correctly to get a 2D image (tested this first)
> extract->SetExtractionRegion(newRegion);
> 
> typedef itk::GradientImageFilter<MImageType,float,float> GradientType;
> typedef GradientType::OutputImageType GradientOutputType;
> typedef itk::NthElementImageAdaptor<GradientOutputType,float>
> ImageAdaptorType;
> 
> 
> /*Pipeline*/
> extract->SetInput(reader->GetOutput()); // This may get changed
> grad->SetInput(extract->GetOutput());
> grad->Update();
> adaptor->SetImage(grad->GetOutput());
> adaptor->SelectNthElement(0);
> 
> 
> Here is where I am not sure what to do...  I want to do something like:
> 
> writer->SetInput(adaptor);
> 
> Obviously, my types don't match up, because writer is typed with <float,2>
> and adapter is a <CovariantVector&lt; float, 2>, 2>, but I thought
> SelectNthElement would select the first vector component. I am not sure how
> to access the x and y gradient seperately.
> 
> Jameson
> 
> 
> 
> 
> 
> 
> --
> View this message in context: http://itk-users.7.n7.nabble.com/NthElement-Image-output-tp32683.html
> Sent from the ITK - Users mailing list archive at Nabble.com.
> _____________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
> 
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.php
> 
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
> 
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users



More information about the Insight-users mailing list