给出的n * m个矩阵的1,2中的可能的值和空:我寻找所有块B(含有之间的所有值找到具有特定属性的所有矩形区域以矩阵
. . . . . 1 . .
. 1 . . . . . 1
. . . 2 . . . .
. . . . 2 . . .
1 . . . . . 1 .
. . . . . . . .
. . 1 . . 2 . .
2 . . . . . . 1
( X0,Y0)和(X1,Y1)),其:
- 包含至少一个 '1'
- 不含 '2'
- 不是另一个块的与上述特性 一个子集
实施例:
的红色,绿色和蓝色区域中的所有包含一个 '1',没有 '2',而不是一个较大区域的一部分。 这张照片当然有3个以上的这种方块。我想找到所有这些块。
什么是快速找到所有这些区域的方法?
我有一个工作蛮力的解决方案,遍历所有可能的矩形,检查它们是否满足前两个条件;然后遍历所有找到的矩形,移除包含在另一个矩形中的所有矩形;我可以通过首先删除连续的相同行和列来加快速度。但我相当确定有一个更快的方法。
这些块的所有边将位于图的边缘或与“2”相邻。也许你可以做些什么。 – robert
如果你在这里没有得到很好的答案,你也可以在http://cs.stackexchange.com上提问。 –