[Insight-users] Registration in ITK and visualization in VTK
- transform questions
Michael Schildt
michael.schildt at ifn-magdeburg.de
Wed Aug 29 04:59:21 EDT 2007
Hello, I wrote this question a cupple of days ago at vtk-userlist, but
no answers yet. Maybe someone here can clarify some issues.
Best requards,
M. Schildt
Michael Schildt schrieb:
> Hi!
>
> Seems nobody is willing or beeing able to answer my questions. In the
> meantime i have read all threads related to "vtk itk transform", the
> VTK book transformsections and in the ITK-Guide too. And it is still
> confusing me. But i present the facts i collected. Maybe someone can
> comment on them, please.
>
> 1) ITK and VTK, both using right-hand coordinate systems ?
> 2) For ITK the x-axis goes to the left, the y-axis to the top and the
> z-axis to the front ?
> 3) For VTK the x-axis goes to the left, the y-axis to the bottom and
> the z-axis to the back ?
> 4) That means a 180° rotation (of the vtkCamera) around the x-axis
> will align both coordinate systems ?
> 5) in ITK transforms the physical to image space, while vtk transforms
> actor(image) to physical space ?
> 6) So most of the time, in ITK i use the inverse of the vtk transform,
> and vice versa ?
>
> Best Requards,
> Michael Schildt
>
> Michael Schildt schrieb:
>> Hello Everybody!
>>
>> I want to display the progress of a intermodal 3D registration with
>> an centered affine transform. So every iteration I catch the
>> intermediate transform parameters and want to display them with VTK.
>> It was mentioned often that way but i didn't find any concrete example.
>>
>> // get transform parameter in ITK
>> AffineType::InputPointType C = transform->GetCenter();
>> AffineType::MatrixType M = transform->GetMatrix();
>> AffineType::OutputVectorType T = transform->GetTranslation();
>>
>> I visualize the two datasets via outline filter as suggested in the
>> ITK documentation. But I ren into some issues because of the
>> different coordinate systems ITK(mathematical convetion - origin in
>> the lower left corner) and VTK (graphical convention - origin in the
>> upper left corner) are using:
>>
>> 1. I flipped the y-axis of both images using ITKs flip filter. By
>> that the origin's y coordinate changes too, but that is not intended
>> or is it?
>> 2. How to convert efficiently between the two coordinate systems for
>> the affine transform - perhaps just inverting the y-axis?
>> 3. Related to 2. question how to put the data from ITK (center,
>> translation, matrix) into the VTK AffineTransform? I would build a
>> VTK 4x4 Matrix from the ITK 3x3 matrix + transform. But how to
>> integrade the center of rotation and scaling?
>>
>> At the Moment I set Origin and Translation only:
>>
>> // vtk set transform parameter
>> // moving is a vtkActor
>> moving->SetOrigin(C[0],C[1],C[2]);
>> moving->SetPosition(T[0],T[1],T[2]);
>> renderwin->Render();
>>
>> Greetings,
>> Michael Schildt
>>
More information about the Insight-users
mailing list