如何确定复杂图像映射中单击的区域?

时间:2013-09-11 09:08:56

标签: user-interface language-agnostic

我们获得了一个相当复杂的图像映射,就像下面链接的那样。除了布局,每个展位的形状更不规则,我们有很多图像地图要处理。

enter image description here

要求是软件能够检测到哪个展位(方框)被点击。一旦确定了展位,我们就必须获取其ID并进行一些处理。因此,我们需要一种方法将地图上的物理数据映射到其逻辑对应物。

通常,有两种方法可以解决问题。

  1. 务实地确定热点的位置 - 但在这种情况下,摊位布局没有一致性 - 有些是小矩形,有些是正方形

  2. 手动找出每个展位的坐标并将其编程为巨型查找。考虑到展位的数量,这是非常耗时的(下面的图片不是来自项目 - 它只是一个演示)。据估计,不同地图上至少有5000个展位。

  3. 除了为图像地图创建热点的两种常用方法外,我还可以使用哪些方法来确定点击哪个展位?

    使用的平台是LimeJS,但这个问题应该足够通用......

1 个答案:

答案 0 :(得分:1)

您可以使用填充填充将地图分隔到展位,这是每个地区的新颜色。你想首先淹没一个已知的“走廊”点以消除它。我想,0,0应该适用于大多数地图。

这将创建您需要的热点。为了处理填充填充框内的打印件,您可以使用每个区域的远角来创建矩形。当然,这假设展位在地图上实际上是矩形的。对于L形展位,可能需要一些额外的工作。

要从每个展位获取ID,您可以将每个区域(从上面)送入OCR,但您必须能够区分ID号和尺寸等。