From ea3e65f25a4b847c66a4e645fb52831391284726 Mon Sep 17 00:00:00 2001 From: Nelson Brown Date: Sat, 12 Jul 2014 16:54:35 -0700 Subject: [PATCH] Add 3d-fallback tests for binary functions --- skimage/morphology/tests/test_binary.py | 24 ++++++++++++++++++++++++ skimage/morphology/tests/test_grey.py | 7 ++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/skimage/morphology/tests/test_binary.py b/skimage/morphology/tests/test_binary.py index 6ac5e8d8..c0c4c682 100644 --- a/skimage/morphology/tests/test_binary.py +++ b/skimage/morphology/tests/test_binary.py @@ -4,6 +4,7 @@ from numpy import testing from skimage import data, color from skimage.util import img_as_bool from skimage.morphology import binary, grey, selem +from scipy import ndimage lena = color.rgb2gray(data.lena()) @@ -86,5 +87,28 @@ def test_default_selem(): im_test = function(image) yield testing.assert_array_equal, im_expected, im_test +def test_3d_fallback_default_selem(): + # 3x3x3 cube inside a 7x7x7 image: + image = np.zeros((7, 7, 7), np.bool) + image[2:-2, 2:-2, 2:-2] = 1 + + opened = binary.binary_opening(image) + + # expect a "hyper-cross" centered in the 5x5x5: + image_expected = np.zeros((7, 7, 7), dtype=bool) + image_expected[2:5, 2:5, 2:5] = ndimage.generate_binary_structure(3, 1) + testing.assert_array_equal(opened, image_expected) + +def test_3d_fallback_cube_selem(): + # 3x3x3 cube inside a 7x7x7 image: + image = np.zeros((7, 7, 7), np.bool) + image[2:-2, 2:-2, 2:-2] = 1 + + cube = np.ones((3, 3, 3), dtype=np.uint8) + + for function in [binary.binary_closing, binary.binary_opening]: + new_image = function(image, cube) + yield testing.assert_array_equal, new_image, image + if __name__ == '__main__': testing.run_module_suite() diff --git a/skimage/morphology/tests/test_grey.py b/skimage/morphology/tests/test_grey.py index 840b9c42..191613c4 100644 --- a/skimage/morphology/tests/test_grey.py +++ b/skimage/morphology/tests/test_grey.py @@ -2,6 +2,7 @@ import os.path import numpy as np from numpy import testing +from scipy import ndimage import skimage from skimage import data_dir @@ -147,19 +148,19 @@ def test_3d_fallback_default_selem(): image = np.zeros((7, 7, 7), np.bool) image[2:-2, 2:-2, 2:-2] = 1 - opened = morphology.opening(image) + opened = grey.opening(image) # expect a "hyper-cross" centered in the 5x5x5: image_expected = np.zeros((7, 7, 7), dtype=bool) image_expected[2:5, 2:5, 2:5] = ndimage.generate_binary_structure(3, 1) testing.assert_array_equal(opened, image_expected) -def test_3d_fallback_default_selem(): +def test_3d_fallback_cube_selem(): # 3x3x3 cube inside a 7x7x7 image: image = np.zeros((7, 7, 7), np.bool) image[2:-2, 2:-2, 2:-2] = 1 - cube = np.ones((3, 3, 3),dtype=np.uint8) + cube = np.ones((3, 3, 3), dtype=np.uint8) for function in [grey.closing, grey.opening]: new_image = function(image, cube)