[Insight-users] ITK 4.0 migration problem with Amoeba optimizer and cardinal metrics
asertyuio
asertyuio at yahoo.fr
Tue Jan 17 08:30:31 EST 2012
Hi all,
I'm migrating from ITK 3.2 to ITK 4.0, and after fixing some litle
trouble around cmake, I'm on something that seems more problematic.
I write for ITK 3.2 a registration process, that was, for part of it,
using Amoeba optimizer, and cardinal matching metric.
It worked perfectly.
After migrating to ITK 4.0, Amoeba optimizer seems to stop only at the
maximum iteration number, and do not take account of other stop
conditions, like ParametersConvergenceTolerance or
FunctionConvergenceTolerance.
The optimizer is still converging on a good solution.
An other thing that seems to be related, is that when I'm printing the
registration progress,
the metric value is shown as -1.#IND, so Not A Number. I get this value
with the following code :
itk::SingleValuedCostFunction::MeasureType Value;
Value = optimizer->GetCachedValue();
if (Value!=Value){
std::cout << "ok";
}
if (count>=5) {
count=0;
std::cout << IterationNumber << " ";
std::cout << Value << " ";
std::cout << parameters << std::endl;
}
I've try to set Value as double, to print directly
optimizer->GetCachedValue() but it's giving the same result.
Does someone have any idea of where it comes from ?
In my code, I also use OnePlusOneEvolutionaryOptimizer, and MI metric
without these problems.
Thanks a lot !
Yann
More information about the Insight-users
mailing list