[Insight-users] funning observation regarding SetMatrix() in VersorRigid3DTransform class?
pinpress
sb_ji at yahoo.com
Sun Nov 9 14:24:49 EST 2008
Hi,
I am trying to set up an initial transformation matrix for use before image
registration. I used VersorRigid3DTransform class, and used SetMatrix()
method to hopefully set up the rotation matrix (3-by-3). The transformation
matrix was originally in Matlab workspace, and I used fprintf(fid,
'%5.Xf\n", T(:)); to write to an ASCII file. Interestingly, if the number of
digits after the decimal period is less than 10, ITK would throw the
following exception:
itk::ERROR: VersorRigid3DTransform(0x7b77f0): Attempting to set a
non-orthogonal rotation matrix
Only when the "X" (i.e., # of digits after decimal) is equal or greater than
10 would ITK be happy.
My guess is that in ITK library somewhere, there is a check (e.g., to check
if determinant of the matrix is exactly 1, because it is a "rigid"
transform), but the tolerance is not set properly which caused the problem
that I experience.
However, is such checking necessary? For example,I may be well applying an
initial transformation of affine type -- then the determinant it not
necessarily 1.
--
View this message in context: http://www.nabble.com/funning-observation-regarding-SetMatrix%28%29-in-VersorRigid3DTransform-class--tp20409801p20409801.html
Sent from the ITK - Users mailing list archive at Nabble.com.
More information about the Insight-users
mailing list