diff --git a/skimage/filter/rank/tests/test_rank.py b/skimage/filter/rank/tests/test_rank.py index e92f386c..10aeb5ac 100644 --- a/skimage/filter/rank/tests/test_rank.py +++ b/skimage/filter/rank/tests/test_rank.py @@ -1,11 +1,9 @@ import numpy as np from numpy.testing import run_module_suite, assert_array_equal, assert_raises -import unittest from skimage import data from skimage.morphology import cmorph, disk from skimage.filter import rank -from skimage.filter.rank import _crank8, _crank16, _crank16_percentiles def test_random_sizes(): @@ -18,26 +16,26 @@ def test_random_sizes(): image8 = np.ones((m, n), dtype=np.uint8) out8 = np.empty_like(image8) - _crank8.mean(image=image8, selem=elem, mask=mask, out=out8, + rank.mean(image=image8, selem=elem, mask=mask, out=out8, shift_x=0, shift_y=0) assert_array_equal(image8.shape, out8.shape) - _crank8.mean(image=image8, selem=elem, mask=mask, out=out8, + rank.mean(image=image8, selem=elem, mask=mask, out=out8, shift_x=+1, shift_y=+1) assert_array_equal(image8.shape, out8.shape) image16 = np.ones((m, n), dtype=np.uint16) out16 = np.empty_like(image8, dtype=np.uint16) - _crank16.mean(image=image16, selem=elem, mask=mask, out=out16, + rank.mean(image=image16, selem=elem, mask=mask, out=out16, shift_x=0, shift_y=0) assert_array_equal(image16.shape, out16.shape) - _crank16.mean(image=image16, selem=elem, mask=mask, out=out16, + rank.mean(image=image16, selem=elem, mask=mask, out=out16, shift_x=+1, shift_y=+1) assert_array_equal(image16.shape, out16.shape) - _crank16_percentiles.mean(image=image16, mask=mask, out=out16, + rank.percentile_mean(image=image16, mask=mask, out=out16, selem=elem, shift_x=0, shift_y=0, p0=.1, p1=.9) assert_array_equal(image16.shape, out16.shape) - _crank16_percentiles.mean(image=image16, mask=mask, out=out16, + rank.percentile_mean(image=image16, mask=mask, out=out16, selem=elem, shift_x=+1, shift_y=+1, p0=.1, p1=.9) assert_array_equal(image16.shape, out16.shape) @@ -51,7 +49,7 @@ def test_compare_with_cmorph_dilate(): for r in range(1, 20, 1): elem = np.ones((r, r), dtype=np.uint8) - _crank8.maximum(image=image, selem=elem, out=out, mask=mask) + rank.maximum(image=image, selem=elem, out=out, mask=mask) cm = cmorph.dilate(image=image, selem=elem) assert_array_equal(out, cm) @@ -65,7 +63,7 @@ def test_compare_with_cmorph_erode(): for r in range(1, 20, 1): elem = np.ones((r, r), dtype=np.uint8) - _crank8.minimum(image=image, selem=elem, out=out, mask=mask) + rank.minimum(image=image, selem=elem, out=out, mask=mask) cm = cmorph.erode(image=image, selem=elem) assert_array_equal(out, cm) @@ -79,8 +77,8 @@ def test_bitdepth(): for i in range(5): image = np.ones((100, 100),dtype=np.uint16) * 255 * 2**i - r = _crank16_percentiles.mean(image=image, selem=elem, mask=mask, - out=out, shift_x=0, shift_y=0, p0=.1, p1=.9, bitdepth=8 + i) + r = rank.percentile_mean(image=image, selem=elem, mask=mask, + out=out, shift_x=0, shift_y=0, p0=.1, p1=.9) def test_population(): @@ -91,7 +89,7 @@ def test_population(): out = np.empty_like(image) mask = np.ones(image.shape, dtype=np.uint8) - _crank8.pop(image=image, selem=elem, out=out, mask=mask) + rank.pop(image=image, selem=elem, out=out, mask=mask) r = np.array([[4, 6, 6, 6, 4], [6, 9, 9, 9, 6], [6, 9, 9, 9, 6], @@ -117,7 +115,7 @@ def test_structuring_element8(): out = np.empty_like(image) mask = np.ones(image.shape, dtype=np.uint8) - _crank8.maximum(image=image, selem=elem, out=out, mask=mask, + rank.maximum(image=image, selem=elem, out=out, mask=mask, shift_x=1, shift_y=1) assert_array_equal(r, out) @@ -126,7 +124,7 @@ def test_structuring_element8(): image[2, 2] = 255 out = np.empty_like(image) - _crank16.maximum(image=image, selem=elem, out=out, mask=mask, + rank.maximum(image=image, selem=elem, out=out, mask=mask, shift_x=1, shift_y=1) assert_array_equal(r, out) @@ -134,12 +132,20 @@ def test_structuring_element8(): def test_fail_on_bitdepth(): # should fail because data bitdepth is too high for the function - image = np.ones((100, 100), dtype=np.uint16) * 255 + image = np.ones((100, 100), dtype=np.uint16) * 2**12 + elem = np.ones((3, 3), dtype=np.uint8) + out = np.empty_like(image) + mask = np.ones(image.shape, dtype=np.uint8) + assert_raises(ValueError, rank.percentile_mean, image=image, + selem=elem, out=out, mask=mask, shift_x=0, shift_y=0) + +def test_pass_on_bitdepth(): + # should pass because data bitdepth is not too high for the function + + image = np.ones((100, 100), dtype=np.uint16) * 2**11 elem = np.ones((3, 3), dtype=np.uint8) out = np.empty_like(image) mask = np.ones(image.shape, dtype=np.uint8) - assert_raises(AssertionError, _crank16_percentiles.mean, image=image, - selem=elem, out=out, mask=mask, shift_x=0, shift_y=0, bitdepth=4) def test_inplace_output(): @@ -210,13 +216,13 @@ def test_trivial_selem8(): image[1,2] = 16 elem = np.array([[0, 0, 0], [0, 1, 0],[0, 0, 0]], dtype=np.uint8) - _crank8.mean(image=image, selem=elem, out=out, mask=mask, + rank.mean(image=image, selem=elem, out=out, mask=mask, shift_x=0, shift_y=0) assert_array_equal(image, out) - _crank8.minimum(image=image, selem=elem, out=out, mask=mask, + rank.minimum(image=image, selem=elem, out=out, mask=mask, shift_x=0, shift_y=0) assert_array_equal(image, out) - _crank8.maximum(image=image, selem=elem, out=out, mask=mask, + rank.maximum(image=image, selem=elem, out=out, mask=mask, shift_x=0, shift_y=0) assert_array_equal(image, out) @@ -233,13 +239,13 @@ def test_trivial_selem16(): image[1,2] = 16 elem = np.array([[0, 0, 0], [0, 1, 0],[0, 0, 0]], dtype=np.uint8) - _crank16.mean(image=image, selem=elem, out=out, mask=mask, + rank.mean(image=image, selem=elem, out=out, mask=mask, shift_x=0, shift_y=0) assert_array_equal(image, out) - _crank16.minimum(image=image, selem=elem, out=out, mask=mask, + rank.minimum(image=image, selem=elem, out=out, mask=mask, shift_x=0, shift_y=0) assert_array_equal(image, out) - _crank16.maximum(image=image, selem=elem, out=out, mask=mask, + rank.maximum(image=image, selem=elem, out=out, mask=mask, shift_x=0, shift_y=0) assert_array_equal(image, out) @@ -256,13 +262,13 @@ def test_smallest_selem8(): image[1,2] = 16 elem = np.array([[1]], dtype=np.uint8) - _crank8.mean(image=image, selem=elem, out=out, mask=mask, + rank.mean(image=image, selem=elem, out=out, mask=mask, shift_x=0, shift_y=0) assert_array_equal(image, out) - _crank8.minimum(image=image, selem=elem, out=out, mask=mask, + rank.minimum(image=image, selem=elem, out=out, mask=mask, shift_x=0, shift_y=0) assert_array_equal(image, out) - _crank8.maximum(image=image, selem=elem, out=out, mask=mask, + rank.maximum(image=image, selem=elem, out=out, mask=mask, shift_x=0, shift_y=0) assert_array_equal(image, out) @@ -279,13 +285,13 @@ def test_smallest_selem16(): image[1,2] = 16 elem = np.array([[1]], dtype=np.uint8) - _crank16.mean(image=image, selem=elem, out=out, mask=mask, + rank.mean(image=image, selem=elem, out=out, mask=mask, shift_x=0, shift_y=0) assert_array_equal(image, out) - _crank16.minimum(image=image, selem=elem, out=out, mask=mask, + rank.minimum(image=image, selem=elem, out=out, mask=mask, shift_x=0, shift_y=0) assert_array_equal(image, out) - _crank16.maximum(image=image, selem=elem, out=out, mask=mask, + rank.maximum(image=image, selem=elem, out=out, mask=mask, shift_x=0, shift_y=0) assert_array_equal(image, out)