[Insight-users] Question about itkReconstructionByDilationImageFilter
robert tamburo
robert.tamburo at gmail.com
Thu Aug 4 14:35:57 EDT 2011
markerImage is being set to maskImage on the second Update() call. Try
removing markerImage from the filter pipeline by calling
markerImage->DisconnectPipeline() after setting it to the reader output.
Since you are reusing the reader, you should also use
UpdateLargestPossibleRegion() instead of Update(). This updates the size
information.
// Get marker image
ReaderType::Pointer reader = ReaderType::New();
reader->SetFileName( inputFilenameMarker );
reader->Update();
ImageType::Pointer markerImage = ImageType::New();
markerImage = reader->GetOutput();
// Get mask image
reader->SetFileName( inputFilenameMask );
reader->Update();
ImageType::Pointer maskImage = ImageType::New();
maskImage = reader->GetOutput();
On Thu, Aug 4, 2011 at 2:18 PM, qi yang <tinaqiyang at gmail.com> wrote:
> Hi there,
>
> I am new to ITK. I have a question about
> using itkReconstructionByDilationImageFilter. Can anyone help me out?
> I have implemented a portion of simple code to input marker and mask images
> to itkReconstructionByDilationImageFilter and get output.
> But the output image I got is always the same as the mask image.
> At the same time, I used MeVisLab itkReconstructionByDilationImageFilter
> module to find out what's the ouput image using the same marker and mask
> images.
> I got the different output which I expected.
> So I think there must be something wrong with my code. The following is the
> code:
>
> #include "itkImage.h"
> #include "itkImageFileReader.h"
> #include "itkImageFileWriter.h"
> #include "itkReconstructionByDilationImageFilter.h"
> int main()
> {
> typedef unsigned char PixelType;
> const unsigned int Dimension = 2;
> typedef itk::Image< PixelType, Dimension > ImageType;
> typedef itk::ImageFileReader< ImageType > ReaderType;
> typedef itk::ImageFileWriter< ImageType > WriterType;
>
> const char *inputFilenameMarker = "C:\\marker.tif";
> const char *inputFilenameMask = "C:\\mask.tif";
> const char *outputFilename = "C:\\ITKresult.tif";
>
> // Get marker image
> ReaderType::Pointer reader = ReaderType::New();
> reader->SetFileName( inputFilenameMarker );
> reader->Update();
> ImageType::Pointer markerImage = ImageType::New();
> markerImage = reader->GetOutput();
>
> // Get mask image
> reader->SetFileName( inputFilenameMask );
> reader->Update();
> ImageType::Pointer maskImage = ImageType::New();
> maskImage = reader->GetOutput();
>
> // dilation
> typedef itk::ReconstructionByDilationImageFilter<ImageType, ImageType>
> FilterType;
> FilterType::Pointer filter = FilterType::New();
> filter->SetMarkerImage(markerImage);
> filter->SetMaskImage(maskImage);
> filter->Update();
>
> // write results
> WriterType::Pointer writer = WriterType::New();
> writer->SetFileName( outputFilename );
> writer->SetInput( filter->GetOutput());
> try
> {
> writer->Update();
> }
> catch( itk::ExceptionObject & err )
> {
> std::cerr << "ExceptionObject caught !" << std::endl;
> std::cerr << err << std::endl;
> return EXIT_FAILURE;
> }
> }
>
>
> Thank you very much!
>
> Thanks,
> Tina
>
>
> _____________________________________
> 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.html
>
> 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://www.itk.org/mailman/listinfo/insight-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20110804/e3c15e91/attachment.htm>
More information about the Insight-users
mailing list