[Insight-users] MattesMI and CenteredAffineTransformation
Karthik Krishnan
karthik.krishnan at kitware.com
Thu Dec 13 12:23:38 EST 2007
On 12/13/07, gabri <tartuz at gmail.com> wrote:
>
> Hi Karthik,
> thanks for your reply.
> I've done what you suggested about the initialization in this way :
>
> TransfomParameters: [1, 0, 0, 0, 1, 0, 0, 0, 1, 89.9859, 110.013,
> 78.0862, 4.02741, -0.754015, -9.40034]
> OptimizerScales : [1, 0, 0, 0, 1, 0, 0, 0, 1, 10000, 10000,
> 10000, 0.000937524, 0.000937524, 0.000937524]
/home/gabri/lib/InsightToolkit-3.4.0/Utilities/vxl/core/vnl/vnl_matrix.txx:
> 1192: matrix has non-finite elements
> /home/gabri/lib/InsightToolkit-3.4.0
> /Utilities/vxl/core/vnl/vnl_matrix.txx:
> here it is:
> 1 nan nan
> nan 1 nan
> nan nan 1
> /home/gabri/lib/InsightToolkit-3.4.0
> /Utilities/vxl/core/vnl/vnl_matrix.txx:
> calling abort()
> 0 -0.741588 [1, nan, nan, nan, 1, nan, nan, nan, 1, 89.9859,
> 110.013, 78.0862, 4.02741, -0.754015, -9.40034]Aborted
>
>
> this is why i've initialize all the first 9 elements of the
> optimizerScales to 1.0 .... is it correct?
I might have misunderstood. Having the first 9 parameters of the optimizer
scale as [1 1 1 1 1 1 1 1 1] is reasonable as long as you set much larger
scales for the rotation and the center of rotation (the next 6 parameters).
I was hinting that the initial *transform* parameters ought to be [1 0 0 0 1
0 0 0 1], and not [1 1 1 1 1 1 1 1 1].
**MI followed by Histrogram matching is a tad counter-intuitive.
> Histogram matching methods such as histogram equalization that you're
> using below is generally used when you intend using intensity sensitive
> metrics such as MeanSquares etc. Mutual information itself maximzes the
> mutual information, which is a function of the joint intensity
> distribution, so its inherently intended to be contrast/intensity
> insensitive **
>
> Indeed is not followed I use the HistogramMatchingFilter in the
> beginning of my programs but if U say that is useless I'll cancel it.
>
> **That's legacy documentation left over. It predates the time when
> Centered transforms were reworked. They now derive for
> MatrixOffsetTransformBase which takes care of calling ComputeOffset()
> whenever you attempt to set the center/translation/rotation matrix. **
>
> So i do not have to ComputeOffset the CenteredAffineTransform will
> compute it itself right ?
yes
Sincerly,
>
> Gabriele
>
>
> Karthik Krishnan ha scritto:
> > On 12/13/07, *gabri* <tartuz at gmail.com <mailto:tartuz at gmail.com>> wrote:
> >
> > Hi all,
> > I would like to ask some questions.
> > I'm trying to register two MR images but an error occurs when
> > registration process start.
> >
> > *Parameters :
> > OptimizerParameters : [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> > 0.000937524,
> > 0.000937524, 0.000937524
> >
> >
> > At the risk of me sounding silly, it looks like you initialize your
> > transform with all ones. That does not make an Identity matrix. That
> > could explain why all the samples from the fixed image map outside the
> > moving image.
> >
> > MattesMutualInformationImageToImageMetric(0x8634cd0): Too many
> samples
> > map outside moving image buffer: 0 / 50*0
> >
> > 1) reading the informations about the tranform , the description
> > tells :
> > "This class implements an Affine transform in which the
> > rotation center can be explicitly selected. Note that the method
> > "ComputeOffset()" must be called just before using the transform for
> > mapping points, vectors or covariantvectors. This is necessary for
> > updating the offset of the transform taking into account the
> > center of
> > rotation"
> >
> >
> > That's legacy documentation left over. It predates the time when
> > Centered transforms were reworked. They now derive for
> > MatrixOffsetTransformBase which takes care of calling ComputeOffset()
> > whenever you attempt to set the center/translation/rotation matrix.
> >
> > We've removed the misleading documentation. Thanks for the report.
> >
> > /cvsroot/Insight/Insight/Code/Common/itkCenteredAffineTransform.h,v
> > new revision: 1.14; previous revision: 1.13
> >
> > but the "ComputeOffset()" method is a private method so i couldn't
> use
> > it to compute the right offset.
> >
> > 2) there is a rule to set the NumberOfHistogramBins and the
> > SpatialSamples?
> > *
> > mutualmetric->SetNumberOfHistogramBins(20);
> > mutualmetric->SetNumberOfSpatialSamples(500);
> > registration->SetMetric( mutualmetric );
> > *my images dimensions are : fixed [91 109 91] - moving [125 ,
> > 512 , 512]
> >
> >
> > The Number of spatial samples really depends on the dimension of your
> > image. 5% of the samples is probably reasonable.
> >
> > 3) Beacuse of the images are obviously differente i'm using the
> > HistgramMatchingFilter with this parameters
> >
> >
> > MI followed by Histrogram matching is a tad counter-intuitive.
> > Histogram matching methods such as histogram equalization that you're
> > using below is generally used when you intend using intensity
> > sensitive metrics such as MeanSquares etc. Mutual information itself
> > maximzes the mutual information, which is a function of the joint
> > intensity distribution, so its inherently intended to be
> > contrast/intensity insensitive
> >
> > * matcher->SetInput( movingImageReader->GetOutput() );
> > matcher->SetReferenceImage( fixedImageReader->GetOutput() );
> >
> > matcher->SetNumberOfHistogramLevels( 1024 );
> > matcher->SetNumberOfMatchPoints( 500 );
> > matcher->ThresholdAtMeanIntensityOn();*
> > are they correct for the dimension? There is a method to compute
> > them?
> >
> > 4) the CenteredAffineTranform need 15 parameters to be set instead
> > of 12
> > of the AffineTranform (that i've been using before) the other 15
> > parameters are the center of rotation?
> > so that the first 9 are the matrix
> > [M11......M33,CenterX,CenterY,CenterZ,
> > TranslationX,TranslationY,TranslationZ] is it correct?
> >
> > best reguards ,
> >
> > gabriele
> >
> >
> > _______________________________________________
> > Insight-users mailing list
> > Insight-users at itk.org <mailto:Insight-users at itk.org>
> > http://www.itk.org/mailman/listinfo/insight-users
> >
> >
> >
> >
> >
> > --
> > Karthik Krishnan
> > R&D Engineer,
> > Kitware Inc.
> > Ph: 518 371 3971 x119
> > 518 698 3045 (cell)
> > Fax: 518 371 3971
>
>
>
>
--
Karthik Krishnan
R&D Engineer,
Kitware Inc.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20071213/d120f58e/attachment-0001.htm
More information about the Insight-users
mailing list