Mahotas - 图像标记函数



图像标记是一种数据标记过程,涉及识别图像中的特定特征或物体,并向选定的物体添加有意义的信息以进行分类。

  • 它通常用于生成机器学习模型的训练数据,尤其是在计算机视觉领域。
  • 图像标记被广泛应用于各种应用中,包括物体检测、图像分类、场景理解、自动驾驶、医学影像等等。
  • 它允许机器学习算法从标记数据中学习,并根据提供的注释做出准确的预测或识别。

图像标记函数

以下是 Mahotas 中用于标记图像的不同函数:

序号 函数及描述
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
# Create a binary image
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)
# Perform connected component labeling
labeled_image, num_labels = mh.label(image)
# Print the labeled image and number of labels
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

获得的图像如下所示:

Labeling Images

labeled.label() 函数

mahotas.labeled.label() 函数用于更新标签值以使其按顺序排列。生成的顺序标签将是一个新的标记图像,标签从 1 开始连续分配。

在此示例中,我们从一个由 NumPy 数组表示的标记图像开始,其中标签是非顺序的。

示例

以下是使用 labeled.label() 函数标记图像的基本示例:

import mahotas as mh
import numpy as np
from pylab import imshow, show
# Create a labeled image with non-sequential labels
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)
# Update label values to be sequential
sequential_labels, num_labels = mh.labeled.label(labeled_image)
# Print the updated 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]]

生成的图像如下:

Labeling Images1

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

广告