我正在分析粒子在 2D 平面中的轨迹。该轨迹通常由 5 到 50 个(在极少数情况下更多)点(离散整数坐标)组成。我已经匹配了我的数据集的点以形成轨迹(因此我有时间分辨率)。
我想对这条轨迹的曲率进行一些分析,不幸的是我使用的分析框架不支持拟合轨迹。据我所知,可以使用样条曲线/贝塞尔曲线来完成这项工作,但我希望得到您的意见和/或建议使用什么。
由于这只是我工作的一个可选部分,我无法投入大量时间自行实施解决方案或理解复杂的框架。解决方案必须尽可能简单。
让我从一个可能的库中指定我需要的特征:
- 从不同数量的点创建轨迹
- 由于点是离散的,它应该插入它们的位置;只要轨迹和点之间的最终距离小于阈值,就不需要对所有点进行精确匹配
- 库必须为任何给定点生成轨迹的导数
- 如果库可以报告插值的质量水平(如拟合的 chiSquare)
编辑:阅读评论后,我想补充一些:
轨迹不必与点完全匹配。这些点是从像素矩阵的值创建的,因此它们形成一个离散的坐标矩阵,其空间分辨率受每个给定距离的像素数限制。因此,这些点(位于发射像素的中心)不(完全)匹配粒子的实际轨迹。只要解决方案可以处理可能/很可能既不是双射也不是单射的轨迹,插值或拟合对我来说都很好。
因此,大多数传统的拟合方法(例如使用最小二乘拟合拟合多项式或指数函数)无法满足我的标准。
另外,我尝试过的所有传统拟合方法都产生了一个似乎很好地描述轨迹的函数,但是当查看它们的一阶导数(或更高分辨率)时,可以发现许多“微振荡”(根据我的解释)是结果将非直线函数拟合到轨迹的(几乎)直线部分。
Edit2:评论中有一些讨论,这些轨迹可能是什么样子。本质上,它们可能具有任何形状、长度和“卷曲度”,尽管我试图排除在前面的步骤中重叠或交叉的轨迹。我在下面包含了两个示例;忽略彩色框,它们只是原始像素矩阵值的表示。黑色圆点是我想与轨迹匹配的点,如您所见,它们始终以像素为中心,因此可能只有离散(整数)值。
提前感谢您的任何帮助和贡献!