[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