Image processing 以特定角度计算轮廓点到轮廓的距离
现在我有一组轮廓点。射线Image processing 以特定角度计算轮廓点到轮廓的距离,image-processing,Image Processing,现在我有一组轮廓点。射线L从Pn开始,与水平轴成顺时针角度ALPHA。我想计算线的长度,它从Pn开始,到射线L与轮廓相交的点结束,在这种情况下是Pn-2和Pn-3之间的一个点。那么我如何才能高效快速地计算出这个长度呢?你可以只计算光线L,所有线段都由任何一对相邻的轮廓点组成 当然,您可能希望通过按距离排序到Pn或其他任何东西来优化此过程。根据计数(凹面形状?)可能有多个交点,因此您必须选择正确的交点(内部、外部……) 除了计算交点,您还可以绘制轮廓和光线(例如),并使用逻辑and找到交点。由于交
L
从Pn
开始,与水平轴成顺时针角度ALPHA
。我想计算线的长度,它从Pn
开始,到射线L
与轮廓相交的点结束,在这种情况下是Pn-2
和Pn-3
之间的一个点。那么我如何才能高效快速地计算出这个长度呢?你可以只计算光线L
,所有线段都由任何一对相邻的轮廓点组成
当然,您可能希望通过按距离排序到Pn
或其他任何东西来优化此过程。根据计数(凹面形状?)可能有多个交点,因此您必须选择正确的交点(内部、外部……)
除了计算交点,您还可以绘制轮廓和光线(例如),并使用逻辑and找到交点。由于交点的数量可能是线性的,因此输出的大小也可能是线性的,因此没有任何算法可以在比线性时间更快的时间内解决此问题。我可以建议以下算法,这是非常方便和高效的实现:
- 将点转移到坐标系x',y',其中心为Pn,且x'平行于L。(实际上,只需计算y'坐标。这需要每个点两次乘法和两次加法)
- 现在通过搜索y'坐标改变符号的相邻索引来查找所有相交线段
- 仅计算这些线段的交点和长度