[Insight-users] Question about itk::ThresholdSegmentationLevelSetImageFilter

Joshua Cates cates at sci.utah.edu
Wed, 28 Jan 2004 10:09:53 -0700 (MST)


Hello Chunyan,

There is probably something in the casting of your image types that is
causing the differences, but I cannot tell from your description how your
pipeline is constructed.  Note that the
ThresholdSegmenationLevelSetImageFilter will automatically cast the
FeatureImage input to a floating point type.  All of the level-set filters
requires floating point precision for correct results.  Explicitly casting
the image to float before setting it as the input should not change the
result but is not required.

Josh.

______________________________
 Josh Cates			
 Scientific Computing and Imaging Institute
 University of Utah
 Email: cates at sci.utah.edu
 Phone: (801) 587-7697
 URL:   http://www.sci.utah.edu/~cates


On Wed, 28 Jan 2004, jiang wrote:

> Dear ITK-users,
> I tried to do image segmentation by
> itk::ThresholdSegmentationLevelSetImageFilter. It can work now. Firstly, I
> set m_thresholdSegmentation->SetFeatureImage() by read a .png file. Then I
> try to set m_thresholdSegmentation->SetFeatureImage() by one
> InputImageType::Pointer. But the result is not same as before. The other
> settings are totally same. The following is the detail:
> In the first case:
>    typedef signed short                    PixelType;
>    typedef itk::Image<PixelType, 2>        ImageType;
> 
>    itk::PNGImageIO::Pointer io;
>    io = itk::PNGImageIO::New();
>    itk::ImageFileWriter<ImageType>::Pointer writer;
> 
>    typedef   float                                   InputPixelType;
>    typedef   itk::Image< InputPixelType, 2 >         InputImageType;
>    typedef   itk::ImageFileReader<InputImageType >   ReaderType;
>    ReaderType::Pointer reader;
> 
>    ImageType::Pointer --> writer("ImageFile.png") --> reader
>    m_thresholdSegmentation->SetFeatureImage(reader->GetOutput())
> 
> In the second case:
>    typedef itk::CastImageFilter<ImageType,InputImageType> CasterType;
>    CasterType1::Pointer Caster;
> 
>    ImageType::Pointer --> Caster
>    m_thresholdSegmentation->SetFeatureImage(Caster->GetOutput())
> 
> 
> The result of second case is not what I want. How can I get the same result
> as first case, but not use "writer" and "reader", directly by Pointer?
> 
> 
> Thanks a lot!
> 
> 
> Chunyan
> 
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>