2015-07-10 65 views
0

已知:表示封闭轮廓的有序点(2D)列表 当前状态:轮廓上的点被采样(一致或任意)并且某个值(例如某种描述符)是为每个点计算。插值轮廓点上的值

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

为了澄清futher:

在轮廓组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 
+0

如果你的点在一个平面上(2D),并且你尝试获得一条轮廓线(1D),为什么要插入一个曲面(通常是3D空间中的2D thingy)? – user463035818

+0

我会去[样条](https://en.wikipedia.org/wiki/Spline_%28mathematics%29) – user463035818

+0

@ tobi303我已经编辑了这个问题作进一步的说明。 –

回答

0

你可以做一些简单的加权平均发现内插值。 例如说你有A和B的距离函数d和属性P之间的点X,你可以得到做

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

你可以做,如果你想3点(A,B和C)相同更加曲线的结果(上面的例子将是线性的)。

这些应该是确定的近似值,除非您更了解原始曲线。如果你对原曲线一无所知,就无法完美地预测这些值。