Scikit 图像具有骨架化和细化,可能有助于完成您想要的。
lee 版本的skeletonize 比单独的skeleton 更有效地细化了边缘骨架特征。
Thin 使您能够对图像进行部分骨架化。您可以先进行部分变薄,然后进行扩张或打开操作,以获得接近形态修剪的东西(https://en.wikipedia.org/wiki/Pruning_(morphology))。
这里有 scikit 骨架工具的示例:https ://scikit-image.org/docs/dev/auto_examples/edges/plot_skeleton.html
from skimage.morphology import skeletonize
from skimage import data
import matplotlib.pyplot as plt
from skimage.util import invert
# Invert the horse image
image = invert(data.horse())
# perform skeletonization
skeleton = skeletonize(image)
skeleton_lee = skeletonize(image, method='lee')
# display results
fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(8, 4),
sharex=True, sharey=True)
ax = axes.ravel()
ax[0].imshow(image, cmap=plt.cm.gray)
ax[0].axis('off')
ax[0].set_title('original', fontsize=20)
ax[1].imshow(skeleton, cmap=plt.cm.gray)
ax[1].axis('off')
ax[1].set_title('skeleton', fontsize=20)
ax[2].imshow(skeleton_lee, cmap=plt.cm.gray)
ax[2].axis('off')
ax[2].set_title('skeleton lee', fontsize=20)
fig.tight_layout()
plt.show()