<br>Hi Carola,<br><br>It certainly looks like you need to fine tune the parameters of the MutualInformation metric.<br><br>Could you tell us more about the images that your are registering ?<br><br>1) Image modality<br>2) Image size (in pixels along X, Y, Z )<br>
<br>Have you connected an observer to the optimizer ?<br><br>If so,<br><br>Could you please post to the list the output values of Image metric values<br>at every iteration of the registration.<br><br>Also, one of the critical aspects of using MattesMI with a BSpline transform<br>
is that you have to make sure that there are enough samples for population<br>*every* cell of the BSpline grid.<br><br>Are you using the same BSpline grid parameters of DeformableRegistration8.cxx ?<br><br>---<br><br>You may want to try using all the samples from the image.<br>
<br>If you have turned ON the option ITK_USE_OPTIMIZED_REGISTRATION_METHODS,<br>you could use the API:<br><br> metric->UseAllPixelsOn();<br><br><br>Please let us know about the questions above,<br><br><br> Thanks<br>
<br><br> Luis<br><br><br>-----------------------------------------------------------------------------------------------<br><div class="gmail_quote">On Fri, Dec 19, 2008 at 11:00 AM, Carola Schmidt <span dir="ltr"><<a href="mailto:carola.schmidt@igd.fraunhofer.de">carola.schmidt@igd.fraunhofer.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi, itk users.<br>
<br>
I am implementing the BSpline Registration to register CT-Data of the abdomen. I use the LBFGSBOptimizer<br>
and use the parameters of the deformableRegistration8.cxx file<br>
<br>
OptimizerType::BoundSelectionType boundSelect(transform->GetNumberOfParameters());<br>
OptimizerType::BoundValueType upperBound(transform->GetNumberOfParameters());<br>
OptimizerType::BoundValueType lowerBound(transform->GetNumberOfParameters());<br>
<br>
boundSelect.Fill(0);<br>
upperBound.Fill(0.0);<br>
lowerBound.Fill(0.0);<br>
<br>
optimizer->SetBoundSelection(boundSelect);<br>
optimizer->SetUpperBound(upperBound);<br>
optimizer->SetLowerBound(lowerBound);<br>
<br>
optimizer->SetCostFunctionConvergenceFactor( 1e+7 );<br>
optimizer->SetProjectedGradientTolerance( 1e-4 );<br>
optimizer->SetMaximumNumberOfIterations( 500 );<br>
optimizer->SetMaximumNumberOfEvaluations( 500 );<br>
optimizer->SetMaximumNumberOfCorrections( 12 );<br>
<br>
As metrics I tried itkMeanSquaresImageToImageMetric and itkMattesMutualInformationImageToImageMetric. When I use the itkMeanSquaresImageToImageMetric the registration takes really long but the results are quite ok.<br>
When I use itkMattesMutualInformationImageToImageMetric the registration only takes a few seconds but most of the time the warped image looks like a hardly deformed moving image. Since the registration time is very short, it seems that the registration stops after a few steps and warps the image then. I use those parameters for the mututal information:<br>
<br>
metric->SetNumberOfHistogramBins( 40 );<br>
const unsigned int numberOfSamples = 10000; //fixedRegion.GetNumberOfPixels()/ 10;<br>
metric->SetNumberOfSpatialSamples( numberOfSamples );<br>
metric->ReinitializeSeed( 76926294 );<br>
metric->SetMovingImage(m_itkimage);<br>
metric->SetFixedImage(m_itkatlas);<br>
metric->SetFixedImageRegion(fixedRegion);<br>
<br>
Why does the Mutual Information Metric not work as expected? Should I change the parameters of the optimizer?<br>
Thanks for an answer.<br>
<br>
Ciao,<br>
Carola<br>
_______________________________________________<br>
Insight-users mailing list<br>
<a href="mailto:Insight-users@itk.org" target="_blank">Insight-users@itk.org</a><br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
</blockquote></div><br>