Hi everyone,
I’m doing B-Spline registration of CT vs CBCT images.
The Registration method Im using is:
registration_method = sitk.ImageRegistrationMethod()
grid_physical_spacing = [15.0]*3
image_physical_size = [size*spacing for size,spacing in zip(fixed_image.GetSize(), fixed_image.GetSpacing())]
mesh_size = [int(image_size/grid_spacing + 0.5) \
for image_size,grid_spacing in zip(image_physical_size,grid_physical_spacing)]
initial_transform = sitk.BSplineTransformInitializer(image1 = fixed_image,
transformDomainMeshSize = mesh_size, order=3)
registration_method.SetInitialTransformAsBSpline(initial_transform,
inPlace=False)
registration_method.SetMetricAsMattesMutualInformation(numberOfHistogramBins=150)
registration_method.SetMetricSamplingStrategy(registration_method.RANDOM)
registration_method.SetMetricSamplingPercentage(0.001)
registration_method.SetInterpolator(sitk.sitkLinear)
registration_method.SetOptimizerAsLBFGS2(solutionAccuracy=1e-10, numberOfIterations=150, deltaConvergenceTolerance=1e-10)
The Optimizer’s stopping condition is: A rounding error occurred
I would like to understand why the optimizer always stop for a rounding error and how to stop this to happen.
Thanks in advance,
Luciano