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 和 numpy 库来找到图像的平均值。

我们可以使用 numpy 库中的 mean() 函数来查找图像的平均像素强度值。

mean() 函数的工作原理是迭代遍历每个像素并对其强度值求和。遍历完所有像素后,将总和除以像素总数。

可以使用以下公式计算图像的平均像素强度值 −

平均值 = 所有像素值的总和 / 像素总数

例如,假设一幅图像由 2 个像素组成,每个像素的强度值为 5。然后可以按如下方式计算平均值 −

平均值 = 10 / 2
平均值 = 5

numpy.mean() 函数

numpy.mean() 函数将图像作为输入,并以十进制数形式返回其所有像素的平均亮度。均值函数适用于任何类型的输入图像,例如 RGB、灰度或带标签的图像。

语法

以下是 numpy 中 mean() 函数的基本语法 −

numpy.mean(image)

其中,

  • image − 它是输入图像。

示例

在下面的示例中,我们使用 np.mean() 函数查找图像的平均像素强度值。

import mahotas as mh
import numpy as np
import matplotlib.pyplot as mtplt
# 加载图像
image = mh.imread('sun.png')
# 查找平均值
mean_value = np.mean(image)
# 打印平均值
print('图像的平均值是 =', mean_value)
# 为子图创建图形和轴
fig, axis = mtplt.subplots(1, 1)
# 显示原始图像
axes.imshow(image)
axes.set_title('Original Image')
axes.set_axis_off()
# 调整子图之间的间距
mtplt.tight_layout()
# 显示图形
mtplt.show()
输出

以下是上述代码的输出 −

图像的平均值是 = 105.32921300415184

得到的图像如下图所示 −

Mean Value Image

各通道的平均值

在 Mahotas 中,我们还能够找到 RGB 图像各通道的平均值。RGB 图像是指具有三个−颜色通道 − 的图像红色、绿色和蓝色。

RGB 图像中的每个像素都有三个强度值,每个颜色通道一个。

红色的通道值为 0,绿色为 1,蓝色为 2。这些值可用于将 RGB 图像分离为其各个颜色分量。

在 mahotas 中,要找到 RGB 图像每个通道的平均像素强度值,我们首先将 RGB 图像分离为单独的通道。这是通过指定通道值来实现的。一旦通道分离,我们就可以单独找到它们的平均值。

示例

在下面提到的示例中,我们正在寻找 RGB 图像每个通道的平均像素强度值。

import mahotas as mh
import numpy as np
import matplotlib.pyplot as mtplt
# 加载图像
image = mh.imread('nature.jpeg')
# 获取红色通道。
red_channel = image[:, :, 0]
# 获取绿色通道。
green_channel = image[:, :, 1]
# 获取蓝色通道。
blue_channel = image[:, :, 2]
# 查找每个通道的平均值
mean_red = np.mean(red_channel)
mean_green = np.mean(green_channel)
mean_blue = np.mean(blue_channel)
# 打印每个通道的平均值
print('红色通道的平均值是 =', mean_red)
print('绿色通道的平均值是 =', mean_green)
print('蓝色通道的平均值是 =', mean_blue)
# 为子图创建图形和轴
fig, axis = mtplt.subplots(1, 1)
# 显示原始图像
axes.imshow(image)
axes.set_title('原始图像​​')
axes.set_axis_off()
# 调整子图之间的间距
mtplt.tight_layout()
# 显示图
mtplt.show()

输出

上述代码的输出如下 −

红色通道的平均值 = 135.4501688464837
绿色通道的平均值 = 139.46532482847343
蓝色通道的平均值 = 109.7802007397084

生成的图像如下 −

均值通道

灰度图像的均值

我们也可以找到灰度图像的均值。灰度图像是指只有一个颜色通道的图像。

灰度图像的每个像素都由一个强度值表示。

灰度图像的强度值范围从 0(黑色)到 255(白色)。0 到 255 之间的任何值都会产生灰色阴影。较低的值会产生较暗的阴影,而较高的值会产生较浅的阴影。

在 mahotas 中,我们首先使用 mh.colors.rgb2gray() 函数将输入的 RGB 图像转换为灰度图像。然后,我们使用 mean() 函数找到其平均像素强度值。

示例

在此示例中,我们正在寻找灰度图像的平均像素强度值。

import mahotas as mh
import numpy as np
import matplotlib.pyplot as mtplt
# 加载图像
image = mh.imread('tree.tiff')
# 将其转换为灰度
grayscale_image = mh.colors.rgb2gray(image)
# 查找灰度图像的平均值
mean_value = np.mean(grayscale_image)
# 打印图像的平均值
print('灰度图像的平均值是 =', mean_value)
# 为子图创建图形和轴
fig,axes = mtplt.subplots(1, 1)
# 显示灰度图像
axes.imshow(grayscale_image, cmap='gray')
axes.set_title('Grayscale Image')
axes.set_axis_off()
# 调整子图之间的间距
mtplt.tight_layout()
# 显示图形
mtplt.show()

输出

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

灰度图像的平均值 = 113.21928107579335

以下是获得的图像 −

Mean Value Channel1