[Insight-users] SignedMaurerDistanceMapImageFilter bugged?

Dan Mueller dan.muel at gmail.com
Mon Mar 21 13:45:26 EDT 2011


I would say yes.

2011/3/21 Dženan Zukić <dzenanz at gmail.com>:
> Should I submit the bug report?
>
> 2011/3/21 Dan Mueller <dan.muel at gmail.com>
>>
>> Hi Dženan,
>>
>> Changing the output type from short to float avoids the issue (see
>> attached).
>>
>> To me this looks like a bug related to use with integer output images:
>>    http://www.itk.org/Bug/
>>
>> Regards, Dan
>>
>> 2011/3/21 Dženan Zukić <dzenanz at gmail.com>:
>> > Hi guys,
>> > I was testing SignedMaurerDistanceMapImageFilter today, and I ran into
>> > some
>> > weird results. Namely, there seem to be some wrong results for my test
>> > images. To make things more obvious, I created 2D test cases and they
>> > are
>> > attached, as well as results.
>> > bin_* are binary test images. They were extracted from 3D versions which
>> > were written as intermediate debug output from my project (obtained
>> > using
>> > BinaryThresholdImageFilter).
>> > df_* are outputs created with the test program below. Some obvious
>> > errors
>> > are circled in red. [The result for real life data is over the 80KB list
>> > limitation so I had to remove it. The problems are in the lower left
>> > corner
>> > and along the entire right edge.]
>> > Are these know limitations, bugs which I discovered or my
>> > misinterpretation
>> > of the purpose of this filter?
>> > Regards,
>> > Dženan
>> > bugTester.cpp (uses ITK 3.20):
>> > #include "itkImageFileReader.h"
>> > #include "itkImageFileWriter.h"
>> > #include "itkImage.h"
>> > #include "itkContinuousIndex.h"
>> > #include "itkSignedMaurerDistanceMapImageFilter.h"
>> > #include "itkRescaleIntensityImageFilter.h"
>> > #include <iostream>
>> > using namespace std;
>> > int main( int argc, char ** argv )
>> > {
>> >     typedef itk::Image<short, 2> ShortImageType;
>> >     typedef itk::Image<unsigned short, 2> UShortImageType;
>> >     typedef itk::Image<unsigned char, 2> VisualizingImageType;
>> >     typedef itk::ImageFileReader< VisualizingImageType >  ReaderType;
>> >     ReaderType::Pointer reader = ReaderType::New();
>> >     reader->SetFileName( argv[1]  ); //read binary image stored in png
>> >     reader->Update();
>> >
>> >     VisualizingImageType::Pointer image=reader->GetOutput();
>> >     typedef
>> > itk::SignedMaurerDistanceMapImageFilter<VisualizingImageType,
>> > ShortImageType> DistanceMapType;
>> >     DistanceMapType::Pointer dm=DistanceMapType::New();
>> >     dm->SetInput(image);
>> >     dm->SquaredDistanceOff();
>> >     //dm->SetInsideIsPositive(true);
>> >     dm->Update();
>> >     typedef itk::RescaleIntensityImageFilter < ShortImageType,
>> > UShortImageType > RescaleImageFilterType;
>> >     RescaleImageFilterType::Pointer rescale =
>> > RescaleImageFilterType::New();
>> >     rescale->SetInput( dm->GetOutput() );
>> >     rescale->Update();
>> >
>> >     typedef itk::ImageFileWriter<UShortImageType> WriterType;
>> >     WriterType::Pointer writer1=WriterType::New();
>> >     writer1->SetFileName("dfBug.png");
>> >     writer1->SetInput(rescale->GetOutput());
>> >     writer1->Update();
>> >     return 0;
>> > }
>> > _____________________________________
>> > 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
>> >
>> >
>
>


More information about the Insight-users mailing list