在等高线点插入值



给定:表示封闭轮廓的有序点(2D)列表当前状态:对轮廓上的点进行采样(均匀或任意),并为每个点计算一些值(例如某种描述符)。

任务:我想将在采样点处计算的值插值到不在样本中的点。也许我可以按顺序取3个采样点,并将它们的值插值到位于所选3个点的两个极值之间的非采样点。我读了一堆论文,但对该怎么做感到非常困惑:插值曲线(例如Catmul Rom)或表面。也许有一些c++库可以做我想要的或者一些想法。

进一步说明:

轮廓上2d点的集合(最后一个点与第一个点连接),si = (xi,yi)

s0, s1, s2, s3, s4, s5, s6, s7 ,s8, s9, s10, s11 , s12 , s13, s14, s15

采样点

s0          s3          s6          s9             s12             s15

在这些采样点处计算一些值

f(s0)     f(s3)       f(s6)       f(s9)          f(s12)           f(s15)

现在的目标是找到其他点

的插值值
     s1 s2     s4 s5       s7 s8        s10  s11       s13  s14

你可以做一些简单的加权平均。例如,在a和B之间有一个点X一个距离函数d和一个属性p你可以得到do

p(X) = ( p(A) * d(X, A) + p(B) * d(X,B) ) / (d(X,A) + d(X,B))

如果你想要更弯曲的结果(上面的例子将是线性的),你可以对3个点(A, B和C)做同样的事情。

这些应该是不错的近似值,除非你对原始曲线了解得更多。如果你对原始曲线一无所知,就没有办法完美地预测这些值。

相关内容

  • 没有找到相关文章

最新更新