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 中,我们可以使用 thresholding.soft_threshold() 函数对图像应用软阈值。它根据相邻像素动态调整阈值,以增强噪声水平不均匀的图像。

通过使用动态调整,该函数按比例降低强度超过阈值的像素的强度,并将其分配给前景。

另一方面,如果像素的强度低于阈值,则将其分配给背景。

mahotas.thresholding.soft_threshold() 函数

mahotas.thresholding.soft_threshold() 函数以灰度图像作为输入,并返回已应用软阈值的图像。它通过将像素强度与提供的阈值进行比较来工作。

语法

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

mahotas.thresholding.soft_threshold(f, tval)

其中,

  • f − 是输入的灰度图像。

  • tval − 是阈值。

示例

在下面的示例中,我们使用 mh.thresholding.soft_threshold() 函数对灰度图像应用软阈值。

import mahotas as mh
import numpy as np
import matplotlib.pyplot as mtplt
# 加载图像
image = mh.imread('tree.tiff')
# 将其转换为灰度
image = mh.colors.rgb2gray(image)
# 设置阈值
tval = 150
# 在图像上应用软阈值
threshold_image = mh.thresholding.soft_threshold(image, tval)
# 为子图创建图形和轴
fig, axis = mtplt.subplots(1, 2)
# 显示原始图像
axes[0].imshow(image, cmap='gray')
axes[0].set_title('Original Image')
axes[0].set_axis_off()
# 显示阈值图像
axes[1].imshow(threshold_image, cmap='gray')
axes[1].set_title('Soft Threshold Image')
axes[1].set_axis_off()
# 调整间距子图
mtplt.tight_layout()
# 显示图形
mtplt.show()
输出

以下是上述代码的输出 −

Soft Threshold Mahotas

使用平均值的软阈值

我们可以使用图像上像素强度的平均值应用软阈值。平均值是指图像的平均强度。

它是通过将所有像素的强度值相加,然后除以总像素数来计算的。

在 mahotas 中,我们可以使用 numpy.mean() 函数找到图像所有像素的平均像素强度。然后可以将平均值传递给 mahotas.thresholding.soft_threshold() 函数的 tval 参数以生成软阈值图像。

这种应用软阈值的方法在去噪和图像质量之间保持了良好的平衡,因为阈值既不太高也不太低。

示例

以下示例显示了当阈值是像素强度的平均值时,在灰度图像上应用软阈值。

import mahotas as mh
import numpy as np
import matplotlib.pyplot as mtplt
# 加载图像
image = mh.imread('tree.tiff')
# 将其转换为灰度
image = mh.colors.rgb2gray(image)
# 设置平均阈值
tval = np.mean(image)
# 在图像上应用软阈值
threshold_image = mh.thresholding.soft_threshold(image, tval)
# 为子图创建图形和轴
fig, axis = mtplt.subplots(1, 2)
# 显示原始图像
axes[0].imshow(image, cmap='gray')
axes[0].set_title('Original Image')
axes[0].set_axis_off()
# 显示阈值图像
axes[1].imshow(threshold_image, cmap='gray')
axes[1].set_title('Soft Threshold Image')
axes[1].set_axis_off()
#调整子图之间的间距
mtplt.tight_layout()
# 显示图形
mtplt.show()

输出

上述代码的输出如下 −

软阈值平均值

使用百分位值的软阈值

除了平均值,我们还可以使用百分位值对图像像素的强度应用软阈值。百分位是指给定百分比的数据低于该值的值;在图像处理中,它指的是图像中像素强度的分布。

例如,让我们将阈值百分位数设置为 85。这意味着只有强度大于图像中其他像素 85% 的像素才会被归类为前景,而其余像素将被归类为背景。

在 mahotas 中,我们可以使用 numpy.percentile() 函数根据像素强度的百分位数设置阈值。然后在 soft_thresholding() 函数中使用此值对图像应用软阈值。

示例

在此示例中,我们展示了当使用百分位数值找到阈值时如何应用软阈值。

import mahotas as mh
import numpy as np
import matplotlib.pyplot as mtplt
# 加载图像
image = mh.imread('tree.tiff')
# 将其转换为灰度
image = mh.colors.rgb2gray(image)
# 设置百分位阈值
tval = np.percentile(image, 85)
# 在图像上应用软阈值
threshold_image = mh.thresholding.soft_threshold(image, tval)
# 为子图创建图形和轴
fig, axis = mtplt.subplots(1, 2)
# 显示原始图像
axes[0].imshow(image, cmap='gray')
axes[0].set_title('Original Image')
axes[0].set_axis_off()
# 显示阈值图像
axes[1].imshow(threshold_image, cmap='gray')
axes[1].set_title('Soft Threshold Image')
axes[1].set_axis_off()
# 调整子图之间的间距
mtplt.tight_layout()
# 显示图形
mtplt.show()

输出

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

Soft Threshold Percentile Value