[Insight-users] registration without through plane rotation
Karl Diedrich
karl.diedrich at azeresearch.com
Fri Mar 9 11:20:02 EST 2012
Hello,
I wanted to make a registration that translates a 3D image in x,y,z and
rotates the image in the in plane (typically x,y) but not z when the
through plane slice spacing is large to prevent banding and artefacts in
the image due to rotating over the lab slice gap. So that's 5 degrees of
freedom rotation in x,y and translation in x,y,z.
I used a VersorRigid3DTransform which is 6 degrees of freedom.
typedef typename itk::VersorRigid3DTransform< double > TransformType;
typedef typename itk::VersorRigid3DTransformOptimizer
OptimizerType;
And register and calculate a transformation matrix and offset
0.99587 -0.0714092 0.056069
0.0731405 0.996887 -0.0294547
-0.0537911 0.033434 0.997992
Offset [-13.0234, 1.55239, 11.5985]
Then I reset the through plane/Z rotation component to its part of the
Identity matrix.
0.99587 -0.0714092 0.056069
0.0731405 0.996887 -0.0294547
0 0 1
And apply this transformation.
This strategy isn't optimal because I found the optimal transformation with
the through plane/Z rotation and then eliminated the rotation. It's better
to never rotate in through plane/Z during the registration/transformation
optimization process.
I tried changing the scales of the optimizer. I believe the [2] index is
for the Z component.
I tried changing [2] to 0, -1, 0.000001, -0.000001. 0 crashes and the other
values change the registration output but don't turn of Z rotation.
typedef OptimizerType::ScalesType OptimizerScalesType;
OptimizerScalesType optimizerScales( transform->GetNumberOfParameters() );
const double translationScale = 1.0 / 1000.0;
optimizerScales[0] = 1.0;
optimizerScales[1] = 1.0;
optimizerScales[2] = 1.0; // ? Z component
optimizerScales[3] = translationScale;
optimizerScales[4] = translationScale;
optimizerScales[5] = translationScale;
optimizer->SetScales( optimizerScales );
Is there some way to turn off rotation in a single (usually Z) axis?
Cheers,
Karl
--
Karl Diedrich, Ph.D.
Principal Engineer
----------------------------------------
AZE Research and Development
1 Broadway, 14th floor
Cambridge, MA 02142
Tel: +1 (617) 475-1502
www.azeofamerica.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20120309/df15ee0f/attachment.htm>
More information about the Insight-users
mailing list