2012-08-06 38 views
0

我没有几个物体的图像(轮廓)。但是,我想平均这些形状并使用对象的平均形状进行进一步的形状分析。平均任意物体的形状(边界点)

实施例:

Averaged shape http://i48.tinypic.com/1z6qzad.png

在上述图像,我已经堆叠在轮廓来说明我的例子。

我已经实现以下算法的前两步:

1)找到这两个对象形状

2的质心)对准中心

3)内插对象形状

因为,我没有使用一些参数/解析方程来表示形状,我怎样才能得到内插对象的形状(即第三步)?

在此先感谢

+1

你能通过平均形状来精确地表达你的意思吗? – 2012-08-07 07:37:00

回答

1

如果你没有为你的形状参数形式,您可以:

  • 对于每个形状,创建一个符号距离场即是边界和负外内正(或相反亦然)。这可以基于(例如)distance transform并且在每个像素处被评估。
  • 计算平均符号距离场的
  • 计算从平均场

我认为本文描述了类似的方法(尽管可能更复杂)的过零插补形状:“形状基于插值使用倒角距离“http://rd.springer.com/chapter/10.1007/BFb0033762,但我没有在我的当前位置进行检查的日志访问。

+0

谢谢。我已经使用OpenCV C++实现了它,它的工作非常完美。我使用cv :: pointPolygonTest函数返回带符号的距离。但是,计算需要一些有限的时间。我必须为10,000个图像做这个。那么你能提出更有效的计算签名距离的方法吗? – 2012-08-07 19:05:09

+1

我对OpenCV不太了解,但是它听起来像是在每个像素上手动迭代,总是很慢。我会尝试像获取[距离转换](http://opencv.willowgarage.com/documentation/cpp/miscellaneous_image_transformations.html)给你一个无符号的值,然后以某种方式否定基于洪水填充的距离。在Matlab或Numpy中“很容易”,但我不确定OpenCV。如果您遇到问题,您可能会更好地使用单独的问题:) – YXD 2012-08-08 11:56:02