[Insight-users] Possible bug in GaussianSpatialObject
Ali -
saveez at hotmail.com
Tue Jun 17 18:27:59 EDT 2008
Julien,
I can confirm that this is a bug in the development version of
WrapITK--we're working on it.
-Ali
Julien Jomier wrote:
> Hi Ali,
>
> Couple of things:
>
> 1) Change the gaus.GetIndexToObjectTransform().SetTranslation(offset) to
> gaus.GetObjectToParentTransform().SetTranslation(offset)
>
> 2) Add gaus.ComputeObjectToWorldTransform(); after setting the
> translation. This forces the recomputation of the world transform for
> the object.
>
> 3) Don't forget to set the size of your image for the
> SpatialObjectToImageFilter using SetSize().
>
> Here's the code I've been using (C++ version)
>
> typedef itk::GaussianSpatialObject GSType;
> GSType::Pointer gsp = GSType::New();
>
> gsp->SetMaximum(255);
> gsp->SetRadius(7);
> typedef itk::Vector VectorType;
> VectorType v;
> v[0] = 10;
> v[1] = 10;
> gsp->GetObjectToParentTransform()->SetTranslation(v);
> gsp->ComputeObjectToWorldTransform();
>
> typedef itk::Image ImageType;
> typedef itk::SpatialObjectToImageFilter FilterType;
> FilterType::Pointer filter = FilterType::New();
> filter->SetInput(gsp);
> FilterType::SizeType size;
> size[0]=20;
> size[1]=20;
> filter->SetSize(size);
> filter->Update();
>
> typedef itk::ImageFileWriter WriterType;
> WriterType::Pointer writer= WriterType::New();
> writer->SetFileName("test.jpg");
> writer->SetInput(filter->GetOutput());
> writer->Update();
>
> Let me know if that works or not,
>
> Julien
>
> Ali - wrote:
>> Hi Julien,
>>
>> It seems there is this bug in GaussianSpatialObject which causes to mess
>> up the whole spatial object image when the translation transform is
>> applied. Here is an example:
>>
>> itkGaussianSpatialObject2 gaus = new itkGaussianSpatialObject2();
>> gaus.SetMaximum(255);
>> gaus.SetRadius(7);
>> itkVectorD2 offset = new itkVectorD2();
>> offset.SetElement(0, 0.0);
>> offset.SetElement(1, 0.0);
>> gaus.GetIndexToObjectTransform().SetTranslation(offset);
>>
>> (The above code is in java, but can be used as a pseudo code). Notice
>> that whether the offset is zero or not, setting the translation value
>> messes up the gaussian object. Here are the results:
>>
>> Without calling translation: http://i26.tinypic.com/2j4u7pd.jpg
>> With calling translation: http://i31.tinypic.com/iwrd5y.jpg
>>
>> All I wanted to do was to have a gaussian object at the centre of the
>> image. Is there a better way of doing this?
>>
>>
>> -Ali
>>
>>
>>
>>
>> ------------------------------------------------------------------------
>> Miss your Messenger buddies when on-the-go? Get Messenger on your
>> Mobile!
>
>
_________________________________________________________________
All new Live Search at Live.com
http://clk.atdmt.com/UKM/go/msnnkmgl0010000006ukm/direct/01/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20080617/55830ae4/attachment.htm>
More information about the Insight-users
mailing list