From 2e441b2e5b4e6fbfe2a08ea38291f352ff973b73 Mon Sep 17 00:00:00 2001 From: Vighnesh Birodkar Date: Sat, 15 Mar 2014 00:16:39 +0530 Subject: [PATCH] tests and minor corrections --- skimage/feature/blob.py | 39 +++++++++++++++--------------- skimage/feature/tests/test_blob.py | 23 +++++++++++------- 2 files changed, 33 insertions(+), 29 deletions(-) diff --git a/skimage/feature/blob.py b/skimage/feature/blob.py index 0be10f39..e47c60c9 100644 --- a/skimage/feature/blob.py +++ b/skimage/feature/blob.py @@ -351,27 +351,25 @@ def blob_doh(image, min_sigma=1, max_sigma=30, num_sigma=10, threshold=500, Examples -------- - >>> from skimage import data, feature, exposure + >>> from skimage import data, feature >>> img = data.coins() - >>> img = exposure.equalize_hist(img) # improves detection - >>> feature.blob_log(img, threshold = .3) - array([[113, 323, 1], - [121, 272, 17], - [124, 336, 11], - [126, 46, 11], - [126, 208, 11], - [127, 102, 11], - [128, 154, 11], - [185, 344, 17], - [194, 213, 17], - [194, 276, 17], - [197, 44, 11], - [198, 103, 11], - [198, 155, 11], - [260, 174, 17], - [263, 244, 17], - [263, 302, 17], - [266, 115, 11]]) + >>> feature.blob_doh(img,threshold = 700) + array([[121, 271, 30], + [123, 44, 23], + [123, 205, 20], + [124, 336, 20], + [126, 101, 20], + [126, 153, 20], + [156, 302, 30], + [185, 348, 30], + [192, 212, 23], + [193, 275, 23], + [195, 100, 23], + [197, 153, 20], + [260, 173, 30], + [262, 243, 23], + [265, 113, 23], + [270, 363, 30]]) Notes ----- @@ -381,6 +379,7 @@ def blob_doh(image, min_sigma=1, max_sigma=30, num_sigma=10, threshold=500, methods line :py:meth:`blob_dog` and :py:meth:`blob_log` the computation of Gaussians for larger `sigma` takes more time. """ + if image.ndim != 2: raise ValueError("'image' must be a grayscale ") diff --git a/skimage/feature/tests/test_blob.py b/skimage/feature/tests/test_blob.py index b68f144d..4166ff2a 100644 --- a/skimage/feature/tests/test_blob.py +++ b/skimage/feature/tests/test_blob.py @@ -18,7 +18,7 @@ def test_blob_dog(): img[xs, ys] = 255 blobs = blob_dog(img, min_sigma=5, max_sigma=50) - radius = lambda x: r2*x[2] + radius = lambda x: r2 * x[2] s = sorted(blobs, key=radius) thresh = 5 @@ -56,7 +56,7 @@ def test_blob_log(): blobs = blob_log(img, min_sigma=5, max_sigma=20, threshold=1) - radius = lambda x: r2*x[2] + radius = lambda x: r2 * x[2] s = sorted(blobs, key=radius) thresh = 3 @@ -79,15 +79,15 @@ def test_blob_log(): assert abs(b[0] - 200) <= thresh assert abs(b[1] - 350) <= thresh assert abs(radius(b) - 30) <= thresh - + + def test_blob_doh(): - r2 = math.sqrt(2) - img = np.ones((512, 512), dtype = np.uint8) + img = np.ones((512, 512), dtype=np.uint8) xs, ys = circle(400, 130, 20) img[xs, ys] = 255 - xs, ys = circle(160, 50, 30) + xs, ys = circle(460, 50, 30) img[xs, ys] = 255 xs, ys = circle(100, 300, 40) @@ -96,9 +96,14 @@ def test_blob_doh(): xs, ys = circle(200, 350, 50) img[xs, ys] = 255 - blobs = blob_doh(img, min_sigma=1, max_sigma=60, num_sigma=10) + blobs = blob_doh( + img, + min_sigma=1, + max_sigma=60, + num_sigma=10, + threshold=1000) - radius = lambda x: r2*x[2] + radius = lambda x: x[2] s = sorted(blobs, key=radius) thresh = 3 @@ -108,7 +113,7 @@ def test_blob_doh(): assert abs(radius(b) - 20) <= thresh b = s[1] - assert abs(b[0] - 160) <= thresh + assert abs(b[0] - 460) <= thresh assert abs(b[1] - 50) <= thresh assert abs(radius(b) - 30) <= thresh