比较2D图像上两组点的位置

时间:2014-03-20 21:28:51

标签: algorithm

如果两组点在图像上的类似位置,我对要比较的算法有疑问。

他们不会创建类似circlesrectangles等类似的形状,但它们类似于irregular clouds

例如

第一个点云是在图像上学习所需区域的集合,我们正在检查第二个云是否处于类似位置。

我正在考虑绘制简单的形状来形成点(比如将会累积所有点的矩形),并检查一个是否在另一个或图形中心之间的距离,但这种方法看起来并不准确。

有没有更好的算法来解决这个问题?

2 个答案:

答案 0 :(得分:1)

图像时刻

不要担心the fancy name,它只是图像处理中的标准方法,可以完全满足您的需求。

  

图像的力矩n w.r.t. x和m w.r.t.实际上是   (像素值* xPosition ^ n * xPosition ^ m)的积分   整个形象。

所以(0,0)阶时刻,即时刻(0,0)实际上是云的面积。

类似地,时刻(1,0)/时刻(0,0)是云的质心的X坐标。 并且,时刻(0,1)/时刻(0,0)是云的质心的Y坐标。

高阶矩给出了云形状特有的附加特征/信息。


现在您可以轻松比较任意形状 这些函数在opencv和matlab中可用。

希望这有帮助。
祝你好运。

答案 1 :(得分:0)

  

集合将具有非常相似的形状(它将是来自kinect>传感器的人体骨骼点)并且我想检查人是否坐在与在>中学习的相同的位置。第一名

然后你可能能够在两点之间得到对应关系(即你知道给定的点是SHOULDER_RIGHT或ELBOW_LEFT或......)。如果是这种情况,您可以简单地为每个第i对点(X1,Y1)和(X2,Y2)计算SUM(SQRT((Xi1-Xi2)^2+(Yi1-Yi2)^2)(如果您可以获得第三维Z,则相同)。

当两组点完全一致时,这样获得的值将至少为零。