Mahotas - 标记图像函数
图像标记是一种数据标记过程,涉及识别图像中的特定特征或对象,添加有意义的信息以选择和分类这些对象。
- 它通常用于生成机器学习模型的训练数据,特别是在计算机视觉领域。
- 图像标记有广泛的应用,包括物体检测、图像分类、场景理解、自动驾驶、医学成像等。
- 它允许机器学习算法从标记数据中学习,并根据提供的注释做出准确的预测或识别。
用于标记图像的函数
以下是 mahotas − 中用于标记图像的不同函数
S.No | 函数 &描述 |
---|---|
1 | label() 此函数对二值图像执行连通分量标记, 在一行中为连通区域分配唯一标签。 |
2 | labeled.label() 此函数将从 1 开始的连续标签分配给图像的不同区域。 |
3 | labeled.filter_labeled() 此函数将过滤器应用于图像的选定区域,同时保持其他区域不变。 |
现在,让我们看一些这些函数的示例。
label() 函数
mahotas.label() 函数用于标记数组,它被解释为二进制数组。这也称为标记的连接组件,其中连接由结构元素定义。
示例
以下是使用 label() 函数标记图像的基本示例 −
import mahotas as mh import numpy as np from pylab import imshow, show # 创建二进制图像 image = np.array([[0, 0, 1, 1, 0], [0, 1, 1, 0, 0], [0, 0, 0, 1, 1], [0, 0, 0, 0, 1], [0, 1, 1, 1, 1]], dtype=np.uint8) # 执行连通分量标记 labeled_image, num_labels = mh.label(image) # 打印标记图像和标签数量 print("Labeled Image:") print(labeled_image) print("Number of labels:", num_labels) imshow(labeled_image) show()
输出
执行上述代码后,我们得到以下输出 −
Labeled Image: [[0 0 1 1 0] [0 1 1 0 0] [0 0 0 2 2] [0 0 0 0 2] [0 2 2 2 2]] Number of labels: 2
获得的图像如下所示 −

labeled.label() 函数
mahotas.labeled.label() 函数用于将标签值更新为连续顺序。生成的连续标签将是一个新的带标签图像,标签从 1 开始连续分配。
在此示例中,我们从由 NumPy 数组表示的带标签图像开始,其中标签是非连续的。
示例
以下是使用 labeled.label() 函数 − 标记图像的基本示例
import mahotas as mh import numpy as np from pylab import imshow, show # 创建带有非连续标签的带标签图像 labeled_image = np.array([[0, 0, 1, 1, 0], [0, 2, 2, 0, 0], [0, 0, 0, 3, 3], [0, 0, 0, 0, 4], [0, 5, 5, 5, 5]], dtype=np.uint8) # 将标签值更新为连续的 sequential_labels, num_labels = mh.labeled.label(labeled_image) # 打印更新后的带标签图像 print("Sequential Labels:") print(sequential_labels) imshow(sequential_labels) show()
输出
得到的输出如下 −
Sequential Labels: [[0 0 1 1 0] [0 1 1 0 0] [0 0 0 2 2] [0 0 0 0 2] [0 2 2 2 2]]
以下是生成的图像 −

我们在本节的其余章节中详细讨论了这些功能。