[ITK-users] [ITK] Exception caught during extracting a volume, "Requested region is (at least partially) outside the largest possible region"

Timothee Evain tevain at telecom-paristech.fr
Thu Oct 8 09:26:34 EDT 2015


Hello Iyas

I think you problem is coming from the fact you are using the filter in place ("extracter->InPlaceOn();")
When you run your filter once, that's good, but you are replacing the full image data (the input) with the small neighborhood.
So basically after your first iteration, you are requesting the next neighborhood regarding the full image, which is outbound regarding the previous neighborhood.

HTH

Tim

----- Mail original -----
De: "Iyas Hamdan" <iyas.hamdan at gmail.com>
À: insight-users at itk.org
Envoyé: Jeudi 8 Octobre 2015 13:07:49
Objet: [ITK] [ITK-users] Exception caught during extracting a volume, "Requested region is (at least partially) outside the largest possible region"

Hello ITK users, 

I have a problem using the itk::ExtractImageFilter. 

What I'm trying to do is, from a 3D volume, I want to extract a small 3D neighborhood around each pixel of this volume. 

So I'm using the ExtractImageFilter more than once and I guess that is where it fails. 

The error I get is the following: 

itk::InvalidRequestedRegionError 
Location: itk::DataObject::PropagateRequestedRegion(void) 
File:itkDataObject.cxx 
Line: 393 
Description: Requested region is (at least partially) outside the largest possible region. 


I've looked on several answers to the same issue here in the mailing list and what they propose is just to replace the Update() by an UpdateLargestPossibleRegion(). And I did that but I'am still getting the same error. 


Here is the code I'm using: 

FixedImageType::RegionType RegionFixed = this->m_FixedImage->GetLargestPossibleRegion(); 
FixedImageType::SizeType F_Size = RegionFixed.GetSize(); 
FixedImageType::IndexType F_Start = RegionFixed.GetIndex(); 

/// here I set the F_Size and F_Start to the desired values 
/// and I make sure that the region is always in the largest possible region! 
/// with Patch_Size being the size of the neighborhood to be extracted around the pixel in each dimension 

for (int dim = 0; dim < 3; dim++) 
{ 
if (FixedIndex[dim] < Patch_Size) 
F_Start[dim] = 0; 

else 
{ 
if (FixedIndex[dim] > (RegionFixed.GetSize()[dim] - Patch_Size - 1)) 
F_Start[dim] = RegionFixed.GetSize()[dim] - (2 * Patch_Size + 1); 
else 
F_Start[dim] = FixedIndex[dim] - Patch_Size; 
} 

F_Size[dim] = 2 * Patch_Size + 1; 
} 

FixedImageType::RegionType F_Region; 
F_Region.SetSize(F_Size); 
F_Region.SetIndex(F_Start); 

typedef itk::ExtractImageFilter< FixedImageType, FixedImageType > FilterExtractType; 
FilterExtractType::Pointer extracter = FilterExtractType::New(); 
extracter->InPlaceOn(); 
extracter->SetDirectionCollapseToSubmatrix(); 

extracter->SetExtractionRegion(F_Region); 
extracter->SetInput(this->m_FixedImage); 

try 
{ 
extracter->UpdateLargestPossibleRegion(); 
} 
catch (itk::ExceptionObject & err) 
{ 
std::cout << "Exception caught during extracting the volume!" << std::endl; 
std::cout << err << std::endl; 
} 



Any help would be really appreciated. 

Thanks 

Iyas Hamdan 

_____________________________________
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


More information about the Insight-users mailing list