2009-06-29 34 views
4

我有一个点的数组。我想知道这个点的数组是代表一个圆形,一个正方形还是一个三角形。检测一组点中的形状

我应该从哪里开始? (我使用C#)

感谢 乔恩

+0

我HAVA的(X,Y)的阵列。几百次。我需要弄清楚这个 – user96547 2009-06-29 15:49:34

+0

背后的形状是应该在形状的外围还是在内部? – libeako 2009-06-30 14:14:55

回答

5

根据您的问题,对于这个问题的好办法可能是使用Hough transform及其所有衍生算法

它由在图像空间到另一个空间,坐标变换代表对象的参数(角和初始点的线,坐标的中心和半径为的圆的)

该算法将您的点阵列中的点中的其他空间中的每个点。然后,如果有一些要点,你必须在新的空间中进行搜索。从这些观点来看,你会得到你的对象的参数。

当然,你需要做一次识别行(所以你会知道你的位图中有多少行以及它们在哪里)并识别它们(它不是完全相同的算法)

你可以看下到this lecture(对于霍夫圆变换),但你可以很容易地找到算法线

编辑:你也可以看看这些答案

Shape recognition algorithm(s)

Detecting an object on the image based on geometrical form

-2

我会采取一种野生刺,并说,如果你有3个点的形状代表一个三角形,4分是某种四边形,任何比这更是一个圆圈。

也许有你的问题的更多信息,你可以提供。

+0

哦,是的。我有更多的500分,需要弄清楚我是否有线条或圆圈。 – user96547 2009-06-29 15:48:26

0

想象它是每其中一个接一个,并尝试以适应这些形状上的数据。对于一个广场,你会发现四个极值点,并尝试进行制图,通过一切顺利的方他们的..
一旦你得到了到位的形状..你可以测量每个点,这是最接近它的形状的部分之间的距离..然后方这些距离,并把它们加起来的..具有最小总和-的平方形状可能是你最好的选择