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 - 标记最大值数组

标记最大值数组是指存储标记图像中每个区域的最大强度值的数组。要找到某个区域的最大强度值,需要检查该区域中的每个像素。然后,选择最亮像素的强度值作为最大强度值。简单来说,标记最大值数组用于查找图像中最亮的区域。

例如,假设我们有一个由三个像素组成的区域。这三个像素的强度值分别为 0.5、0.2 和 0.8。然后,该区域的最大强度值将为 0.8。

Mahotas 中的标记最大值数组

在 Mahotas 中,我们可以使用 mahotas.labeled.labeled_max() 函数创建标记最大值数组。该函数迭代搜索区域中最亮的像素。然后将最亮像素的强度值存储在数组中。

结果数组是标记最大值数组,具有图像每个区域的最大强度值。

mahotas.labeled.labeled_max() 函数

mahotas.labeled.labeled_max() 函数将图像和标记图像作为输入。它返回一个包含每个标记区域的最大强度值的数组。

语法

以下是 mahotas 中 labeled_max() 函数的基本语法 −

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

其中,

  • array − 它是输入图像。

  • labeled − 它是标记图像。

  • minlength(可选) −它指定输出数组中包含的最小区域数(默认为 None)。

示例

在下面的示例中,我们使用 labeled_max() 函数在标记图像中查找标记的最大数组。

import mahotas as mh
import numpy as np
import matplotlib.pyplot as mtplt
# 加载图像
image = mh.imread('sea.bmp')
# 将其转换为灰度
image = mh.colors.rgb2gray(image).astype(np.uint8)
# 应用阈值
threshold = mh.thresholding.rc(image)
threshold_image = image >阈值
# 标记图像
label, num_objects = mh.label(threshold_image)
# 获取标记的最大数组
labeled_max = mh.labeled.labeled_max(image, label)
# 打印标记的最大数组
print('标记的最大数组:', labeled_max)
# 为子图创建图形和轴
fig, axis = mtplt.subplots(1, 2)
# 显示原始图像
axes[0].imshow(image, cmap='gray')
axes[0].set_title('原始图像​​')
axes[0].set_axis_off()
# 显示标记图像
axes[1].imshow(label, cmap='gray')
axes[1].set_title('标记图像')
axes[1].set_axis_off()
# 调整子图之间的间距
mtplt.tight_layout()
#显示图形
mtplt.show()
输出

以下是上述代码的输出 −

标记的最大数组:[107 111 129 ... 141 119 109]

获得的图像如下 −

标记的最大数组

随机布尔图像的标记的最大数组

我们还可以找到随机布尔图像的标记的最大数组。随机布尔图像是指每个像素的值为 0 或 1 的图像。前景像素用"1"表示,背景像素用"0"表示。

在 mahotas 中,要找到随机布尔图像的标记最大数组,我们首先需要使用 np.zeros() 函数生成特定大小的随机布尔图像。

此图像最初仅由背景像素组成。然后,我们将整数值分配给图像的几个部分以创建不同的区域。

然后,我们使用 labeled_max() 函数找到图像的标记最大数组。

示例

在下面提到的示例中,我们正在寻找随机布尔图像的标记最大数组。

import mahotas as mh
import numpy as np
import matplotlib.pyplot as mtplt
# 创建随机图像
image = np.zeros((10, 10), bool)
# 为区域分配值
image[:2, :2] = 1
image[4:6, 4:6] = 1
image[8:, 8:] = 1
# 标记图像
label, num_objects = mh.label(image)
# 随机采样
random_sample = np.random.random_sample(image.shape)
# 获取标记的最大数组
labeled_max = mh.labeled.labeled_max(random_sample, label)
# 打印标记的最大数组
print('带标签的最大数组')
for i, strength in enumerate(labeled_max):
print('区域', i, ':', intense)
# 为子图创建图形和轴
fig, axis = mtplt.subplots(1, 2)
# 显示原始图像
axes[0].imshow(image)
axes[0].set_title('Original Image')
axes[0].set_axis_off()
# 显示带标签的图像
axes[1].imshow(label)
axes[1].set_title('Labeled Image')
axes[1].set_axis_off()
# 调整子图之间的间距
mtplt.tight_layout()
# 显示图形
mtplt.show()

输出

上述代码的输出如下 −

带标签的最大数组
区域 0 : 0.9950607583625318
区域 1 : 0.8626363785944107
区域 2 : 0.6343883551171169
区域 3 : 0.8162320509314726

我们得到以下图像作为输出 −

带标签的最大数组1