mirror of
https://github.com/wassname/scikit-image.git
synced 2026-06-28 14:49:08 +08:00
Added test for slic segmentation: case where more segments than pixels
are asked for.
This commit is contained in:
committed by
Juan Nunez-Iglesias
parent
12c173908f
commit
bb64e8cfcb
@@ -155,7 +155,8 @@ def slic(image, n_segments=100, compactness=10., max_iter=10, sigma=0,
|
||||
# initialize cluster centroids for desired number of segments
|
||||
grid_z, grid_y, grid_x = np.mgrid[:depth, :height, :width]
|
||||
slices = regular_grid(image.shape[:3], n_segments)
|
||||
step_z, step_y, step_x = [int(s.step) for s in slices]
|
||||
step_z, step_y, step_x = [int(s.step if s.step is not None else 1)
|
||||
for s in slices]
|
||||
segments_z = grid_z[slices]
|
||||
segments_y = grid_y[slices]
|
||||
segments_x = grid_x[slices]
|
||||
|
||||
@@ -195,6 +195,19 @@ def test_slic_zero():
|
||||
assert_equal(seg[10:, 10:], 3)
|
||||
|
||||
|
||||
def test_more_segments_than_pixels():
|
||||
rnd = np.random.RandomState(0)
|
||||
img = np.zeros((20, 21))
|
||||
img[:10, :10] = 0.33
|
||||
img[10:, :10] = 0.67
|
||||
img[10:, 10:] = 1.00
|
||||
img += 0.0033 * rnd.normal(size=img.shape)
|
||||
img[img > 1] = 1
|
||||
img[img < 0] = 0
|
||||
seg = slic(img, sigma=0, n_segments=500, compactness=1,
|
||||
multichannel=False, convert2lab=False)
|
||||
assert np.all(seg.ravel() == np.arange(seg.size))
|
||||
|
||||
if __name__ == '__main__':
|
||||
from numpy import testing
|
||||
|
||||
|
||||
Reference in New Issue
Block a user