Python 将图像缩减为由点集合定义的路径

Python 将图像缩减为由点集合定义的路径,python,opencv,scipy,python-imaging-library,scikit-image,Python,Opencv,Scipy,Python Imaging Library,Scikit Image,我目前正在尝试将下面的图像表示为点定义的路径。每个“跟踪”都应该是一条单独的路径。见下图 我现在要做的是在python中使用scikit image和scipy填充图像并对其进行骨架化。见下图 导入操作系统 从skimage导入io、img_as_bool 从scipy导入ndimage 从Skillage.形态学导入骨架化 从skimage.util导入反转 从matplotlib导入pyplot作为plt filename=os.path.join(os.path.dirname(os.

我目前正在尝试将下面的图像表示为点定义的路径。每个“跟踪”都应该是一条单独的路径。见下图

我现在要做的是在python中使用scikit image和scipy填充图像并对其进行骨架化。见下图

导入操作系统
从skimage导入io、img_as_bool
从scipy导入ndimage
从Skillage.形态学导入骨架化
从skimage.util导入反转
从matplotlib导入pyplot作为plt
filename=os.path.join(os.path.dirname(os.path.abspath(_文件__)),'traces.png')
traces=io.imread(文件名,True)
反转=反转(记录道)
boolimage=img\u as\u bool(倒置)
image=ndimage.binary\u fill\u孔(boolimage)
骨架=骨架化(图像,方法='lee')
plt.imshow(骨架,cmap=plt.cm.gray)
打印轴(“关闭”)
plt.show()
然而,骨架有许多曲线,我目前不知道如何将其清理成直线和角度,以便使用线端点记录路径。我曾尝试从scikit中进行概率Hough变换以获得线条,但这些和lee骨架的弯曲性质以及完整的几何体的斗争忽略了几何体


非常感谢您的帮助,如果您有任何完全不同的想法或一些算法名称,也非常欢迎

有趣的问题。如你所见,简单的骨骼化是不够的。这甚至可能不是一个好的解决方案的一部分。由于hough变换的噪声特性,它也将相当无用。您应该指定保真度级别,即您是否只需要过孔/焊盘和连接(即网络),或者您确实希望恢复所有迹线和浇注的完整布局?请查阅科学文献。我相信其他人也在研究PCB铜层的矢量化图片/扫描问题。@ChristophRackwitz关于保真度的观点很好,我正在寻找完整的布局。我会再看一次文献,从没想过这份工作是矢量化的,但它确实是。非常感谢。我认为这个问题叫做“多边形近似”?