mirror of
https://github.com/wassname/scikit-image.git
synced 2026-07-23 13:10:18 +08:00
Fix bug in inverse warping and add test case
This commit is contained in:
@@ -1051,8 +1051,8 @@ def warp(image, inverse_map=None, map_args={}, output_shape=None, order=1,
|
||||
# inverse_map is the inverse of a homography
|
||||
elif (hasattr(inverse_map, '__name__')
|
||||
and inverse_map.__name__ == 'inverse'
|
||||
and isinstance(get_bound_method_class(inverse_map),
|
||||
HOMOGRAPHY_TRANSFORMS)):
|
||||
and get_bound_method_class(inverse_map) \
|
||||
in HOMOGRAPHY_TRANSFORMS):
|
||||
matrix = np.linalg.inv(six.get_method_self(inverse_map)._matrix)
|
||||
|
||||
if matrix is not None:
|
||||
|
||||
@@ -237,7 +237,15 @@ def test_downscale_local_mean():
|
||||
|
||||
def test_invalid():
|
||||
assert_raises(ValueError, warp, np.ones((4, )), SimilarityTransform())
|
||||
assert_raises(ValueError, warp, np.ones((4, 3, 3, 3)), SimilarityTransform())
|
||||
assert_raises(ValueError, warp, np.ones((4, 3, 3, 3)),
|
||||
SimilarityTransform())
|
||||
|
||||
|
||||
def test_inverse():
|
||||
tform = SimilarityTransform(scale=0.5, rotation=0.1)
|
||||
inverse_tform = SimilarityTransform(matrix=np.linalg.inv(tform._matrix))
|
||||
image = np.arange(10 * 10).reshape(10, 10).astype(np.double)
|
||||
assert_array_equal(warp(image, inverse_tform), warp(image, tform.inverse))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user