mirror of
https://github.com/wassname/scikit-image.git
synced 2026-06-30 15:18:08 +08:00
Merge pull request #402 from ahojnnes/perimeter-fix
BUG: Perimeter bug fix.
This commit is contained in:
@@ -440,18 +440,19 @@ def perimeter(image, neighbourhood=4):
|
||||
strel = STREL_4
|
||||
else:
|
||||
strel = STREL_8
|
||||
eroded_image = ndimage.binary_erosion(image, strel)
|
||||
eroded_image = ndimage.binary_erosion(image, strel, border_value=0)
|
||||
border_image = image - eroded_image
|
||||
|
||||
# perimeter contribution: corresponding values in convolved image
|
||||
perimeter_weights = {
|
||||
1: (5, 7, 15, 17, 25, 27),
|
||||
sqrt(2): (21, 33),
|
||||
1 + sqrt(2) / 2: (13, 23)
|
||||
1: (5, 7, 15, 17, 25, 27),
|
||||
sqrt(2): (21, 33),
|
||||
(1 + sqrt(2)) / 2: (13, 23)
|
||||
}
|
||||
perimeter_image = ndimage.convolve(border_image, np.array([[10, 2, 10],
|
||||
[ 2, 1, 2],
|
||||
[10, 2, 10]]))
|
||||
[10, 2, 10]]),
|
||||
mode='constant', cval=0)
|
||||
total_perimeter = 0
|
||||
for weight, values in perimeter_weights.items():
|
||||
num_values = 0
|
||||
|
||||
@@ -246,10 +246,10 @@ def test_orientation():
|
||||
|
||||
def test_perimeter():
|
||||
per = regionprops(SAMPLE, ['Perimeter'])[0]['Perimeter']
|
||||
assert_almost_equal(per, 59.2132034355964)
|
||||
assert_almost_equal(per, 55.2487373415)
|
||||
|
||||
per = perimeter(SAMPLE.astype('double'), neighbourhood=8)
|
||||
assert_almost_equal(per, 43.1213203436)
|
||||
assert_almost_equal(per, 46.8284271247)
|
||||
|
||||
|
||||
def test_solidity():
|
||||
|
||||
Reference in New Issue
Block a user