确定放置标签的正确位置

信息处理 图像处理 边缘检测
2022-01-04 07:45:51

在下图中,我有一个 2D 数据集,其中我确定了四个标记为 的集群[0,1,2,3]我正在寻找一种算法来为每个形状以自然*的方式放置标签。我的第一个猜测是将它们放在集群的“质心”中,如下所示。对于连续的集群,这很好用。然而,对于形状与集群相同的集群0,该方法失败了。如果不使用图例,将标签放置在此图像上的更好方法是什么?

*这里的自然在某种程度上是主观的,但标签的目的是帮助观察者将 xy 平面中的某个区域与一个数字相关联。

在此处输入图像描述

2个回答

将标签放在段的最内点怎么样?让我们通过段掩码的距离变换的最大值来定义最内层。

使用 Mathematica 之类的软件系统,很容易实现。

一个段的掩码及其距离变换: 在此处输入图像描述

在对每个段重复并定位单个距离变换最大的标签后:

在此处输入图像描述

我认为放置标签的理想位置应满足两个目标:

  • 靠近中心,比如说d.
  • 易读性,说l.

因此,我们可以通过最小化整体指标来确定理想点,例如l×dα要么l+αd, 在哪里α是权衡参数。

决定d很简单。l可以设置为标签占据的区域下的总变化(或其他详细程度的度量)。您可以在段外的区域将其设置为较高的数字,以避免示例中的问题。

剩下的就是数值优化。