计算轮廓点到特定角度的轮廓的距离

时间:2014-06-11 03:38:42

标签: image-processing

enter image description here

现在我有一组轮廓点。我的光线LPn开始,与水平轴顺时针有ALPHA角。我想计算从Pn开始并在光线L与轮廓相交的点结束的线的长度,在这种情况下是Pn-2和{{1}之间的一个点}。那么我怎样才能有效而快速地计算这个长度呢?

2 个答案:

答案 0 :(得分:0)

您可以compute the intersection只有using openCV的光线L所有线段都包含任意一对相邻的轮廓点。

当然,您可能希望通过按Pn或其他任何距离排序来优化此过程。根据countour(凹形?),可能有多个交叉点,因此您必须选择正确的交叉点(内部,外部......)。

计算交点的Instea你也可以绘制轮廓和光线(例如{{3}})并使用逻辑和找到交点。

答案 1 :(得分:0)

没有算法能够以比线性时间更快的速度解决这个问题,因为交叉点的数量可能是线性的,输出的大小也是如此。我可以建议以下算法,实现起来非常方便和有效:

  • 将点转移到坐标系x',y'其中心是Pn和x'与L平行(实际上只需要计算y坐标。这需要每次2次乘法和2次加法。)
  • 现在通过搜索y'的相邻索引找到所有相交的段。坐标改变标志。
  • 计算交点&仅适用于这些细分的长度