[Insight-users] pipeline type conversion problem

Luis Ibanez luis.ibanez@kitware.com
Tue May 11 04:03:19 EDT 2004


Hi Christos,

Empty parallelograms are not good figures for testing
a registration algorithm. The reason is that once they
are off registration, they loose all trace of information.

Two parallelogram shells that are translated by more pixels
than their shell width, will generate a flat value on almost
any image Metric.  If you plot the metric on the entire
parametric space it will look pretty much like a Dirac delta
for these figures.

Good testing figures should generate  metric plots that are
monotonically increasing (or decreasing) towards a single
extrema value. They should create an extended capture radius
and have a pointy extrema value.

You should start with at least two filled parallelograms...


If you are getting very noisy metric with your real images,
the options to consider are:

1) Apply Gaussian smoothing in the input images
2) Apply edge preserving smoothing such as curvature flow,
    or anisotropic diffusion filters


Both types of filters are described in the SoftwareGuide.


Note that you should differentiate if the metric plots are
noisy because the metric itself is noisy in the parametric
space or because the path that the optimizer is walking is
so random that the metric picks values from very different
locations and therefore generates and uncorrelated pattern
when you plot metric values versus iterations.


Your problem is probably unrelated to the normalizer filter
in this particular application.



    Regards,



       Luis


--------------------------
Christos Panagiotou wrote:

> Dear luis
> 
> I am trying to get an affine transform optimized.. (using the 
> MultiResMIRegistration applicaiton)
> however in some tests i ve run i am getting very noisy plots of 
> iterations-metric values.
> I thought it would be better to try a simpler example.
> 
> I have created a white cube (just the surface - not filled) in a black 
> background.
> I ve also created a similar parallelogram.
> 
> I know that these two shapes are not multi-modal however i thought that 
> a mutual information metric with
> a gradient descent optimizer would be able to tackle this.
> 
> I cannot get any close to this registration test. Would you think that 
> maybe the fact that the shapes are normalized
> before the registration would affect the result? (as they are of 
> identical modality)
> 
> Well i am trying to disable the normalizer but i ve got a problem with 
> the pipeline
> 
> in MultiResMIRegistration -> MIMPreprocessor.txx you have the following 
> lines of code
> 
>  typename CentererType::Pointer   centerer;
>  typename NormalizerType::Pointer normalizer;
>  typename PermuterType::Pointer   permuter;
>  typename FlipperType::Pointer    flipper;
> 
>  // Process the fixed image
>  centerer =  CentererType::New();
>  normalizer = NormalizerType::New();
> 
>  centerer->CenterImageOn();
>  centerer->SetInput( m_InputFixedImage );
> 
>  normalizer->SetInput( centerer->GetOutput() );
>  normalizer->Update();
>  m_OutputFixedImage = normalizer->GetOutput();
> 
> m_OutputFixedImage of course is of different type than the 
> m_InputFixedImage
> 
> how would be possible to get something like the following:
> m_OutputFixedImage = centerer->GetOutput();
> 
> from what i ve understood centerer returns a m_InputFixedImage type, so 
> how could i convert this to m_OutputFixedImage?
> i ve tried to use RescaleIntensityImageFilter however i could not make 
> it work...
> 
> i think m_InputFixedImage type is <sighned short, 3> and 
> m_OutputFixedImage type is <float,3>
> 
> thanks
> christos
> 
> 
> 
> 






More information about the Insight-users mailing list