[Insight-users] LBFGSBoptimizer and MI value

Luis Ibanez luis.ibanez at kitware.com
Tue Jun 30 18:08:51 EDT 2009


Hi Serena,

Thanks for the update.

This is a long and sad story:

It goes like this:

*  In the beginning we have ITK optimizers,

*  Then we wanted to expand the number of Optimizers
   and decided to write classes that take VNL optimizers
   and present them as ITK optimzers.

* We can't insert code in the middle of VNL optimizers,
   and therefore, we can't directly invoke IterationEvents
   that will allow  an ITK user to monitor an optimizer by
   using a Command/Observer

* The workaround to this limitation was the following
   trick:  Since we also have to wrap ITK cost functions
   to make them look like VNL cost functions, we setup
   a connection between the ITK wrapper of the VNL
   optimizer and the VNL warpper of the ITK cost function
   in such a way that *every* time that "GetValue()" or
   "GetValueAndDerivative()" is called in the Cost Function,
   we generate an IterationEvent indirectly.

* The drawbacks of this method is what you are confronting:

   A) The values that the optimizer can report, has to be
        cached from previous invocations of the CostFunction

   B) Optimizers that perform multiple evaluations of the
        cost function per iteration, end up reporting multiple
        IterationEvents per iteration of the optimizer.
        This is the reason why you get repeated "optimizer
        iteration" numbers.


--

If you want to see the Transform parameters
at every iteration you can call the method


 std::cout <<  optimizer->GetCurrentPosition()


However, when working with BSplines, this
is not particularly useful, given that you will
get tens, or hundreds of values....

For example, your BSpline has (3+3) = 6
nodes along each dimension, for a total of
216 nodes, each one with three deformation
values, for a total of 648 parameters.


You are performing optimization in a parametric
space of 648 dimensions....   :-)


   Regards,


       Luis


---------------------------------------------------------------------
On Tue, Jun 30, 2009 at 5:38 PM, Serena Fabbri <fabbri at u.washington.edu>wrote:

>
> Hi Luis and All,
>
> ok, i have replaced optimizer->GetValue() and it gives me numbers different
> from 0.
> I have read in itk::SingleValuedNonLinearVnlOptimizer Class Reference, that
> it is not up-to-date value of MI...isn't it?
> If you look the output, the iterations are 69, but it is repeated several
> times....so I don't understand very well how many iterations the code does.
> Besides......could you suggest me a way to know the parameters values at
> each iteration?
>
> Thank you very much.
> Serena.
>
>
> -------output-------------------
>
> gridSizeOnImage [3, 3, 3] gridBorderSize [3, 3, 3] totalGridSIze [6, 6, 6]
> gridOriginOffset [87.5, 127.5, 79.5]
> gridOrigin [-87.5, -127.5, -79.5]
> spacing [87.5, 127.5, 79.5]
> numberOfParameters 648
>
> Starting Registration
> Iter 0    CachedValue -0.135285    InfinityNormOfProjectedGradient 0
> Iter 0    CachedValue -0.136816    InfinityNormOfProjectedGradient 0
> Iter 0    CachedValue -0.136816    InfinityNormOfProjectedGradient
> 0.000262062
> Iter 1    CachedValue -0.138381    InfinityNormOfProjectedGradient
> 0.000262062
> Iter 1    CachedValue -0.138381    InfinityNormOfProjectedGradient
> 0.000178985
> Iter 2    CachedValue -0.139721    InfinityNormOfProjectedGradient
> 0.000178985
> Iter 2    CachedValue -0.139721    InfinityNormOfProjectedGradient
> 0.000182089
> Iter 3    CachedValue -0.141799    InfinityNormOfProjectedGradient
> 0.000182089
> Iter 3    CachedValue -0.141799    InfinityNormOfProjectedGradient
> 0.000295439
> Iter 4    CachedValue -0.140242    InfinityNormOfProjectedGradient
> 0.000295439
> Iter 4    CachedValue -0.142305    InfinityNormOfProjectedGradient
> 0.000295439
> Iter 4    CachedValue -0.142305    InfinityNormOfProjectedGradient
> 0.000332698
> Iter 5    CachedValue -0.144904    InfinityNormOfProjectedGradient
> 0.000332698
> Iter 5    CachedValue -0.144904    InfinityNormOfProjectedGradient
> 0.000227115
> Iter 6    CachedValue -0.143351    InfinityNormOfProjectedGradient
> 0.000227115
> Iter 6    CachedValue -0.145245    InfinityNormOfProjectedGradient
> 0.000227115
> Iter 6    CachedValue -0.145245    InfinityNormOfProjectedGradient
> 0.000180015
> Iter 7    CachedValue -0.145855    InfinityNormOfProjectedGradient
> 0.000180015
> Iter 7    CachedValue -0.145855    InfinityNormOfProjectedGradient
> 0.000224301
> Iter 8    CachedValue -0.146379    InfinityNormOfProjectedGradient
> 0.000224301
> Iter 8    CachedValue -0.146379    InfinityNormOfProjectedGradient
> 0.000281225
> Iter 9    CachedValue -0.146987    InfinityNormOfProjectedGradient
> 0.000281225
> Iter 9    CachedValue -0.146987    InfinityNormOfProjectedGradient
> 0.000347015
> Iter 10    CachedValue -0.148133    InfinityNormOfProjectedGradient
> 0.000347015
> Iter 10    CachedValue -0.148133    InfinityNormOfProjectedGradient
> 0.000342164
> Iter 11    CachedValue -0.149066    InfinityNormOfProjectedGradient
> 0.000342164
> Iter 11    CachedValue -0.149066    InfinityNormOfProjectedGradient
> 0.000157566
> Iter 12    CachedValue -0.149587    InfinityNormOfProjectedGradient
> 0.000157566
> Iter 12    CachedValue -0.149587    InfinityNormOfProjectedGradient
> 0.000149334
> Iter 13    CachedValue -0.149866    InfinityNormOfProjectedGradient
> 0.000149334
> Iter 13    CachedValue -0.15019    InfinityNormOfProjectedGradient
> 0.000149334
> Iter 13    CachedValue -0.15019    InfinityNormOfProjectedGradient
> 0.000297405
> Iter 14    CachedValue -0.149107    InfinityNormOfProjectedGradient
> 0.000297405
> Iter 14    CachedValue -0.150474    InfinityNormOfProjectedGradient
> 0.000297405
> Iter 14    CachedValue -0.150474    InfinityNormOfProjectedGradient
> 0.000233087
> Iter 15    CachedValue -0.150849    InfinityNormOfProjectedGradient
> 0.000233087
> Iter 15    CachedValue -0.150849    InfinityNormOfProjectedGradient
> 0.000270985
> Iter 16    CachedValue -0.151276    InfinityNormOfProjectedGradient
> 0.000270985
> Iter 16    CachedValue -0.151276    InfinityNormOfProjectedGradient
> 0.000175098
> Iter 17    CachedValue -0.151627    InfinityNormOfProjectedGradient
> 0.000175098
> Iter 17    CachedValue -0.151627    InfinityNormOfProjectedGradient
> 0.000153631
> Iter 18    CachedValue -0.151913    InfinityNormOfProjectedGradient
> 0.000153631
> Iter 18    CachedValue -0.151913    InfinityNormOfProjectedGradient
> 0.000198165
> Iter 19    CachedValue -0.153279    InfinityNormOfProjectedGradient
> 0.000198165
> Iter 19    CachedValue -0.153279    InfinityNormOfProjectedGradient
> 0.000334519
> Iter 20    CachedValue -0.154186    InfinityNormOfProjectedGradient
> 0.000334519
> Iter 20    CachedValue -0.154186    InfinityNormOfProjectedGradient
> 0.000334793
> Iter 21    CachedValue -0.154433    InfinityNormOfProjectedGradient
> 0.000334793
> Iter 21    CachedValue -0.154433    InfinityNormOfProjectedGradient
> 0.000261072
> Iter 22    CachedValue -0.154656    InfinityNormOfProjectedGradient
> 0.000261072
> Iter 22    CachedValue -0.154656    InfinityNormOfProjectedGradient
> 0.000120058
> Iter 23    CachedValue -0.154394    InfinityNormOfProjectedGradient
> 0.000120058
> Iter 23    CachedValue -0.154765    InfinityNormOfProjectedGradient
> 0.000120058
> Iter 23    CachedValue -0.154765    InfinityNormOfProjectedGradient
> 0.000193124
> Iter 24    CachedValue -0.15479    InfinityNormOfProjectedGradient
> 0.000193124
> Iter 24    CachedValue -0.15479    InfinityNormOfProjectedGradient
> 0.000111046
> Iter 25    CachedValue -0.155059    InfinityNormOfProjectedGradient
> 0.000111046
> Iter 25    CachedValue -0.155059    InfinityNormOfProjectedGradient
> 0.000165312
> Iter 26    CachedValue -0.155408    InfinityNormOfProjectedGradient
> 0.000165312
> Iter 26    CachedValue -0.155408    InfinityNormOfProjectedGradient
> 0.000158262
> Iter 27    CachedValue -0.155538    InfinityNormOfProjectedGradient
> 0.000158262
> Iter 27    CachedValue -0.155538    InfinityNormOfProjectedGradient
> 9.14039e-05
> Iter 28    CachedValue -0.155862    InfinityNormOfProjectedGradient
> 9.14039e-05
> Iter 28    CachedValue -0.155862    InfinityNormOfProjectedGradient
> 0.000108369
> Iter 29    CachedValue -0.156014    InfinityNormOfProjectedGradient
> 0.000108369
> Iter 29    CachedValue -0.156014    InfinityNormOfProjectedGradient
> 6.96136e-05
> Iter 30    CachedValue -0.15638    InfinityNormOfProjectedGradient
> 6.96136e-05
> Iter 30    CachedValue -0.15638    InfinityNormOfProjectedGradient
> 0.000175598
> Iter 31    CachedValue -0.15675    InfinityNormOfProjectedGradient
> 0.000175598
> Iter 31    CachedValue -0.15675    InfinityNormOfProjectedGradient
> 0.000178462
> Iter 32    CachedValue -0.15615    InfinityNormOfProjectedGradient
> 0.000178462
> Iter 32    CachedValue -0.156785    InfinityNormOfProjectedGradient
> 0.000178462
> Iter 32    CachedValue -0.156785    InfinityNormOfProjectedGradient
> 0.000165292
> Iter 33    CachedValue -0.156698    InfinityNormOfProjectedGradient
> 0.000165292
> Iter 33    CachedValue -0.156865    InfinityNormOfProjectedGradient
> 0.000165292
> Iter 33    CachedValue -0.156865    InfinityNormOfProjectedGradient
> 0.000192639
> Iter 34    CachedValue -0.157443    InfinityNormOfProjectedGradient
> 0.000192639
> Iter 34    CachedValue -0.157443    InfinityNormOfProjectedGradient
> 0.000130335
> Iter 35    CachedValue -0.157959    InfinityNormOfProjectedGradient
> 0.000130335
> Iter 35    CachedValue -0.157959    InfinityNormOfProjectedGradient
> 0.000112771
> Iter 36    CachedValue -0.158003    InfinityNormOfProjectedGradient
> 0.000112771
> Iter 36    CachedValue -0.158003    InfinityNormOfProjectedGradient
> 0.000134055
> Iter 37    CachedValue -0.158288    InfinityNormOfProjectedGradient
> 0.000134055
> Iter 37    CachedValue -0.158288    InfinityNormOfProjectedGradient
> 6.71128e-05
> Iter 38    CachedValue -0.158161    InfinityNormOfProjectedGradient
> 6.71128e-05
> Iter 38    CachedValue -0.158312    InfinityNormOfProjectedGradient
> 6.71128e-05
> Iter 38    CachedValue -0.158312    InfinityNormOfProjectedGradient
> 7.5438e-05
> Iter 39    CachedValue -0.158083    InfinityNormOfProjectedGradient
> 7.5438e-05
> Iter 39    CachedValue -0.158331    InfinityNormOfProjectedGradient
> 7.5438e-05
> Iter 39    CachedValue -0.158331    InfinityNormOfProjectedGradient
> 5.54456e-05
> Iter 40    CachedValue -0.158158    InfinityNormOfProjectedGradient
> 5.54456e-05
> Iter 40    CachedValue -0.158358    InfinityNormOfProjectedGradient
> 5.54456e-05
> Iter 40    CachedValue -0.158358    InfinityNormOfProjectedGradient
> 7.92771e-05
> Iter 41    CachedValue -0.158315    InfinityNormOfProjectedGradient
> 7.92771e-05
> Iter 41    CachedValue -0.158367    InfinityNormOfProjectedGradient
> 7.92771e-05
> Iter 41    CachedValue -0.158367    InfinityNormOfProjectedGradient
> 7.79648e-05
> Iter 42    CachedValue -0.158329    InfinityNormOfProjectedGradient
> 7.79648e-05
> Iter 42    CachedValue -0.158379    InfinityNormOfProjectedGradient
> 7.79648e-05
> Iter 42    CachedValue -0.158379    InfinityNormOfProjectedGradient
> 8.3058e-05
> Iter 43    CachedValue -0.158235    InfinityNormOfProjectedGradient
> 8.3058e-05
> Iter 43    CachedValue -0.158406    InfinityNormOfProjectedGradient
> 8.3058e-05
> Iter 43    CachedValue -0.158406    InfinityNormOfProjectedGradient
> 6.6516e-05
> Iter 44    CachedValue -0.158411    InfinityNormOfProjectedGradient
> 6.6516e-05
> Iter 44    CachedValue -0.158411    InfinityNormOfProjectedGradient
> 0.000101636
> Iter 45    CachedValue -0.158517    InfinityNormOfProjectedGradient
> 0.000101636
> Iter 45    CachedValue -0.158517    InfinityNormOfProjectedGradient
> 0.000107886
> Iter 46    CachedValue -0.158754    InfinityNormOfProjectedGradient
> 0.000107886
> Iter 46    CachedValue -0.158754    InfinityNormOfProjectedGradient
> 0.000152569
> Iter 47    CachedValue -0.158857    InfinityNormOfProjectedGradient
> 0.000152569
> Iter 47    CachedValue -0.158857    InfinityNormOfProjectedGradient
> 9.54528e-05
> Iter 48    CachedValue -0.158938    InfinityNormOfProjectedGradient
> 9.54528e-05
> Iter 48    CachedValue -0.158938    InfinityNormOfProjectedGradient
> 0.000131167
> Iter 49    CachedValue -0.159018    InfinityNormOfProjectedGradient
> 0.000131167
> Iter 49    CachedValue -0.159018    InfinityNormOfProjectedGradient
> 0.00011672
> Iter 50    CachedValue -0.159042    InfinityNormOfProjectedGradient
> 0.00011672
> Iter 50    CachedValue -0.159042    InfinityNormOfProjectedGradient
> 8.40269e-05
> Iter 51    CachedValue -0.159081    InfinityNormOfProjectedGradient
> 8.40269e-05
> Iter 51    CachedValue -0.159081    InfinityNormOfProjectedGradient
> 0.000105198
> Iter 52    CachedValue -0.159252    InfinityNormOfProjectedGradient
> 0.000105198
> Iter 52    CachedValue -0.159252    InfinityNormOfProjectedGradient
> 9.19912e-05
> Iter 53    CachedValue -0.159222    InfinityNormOfProjectedGradient
> 9.19912e-05
> Iter 53    CachedValue -0.159337    InfinityNormOfProjectedGradient
> 9.19912e-05
> Iter 53    CachedValue -0.159337    InfinityNormOfProjectedGradient
> 0.000107755
> Iter 54    CachedValue -0.159442    InfinityNormOfProjectedGradient
> 0.000107755
> Iter 54    CachedValue -0.159442    InfinityNormOfProjectedGradient
> 0.000197689
> Iter 55    CachedValue -0.159526    InfinityNormOfProjectedGradient
> 0.000197689
> Iter 55    CachedValue -0.159526    InfinityNormOfProjectedGradient
> 0.000102651
> Iter 56    CachedValue -0.159619    InfinityNormOfProjectedGradient
> 0.000102651
> Iter 56    CachedValue -0.159619    InfinityNormOfProjectedGradient
> 4.66383e-05
> Iter 57    CachedValue -0.1597    InfinityNormOfProjectedGradient
> 4.66383e-05
> Iter 57    CachedValue -0.1597    InfinityNormOfProjectedGradient
> 6.57382e-05
> Iter 58    CachedValue -0.159817    InfinityNormOfProjectedGradient
> 6.57382e-05
> Iter 58    CachedValue -0.159817    InfinityNormOfProjectedGradient
> 8.31402e-05
> Iter 59    CachedValue -0.1599    InfinityNormOfProjectedGradient
> 8.31402e-05
> Iter 59    CachedValue -0.1599    InfinityNormOfProjectedGradient
> 7.35979e-05
> Iter 60    CachedValue -0.159991    InfinityNormOfProjectedGradient
> 7.35979e-05
> Iter 60    CachedValue -0.159991    InfinityNormOfProjectedGradient
> 7.34808e-05
> Iter 61    CachedValue -0.159807    InfinityNormOfProjectedGradient
> 7.34808e-05
> Iter 61    CachedValue -0.160097    InfinityNormOfProjectedGradient
> 7.34808e-05
> Iter 61    CachedValue -0.160097    InfinityNormOfProjectedGradient
> 0.000107219
> Iter 62    CachedValue -0.160211    InfinityNormOfProjectedGradient
> 0.000107219
> Iter 62    CachedValue -0.160211    InfinityNormOfProjectedGradient
> 0.000189714
> Iter 63    CachedValue -0.160198    InfinityNormOfProjectedGradient
> 0.000189714
> Iter 63    CachedValue -0.160193    InfinityNormOfProjectedGradient
> 0.000189714
> Iter 63    CachedValue -0.160221    InfinityNormOfProjectedGradient
> 0.000189714
> Iter 63    CachedValue -0.160221    InfinityNormOfProjectedGradient
> 0.000187129
> Iter 64    CachedValue -0.160294    InfinityNormOfProjectedGradient
> 0.000187129
> Iter 64    CachedValue -0.160294    InfinityNormOfProjectedGradient
> 9.65022e-05
> Iter 65    CachedValue -0.160348    InfinityNormOfProjectedGradient
> 9.65022e-05
> Iter 65    CachedValue -0.160348    InfinityNormOfProjectedGradient
> 6.75378e-05
> Iter 66    CachedValue -0.160151    InfinityNormOfProjectedGradient
> 6.75378e-05
> Iter 66    CachedValue -0.160291    InfinityNormOfProjectedGradient
> 6.75378e-05
> Iter 66    CachedValue -0.160349    InfinityNormOfProjectedGradient
> 6.75378e-05
> Iter 66    CachedValue -0.160289    InfinityNormOfProjectedGradient
> 6.75378e-05
> Iter 66    CachedValue -0.160349    InfinityNormOfProjectedGradient
> 6.75378e-05
> Iter 66    CachedValue -0.160287    InfinityNormOfProjectedGradient
> 6.75378e-05
> Iter 66    CachedValue -0.160349    InfinityNormOfProjectedGradient
> 6.75378e-05
> Iter 66    CachedValue -0.160352    InfinityNormOfProjectedGradient
> 6.75378e-05
> Iter 66    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.75378e-05
> Iter 66    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.75378e-05
> Iter 66    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54521e-05
> Iter 67    CachedValue -0.159162    InfinityNormOfProjectedGradient
> 6.54521e-05
> Iter 67    CachedValue -0.160283    InfinityNormOfProjectedGradient
> 6.54521e-05
> Iter 67    CachedValue -0.160287    InfinityNormOfProjectedGradient
> 6.54521e-05
> Iter 67    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54521e-05
> Iter 67    CachedValue -0.160288    InfinityNormOfProjectedGradient
> 6.54521e-05
> Iter 67    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54521e-05
> Iter 67    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54521e-05
> Iter 67    CachedValue -0.160288    InfinityNormOfProjectedGradient
> 6.54521e-05
> Iter 67    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54521e-05
> Iter 67    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54521e-05
> Iter 67    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54521e-05
> Iter 67    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54736e-05
> Iter 68    CachedValue -0.158687    InfinityNormOfProjectedGradient
> 6.54736e-05
> Iter 68    CachedValue -0.160273    InfinityNormOfProjectedGradient
> 6.54736e-05
> Iter 68    CachedValue -0.160287    InfinityNormOfProjectedGradient
> 6.54736e-05
> Iter 68    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54736e-05
> Iter 68    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54736e-05
> Iter 68    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54736e-05
> Iter 68    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54736e-05
> Iter 68    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54736e-05
> Iter 68    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54736e-05
> Iter 68    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160267    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160303    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160289    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
> Iter 69    CachedValue -0.160354    InfinityNormOfProjectedGradient
> 6.54687e-05
>          Probe Tag    Starts    Stops             Time (s)
>        Registration           1            1           38.5086
>
>
>
>
> On Tue, 30 Jun 2009, Luis Ibanez wrote:
>
>  Hi Serena,
>>
>> Why did you replace the
>>
>>   optimizer->GetCachedValue()
>>
>> with
>>
>>    optimizer->GetValue()
>>
>> ??
>>
>> With the original code
>>
>>   std::cout << optimizer->GetCurrentIteration() << "   ";
>>   std::cout << optimizer->GetCachedValue() << "   ";
>>   std::cout << optimizer->GetInfinityNormOfProjectedGradient() <<
>> std::endl;
>>
>>
>> I get output similar to
>>
>>
>> Starting Registration
>> 0   -0.126569   0
>> 0   -0.128309   0
>> 0   -0.132048   0
>> 0   -0.145772   0
>> 0   -0.206432   0
>> 0   -0.304187   0
>> 0   -0.304187   0.000164939
>> 1   -0.359927   0.000164939
>> 1   -0.359927   0.00022934
>> 2   -0.289385   0.00022934
>>
>> when registering the images:
>>
>>  brainweb165a10f17.mha
>>  brainweb165a10f17Rot20Tx20.mha
>>
>>
>> Could you please restore the original code
>> and let us know if this time you get non-zero
>> outputs ?
>>
>>
>>      Thanks
>>
>>
>>            Luis
>>
>>
>> --------------------------------------------------------------
>> On Tue, Jun 30, 2009 at 4:00 PM, Serena Fabbri <fabbri at u.washington.edu
>> >wrote:
>>
>>  Hi All,
>>>
>>> I am using DeformableRegistration8 with Mattes Mutual Information and
>>> LBFGSBoptimizer.
>>> I'd like to know how the MI and the parameters change in each iteration.
>>> In
>>> the example, class CommandIterationUpdate is implemented  and I only add
>>> :
>>>
>>> std::cout <<"Iter "<<optimizer->GetCurrentIteration() << "   ";
>>> std::cout <<" Metric "<<optimizer->GetValue() << ":";
>>> std::cout <<" Parameters "<<optimizer->GetCurrentPosition() << std::endl;
>>>
>>> I use a Bspline-grid with 3 bound nodes and 3 node in the image and  I
>>> run
>>> fixed=MRI (176, 256, 160) (1,1,1)mm   moving=CT (176, 256, 160) (1,1,1)mm
>>>
>>> The code runs, I get a pretty good registered image but Metric value and
>>> parameters values are  always 0.
>>> could anybody point out me where the error is?
>>> are the above instructions wrong?
>>>
>>>
>>> Thanks.
>>>
>>> Serena.
>>>
>>> _____________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the ITK FAQ at:
>>> http://www.itk.org/Wiki/ITK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.itk.org/mailman/listinfo/insight-users
>>>
>>>
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20090630/f0cd4c76/attachment-0001.htm>


More information about the Insight-users mailing list