根据质心距离合并标签
在这个笔记本中,我们将根据标签之间的质心距离来合并标签图像中的标签。相互靠近的标签将被合并。
另请参阅
为了演示目的,我们使用了从斑点示例图像派生的标签的修改版本。我们人为地在它们之间引入了间隙。
|
cle._ image
| shape | (254, 256) |
| dtype | uint32 |
| size | 254.0 kB |
| min | 0.0 | | max | 47.0 |
|
从这个图像中,我们提取质心的坐标。从这些质心,我们可以构建一个距离矩阵。在这个矩阵中,计算了所有质心到所有其他质心的距离。对角线为零,因为它对应于一个质心到自身的距离。此外,到背景的距离(第一行和第一列)也为零,因为在距离计算中不考虑背景。
|
cle._ image
| shape | (48, 48) |
| dtype | float32 |
| size | 9.0 kB |
| min | 0.0 | | max | 324.1848 |
|
我们可以用给定的最大距离对这个距离矩阵进行阈值处理。结果是一个二元矩阵。
|
cle._ image
| shape | (48, 48) |
| dtype | uint8 |
| size | 2.2 kB |
| min | 0.0 | | max | 1.0 |
|
如果我们将标签与背景合并,所有标签都会被合并,因为它们都接触背景。为了防止这种情况,我们将第一行和第一列设置为零。
|
cle._ image
| shape | (48, 48) |
| dtype | uint8 |
| size | 2.2 kB |
| min | 0.0 | | max | 1.0 |
|
使用上面的二元矩阵,我们现在可以相应地合并标签。
|
cle._ image
| shape | (254, 256) |
| dtype | uint32 |
| size | 254.0 kB |
| min | 0.0 | | max | 4.0 |
|