From b3f0c1eb963f791634fb3be982721bfcd1d536c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Boulogne?= Date: Sun, 16 Mar 2014 15:46:39 -0400 Subject: [PATCH] FIX bug #832 + testcase --- skimage/draw/draw.py | 2 +- skimage/draw/tests/test_draw.py | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/skimage/draw/draw.py b/skimage/draw/draw.py index cbf3ced2..e61df40c 100644 --- a/skimage/draw/draw.py +++ b/skimage/draw/draw.py @@ -60,7 +60,7 @@ def ellipse(cy, cx, yradius, xradius, shape=None): cc += cx - xradius if shape is not None: - _coords_inside_image(rr, cc, shape) + return _coords_inside_image(rr, cc, shape) return rr, cc diff --git a/skimage/draw/tests/test_draw.py b/skimage/draw/tests/test_draw.py index 2d739f0f..3cb8c2a6 100644 --- a/skimage/draw/tests/test_draw.py +++ b/skimage/draw/tests/test_draw.py @@ -325,6 +325,33 @@ def test_ellipse(): assert_array_equal(img, img_) +def test_ellipse_with_shape(): + img = np.zeros((15, 15), 'uint8') + + rr, cc = ellipse(7, 7, 3, 10, shape=img.shape) + img[rr, cc] = 1 + + img_ = np.array( + [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]] + ) + + assert_array_equal(img, img_) + + def test_ellipse_perimeter_dot_zeroangle(): # dot, angle == 0 img = np.zeros((30, 15), 'uint8')