<DIV ><FONT face=Tahoma size=2> </FONT>
<DIV><FONT size=4>Hi everyone,</FONT></DIV>
<DIV> </DIV>
<DIV><FONT size=4>I am doing point set registration using NeedleBiopsy app.</FONT></DIV>
<DIV><FONT size=4>Firstly I use several pairs of image anatomical landmark point</FONT></DIV>
<DIV><FONT size=4>and tracker point to solve a initial patient-to-tracker transform,</FONT></DIV>
<DIV><FONT size=4>then I optimize the patient-to-tracker transform using pointset</FONT></DIV>
<DIV><FONT size=4>registration. Then the optimized transform is set, but the needle</FONT></DIV>
<DIV><FONT size=4>now point to the wrong position and orientation. Could anyone</FONT></DIV>
<DIV><FONT size=4>give me any help?</FONT></DIV>
<DIV> </DIV>
<DIV><FONT size=4>For example,</FONT></DIV>
<DIV><FONT size=4>The first landmark registration transform is</FONT></DIV>
<DIV><FONT size=4>-0.238948 -0.78129 -0.57662 -205.239<BR>0.969142 -0.228919 -0.0914341 -400.671<BR>-0.0605626 -0.580674 0.81188 899.685<BR>0 0 0 1</FONT> </DIV>
<DIV><FONT size=4>The optimized transform based on the landmark transform is</FONT></DIV>
<DIV><FONT size=4>0.995525 0.0148454 -0.0933302 6.01421<BR>-0.0116983 0.999347 0.0341769 -2.07651<BR>0.0937767 -0.0329322 0.995048 -3.67627<BR>0 0 0 1</FONT></DIV>
<DIV><FONT size=4>The final transform is composed of the transforms above</FONT></DIV>
<DIV> typedef itk::Euler3DTransform< double >     ITKTransformType;</DIV>
<DIV> ITKTransformType::Pointer transform = ITKTransformType::New();</DIV>
<DIV> .... // Get the transform</DIV>
<DIV> typedef TransformType::VersorType VersorType; //IGSTK rigid versor 3D transform<BR> VersorType myrot;<BR> myrot.Set(transform->GetMatrix());<BR> Transform rightTransform;<BR> rightTransform.SetTranslationAndRotation(transform->GetTranslation(),myrot,0.1,1e300);</DIV>
<DIV> m_ICPTransform=igstk::Transform::TransformCompose(m_ImageToTrackerTransform,rightTransform);</DIV>
<DIV> </DIV>
<DIV><FONT size=4>-0.282812 -0.765338 -0.578166 -202.934<BR>0.958908 -0.211371 -0.189255 -394.031<BR>0.0226368 -0.607931 0.793667 897.542<BR>0 0 0 1</FONT></DIV>
<DIV> </DIV>
<DIV><FONT size=4>I then can switch to </FONT><FONT size=4>the landmark transform or ICP transform</FONT></DIV>
<DIV>void NeedleBiopsy::RequestSetLandmarkRegistrationTransform()<BR>{<BR> this->ICPRegistrationTransform->value(0);<BR> this->LandmarkRegistrationTransform->value(1);<BR> m_Tracker->SetPatientTransform( m_ImageToTrackerTransform );<BR>}</DIV>
<DIV>void NeedleBiopsy::RequestSetICPRegistrationTransform()<BR>{<BR> this->ICPRegistrationTransform->value(1);<BR> this->LandmarkRegistrationTransform->value(0);<BR> m_Tracker->SetPatientTransform( m_ICPTransform );<BR>}</DIV>
<DIV> </DIV>
<DIV><FONT size=4>When I point to one anatomical point, use the landmark transform, it give out the coarse</FONT></DIV>
<DIV><FONT size=4>right position and orientation. But when I switch to ICP transform, which give out weird position and orientation. For example, the point (27.7, 17.2, 21.0) in the landmark transform position</FONT></DIV>
<DIV><FONT size=4>will become to (17.4,110.5,62.4) in the ICP transform, but when compute the position of this</FONT></DIV>
<DIV><FONT size=4>point using ICP transform, it should be (31.9,19.5,19.3).</FONT> </DIV>
<DIV> </DIV>
<DIV><FONT size=4>Thank you very much!</FONT></DIV>
<DIV><FONT size=4></FONT> </DIV>
<DIV><FONT size=4>Best,</FONT></DIV>
<DIV><FONT size=4>Fucang</FONT></DIV></DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV ></DIV><br><!-- footer --><br><hr>
<a style="font-size:12px;line-height:15px; color:#000; text-decoration:none" href="http://www.126.com/">想免费获得高速稳定的3G邮箱吗? <span style="font-family:Tahoma; text-decoration:underline; color:blue">www.126.com</span> </a>