- 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 - Haralic特征
- 标记区域的权重
- Mahotas - Zernike特征
- Mahotas - Zernike矩
- Mahotas - 排序滤波器
- Mahotas - 二维拉普拉斯滤波器
- Mahotas - 多数滤波器
- Mahotas - 均值滤波器
- Mahotas - 中值滤波器
- Mahotas - Otsu方法
- Mahotas - 高斯滤波
- Mahotas - Hit & Miss变换
- Mahotas - 标记最大值数组
- Mahotas - 图像平均值
- Mahotas - SURF密集点
- Mahotas - SURF积分图像
- Mahotas - Haar变换
- 突出显示图像最大值
- 计算线性二值模式
- 获取标签边界
- 反转Haar变换
- Riddler-Calvard方法
- 标记区域的大小
- 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) # Create a figure with subplots fig, axes = plt.subplots(1, 2, figsize=(7,5 )) # Display the original image axes[0].imshow(image) axes[0].set_title('Original Image') axes[0].axis('off') # Display the closed image axes[1].imshow(closed_image, cmap='gray') axes[1].set_title('Closed Image') axes[1].axis('off') # Adjust the layout and display the plot plt.tight_layout() plt.show()
输出
执行上述代码后,我们得到以下输出:
使用随机二值图像
我们还可以通过创建随机二值图像来对图像执行闭运算。为此,我们首先使用NumPy创建一个随机二值图像,其中像素为0(背景)或1(前景)。
一旦我们有了二值图像,就可以使用结构元素进行形态学闭运算。它将定义膨胀和腐蚀操作的邻域的形状和大小。
此外,我们创建一个与输入图像形状相同的空数组来存储结果。最后,我们得到最终的闭合图像。
示例
在这里,我们尝试通过创建随机二值图像来对图像执行闭运算:
import mahotas as mh import numpy as np from pylab import imshow, show # Create a random binary image image = np.random.randint(0, 2, size=(100, 50), dtype=np.bool_) Bc=np.ones((3,3)) # Perform morphological closing with a 3x3 cross structuring element result = mh.close(image, Bc, out=np.empty_like(image)) # Show the result imshow(result) show()
输出
生成的输出如下所示:
使用灰度图像
我们也可以在mahotas中对灰度图像执行闭运算。为此,我们在读取图像时只需传递`as_grey=True`参数,确保图像以灰度图像加载。接下来,我们将对灰度图像执行形态学闭运算。
示例
现在,我们在mahotas中对灰度图像执行闭运算:
import mahotas as mh import numpy as np from pylab import imshow, show # Create a grayscale image image = mh.imread('nature.jpeg', as_grey = True).astype(np.uint8) Bc=np.ones((20,15)) # Perform morphological closing with a 3x3 cross structuring element result = mh.close(image, Bc, out=np.empty_like(image)) # Show the result imshow(result) show()
输出
以下是上述代码的输出: