旋转不变曲线拟合

2024-05-23 16:06:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试构建一个python应用程序,它检查由一条直线和一个弧形组成的部分(如图所示)。其目的是求出曲线截面的曲率和弧长。到目前为止,我的方法是用临界值和骨架来产生一系列的点。然后我用最小二乘法拟合由直线和圆弧组成的分段数学函数。这对水平部分很有用。在

但是,如果零件的放置方式使得直线段不平坦(与水平轴平行),我会遇到问题。到目前为止,我的解决方案是在图像的左四分之一处拟合一条直线来检测直线段的斜率。在进行最小二乘拟合时,我加入了这个因子(即将mx+b加到分段函数中)。这将产生一个接近的结果。在

我在这个is方法中发现的错误实际上有点有趣。最小二乘法拟合试图最小化平面和旋转零件的y轴误差。这对于水平零件来说是可以的,但是对于旋转零件,误差实际上应该定义为数据与曲线之间的距离,在一条垂直于直线的直线上,这样在两种情况下测量的误差是相同的。在

对这个问题的整体设计有任何帮助都将不胜感激。我不认为模板匹配是一个好的解决方案,因为我的零件有不同的参数(如曲率,弧长)。在

下面是一个直线段为水平线的示例:

enter image description here


Tags: 方法函数目的应用程序水平解决方案曲线直线