From 809871803697e721779be24bad84753356c0838e Mon Sep 17 00:00:00 2001 From: Andreas Mueller Date: Sun, 5 Aug 2012 14:33:30 +0100 Subject: [PATCH] Fixup tests, add test for slic. --- skimage/segmentation/tests/test_quickshift.py | 19 +++++++------- skimage/segmentation/tests/test_slic.py | 26 +++++++++++++++++++ 2 files changed, 36 insertions(+), 9 deletions(-) create mode 100644 skimage/segmentation/tests/test_slic.py diff --git a/skimage/segmentation/tests/test_quickshift.py b/skimage/segmentation/tests/test_quickshift.py index a904837c..b4bc1e86 100644 --- a/skimage/segmentation/tests/test_quickshift.py +++ b/skimage/segmentation/tests/test_quickshift.py @@ -7,17 +7,17 @@ from skimage.segmentation import quickshift def test_grey(): rnd = np.random.RandomState(0) img = np.zeros((20, 20)) - img[:10, :10] = 0.2 + img[:10, 10:] = 0.2 img[10:, :10] = 0.4 img[10:, 10:] = 0.6 img += 0.1 * rnd.normal(size=img.shape) - seg = quickshift(img, random_seed=0) + seg = quickshift(img, kernel_size=2, max_dist=3, random_seed=0, convert2lab=False, sigma=0) # we expect 4 segments: assert_equal(len(np.unique(seg)), 4) # that mostly respect the 4 regions: for i in xrange(4): hist = np.histogram(img[seg == i], bins=[0, 0.1, 0.3, 0.5, 1])[0] - assert_greater(hist[i], 40) + assert_greater(hist[i], 20) def test_color(): @@ -26,20 +26,21 @@ def test_color(): img[:10, :10, 0] = 1 img[10:, :10, 1] = 1 img[10:, 10:, 2] = 1 - img += 0.2 * rnd.normal(size=img.shape) + img += 0.01 * rnd.normal(size=img.shape) img[img > 1] = 1 img[img < 0] = 0 - seg = quickshift(img, random_seed=0) + seg = quickshift(img, random_seed=0, max_dist=30, kernel_size=10, sigma=0) # we expect 4 segments: assert_equal(len(np.unique(seg)), 4) assert_array_equal(seg[:10, :10], 0) - assert_array_equal(seg[10:, :10], 3) + assert_array_equal(seg[10:, :10], 2) assert_array_equal(seg[:10, 10:], 1) - assert_array_equal(seg[10:, 10:], 2) + assert_array_equal(seg[10:, 10:], 3) - seg2 = quickshift(img, kernel_size=1, max_dist=3, random_seed=0) + seg2 = quickshift(img, kernel_size=1, max_dist=2, random_seed=0, + convert2lab=False, sigma=0) # very oversegmented: - assert_equal(len(np.unique(seg2)), 18) + assert_equal(len(np.unique(seg2)), 11) # still don't cross lines assert_true((seg2[9, :] != seg2[10, :]).all()) assert_true((seg2[:, 9] != seg2[:, 10]).all()) diff --git a/skimage/segmentation/tests/test_slic.py b/skimage/segmentation/tests/test_slic.py new file mode 100644 index 00000000..b4d4233a --- /dev/null +++ b/skimage/segmentation/tests/test_slic.py @@ -0,0 +1,26 @@ +import numpy as np +from numpy.testing import assert_equal, assert_array_equal +from skimage.segmentation import slic + + +def test_color(): + rnd = np.random.RandomState(0) + img = np.zeros((20, 20, 3)) + img[:10, :10, 0] = 1 + img[10:, :10, 1] = 1 + img[10:, 10:, 2] = 1 + img += 0.01 * rnd.normal(size=img.shape) + img[img > 1] = 1 + img[img < 0] = 0 + seg = slic(img, sigma=0, n_segments=4) + # we expect 4 segments: + assert_equal(len(np.unique(seg)), 4) + assert_array_equal(seg[:10, :10], 0) + assert_array_equal(seg[10:, :10], 2) + assert_array_equal(seg[:10, 10:], 1) + assert_array_equal(seg[10:, 10:], 3) + + +if __name__ == '__main__': + from numpy import testing + testing.run_module_suite()