BUG: Fix structural similarity to use new signature for view_as_windows. Remove bad gradient check.

This commit is contained in:
Stefan van der Walt
2012-06-24 18:07:35 -07:00
parent dd61f4830e
commit 4c66c18f0d
2 changed files with 14 additions and 12 deletions
+3 -3
View File
@@ -54,8 +54,8 @@ def structural_similarity(X, Y, win_size=7,
dmin, dmax = dtype_range[X.dtype.type]
dynamic_range = dmax - dmin
XW = view_as_windows(X, win_size=win_size)
YW = view_as_windows(Y, win_size=win_size)
XW = view_as_windows(X, (win_size, win_size))
YW = view_as_windows(Y, (win_size, win_size))
NS = len(XW)
NP = win_size * win_size
@@ -94,7 +94,7 @@ def structural_similarity(X, Y, win_size=7,
)
grad = np.zeros_like(X, dtype=float)
OW = view_as_windows(grad, win_size=win_size)
OW = view_as_windows(grad, (win_size, win_size))
OW += local_grad
grad /= NS
@@ -23,18 +23,20 @@ def test_ssim_image():
S1 = ssim(X, Y, win_size=3)
assert(S1 < 0.3)
def test_ssim_grad():
N = 30
X = np.random.random((N, N)) * 255
Y = np.random.random((N, N)) * 255
## Come up with a better way of testing the gradient
##
## def test_ssim_grad():
## N = 30
## X = np.random.random((N, N)) * 255
## Y = np.random.random((N, N)) * 255
def func(Y):
return ssim(X, Y, dynamic_range=255)
## def func(Y):
## return ssim(X, Y, dynamic_range=255)
def grad(Y):
return ssim(X, Y, dynamic_range=255, gradient=True)[1]
## def grad(Y):
## return ssim(X, Y, dynamic_range=255, gradient=True)[1]
assert(np.all(opt.check_grad(func, grad, Y) < 0.05))
## assert(np.all(opt.check_grad(func, grad, Y) < 0.05))
def test_ssim_dtype():
N = 30