[ITK] [ITK-users] itkImageFileWriter + ExtractSliceImageFilter: largest region exception
Bradley Lowekamp
blowekamp at mail.nih.gov
Tue Sep 8 16:05:15 EDT 2015
Hello,
You can use the Image::GetBufferedRegion method and print the resulting ImageRegion.
This looks like there is a pipelining issue to me. I'd recommend trying to simplify by not reusing the Image data object. Yes you will need to recompute, but it may help to narrow down the problem.
Brad
On Sep 8, 2015, at 3:06 PM, Marcos <fotosentido at gmail.com> wrote:
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/community/attachments/20150908/b346e8bf/attachment.html>
-------------- next part --------------
_____________________________________
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