scikit-image
59 строк · 1.7 Кб
1import pytest2import numpy as np3from skimage import data4from skimage.measure._label import _label_bool, label5from skimage.measure._ccomp import label_cython as clabel6
7from skimage._shared import testing8
9# In this testsuite, we ensure that the results provided by
10# label_cython are identical to the one from _label_bool,
11# which is based on ndimage.
12
13
14def test_no_option():15img = data.binary_blobs(length=128, blob_size_fraction=0.15, n_dim=3)16l_ndi = _label_bool(img)17l_cy = clabel(img)18testing.assert_equal(l_ndi, l_cy)19
20
21def test_background():22img = data.binary_blobs(length=128, blob_size_fraction=0.15, n_dim=3)23l_ndi = _label_bool(img, background=0)24l_cy = clabel(img, background=0)25testing.assert_equal(l_ndi, l_cy)26
27l_ndi = _label_bool(img, background=1)28l_cy = clabel(img, background=1)29testing.assert_equal(l_ndi, l_cy)30
31
32def test_return_num():33img = data.binary_blobs(length=128, blob_size_fraction=0.15, n_dim=3)34l_ndi = _label_bool(img, return_num=True)35l_cy = clabel(img, return_num=True)36testing.assert_equal(l_ndi, l_cy)37
38
39def test_connectivity():40img = data.binary_blobs(length=128, blob_size_fraction=0.15, n_dim=3)41for c in (1, 2, 3):42l_ndi = _label_bool(img, connectivity=c)43l_cy = clabel(img, connectivity=c)44testing.assert_equal(l_ndi, l_cy)45
46for c in (0, 4):47with pytest.raises(ValueError):48l_ndi = _label_bool(img, connectivity=c)49with pytest.raises(ValueError):50l_cy = clabel(img, connectivity=c)51
52
53@pytest.mark.parametrize("dtype", [bool, int])54def test_zero_size(dtype):55img = np.ones((300, 0, 300), dtype=dtype)56lab, num = label(img, return_num=True)57
58assert lab.shape == img.shape59assert num == 060