[ITK-users] [ITK] itkImageFileWriter + ExtractSliceImageFilter: largest region exception
Marcos
fotosentido at gmail.com
Tue Sep 8 15:58:45 EDT 2015
hi Timothee,
1. I did that. With .jpg on the filename, when running
writer->Update()
I get:
c:\itk-4.8.0\modules\io\jpeg\src\itkjpegimageio.cxx:454
Contents of that:
void JPEGImageIO::WriteSlice(std::string & fileName, const void *buffer) { //
use this class so return will call close JPEGFileWrapper JPEGfp(fileName.
c_str(), "wb"); FILE * fp = JPEGfp.m_FilePointer; if ( !fp ) {
itkExceptionMacro( "Unable to open file " << fileName << " for writing." <<
std::endl << "Reason: " << itksys::SystemTools::GetLastSystemError() ); } { //
use this class so return will call close JPEGFileWrapper JPEGfp(fileName.
c_str(), "wb"); FILE * fp = JPEGfp.m_FilePointer; if ( !fp ) {
itkExceptionMacro( "Unable to open file " << fileName << " for writing." <<
std::endl << "Reason: " << itksys::SystemTools::GetLastSystemError() ); }
2. I try with png. No exception, but I get a black image (same with another
inputs).
3. Oook, let's try with bmp.
Another exception:
c:\itk-4.8.0\modules\io\bmp\src\itkbmpimageio.cxx:727
Seriously, it's frustating. Maybe I should come back to the ExtractSliceImag
eFilter.
That's what I'm trying to do: just export a slice from my image.
2015-09-08 21:43 GMT+02:00 Timothee Evain <tevain at telecom-paristech.fr>:
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20150908/024e5105/attachment.html>
More information about the Insight-users
mailing list