Algorithm 1.
LDDMM-based DWI registration
Input: I0, I1, {μj}, {qi}, λ1, λ2, b, n, {σl} and {α} (step size) |
Initialization {υtp ∣ υtp ← 0, ∀p} |
1: estimate kernel weights {al} |
2: repeat |
3: for each p do |
4: |
5: |
6: end for |
7: compute current energy E using (4) |
8: for each p do |
9: compute gradient (∇υ E)tp using (5) |
10: end for |
11: (E′, α) ← linesearch (E, {υtp}, {α}, {(∇υ E)tp}) |
12: if E′ < E then |
13: for each p do |
14: υtp ← υtp − α(∇υ E)tp |
15: End For |
16: end if |
17: until E′ ≥ E ∨ α = inf {α} ∨ maximum number of iterations |
18: function linesearch (E, {υtp}, {α}, {(∇υ E)tp}) |
19: for each α do |
20: for each p do |
21: |
22: end for |
23: for each p do |
24: |
25: |
26: end for |
27: compute current energy E′ using (4) |
28: if E′ < E then |
29: return E′, α |
30: end if |
31: end for |
32: return E, inf {α} |
33: end function |