Mahotas 教程

Mahotas - 主页 Mahotas - 简介 Mahotas - 计算机视觉 Mahotas - 历史 Mahotas - 功能 Mahotas - 安装

Mahotas 处理图像

Mahotas - 处理图像 Mahotas - 加载图像 Mahotas - 将图像加载为灰色 Mahotas - 显示图像 Mahotas - 显示图像形状 Mahotas - 保存图像 Mahotas - 图像的质心 Mahotas - 图像的卷积 Mahotas - 创建 RGB 图像 Mahotas - 图像的欧拉数 Mahotas - 图像中的零分数 Mahotas - 获取图像矩 Mahotas - 图像中的局部最大值 Mahotas - 图像椭圆轴 Mahotas - 图像拉伸 RGB

Mahotas 颜色空间转换

Mahotas - 颜色空间转换 Mahotas - RGB 到灰度转换 Mahotas - RGB 到 LAB 转换 Mahotas - RGB 转棕褐色 Mahotas - RGB 到 XYZ 转换 Mahotas - XYZ 到 LAB 转换 Mahotas - XYZ 到 RGB 转换 Mahotas - 增加伽马校正 Mahotas - 拉伸伽马校正

Mahotas 标记图像函数

Mahotas - 标记图像函数 Mahotas - 标记图像 Mahotas - 过滤区域 Mahotas - 边界像素

Mahotas - 形态学操作

Mahotas - 形态运算符 Mahotas - 查找图像平均值 Mahotas - 裁剪图像 Mahotas - 图像偏心率 Mahotas - 叠加图像 Mahotas - 图像圆度 Mahotas - 调整图像大小 Mahotas - 图像直方图 Mahotas - 扩大图像 Mahotas - 腐蚀图像 Mahotas - 分水岭 Mahotas - 图像的开运算过程 Mahotas - 图像的闭合过程 Mahotas - 填补图像中的空洞 Mahotas - 条件性膨胀图像 Mahotas - 条件腐蚀图像 Mahotas - 图像的条件分水岭 Mahotas - 图像中的局部最小值 Mahotas - 图像的区域最大值 Mahotas - 图像的区域最小值

Mahotas - 高级概念

Mahotas - 图像阈值 Mahotas - 设置阈值 Mahotas - 软阈值 Mahotas - Bernsen 局部阈值 Mahotas - 小波变换 Mahotas - 制作图像小波中心 Mahotas - 距离变换 Mahotas - 多边形实用程序 Mahotas - 局部二元模式 Mahotas - 阈值邻接统计 Mahotas - Haralic 特征 Mahotas - 标记区域的权重 Mahotas - Zernike 特征 Mahotas - Zernike 矩 Mahotas - 等级过滤器 Mahotas - 2D 拉普拉斯过滤器 Mahotas - 多数过滤器 Mahotas - 均值滤波器 Mahotas - 中值滤波器 Mahotas - Otsu 方法 Mahotas - 高斯滤波 Mahotas - 命中与未命中变换 Mahotas - 标记最大值数组 Mahotas - 图像平均值 Mahotas - SURF 密集点 Mahotas - SURF 积分 Mahotas - Haar 变换 Mahotas - 突出显示图像最大值 Mahotas - 计算线性二进制模式 Mahotas - 获取标签边框 Mahotas - 逆 Haar 变换 Mahotas - Riddler-Calvard 方法 Mahotas - 标记区域的大小 Mahotas - 模板匹配 Mahotas - 加速稳健特征 Mahotas - 移除带边框的标签 Mahotas - Daubechies 小波 Mahotas - Sobel 边缘检测



Mahotas - 标记区域的权重

在图像分析中,图像可以分割成感兴趣的区域。这些区域通常标有唯一标识符或标签。标记区域的权重提供了一个聚合值,该值表示该区域内所有像素的总贡献。

换句话说,图像中标记区域的权重是指该区域内像素强度的总和。

为了计算权重,我们将标记区域内的像素强度相加。像素强度是指与图像中每个像素相关联的值,它可以表示亮度或颜色等属性。

通过对像素强度求和,我们获得一个表示标记区域内整体"质量"或"数量"的单个值。

Mahotas 中标记区域的权重

在 Mahotas 中,可以使用 mahotas.labeled_sum() 函数计算标记区域的权重。

Mahotas 中的标记区域由标记图像表示,其中每个像素都被分配一个与其所属区域相对应的唯一标签。

为了清楚地理解它,让我们考虑一个灰度图像,其中每个像素代表一个标量强度值。通过将此灰度图像分割成不同的区域并为每个区域分配唯一的标签,可以获取带标签的图像。

mahotas.labeled_sum() 函数

mahotas.labeled_sum() 函数接受 labeled_sum 函数接受一个输入数组和一个带标签的数组。它根据带标签数组中的相应标签计算输入数组中每个带标签区域的像素值总和。

结果数组包含每个带标签区域的像素值总和,数组的每个元素都对应一个唯一的标签。

语法

以下是 mahortas − 中 labeled_sum() 函数的基本语法

mahotas.labeled_sum(array, labeled, minlength=None)

其中,

  • array − 表示图像或数据的 NumPy 数组。

  • labeled − 具有与数组相同形状的标记数组,其中每个区域都分配有一个唯一的整数标签。

  • minlength(可选) − 指定结果数组的最小长度的整数。如果提供,函数将用零填充结果数组以达到此长度。

示例

以下是确定图像标记区域权重的基本示例 −

import mahotas as mh
import numpy as np
from pylab import imshow, show
# 生成灰度图像
image = mh.imread('tree.tiff')
# 生成带标签的数组
labeled = mh.imread('sea.bmp')
# 计算每个带标签区域的像素值总和
result = mh.labeled_sum(image, labeled)
print(result)
输出

执行上述代码后,我们得到以下输出 −

[ 30 115  58 157 226 154 169  24  63  48 124 123 159 146  44 163 202 174
 208  30  39 109 100 221 245 101  16 162  42   0 214  71  46  31 110 197
  91 137 118 192 104 119 139  23 198 176 219 192  60   1 218 143  67 122
 249  14 165  70 159  16  18 204 135 185  74 175 110  39   8  98 208 238
  86 169  42  21  39 129 100 146 162  48 217 228 204  30  54 164 174  80
 144 172 232 115  48 165 136 234  37 147 195 242   2 227  75   6  95 100
  92 230 200  96  93  59  30  28  60 122 213  65 133  53  58  91 191  36
 174 106  95  25 201  70  73 234  59  76   2 207 238  66  87 140 174 222
 122 239  37  79 220  57 126  38 150 236  60  37 196  58 236 241 148 207
 253  56 103  79  72  71  47 242 169   8  88  19 176  16 195  88 134 188
 205  78 248  96 156  86  35  57  69 241 142 203 198 182 165  31 127  36
 227  47 195  47 117 217 134  45  50  95  76  47  34 182  21 140 138 192
  17 232 158 182 162 136 104 145 229 165  33 107  14 117 185 115  73 129
 217 105 244   0  63 124   0   0 109  56   0 107]

具有最小长度的标记区域的权重

要计算具有最小长度的标记区域的权重,我们需要将 'minlength' 参数传递给 mahotas 中的 labeled_sum() 函数。

通过设置最小长度值,在权重计算过程中,只有长度等于或大于指定最小长度的区域才会被考虑在内。

此功能允许我们过滤掉较小的区域,并专注于较大且可能更重要的区域。

如果任何区域不满足最小长度要求,则该区域的权重被分配为"0"。

示例

在这里,我们通过指定最小长度 − 来计算标记区域的权重

import mahotas as mh
import numpy as np
image = mh.imread('tree.tiff')
# 进行标记,获取标记图像
labeled_img, n_labels = mh.label(image)
# 计算每个标记区域的权重,最小长度为 2
weights = mh.labeled_sum(image, labeled_img, minlength=2)
# 打印每个标记区域的权重
for label, weight in enumerate(weights, start=1):
   print(f"Weight of region {label}: {weight}")

输出

上述代码的输出如下 −

Weight of region 1:  0
Weight of region 2: 40
Weight of region 3: 86
Weight of region 4: 37

带有自定义标签的标记区域的权重

要计算带有自定义标签的标记区域的权重,首先,生成一个自定义标记图像,其中每个区域都分配有一个特定的标签。

标记图像将具有与原始图像相同的尺寸,每个像素根据其所属的区域分配相应的标签值。然后,计算标记区域的权重。

示例

现在,我们尝试计算带有自定义标签的标记区域的权重 −

import mahotas as mh
import numpy as np
# 生成二值图像
binary_img = np.array([[0, 1, 0, 0],[1, 1, 1, 0],[0, 0, 0, 1]])
# 生成带有特定标签的自定义标记图像
labeled_img = np.array([[0, 1, 0, 0],[2, 2, 2, 0],[0, 0, 0, 3]])
# 计算每个标记区域的权重
weights = mh.labeled_sum(binary_img, labeled_img)
# 打印每个标记区域的权重
for label, weight in enumerate(weights, start=1):
   print(f"Weight of region {label}: {weight}")

输出

以下是上述代码的输出 −

Weight of region 1: 0
Weight of region 2: 1
Weight of region 3: 3
Weight of region 4: 1