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 − 中可以实现的每种阈值技术

Bernsen 阈值

Bernsen 阈值是一种阈值技术,用于将灰度图像中的前景与背景分开。它根据每个像素周围邻域内的最大和最小像素强度计算局部阈值。

如果像素的强度更接近最大值,则将其视为前景的一部分;否则,将其视为背景的一部分。

让我们看看下面的 Bernsen 阈值图像 −

Bernsen 阈值

广义 Bernsen 阈值

广义 Bernsen 阈值是 Bernsen 阈值方法的改进。它考虑邻域内更广泛的像素强度,而不仅仅是最大和最小强度值。

以下图像显示广义 Bernsen 阈值图像 −

广义 Bernsen 阈值

Otsu 阈值

Otsu 阈值技术自动确定最佳阈值以将前景与背景分开。

Otsu 的方法迭代检查所有可能的阈值,并选择最大化类间方差的阈值。

让我们看看下面的 Otsu 阈值图像 −

Otsu Thresholding

Riddler-Calvard 阈值

Riddler−Calvard 阈值还会自动确定最佳阈值。它基于前景和背景方差的加权和的最小化。

让我们看看下面的 Riddler−Calvard 阈值图像 −

Riddler-Calvard Thresholding

软阈值

软阈值是一种用于图像去噪的技术。它将强度值小于某个阈值的像素设置为零。软阈值在降低噪声的同时保留了图像的重要结构信息。

下图显示了软阈值 −

软阈值

示例

在下面的示例中,我们尝试执行上述所有阈值技术 −

import mahotas as mh
import numpy as np
import matplotlib.pyplot as mtplt
image = mh.imread('sea.bmp', as_grey=True)
# Bernsen 阈值
bernsen = mh.thresholding.bernsen(image, 5, 5)
mtplt.imshow(bernsen)
mtplt.title('Bernsen Thresholding')
mtplt.axis('off')
mtplt.show()
# 广义伯恩森阈值
gbernsen = mh.thresholding.gbernsen(image, mh.disk(3), 10, 109)
mtplt.imshow(gbernsen)
mtplt.title('Generalized Bernsen Thresholding')
mtplt.axis('off')
mtplt.show()
# Otsu 阈值
int_image_otsu = image.astype(np.uint8)
otsu = mh.otsu(int_image_otsu)
result_image = image > otsu
mtplt.imshow(result_image)
mtplt.title('Otsu Thresholding')
mtplt.axis('off')
mtplt.show()
# Riddler-Calvard 阈值
int_image_rc = image.astype(np.uint8)
rc = mh.thresholding.rc(int_image_rc)
final_image = image > rc
mtplt.imshow(final_image)
mtplt.title('RC Thresholding')
mtplt.axis('off')
mtplt.show()
# 软阈值
soft = mh.thresholding.soft_threshold(image, np.mean(image))
mtplt.imshow(soft)
mtplt.title('Soft Thresholding')
mtplt.axis('off')
mtplt.show()

输出

得到的输出如下所示 −

Bernsen 阈值:

Bernsen Thresholding1

广义 Bernsen 阈值:

广义 Bernsen Thresholding1

Otsu 阈值:

Otsu Thresholding1

Riddler−Calvard 阈值:

Riddler-Calvard Thresholding1

软阈值:

软阈值1

我们将在其余章节中详细讨论所有阈值技术。