From 3c9ab4767709ac8aa816f672c09499129f02b2a8 Mon Sep 17 00:00:00 2001 From: Emmanuelle Gouillart Date: Mon, 9 Apr 2012 18:00:37 +0200 Subject: [PATCH] BUG: division by zero for small arrays in iradon --- skimage/transform/radon_transform.py | 2 +- skimage/transform/tests/test_radon_transform.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/skimage/transform/radon_transform.py b/skimage/transform/radon_transform.py index 9d8dc08d8d8..759a2038c42 100644 --- a/skimage/transform/radon_transform.py +++ b/skimage/transform/radon_transform.py @@ -135,7 +135,7 @@ def iradon(radon_image, theta=None, output_size=None, img = radon_image.copy() # resize image to next power of two for fourier analysis # speeds up fourier and lessens artifacts - order = max(64, 2 ** np.ceil(np.log(2 * n) / np.log(2))) + order = max(64., 2 ** np.ceil(np.log(2 * n) / np.log(2))) # zero pad input image img.resize((order, img.shape[1])) # construct the fourier filter diff --git a/skimage/transform/tests/test_radon_transform.py b/skimage/transform/tests/test_radon_transform.py index 36074932549..b33a88879a6 100644 --- a/skimage/transform/tests/test_radon_transform.py +++ b/skimage/transform/tests/test_radon_transform.py @@ -30,6 +30,9 @@ def test_radon_iradon(): reconstructed = iradon(radon(image), filter="ramp", interpolation="nearest") delta = np.mean(abs(image - reconstructed)) assert delta < 0.05 + size = 20 + image = np.tri(size) + np.tri(size)[::-1] + reconstructed = iradon(radon(image), filter="ramp", interpolation="nearest") def test_iradon_angles(): """