From 8ebe073ad592fe3bb3a5904a0ae884240418bcd2 Mon Sep 17 00:00:00 2001 From: Jonathan Helmus Date: Wed, 21 Jan 2015 16:01:13 -0600 Subject: [PATCH] BUG: unwrap_phase on compressed masked array unwrap_phase works on masked arrays with a compressed mask (no elements masked) Closes #1346 --- skimage/restoration/tests/test_unwrap.py | 9 +++++++++ skimage/restoration/unwrap.py | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/skimage/restoration/tests/test_unwrap.py b/skimage/restoration/tests/test_unwrap.py index e628f4fe..7d22d5b2 100644 --- a/skimage/restoration/tests/test_unwrap.py +++ b/skimage/restoration/tests/test_unwrap.py @@ -156,5 +156,14 @@ def test_unwrap_3d_middle_wrap_around(): unwrap = unwrap_phase(image, wrap_around=[False, True, False]) assert np.all(unwrap == 0) + +def test_unwrap_2d_compressed_mask(): + # ValueError when image is masked array with a compressed mask (no masked + # elments). GitHub issue #1346 + image = np.ma.zeros((10, 10)) + unwrap = unwrap_phase(image) + assert np.all(unwrap == 0) + + if __name__ == "__main__": run_module_suite() diff --git a/skimage/restoration/unwrap.py b/skimage/restoration/unwrap.py index c6810229..6dd7c7ef 100644 --- a/skimage/restoration/unwrap.py +++ b/skimage/restoration/unwrap.py @@ -88,8 +88,8 @@ def unwrap_phase(image, wrap_around=False, seed=None): 'algorithm') if np.ma.isMaskedArray(image): - mask = np.require(image.mask, np.uint8, ['C']) - image = image.data + mask = np.require(np.ma.getmaskarray(image), np.uint8, ['C']) + image = np.ma.getdata(image) else: mask = np.zeros_like(image, dtype=np.uint8, order='C')