From 6586d1eb3fd01367cad5b73b0430a2a9bcfe23c7 Mon Sep 17 00:00:00 2001 From: Juan Nunez-Iglesias Date: Mon, 12 Jan 2015 15:31:56 +1100 Subject: [PATCH] Test subpixel mark_boundaries --- skimage/segmentation/tests/test_boundaries.py | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/skimage/segmentation/tests/test_boundaries.py b/skimage/segmentation/tests/test_boundaries.py index 4019e112..7b837f4e 100644 --- a/skimage/segmentation/tests/test_boundaries.py +++ b/skimage/segmentation/tests/test_boundaries.py @@ -1,8 +1,11 @@ import numpy as np -from numpy.testing import assert_array_equal +from numpy.testing import assert_array_equal, assert_allclose from skimage.segmentation import find_boundaries, mark_boundaries +white = (1, 1, 1) + + def test_find_boundaries(): image = np.zeros((10, 10), dtype=np.uint8) image[2:7, 2:7] = 1 @@ -38,7 +41,7 @@ def test_mark_boundaries(): [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]) - result = mark_boundaries(image, label_image, color=(1, 1, 1)).mean(axis=2) + result = mark_boundaries(image, label_image, color=white).mean(axis=2) assert_array_equal(result, ref) ref = np.array([[0, 2, 2, 2, 2, 2, 2, 2, 0, 0], @@ -51,10 +54,34 @@ def test_mark_boundaries(): [2, 2, 1, 1, 1, 1, 1, 2, 2, 0], [0, 2, 2, 2, 2, 2, 2, 2, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]) - result = mark_boundaries(image, label_image, color=(1, 1, 1), + result = mark_boundaries(image, label_image, color=white, outline_color=(2, 2, 2)).mean(axis=2) assert_array_equal(result, ref) +def test_mark_boundaries_subpixel(): + labels = np.array([[0, 0, 0, 0], + [0, 0, 5, 0], + [0, 1, 5, 0], + [0, 0, 5, 0], + [0, 0, 0, 0]], dtype=np.uint8) + np.random.seed(0) + image = np.round(np.random.rand(*labels.shape), 2) + marked = np.mark_boundaries(image, labels, color=white, mode='subpixel') + marked_proj = np.round(np.mean(marked, axis=-1), 2) + + ref_result = np.array( + [[ 0.55, 0.63, 0.72, 0.69, 0.6 , 0.55, 0.54], + [ 0.45, 0.58, 0.72, 1. , 1. , 1. , 0.69], + [ 0.42, 0.54, 0.65, 1. , 0.44, 1. , 0.89], + [ 0.69, 1. , 1. , 1. , 0.69, 1. , 0.83], + [ 0.96, 1. , 0.38, 1. , 0.79, 1. , 0.53], + [ 0.89, 1. , 1. , 1. , 0.38, 1. , 0.16], + [ 0.57, 0.78, 0.93, 1. , 0.07, 1. , 0.09], + [ 0.2 , 0.52, 0.92, 1. , 1. , 1. , 0.54], + [ 0.02, 0.35, 0.83, 0.9 , 0.78, 0.81, 0.87]]) + assert_allclose(marked_proj, ref_result, atol=0.01) + + if __name__ == "__main__": np.testing.run_module_suite()