[Insight-users] TileFilterType

Alberto albermnz at gmail.com
Tue Jun 17 13:53:16 EDT 2008


Thanks a ot BIll, although I just tried what you said and it still doesn't
work. The output is exactly the same.
Has anybody  another suggestion?

Regards
Bert

On Tue, Jun 17, 2008 at 7:43 PM, Bill Lorensen <bill.lorensen at gmail.com>
wrote:

> Bert,
>
> Move the
> ExtractFilterType::Pointer extractFilter = ExtractFilterType::New ();
> inside the for loop. Currently you are reusing the output of the same
> instance. By moving the New inside the loop, you will get a new
> extract filter for each iteration. The magic of smart pointers should
> delete memory when it should.
>
> Bill
>
> On Tue, Jun 17, 2008 at 12:45 PM, Alberto <albermnz at gmail.com> wrote:
> > Dear all,
> > I am trying to test that I know how to use the tileFIlter. What I am
> doing
> > is to extract 5 2D slices and then, withot any processing, recover the 3D
> > image. The problem is that all slices are OK, except the first one which
> is
> > equal to the las one. I cannot see the mistake, could yo help me?
> >
> >
> >
> >
> > typedef unsigned char         InputPixelType;
> >     typedef unsigned char         MiddlePixelType;
> >     typedef unsigned char         OutputPixelType;
> >
> >     typedef itk::Image< InputPixelType,  3 >    InputImageType;
> >     typedef itk::Image< MiddlePixelType, 2 >    MiddleImageType;
> >     typedef itk::Image< OutputPixelType, 3 >    OutputImageType;
> >
> >     typedef itk::ImageFileReader< InputImageType  >  ReaderType;
> >     typedef itk::ImageFileWriter< OutputImageType  >  WriterType;
> >
> >     typedef itk::ExtractImageFilter< InputImageType, MiddleImageType  >
> > ExtractFilterType;
> >     typedef itk::TileImageFilter<MiddleImageType, OutputImageType >
> > TileFilterType;
> >
> >     const char * inputFilename  = argv[1];
> >     const char * outputFilename = argv[2];
> >
> >     ReaderType::Pointer reader = ReaderType::New();
> >     WriterType::Pointer writer = WriterType::New();
> >     reader->SetFileName( inputFilename  );
> >     writer->SetFileName( outputFilename );
> >
> >     reader->Update();
> >
> >     InputImageType::RegionType inputRegion =
> > reader->GetOutput()->GetLargestPossibleRegion();
> >     ExtractFilterType::Pointer extractFilter = ExtractFilterType::New ();
> >
> >     InputImageType::SizeType size = inputRegion.GetSize();
> >     size[2] = 0;
> >
> >     InputImageType::IndexType start = inputRegion.GetIndex();
> >     InputImageType::RegionType desiredRegion;
> >
> >     TileFilterType::Pointer tileFilter = TileFilterType::New();
> >
> >     for (int sliceNumber=0; sliceNumber<5; sliceNumber++)
> >     {
> >         start[2] = sliceNumber;
> >
> >         desiredRegion.SetSize(  size  );
> >         desiredRegion.SetIndex( start );
> >
> >         extractFilter->SetExtractionRegion( desiredRegion );
> >         extractFilter->SetInput( reader->GetOutput() );
> >         extractFilter->Update();
> >
> >         TileFilterType::LayoutArrayType layout;
> >         layout[0] = 1;
> >         layout[1] = 1;
> >         layout[2] = 0;
> >         tileFilter->SetLayout( layout );
> >
> >         //  Set up pipeline
> >         tileFilter->SetInput( extractFilter->GetOutput() );
> >
> >         //  Vector of pointers to the many 2D extracted images
> >         std::vector< MiddleImageType::Pointer > extracts;
> >         desiredRegion.SetIndex( start );
> >
> >         extracts.push_back( extractFilter->GetOutput() );
> >
> >         if (sliceNumber != 0)
> >         {
> >             tileFilter->PushBackInput( extracts.back() );
> >         }
> >         extracts.back()->DisconnectPipeline();
> >     }
> >     tileFilter->Update();
> >
> >
> > Thanks a lot
> > Best regards
> > Bert
> >
> >
> > _______________________________________________
> > Insight-users mailing list
> > Insight-users at itk.org
> > http://www.itk.org/mailman/listinfo/insight-users
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20080617/df40ac2b/attachment.htm>


More information about the Insight-users mailing list