2010-06-01 62 views
2

我有一些數據點,我已經將它們劃分爲一些聚類算法,如下圖所示:(可能需要一些時間才能顯示圖像) alt text http://www.freeimagehosting.net/uploads/05a807bc42.png在MATLAB中的數據集羣上繪製多邊形的問題

每種顏色代表不同的簇。我必須在每個羣集周圍繪製多邊形。由於這個原因,我使用convhull。但是,正如你所看到的,紅色星團的多邊形非常大,覆蓋了很多區域,這不是我正在尋找的區域。我需要在我的數據集周圍繪製線條(拼圖)。例如在上面的圖片中,我想要一個與3個分支的紅色羣集完全相同(和周圍)繪製的多邊形。換句話說,在這種情況下,我需要一個帶有3個分支的多邊形來覆蓋我的紅色羣集,而不是涵蓋整個區域的那個大多邊形。誰能幫我這個? 請注意該解決方案應該是通用的,因爲在算法的每次運行中簇將會改變,因此它需要以一種通用的方式。

+0

重複http://stackoverflow.com/questions/2944872/drawing-and-filling-different-polygons-at-the-same-time-in-matlab – 2010-06-01 20:19:06

+0

我很抱歉,但這是完全不同的。 ... – Hossein 2010-06-01 20:41:51

回答

3

我不確定這是一個完全明確的問題。我發現這個問題上的這種變體經常出現。

爲什麼這裏不能真正回答:設想六個點,其中三個在等邊三角形中,另一個在等邊三角形內,三個在同一個方向內。

什麼是正確的船體?它只是凸包嗎?它是從內線出現三線刺的內三角嗎?三角形的相對尺寸是多少?你應該指定那個參數嗎?

0

如果你的集羣是非常緊湊的,你可以嘗試以下方法:

  1. 創建一個網格,說以0.1的間距。
  2. 如果至少有一個數據點覆蓋,則將網格中的每個像素設置爲1,如果沒有覆蓋該像素的數據點,則將像素設置爲0。
  3. 您可能需要在面罩上運行imclose以填補由於運氣不好而未着色的內部小孔。
  4. 使用,例如,提取邊界像素。 bwperim。這是您正在尋找的多邊形的輪廓。