[ITK] [ITK-users] itkImageFileWriter + ExtractSliceImageFilter: largest region exception

Timothee Evain tevain at telecom-paristech.fr
Tue Sep 8 15:43:53 EDT 2015


Hi Marcos,

Regarding the ExtractImageFilter, this is an expected result. As you can read here, http://www.itk.org/Doxygen/html/classitk_1_1ExtractImageFilter.html , setting the collapse direction is mandatory. The default setting is "Unknown" and the filter will not run correctly.

So I suggest you add:
extracter->DirectionCollapseToIdentity();

This should works.


Tim


----- Mail original -----
De: "Marcos" <fotosentido at gmail.com>
À: insight-users at itk.org
Envoyé: Mardi 8 Septembre 2015 21:06:25
Objet: Re: [ITK] [ITK-users] itkImageFileWriter + ExtractSliceImageFilter: largest region exception

Hi, 

I know the input and desired regions, not sure how to look for the buffered region. 

1. Reviewing my code I saw I didn't set the input image for the extracter, so I added: 
extracter->SetInput(image); 

Good, right? But no. Still the same error. 

2. Then I tried switching to itkExtractImageFilter, and I got: 
Exception at 0x7633c42d, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) (first chance) at c:\itk-4.8.0-installed\include\itk-4.8\itkextractimagefilter.hxx:242 

So I had to look inside this code (why don't throw me more info in the try catch?) to see what's happening, and I read this: 
itkExceptionMacro ( << " It is required that the strategy for collapsing the direction matrix be explicitly specified. " << " Set with either myfilter->SetDirectionCollapseToIdentity() or myfilter->SetDirectionCollapseToSubmatrix() " 	<< typeid ( ImageBase< InputImageDimension > * ). name () ); 
3. I also tried to insert a: 
image->Update(); 
or 
image->UpdateOutputData(); 
with same results. 

I was thinking about passing the reader, but I'd like to apply changes to my image, so this method would receive a modified copy (no DeepCopy method like in vtk?) 


Yes, the input image is connected to a pipeline: 
itk::Image -> itk:: ImageToVTKImageFilter -> vtk:: vtkImageFlip -> vtkImageData -> vtkImageViewer2 


Thanks again for your interest. 


2015-09-08 16:16 GMT+02:00 Bradley Lowekamp < blowekamp at mail.nih.gov > : 



Hello, 

What is the buffered region for the input image? Is the input image connected to a pipeline? 

Perhaps you just forgot to update the input image before running this function? 

Brad 

On Sep 7, 2015, at 5:21 PM, Marcos < fotosentido at gmail.com > wrote: 




Hi, 

I have a method that was exporting fine one frame from my itk::Image. 

My method: 

void Exporter :: exportOriginal ( QString fileName , ImageType :: Pointer image , int frame ) 
{ 
typedef itk :: ImageFileWriter < FrameImageType > WriterType ; 
WriterType :: Pointer writer = WriterType :: New (); 

writer -> SetFileName ( fileName . toStdString (). c_str ()); 

ImageType :: RegionType inputRegion = image -> GetLargestPossibleRegion (); 

ImageType :: IndexType index = inputRegion . GetIndex (); 
ImageType :: SizeType size = inputRegion . GetSize (); 

index [ 0 ] = 0 ; 
index [ 1 ] = 0 ; 
index [ 2 ] = frame ; 

// 3D to 2D 
size [ 2 ] = 0 ; 

ImageType :: RegionType outputRegion ; 
outputRegion . SetIndex ( index ); 
outputRegion . SetSize ( size ); 

typedef itk :: Testing :: ExtractSliceImageFilter < ImageType , FrameImageType > ExtractType ; 
ExtractType :: Pointer extracter = ExtractType :: New (); 
extracter -> SetExtractionRegion ( outputRegion ); 

writer -> SetInput ( extracter -> GetOutput ()); 
try 
{ 
writer -> Update (); 
} 
catch ( itk :: ExceptionObject & ex ) 
{ 
std : cerr << ex << std :: endl ; 
} 
} 

as inputRegion, I have: 
index: [0, 0, 0] 
size: [512, 512, 12] 

as outputRegion, I have: 
index: [0, 0, 1] # first frame 
size: [512, 512, 0] 



But I'm not sure what happened, now with every image I got an exception: 
itkimagefilewriter.hxx:287: " Largest possible region does not fully contain requested paste IO region " 

By the way, my try catch is not getting the exception message, I had to look inside the writer class. 
Any ideas? Thank you. 
_____________________________________ 
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://public.kitware.com/mailman/listinfo/insight-users 



_____________________________________
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://public.kitware.com/mailman/listinfo/insight-users

_______________________________________________
Community mailing list
Community at itk.org
http://public.kitware.com/mailman/listinfo/community
_____________________________________
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://public.kitware.com/mailman/listinfo/insight-users


More information about the Community mailing list