[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