[ITK-users] Segfault after SliceBySliceImageFilter

Jonas Teuwen jonasteuwen at gmail.com
Thu Aug 3 18:48:01 EDT 2017


Hi all,

I wish to apply a filter slice by slice, for which I use
SliceBySliceImageFilter (after the appropriate definitions):

"""
  typedef itk::LaplacianSharpeningImageFilter <ImageType3D,
FloatImageType3D> LaplacianSharpeningImageFilterType;
  LaplacianSharpeningImageFilterType::Pointer
LaplacianSharpeningImageFilter = LaplacianSharpeningImageFilterType::New();
  LaplacianSharpeningImageFilter->SetInput(reader->GetOutput());
  LaplacianSharpeningImageFilter->Update();

  typedef itk::FlatStructuringElement<2> StructuringElementType;
  StructuringElementType::RadiusType AnnulusRadius;
  AnnulusRadius.Fill(10);
  StructuringElementType StructuringElement =
StructuringElementType::Annulus(AnnulusRadius, Thickness, false, false);

  typedef itk::SliceBySliceImageFilter<FloatImageType3D, FloatImageType3D>
SliceFilterType;
  SliceFilterType::Pointer SliceFilter = SliceFilterType::New();

  typedef
itk::GrayscaleDilateImageFilter<SliceFilterType::InternalInputImageType,

SliceFilterType::InternalOutputImageType, StructuringElementType>
GrayscaleDilateImageFilterType;
  GrayscaleDilateImageFilterType::Pointer GrayscaleDilateImageFilter =
GrayscaleDilateImageFilterType::New();
  GrayscaleDilateImageFilter->SetKernel(StructuringElement);

  SliceFilter->SetInput(LaplacianSharpeningImageFilter->GetOutput());
  SliceFilter->SetFilter(GrayscaleDilateImageFilter);
"""
If I write the output of SliceFilter to a file, I get what I expact, but I
do want to compute the minimum between the result and the sharpened image:

  typedef itk::MinimumImageFilter<FloatImageType3D, FloatImageType3D,
FloatImageType3D> MinimumImageFilterType;
  typename MinimumImageFilterType::Pointer MinimumImageFilter;
  MinimumImageFilter->SetInput(0, SliceFilter->GetOutput());
  MinimumImageFilter->SetInput(1,
LaplacianSharpeningImageFilter->GetOutput());

But that immediately segfaults, even before the output is written to disk.
Whichever order, gdb tells me the program crashes at any ->SetInput in the
MinimumImageFilter.
If I on the other hand input a 2D image, and I do not use the
SliceBySliceImageFilter, the program seems to work as expected.

Are there any debugging steps which I could try to find the flaw?

Best,
Jonas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20170804/81983635/attachment.html>


More information about the Insight-users mailing list