scikit-image

Форк
0
59 строк · 1.7 Кб
1
import pytest
2
import numpy as np
3
from skimage import data
4
from skimage.measure._label import _label_bool, label
5
from skimage.measure._ccomp import label_cython as clabel
6

7
from skimage._shared import testing
8

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

14
def test_no_option():
15
    img = data.binary_blobs(length=128, blob_size_fraction=0.15, n_dim=3)
16
    l_ndi = _label_bool(img)
17
    l_cy = clabel(img)
18
    testing.assert_equal(l_ndi, l_cy)
19

20

21
def test_background():
22
    img = data.binary_blobs(length=128, blob_size_fraction=0.15, n_dim=3)
23
    l_ndi = _label_bool(img, background=0)
24
    l_cy = clabel(img, background=0)
25
    testing.assert_equal(l_ndi, l_cy)
26

27
    l_ndi = _label_bool(img, background=1)
28
    l_cy = clabel(img, background=1)
29
    testing.assert_equal(l_ndi, l_cy)
30

31

32
def test_return_num():
33
    img = data.binary_blobs(length=128, blob_size_fraction=0.15, n_dim=3)
34
    l_ndi = _label_bool(img, return_num=True)
35
    l_cy = clabel(img, return_num=True)
36
    testing.assert_equal(l_ndi, l_cy)
37

38

39
def test_connectivity():
40
    img = data.binary_blobs(length=128, blob_size_fraction=0.15, n_dim=3)
41
    for c in (1, 2, 3):
42
        l_ndi = _label_bool(img, connectivity=c)
43
        l_cy = clabel(img, connectivity=c)
44
        testing.assert_equal(l_ndi, l_cy)
45

46
    for c in (0, 4):
47
        with pytest.raises(ValueError):
48
            l_ndi = _label_bool(img, connectivity=c)
49
        with pytest.raises(ValueError):
50
            l_cy = clabel(img, connectivity=c)
51

52

53
@pytest.mark.parametrize("dtype", [bool, int])
54
def test_zero_size(dtype):
55
    img = np.ones((300, 0, 300), dtype=dtype)
56
    lab, num = label(img, return_num=True)
57

58
    assert lab.shape == img.shape
59
    assert num == 0
60

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.