def test_nan_const(): img = 123 * np.ones((100, 100), dtype=float) img[20, 20] = np.nan img[50, 53] = np.nan kernel_shape = (10, 10) x = np.arange(-kernel_shape[1] // 2, kernel_shape[1] // 2 + 1)[np.newaxis, :] y = np.arange(-kernel_shape[0] // 2, kernel_shape[0] // 2 + 1)[:, np.newaxis] expected_img = np.zeros_like(img) expected_img[y + 20, x + 20] = np.nan expected_img[y + 50, x + 53] = np.nan kernel = ellipsoid_kernel(kernel_shape, 100) background = rolling_ball(img, kernel=kernel, nansafe=True) assert np.allclose(img - background, expected_img, equal_nan=True)
def test_ndim(): image = data.cells3d()[:5, 1, ...] kernel = ellipsoid_kernel((3, 100, 100), 100) rolling_ball(image, kernel=kernel)
def test_ellipsoid_const(dtype): img = 155 * np.ones((100, 100), dtype=dtype) kernel = ellipsoid_kernel((25, 53), 50) background = rolling_ball(img, kernel=kernel) assert np.allclose(img - background, np.zeros_like(img)) assert background.dtype == img.dtype
def time_rollingball_ndim(self): from skimage.restoration.rolling_ball import ellipsoid_kernel image = data.cells3d()[:, 1, ...] kernel = ellipsoid_kernel((1, 100, 100), 100) restoration.rolling_ball(image, kernel=kernel)