【问题标题】:Problem drawing a polygon on data clusters in MATLAB在 MATLAB 中的数据集群上绘制多边形的问题
【发布时间】:2011-02-26 11:42:31
【问题描述】:

我有一些数据点,我用一些聚类算法将它们分成了一些集群,如下图所示:(图像可能需要一些时间才能出现) alt text http://www.freeimagehosting.net/uploads/05a807bc42.png

每种颜色代表不同的簇。我必须在每个集群周围绘制多边形。出于这个原因,我使用 convhull。但正如您所见,红色集群的多边形非常大,覆盖了很多区域,这不是我要寻找的区域。我需要在我的数据集周围精确地画线(多边形)。例如,在上图中,我想要一个多边形,它与具有 3 个分支的红色簇完全一样(和周围)。换句话说,在这种情况下,我需要一个带有 3 个分支的多边形来覆盖我的红色集群,而不是覆盖整个区域的大多边形。谁能帮我这个? 请注意解决方案应该是通用的,因为每次运行算法时聚类都会发生变化,因此需要以通用的方式。

【问题讨论】:

标签: matlab polygon


【解决方案1】:

如果您的集群非常紧凑,您可以尝试以下方法:

  1. 创建一个网格,例如间距为 0.1。
  2. 如果至少有一个数据点覆盖网格中的每个像素,则将其设置为 1,如果没有数据点覆盖该像素,则将像素设置为 0。
  3. 您可能需要在面罩上运行imclose,以填补由于运气不佳而未着色的内部小孔。
  4. 使用例如提取边框像素bwperim。这是您正在寻找的多边形的轮廓。

【讨论】:

    【解决方案2】:

    我不确定这是一个完全指定的问题。我经常看到这个问题的这种变体。

    为什么不能在这里真正回答:想象六个点,三个在等边三角形中,另外三个在等边三角形中,方向相同。

    这附近的正确船体是什么?它只是凸包吗?是从里面出来的三个线马刺的内三角形吗?三角形的相对大小有什么关系?那你应该指定那个参数吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 2021-12-16
      相关资源
      最近更新 更多