【问题标题】:How do I merge the labels in connected component labeling如何合并连接组件标签中的标签
【发布时间】:2013-12-02 15:25:17
【问题描述】:

您好,我必须找出图像中有多少对象。

http://en.wikipedia.org/wiki/Connected-component_labeling

我需要帮助来存储邻居之间的等价性以及第二遍。这个pass给了我173个左右的物体,是第一个pass。我想存储等价(当它们发生时),然后在第二遍中能够用最低等价替换相应的等价。

【问题讨论】:

  • 您不应该从问题中删除您的代码。它会使引用代码的答案难以理解。

标签: java image-processing computer-vision labeling


【解决方案1】:

等价表可以使用HashMap 来实现。每次找到与另一个标签等效的标签时,只需将该关系添加到哈希映射中即可。

final Map<Integer, Integer> equivalenceTable = new HashMap<>();

所以每当你找到两个相等的标签时,只需将它们放入等价表中即可。

private void storeEquivalence(final Integer label0, final Integer label1, final Map<Integer, Integer> table) {
  if (table.keySet().contains(label0)) {
    table.put(label1, table.get(label0));
  }
  else if (table.keySet().contains(label1)) {
    table.put(label0, table.get(label1));
  }
  else {
    table.put(label0, label1);
  }
}

因此,当您确定 region[x-1][y]region[x][y-1] 相等时,您应该检查标签是否不同(它们应该不同)并通过调用更新等价表

 storeEquivalence(region[x-1][y], region[x][y-1], equivalenceTable);

然后在第二遍中,您只需替换等价表中具有值的每个标签。

for (int x = 1; x < imageTwo.getWidth(); x++) {
  for (int y =1; y < imageTwo.getHeight(); y++) {
    if (equivalenceTable.keySet().contains(region[x][y])) {
      region[x][y] = equivalenceTable.get(region[x][y]);
    }  
  }
}

【讨论】:

  • 非常感谢...所以在 region [x][y]= Math.min(region [x-1][y], region [x][y-1]);如果存在等价,我是否声明 storeEquivalence (region [x-1][y], region [x][y-1],equivalenceTable);?
  • 如果 if 语句 if (imageTwo.getRed(x-1, y) !=0)if (imageTwo.getRed(x, y-1) !=0) 都为真,那么您应该检查标签是否不同并将它们存储在等价表中(如果它们相同,它们显然不会'不需要存储在表中)。我已经相应地编辑了答案。
  • 在 my...region [x][y]= Math.min(region [x-1][y], region [x][y-1]);...if (区域 [x-1][y] != 区域 [x][y-1]){ storeEquivalence (区域 [x-1][y], 区域 [x][y-1],equivalenceTable);.. .netbeans 告诉我我不能从静态上下文中引用非静态方法...我该怎么办?
  • 听起来你需要将storeEquivalence设为静态(将方法签名更改为private static void storeEquivalence(...))。
  • 好的,我让它工作并编译......但是我如何打印第二遍后我有多少对象?我已经相应地更新了我的代码
猜你喜欢
  • 2017-05-07
  • 1970-01-01
  • 2019-05-25
  • 2018-03-08
  • 2011-01-10
  • 2014-05-19
  • 2011-07-31
  • 2014-04-13
相关资源
最近更新 更多