我目前正在尝试将如下图所示的图像表示为点定义路径。每个“痕迹”都应该是一个单独的路径。 见下图
我现在想做的是在 python 中使用 scikit-image 和 scipy 来填充和骨架化图像。 见下图
import os
from skimage import io, img_as_bool
from scipy import ndimage
from skimage.morphology import skeletonize
from skimage.util import invert
from matplotlib import pyplot as plt
filename = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'traces.png')
traces = io.imread(filename, True)
inverted = invert(traces)
boolimage = img_as_bool(inverted)
image = ndimage.binary_fill_holes(boolimage)
skeleton = skeletonize(image, method='lee')
plt.imshow(skeleton, cmap=plt.cm.gray)
plt.axis('off')
plt.show()
然而,骨架有许多曲线,我目前不知道如何将其清理成直线和角度,以便可以使用线端点来记录路径。我尝试过从 scikit 进行概率 Hough 变换以获得线条,但这些都与 lee 骨架的弯曲性质作斗争,并且完全遗漏了几何形状。
任何帮助将不胜感激,如果您有任何完全不同的想法或一些算法名称,也非常欢迎!
最佳答案
当我尝试减少字体中字母的粗细时,我遇到了同样的问题。我建议看一下侵 eclipse 算法(数学形态学)。该算法通常应用于二值图像(图像中存在两种颜色),因此这是一个图像处理问题。 This这篇文章可能会有所帮助。
关于python - 将图像缩减为由一组点定义的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65538726/