Hi Matthias,
Thanks for observing this. I took a look at the problem today. You are right,
the visualization and parameter setting is confusing. For my understanding,
there are two reasons for that:
1) Your images are shifted in z-direction in world coordinates, so the
difference shows up correctly in the sagittal and coronal plane (top right and
bottom left). Due to the rotation matrix that is given in your images
(exchanging x and z), this corresponds to z-direction in ITK physical space. So
you will have to provide a simplex delta != 0 in direction 3.
2) The reason for the unintuitive behavior of the visualization is, that
even if the registration transform found by ITK does nothing (identity
transform), the image still moves. You observed this initial movement when
starting the registration process. The movement originates from the composition
of the three matrices WorldToItkPhysical(MovingImage), the registration result
and ItkPhysicalToWorld(FixedImage). So if the registration result is identity
transform, the initial moving image geometry is still postcomposed by
ItkPhysicalToWorld(FixedImage)*WorldToItkPhysical(MovingImage) and changes. The
remaining optimization steps only resemble the optimization in physical space,
which means that the translation happens in x direction in your case although
everything is displayed in world coordinates.
Concluding, you should not try to achieve a different initial visualization,
because it should already be correct. A more intuitive visualization during the
registration process would be nice, but I cannot think of a way to do this
differently. If you can, please let me know. I hope, the new ITK release will
solve most of these issues by accounting for image geometries within the ITK
registration framework.
Best Regards,
Klaus
Klaus Fritzsche
Dipl.-Inform., M.Sc.
DKFZ
German Cancer Research Center (Deutsches Krebsforschungszentrum)
Member of the Helmholtz Association
Division of Medical and Biological Informatics
Im Neuenheimer Feld 280
D-69120 Heidelberg
Phone: 49-(0)6221-42-3545
Fax: 49-(0)6221-42-2354
E-Mail: [email protected]
Web: www.dkfz.de
Confidentiality Note: This message is intended only for the use of the named
recipient(s) and may obtain confidential and/or privileged information. If you
are not the intended recipient, please contact the sender and delete the
message. Any unauthorized use of the information contained in this message is
prohibited.
Von: Matthias Keil [mailto:[email protected]]
Gesendet: Donnerstag, 11. Dezember 2008 13:52
An: Fritzsche Klaus
Cc: Stein Daniel; [email protected]
Betreff: Re: AW: [mitk-users] Visualization Error after Registration
Dear Klaus,
sorry for being ambigous in my last e-mail. I just checked the functionality
with Simplex Delta 1 = 2 again and I have to admit that the registration
results as well as the visualization are correct.
What confused me was the initial visualization (before starting the
registration). In my case (translation of one of the volumes in x-direction)
the inital tranlation can be seen as a left/right difference in the transversal
window. Starting the registration this error is corrected and in the following
steps the initial translation is shown as a bottom/top difference in the
sagittal window. Which is the right visualization as my volumes are rotated.
Is there anything I or you could do to get a good intial visualization of the
volumes? I will start with doublechecking the construction of my translation
matrix.
Best regards,
Matthias
Matthias Keil schrieb:
Dear Klaus,
last week I integrated your patch into our MITK version. Unfortunately it did
not work as expected. To be sure that it is not our problem, I compiled the
current MITK version (rev. 15933).
Using the image data I provided to you (the two rotated volumes that are
shifted by two mm) I get a visualization error. I am still using the Amoeba
optimizer and Mean Squares metric and translation.
According to one of your e-mails I am not quite sure whether I have to set the
x or z direction simplex delta now. (There was one patch where you mentioned
that maybe I have to change the z value because of the rotation). Therefore I
tested both setting and got equal results.
Here is my test scenario:
- the two datasets you already used
(ftp://ftp.igd.fraunhofer.de/outgoing/makeil/)
- translation
- mean squares
- amoeba with Simplex Delta 1 = 2 and Delta 2 and 3 = 0 and 10 iterations
- linear interpolation
Even after the first iteration (where the algorithm tries [0,0,0] as the
translation vector) it seems like the coordinate system is rotated again.
Therefore the additional changes are applied to the wrong axis. This error is
indifferent from setting either Delta 2 = 2 or Delta 3 = 2. Overall the result
does not look any different from what it was before. I could also make a small
movie capturing my screen if that helps...
Could you please check whether the registration functionality works on the
given data in your case? Did I miss any settings that I have to provide?
Best regards,
Matthias
Fritzsche Klaus schrieb:
Hi Matthias,
I have just now checked in some bug fixes to the RigidRegistration
functionality. It should now be capable of handling images of arbitrary
geometry including the datasets you sent us.
Please let me now in case you run into further problems!
Best Regards,
Klaus
Klaus Fritzsche
Dipl.-Inform., M.Sc.
DKFZ
German Cancer Research Center (Deutsches Krebsforschungszentrum)
Member of the Helmholtz Association
Division of Medical and Biological Informatics
Im Neuenheimer Feld 280
D-69120 Heidelberg
Phone: 49-(0)6221-42-3545
Fax: 49-(0)6221-42-2354
E-Mail: [email protected]
Web: www.dkfz.de
Confidentiality Note: This message is intended only for the use of the named
recipient(s) and may obtain confidential and/or privileged information. If you
are not the intended recipient, please contact the sender and delete the
message. Any unauthorized use of the information contained in this message is
prohibited.
Von: Matthias Keil [mailto:[email protected]]
Gesendet: Dienstag, 2. Dezember 2008 14:03
An: Stein Daniel
Cc: [email protected]
Betreff: Re: [mitk-users] Visualization Error after Registration
Dear Daniel,
did you find out anything of interest in the meantime? Do you want me to help
you with searching for the bug? If so and if you have any further debugging
information please let me know! As I do need a working visualization in the
registration functionality I would like to contribute some time.
Best regards,
Matthias
Matthias Keil schrieb:
Dear Daniel,
by debugging the QmitkRigidRegistrationSelector::SetOptimizerValue function, I
found out that the transformation matrix that is build up at the end of the
function.
At the end of this function the following lines of code are executed after the
transformation parameters are read.
vtktransform->GetInverse(vtkmatrix);
m_MovingGeometry->GetIndexToWorldTransform()->SetIdentity();
m_MovingGeometry->SetIndexToWorldTransformByVtkMatrix(vtkmatrix);
m_MovingGeometry->Compose(m_GeometryWorldToItkPhysicalTransform, 1);
m_MovingGeometry->Compose(m_ImageGeometry->GetIndexToWorldTransform(), 1);
m_MovingGeometry->Compose(m_GeometryItkPhysicalToWorldTransform, 0);
mitk::RenderingManager::GetInstance()->RequestUpdateAll();
Up to the second last line everything looks nice and as expected (the
transformation matrix in m_MovingGeometry looks right). That means if for
example a translation in x-direction was calculated the x-translation value of
the transformation matrix was changed. After executing the line
m_MovingGeometry->Compose(m_GeometryItkPhysicalToWorldTransform, 0);
The changes made to the x-translation element are reset to the original values
and the z-translation element is changed according to the value computed.
Maybe this helps a bit. Although you probably already debugged that far.
Best regards,
Matthias
Matthias Keil schrieb:
Dear Daniel,
thanks for the information about the visualization errors. You can download my
test Datasets (actually its the same dataset twice just slightly moved in
z-direction) from our FTP server.
ftp://ftp.igd.fraunhofer.de/outgoing/makeil/
I saved them in .pic format so that you can read them.
Best regards,
Matthias
Stein Daniel schrieb:
Dear Matthias,
sorry for the delay, but I was out of office and since I have implemented the
module so far no one else has answered you. I have applied your patch to my
working solution today. The manual registration sliders are working fine with
your patch, so I will commit it tomorrow. I will let you know the SVN revision
containing your patch.
Thank you very much for contributing the patch!
Regarding your other problem, we are currently working on some issues with the
correct visualization for every update during registration within MITK. Maybe
you can send me your testcase images, so that I can check them as well and can
try to find a solution.
Best regards,
Daniel
---
Dipl.-Inform. Med. Daniel Stein
German Cancer Research Center
Div. Medical and Biological Informatics
Im Neuenheimer Feld 280
D-69120 Heidelberg, Germany
Phone: (+49) 6221/42-3547
Fax: (+49) 6221/42-2345
http://www.dkfz-heidelberg.de/de/mbi/
Homepage: http://www.dkfz-heidelberg.de/de/mbi/people/Daniel_Stein.html
-----Ursprüngliche Nachricht-----
Von: Matthias Keil [mailto:[email protected]]
Gesendet: Mi 26.11.2008 15:48
An: [email protected]
Betreff: Re: [mitk-users] Visualization Error after Registration
Dear MITK developers,
it would be nice if you could give me a little update about the status
of my patch. Unfortunately I didn't get any feedback so far.
Best regards,
Matthias
Matthias Keil schrieb:
Dear MITK developers,
I am working quite a lot with the QmitkRigidRegistration widget. I was
playing around a bit with the different metrics and optimizers
included in the functionality. I did so by decomposing a given
translation into its x, y and z component. Registration worked out
quite well for these easy given tasks (translating by 2 mm along each
axis).
Unfortunately there seems to be an error in displaying the
registration results and optimization steps. I attached a .zip file to
visualize this error. The calculations done for the registration are
correct, as you can see from the output windows (amount of translation
is exact and mean squares metric has value 0). The error that occurs
is that a translation in x direction results in a translation in z
direction in the visualization and vice versa.
I think that the error must be somewhere in the following function:
QmitkRigidRegistrationSelector::SetOptimizerValue
which is called for each optimizer step. I do not think that this
error is limited to the translation transform case only, but is more
systematically. Therefore I think that something might be wrong in the
last part of the function, where the m_movingGeometry member is
calculated.
Unfortunately I am not that experienced with the given transformations
and changes between ITK and VTK yet.
I am looking forward to hearing from you!
Best wishes,
Matthias Keil
--
| Dipl.-Ing. Matthias Keil
|
| Fraunhofer Institute for Computer Graphics (IGD)
| Cognitive Computing & Medical Imaging
| Fraunhoferstraße 5, 64283 Darmstadt, Germany
|
| phone : +49.6151.155.212
| fax : +49.6151.155.480
| e-mail : [email protected]
| skype : matthias.keil.office
| web : http://www.igd.fraunhofer.de/~makeil
<http://www.igd.fraunhofer.de/%7Emakeil>
------------------------------------------------------------------------
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's
challenge
Build the coolest Linux based applications with Moblin SDK & win great
prizes
Grand prize is a trip for two to an Open Source event anywhere in the
world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
------------------------------------------------------------------------
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users
--
| Dipl.-Ing. Matthias Keil
|
| Fraunhofer Institute for Computer Graphics (IGD)
| Cognitive Computing & Medical Imaging
| Fraunhoferstraße 5, 64283 Darmstadt, Germany
|
| phone : +49.6151.155.212
| fax : +49.6151.155.480
| e-mail : [email protected]
| skype : matthias.keil.office
| web : http://www.igd.fraunhofer.de/~makeil
<http://www.igd.fraunhofer.de/%7Emakeil>
________________________________
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
________________________________
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users
--
| Dipl.-Ing. Matthias Keil
|
| Fraunhofer Institute for Computer Graphics (IGD)
| Cognitive Computing & Medical Imaging
| Fraunhoferstraße 5, 64283 Darmstadt, Germany
|
| phone : +49.6151.155.212
| fax : +49.6151.155.480
| e-mail : [email protected]
| skype : matthias.keil.office
| web : http://www.igd.fraunhofer.de/~makeil
<http://www.igd.fraunhofer.de/%7Emakeil>
________________________________
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
________________________________
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users
--
| Dipl.-Ing. Matthias Keil
|
| Fraunhofer Institute for Computer Graphics (IGD)
| Cognitive Computing & Medical Imaging
| Fraunhoferstraße 5, 64283 Darmstadt, Germany
|
| phone : +49.6151.155.212
| fax : +49.6151.155.480
| e-mail : [email protected]
| skype : matthias.keil.office
| web : http://www.igd.fraunhofer.de/~makeil
<http://www.igd.fraunhofer.de/%7Emakeil>
--
| Dipl.-Ing. Matthias Keil
|
| Fraunhofer Institute for Computer Graphics (IGD)
| Cognitive Computing & Medical Imaging
| Fraunhoferstraße 5, 64283 Darmstadt, Germany
|
| phone : +49.6151.155.212
| fax : +49.6151.155.480
| e-mail : [email protected]
| skype : matthias.keil.office
| web : http://www.igd.fraunhofer.de/~makeil
<http://www.igd.fraunhofer.de/%7Emakeil>
--
| Dipl.-Ing. Matthias Keil
|
| Fraunhofer Institute for Computer Graphics (IGD)
| Cognitive Computing & Medical Imaging
| Fraunhoferstraße 5, 64283 Darmstadt, Germany
|
| phone : +49.6151.155.212
| fax : +49.6151.155.480
| e-mail : [email protected]
| skype : matthias.keil.office
| web : http://www.igd.fraunhofer.de/~makeil
------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you. Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users