2009-06-29 73 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

想象它是每其中一個接一個,並嘗試以適應這些形狀上的數據。對於一個廣場,你會發現四個極值點,並嘗試進行製圖,通過一切順利的方他們的..
一旦你得到了到位的形狀..你可以測量每個點,這是最接近它的形狀的部分之間的距離..然後方這些距離,並把它們加起來的..具有最小總和-的平方形狀可能是你最好的選擇