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.close() 函数。此方法允许顺序应用膨胀和腐蚀操作。

膨胀通过将每个像素替换为其邻域中的最大值来扩展剩余结构,同时保留其关键特征。

随后,腐蚀通过考虑每个像素的邻域并将其替换为最小值来降低噪声并消除小结构。

mahotas.close() 函数

Mahotas 中的 close() 函数采用两个主要参数:二值图像和结构元素(内核)。该函数首先对输入的二进制图像应用膨胀操作。然后对膨胀后的图像应用腐蚀操作。

close() 函数返回执行膨胀和腐蚀操作后得到的闭合图像。

语法

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

mahotas.close(f, Bc={3x3 cross}, out={np.empty_like(f)})

其中,

  • f − 它是以 NumPy 数组形式表示的输入二进制图像。

  • Bc −它是用于膨胀和腐蚀操作的结构元素。默认为 3x3 十字形结构元素。

  • out − 它是输出数组。结果将存储在与输入图像 f 具有相同形状和数据类型的新数组中。

示例

在下面的示例中,我们正在对图像执行关闭过程 −

import mahotas as mh
import numpy as np
import matplotlib.pyplot as plt
image = mh.imread('sun.png')
closed_image = mh.close(image)
# 创建带有子图的图形
fig, axis = plt.subplots(1, 2, figsize=(7,5 ))
# 显示原始图像
axes[0].imshow(image)
axes[0].set_title('Original Image')
axes[0].axis('off')
# 显示封闭的图像
axes[1].imshow(closed_image, cmap='gray')
axes[1].set_title('Closed Image')
axes[1].axis('off')
# 调整布局并显示图
plt.tight_layout()
plt.show()

输出

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

Closing Process Image

使用随机二进制图像

我们还可以通过创建随机二进制图像对图像执行关闭过程。为此,我们首先使用 NumPy 创建一个随机二进制图像,其中像素为 0(背景)或 1(前景)。

一旦我们有了二进制图像,我们就可以继续使用结构元素执行形态学关闭。它将定义扩张和腐蚀操作的邻域的形状和大小。

此外,我们创建一个与输入图像形状相同的空数组来存储结果。最后,我们得到了闭合图像。

示例

在这里,我们尝试通过创建随机二进制图像对图像执行闭合过程 −

import mahotas as mh
import numpy as np
from pylab import imshow, show
# 创建随机二进制图像
image = np.random.randint(0, 2, size=(100, 50), dtype=np.bool_)
Bc=np.ones((3,3))
# 使用 3x3 交叉结构元素执行形态学闭合
result = mh.close(image, Bc, out=np.empty_like(image))
# 显示结果
imshow(result)
show()

输出

生成的输出如下所示 −

使用随机二进制图像

使用灰度图像

我们还可以在 mahotas 中对灰度图像执行关闭过程。为此,我们只需在读取图像时传递 as_grey=True 参数,确保图像作为灰度图像加载。接下来,我们将对灰度图像执行形态学关闭。

示例

现在,我们在 mahotas 中对灰度图像执行关闭过程 −

import mahotas as mh
import numpy as np
from pylab import imshow, show
# 创建灰度图像
image = mh.imread('nature.jpeg', as_grey = True).astype(np.uint8)
Bc=np.ones((20,15))
# 使用 3x3 交叉结构元素执行形态学闭合
result = mh.close(image, Bc, out=np.empty_like(image))
# 显示结果
imshow(result)
show()

输出

以下是上述代码的输出 −

灰度图像 Mahotas