我正在使用skeletonize from skimage,它提供了一个连接为8-neigborhood的结果:
import numpy as np
from skimage.morphology import skeletonize
image = np.array(
[[0, 0, 1, 1, 1, 1, 1, 0, 0],
[0, 0, 1, 1, 1, 1, 1, 0, 0],
[0, 0, 1, 1, 1, 1, 1, 1, 1],
[0, 0, 0, 1, 1, 1, 1, 1, 1]])
print image
print
skel = skeletonize(image)
print skel.astype(np.uint8)
# result
#[[0 0 0 0 0 0 0 0 0]
# [0 0 0 1 1 1 0 0 0]
# [0 0 0 0 0 0 1 1 1]
# [0 0 0 0 0 0 0 0 0]]
我想要得到的是一个4连通的结果,例如:
#[[0 0 0 0 0 0 0 0 0]
#[0 0 0 1 1 1 1 0 0]
#[0 0 0 0 0 0 1 1 1]
#[0 0 0 0 0 0 0 0 0]]
或者
#[[0 0 0 0 0 0 0 0 0]
#[0 0 0 1 1 1 0 0 0]
#[0 0 0 0 0 1 1 1 1]
#[0 0 0 0 0 0 0 0 0]]
但不是
#[[0 0 0 0 0 0 0 0 0]
#[0 0 0 1 1 1 0 0 0]
#[0 0 0 0 1 1 1 1 1]
#[0 0 0 0 0 0 0 0 0]]
我该怎么做?在skeletonize中没有neigborhood选项。你知道吗
我之所以这样问是因为我想用撇除、测量、查找等高线,如果不是4-连接的话,这会把线分成两段。你知道吗
skeletonize
和medial_axis
都不支持连接参数。但也许你可以通过后处理通行证:这就产生了
通过修改掩码,可以获得所描述的其他示例输出。你知道吗
相关问题 更多 >
编程相关推荐