mirror of
https://github.com/wassname/scikit-image.git
synced 2026-06-29 01:11:56 +08:00
77 lines
1.8 KiB
Python
77 lines
1.8 KiB
Python
import numpy as np
|
|
from numpy.testing import (assert_raises,
|
|
assert_array_equal,
|
|
)
|
|
|
|
from skimage.measure import find_contours
|
|
|
|
a = np.ones((8, 8), dtype=np.float32)
|
|
a[1:-1, 1] = 0
|
|
a[1, 1:-1] = 0
|
|
|
|
x, y = np.mgrid[-1:1:5j, -1:1:5j]
|
|
r = np.sqrt(x**2 + y**2)
|
|
|
|
|
|
def test_binary():
|
|
ref = [[6. , 1.5],
|
|
[5. , 1.5],
|
|
[4. , 1.5],
|
|
[3. , 1.5],
|
|
[2. , 1.5],
|
|
[1.5, 2. ],
|
|
[1.5, 3. ],
|
|
[1.5, 4. ],
|
|
[1.5, 5. ],
|
|
[1.5, 6. ],
|
|
[1. , 6.5],
|
|
[0.5, 6. ],
|
|
[0.5, 5. ],
|
|
[0.5, 4. ],
|
|
[0.5, 3. ],
|
|
[0.5, 2. ],
|
|
[0.5, 1. ],
|
|
[1. , 0.5],
|
|
[2. , 0.5],
|
|
[3. , 0.5],
|
|
[4. , 0.5],
|
|
[5. , 0.5],
|
|
[6. , 0.5],
|
|
[6.5, 1. ],
|
|
[6. , 1.5]]
|
|
|
|
contours = find_contours(a, 0.5, positive_orientation='high')
|
|
assert len(contours) == 1
|
|
assert_array_equal(contours[0][::-1], ref)
|
|
|
|
|
|
|
|
|
|
def test_float():
|
|
contours = find_contours(r, 0.5)
|
|
assert len(contours) == 1
|
|
assert_array_equal(contours[0],
|
|
[[ 2., 3.],
|
|
[ 1., 2.],
|
|
[ 2., 1.],
|
|
[ 3., 2.],
|
|
[ 2., 3.]])
|
|
|
|
|
|
def test_memory_order():
|
|
contours = find_contours(np.ascontiguousarray(r), 0.5)
|
|
assert len(contours) == 1
|
|
|
|
contours = find_contours(np.asfortranarray(r), 0.5)
|
|
assert len(contours) == 1
|
|
|
|
|
|
def test_invalid_input():
|
|
assert_raises(ValueError, find_contours, r, 0.5, 'foo', 'bar')
|
|
assert_raises(ValueError, find_contours, r[..., None], 0.5)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
from numpy.testing import run_module_suite
|
|
run_module_suite()
|