<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
<title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
Hi,<br>
<br>
after scanning the list on FEM - registration, I still have huge
problems <br>
to configure the paramters for my specific registration problem with
the FEM - method.<br>
<br>
I want to register two 3D MR 256^3 Thorax images with only small
deformation.<br>
The problem is, that however I set the parameters <b>elasticity</b>
and <b>rho / rhoc</b>,<br>
it doesn't deliver any useful results.<br>
<br>
I started with elasticity 100000 (even higher than in the examples),
but the image became completely<br>
deformed. Also, it spends only 2 iterations in the process (has this
something to do with<br>
the energyreductionfactor???) and after the registration, the metric (I
use SSD) is much bader then before.<br>
I think this should not be the case, after what I understood about the
theory behind this method.<br>
Also with elasticity 1000.000, it still gets completely deformed.<br>
With even higher the deformation decreases of course, but the
missregistration of the lungs is never<br>
caught (see middle of the images at the bottom of this message).<br>
<br>
Please note, that I don't use a config file but set all the parameters
manually.<br>
Also I wonder what's the meaning of the parameters alpha and gamma
(changing these doesn't<br>
seem to have a great effect on the result).<br>
<br>
Indeed, I call the following methods to setup the FEMRegistrationFilter
(public functions),<br>
while I didn't find a function to set the scaling, which is also used
in the config file (is this intended???): <br>
<font color="#ff0000"><br>
m_registrationFilter->SetFixedImage(m_fixedImage);<br>
m_registrationFilter->SetMovingImage(m_floatingImage);<br>
<br>
m_registrationFilter->DoMultiRes(true); <br>
<br>
m_registrationFilter->SetMeshPixelsPerElementAtEachResolution(this->m_meshPixPerElement);<br>
<br>
m_registrationFilter->SetNumberOfIntegrationPoints(this->m_numberOfIntegrationPoints);<br>
<br>
m_registrationFilter->SetRho(this->m_rho);<br>
<br>
m_registrationFilter->SetElasticity(this->m_elasticity);<br>
<br>
m_registrationFilter->SetGamma(this->m_gamma);<br>
<br>
m_registrationFilter->SetWidthOfMetricRegion(this->m_widthOfMetricRegion);<br>
m_registrationFilter->ChooseMetric((int) this->m_metric);<br>
m_registrationFilter->SetMaximumIterations(this->m_maxNumberOfIterations,0);<br>
<br>
m_registrationFilter->SetTimeStep(this->m_timestep);<br>
m_registrationFilter->SetLineSearchMaximumIterations(this->m_maxLineSearchIterations);<br>
m_registrationFilter->SetEnergyReductionFactor(this->m_energyReductionFactor);<br>
<br>
if(m_metric==3)
m_registrationFilter->SetDescentDirectionMaximize();<br>
else{ m_registrationFilter->SetDescentDirectionMinimize();}<br>
<br>
m_registrationFilter->SetAlpha(this->m_alpha);<br>
m_registrationFilter->DoLineSearch(2);<br>
m_registrationFilter->EmployRegridding(1);<br>
m_registrationFilter->UseLandmarks(false);<br>
m_registrationFilter->SetWriteDisplacements(false);</font><br>
<br>
Also what is about the material properties:<br>
Does it make sense to change something here??? <br>
<br>
<font color="#ff0000">itk::fem::MaterialLinearElasticity::Pointer m;<br>
m = itk::fem::MaterialLinearElasticity::New();<br>
m->GN = 0; // Global number of the material<br>
m->E = m_registrationFilter->GetElasticity(); // Young's
modulus -- used in the membrane<br>
m->A = 1.0; // Cross-sectional area<br>
m->h = 1.0; // Thickness<br>
m->I = 1.0; // Moment of inertia<br>
m->nu = 0.; // Poisson's ratio -- DONT CHOOSE 1.0!!<br>
m->RhoC = this->m_density; // Density<br>
<br>
// Create the element type <br>
Element3DType::Pointer e1=Element3DType::New();<br>
e1->m_mat=dynamic_cast<itk::fem::MaterialLinearElasticity*>(
m );<br>
m_registrationFilter->SetElement(e1);<br>
m_registrationFilter->SetMaterial(m);</font><br>
<br>
<br>
Additionally, you can find some screenshots which show the problem and
the RegistrationFilter<br>
outputs here:<br>
<br>
<a class="moz-txt-link-freetext" href="http://www.markusweigert.de/images/E10%5E8_FEMRegOutput_iter2.jpg">http://www.markusweigert.de/images/E10%5E8_FEMRegOutput_iter2.jpg</a><br>
<a class="moz-txt-link-freetext" href="http://www.markusweigert.de/images/E10%5E8_FEMRegOutput_iter1.jpg">http://www.markusweigert.de/images/E10%5E8_FEMRegOutput_iter1.jpg</a><br>
<a class="moz-txt-link-freetext" href="http://www.markusweigert.de/images/before_registration.jpg">http://www.markusweigert.de/images/before_registration.jpg</a><br>
<a class="moz-txt-link-freetext" href="http://www.markusweigert.de/images/E10%5E8_FEMRegOutput_iter2.jpg">http://www.markusweigert.de/images/E10%5E8_FEMRegOutput_iter2.jpg</a><br>
<a class="moz-txt-link-freetext" href="http://www.markusweigert.de/images/result_E100000.jpg">http://www.markusweigert.de/images/result_E100000.jpg</a><br>
<a class="moz-txt-link-freetext" href="http://www.markusweigert.de/images/result_E1000000.jpg">http://www.markusweigert.de/images/result_E1000000.jpg</a><br>
<a class="moz-txt-link-freetext" href="http://www.markusweigert.de/images/result_E10000000.jpg">http://www.markusweigert.de/images/result_E10000000.jpg</a><br>
<br>
<br>
I hope somebody will have the time to answer at least some of my
questions.<br>
<br>
<br>
Best regards,<br>
Markus<br>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>