注意:我之前问过这个问题,但它被关闭为重复问题。然而,我和其他几个人认为它被错误地关闭了,我在我的原始帖子中解释了原因。所以我想在这里重新提出这个问题。
有没有人知道一个可以在两条直线之间进行插值的Python库?例如,给定下面的两条实线,我想要生成中间的虚线。换句话说,我想要得到中心线。输入仅为分别具有大小为N x 2
和M x 2
的坐标的两个numpy
数组。
此外,我想知道是否有人已经在一些优化的Python库中编写了此函数。尽管优化并不是必需的。
以下是我可能拥有的两条线的示例,您可以假设它们彼此不重叠,并且x / y可以具有多个y / x坐标。
array([[ 1233.87375018, 1230.07095987],
[ 1237.63559365, 1253.90749041],
[ 1240.87500801, 1264.43925132],
[ 1245.30875975, 1274.63795396],
[ 1256.1449357 , 1294.48254424],
[ 1264.33600095, 1304.47893299],
[ 1273.38192911, 1313.71468591],
[ 1283.12411536, 1322.35942538],
[ 1293.2559388 , 1330.55873344],
[ 1309.4817002 , 1342.53074698],
[ 1325.7074616 , 1354.50276051],
[ 1341.93322301, 1366.47477405],
[ 1358.15898441, 1378.44678759],
[ 1394.38474581, 1390.41880113]])
array([[ 1152.27115094, 1281.52899302],
[ 1155.53345506, 1295.30515742],
[ 1163.56506781, 1318.41642169],
[ 1168.03497425, 1330.03181319],
[ 1173.26135672, 1341.30559949],
[ 1184.07110925, 1356.54121651],
[ 1194.88086178, 1371.77683353],
[ 1202.58908737, 1381.41765447],
[ 1210.72465255, 1390.65097106],
[ 1227.81309742, 1403.2904646 ],
[ 1244.90154229, 1415.92995815],
[ 1261.98998716, 1428.56945169],
[ 1275.89219696, 1438.21626352],
[ 1289.79440676, 1447.86307535],
[ 1303.69661656, 1457.50988719],
[ 1323.80994319, 1470.41028655],
[ 1343.92326983, 1488.31068591],
[ 1354.31738934, 1499.33260989],
[ 1374.48879779, 1516.93734053],
[ 1394.66020624, 1534.54207116]])
将其可视化后,我们有:
所以我尝试使用skimage.morphology
库中的skeletonize
函数,首先将坐标栅格化为填充多边形。 但是,我在末端遇到了分支,如下所示: