Fix peak_local_max's output for ndarray when indices is set to False

This commit is contained in:
yangzetian
2013-04-01 20:34:47 +08:00
parent 11a2f1ebcc
commit f77def35d8
2 changed files with 8 additions and 1 deletions
+2 -1
View File
@@ -150,5 +150,6 @@ def peak_local_max(image, min_distance=10, threshold_abs=0, threshold_rel=0.1,
if indices is True:
return coordinates
else:
out[coordinates[:, 0], coordinates[:, 1]] = True
nd_indices = tuple(coordinates.T.tolist())
out[nd_indices] = True
return out
+6
View File
@@ -116,6 +116,12 @@ def test_indices_with_labels():
indices=True, exclude_border=False)
assert (result == np.transpose(expected.nonzero())).all()
def test_ndarray_indices_false():
nd_image = np.zeros((5,5,5))
nd_image[2,2,2] = 1
peaks = peak.peak_local_max(nd_image, min_distance=1, indices=False)
assert (peaks == nd_image.astype(np.bool)).all()
if __name__ == '__main__':
from numpy import testing