【发布时间】:2021-10-27 19:30:04
【问题描述】:
我在 NumPy/Torch 中有 3D 数组的二进制分割掩码。我想将这些转换为边界框(又名连接组件)。作为免责声明,每个数组可以包含多个连接的组件/边界框,这意味着我不能只取最小和最大非零索引值。
具体而言,假设我有一个二进制值的 3D 数组(我将使用 2D,因为 2D 更容易可视化)。我想知道连接的组件是什么。比如我想用这个分割掩码:
>>> segmentation_mask
array([[1, 0, 0, 0, 0],
[0, 1, 0, 0, 0],
[1, 1, 1, 0, 0],
[1, 1, 0, 1, 0],
[1, 1, 0, 0, 1]], dtype=int32)
并将其转换为连通分量,其中连通分量具有任意标签,即
>>> connected_components
array([[1, 0, 0, 0, 0],
[0, 2, 0, 0, 0],
[2, 2, 2, 0, 0],
[2, 2, 0, 3, 0],
[2, 2, 0, 0, 4]], dtype=int32)
如何使用 3D 数组执行此操作?我愿意使用 Numpy、Scipy、Torchvision、opencv 和任何库。
【问题讨论】:
标签: numpy pytorch bounding-box torchvision connected-components