Skip to content

Commit

Permalink
registration: more improvements to confidence()
Browse files Browse the repository at this point in the history
Only perform the 2nd and 3rd powers once.
  • Loading branch information
rjw57 committed Mar 28, 2014
1 parent c192b0b commit d3592a5
Showing 1 changed file with 17 additions and 8 deletions.
25 changes: 17 additions & 8 deletions dtcwt/registration.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,12 @@ def phasegradient(sb1, sb2, w=None):

return dy, dx, dt

def _pow2(a):
return a * a

def _pow3(a):
return a * a * a

def confidence(sb1, sb2):
"""
Compute the confidence measure of subbands *sb1* and *sb2* which should be
Expand All @@ -99,25 +105,28 @@ def confidence(sb1, sb2):
np.concatenate((sb2[-1: ,:1], sb2[-1: ,:], sb2[-1: ,-1:]), axis=1),
), axis=0)

us3_abs, vs3_abs = _pow3(np.abs(us)), _pow3(np.abs(vs))
prod2_abs = _pow2(np.abs(np.conj(us) * vs))

# pixels at -1, -1
region = (slice(0,-2), slice(0,-2))
numerator += np.power(np.abs(np.conj(us[region]) * vs[region]), 2)
denominator += np.power(np.abs(us[region]), 3) + np.power(np.abs(vs[region]), 3)
numerator += prod2_abs[region]
denominator += us3_abs[region] + vs3_abs[region]

# pixels at +1, -1
region = (slice(0,-2), slice(2,None))
numerator += np.power(np.abs(np.conj(us[region]) * vs[region]), 2)
denominator += np.power(np.abs(us[region]), 3) + np.power(np.abs(vs[region]), 3)
numerator += prod2_abs[region]
denominator += us3_abs[region] + vs3_abs[region]

# pixels at -1, +1
region = (slice(2,None), slice(0,-2))
numerator += np.power(np.abs(np.conj(us[region]) * vs[region]), 2)
denominator += np.power(np.abs(us[region]), 3) + np.power(np.abs(vs[region]), 3)
numerator += prod2_abs[region]
denominator += us3_abs[region] + vs3_abs[region]

# pixels at +1, +1
region = (slice(2,None), slice(2,None))
numerator += np.power(np.abs(np.conj(us[region]) * vs[region]), 2)
denominator += np.power(np.abs(us[region]), 3) + np.power(np.abs(vs[region]), 3)
numerator += prod2_abs[region]
denominator += us3_abs[region] + vs3_abs[region]

return numerator / denominator

Expand Down

0 comments on commit d3592a5

Please sign in to comment.