- 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 中膨胀图像是指向图像中区域的边界添加像素数。此操作通常用于增强或修改图像中的形状和结构。
我们可以使用dilate()函数在 mahotas 中膨胀图像。它用于使用结构元素 B 扩展元素 A。
结构元素是一个小的矩阵或形状,定义每个像素周围的邻域。它用于确定在膨胀过程中应考虑哪些像素。
mahotas.dilate() 函数
mahotas.dilate() 函数将输入图像和结构元素作为参数,并返回一个新的 NumPy 数组。
输出像素的值由邻域中所有像素的最大值确定。如果任何相邻像素的值为 1,则输出像素设置为 1。
dilate() 函数逐像素扫描图像,并检查由结构元素定义的邻域。
如果任何相邻像素是物体的一部分,膨胀操作会将这些像素添加到物体的边界,使其变大。
语法
以下是 mahotas 中 dilate() 函数的基本语法:
mahotas.dilate(A, Bc=None, out=None, output=None)
其中,
A − 它是将对其执行膨胀的输入图像。它可以是表示灰度或二值图像数据的二维或三维 NumPy 数组。
Bc (可选) − 它是用于膨胀的结构元素。默认为 None。
out (已弃用) / output (可选) − 它指定用于存储结果的输出数组。如果未提供,则创建一个新数组并将其作为输出返回。
示例
以下是使用 dilate() 函数在 mahotas 中膨胀图像的基本示例:
import mahotas as mh import matplotlib.pyplot as plt import numpy as np image = mh.imread('nature.jpeg', as_grey=True).astype(np.uint8) # Performing dilation with a square kernel of size 3x3 dilated_image = mh.dilate(image, Bc=mh.disk(3)) # 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 dilated image axes[1].imshow(dilated_image, cmap='gray') axes[1].set_title('Dilated Image') axes[1].axis('off') # Adjust the layout and display the plot plt.tight_layout() plt.show()
输出
执行上述代码后,我们将获得如下输出:
使用不同的结构元素大小进行膨胀
我们还可以使用不同的结构元素大小来膨胀图像,以增强图像的不同方面。这些元素使用 Mahotas disk() 函数创建不同的大小。
通过为结构元素选择不同的半径或大小,我们可以获得不同的效果。首先,我们使用最大的结构元素进行膨胀。然后,我们继续使用较小的结构元素进行额外的膨胀。
这种方法允许我们以多种方式修改图像,增强特定特征并获得所需的视觉效果。
示例
在这里,我们尝试使用不同的结构元素大小来膨胀图像:
import mahotas as mh import numpy as np from pylab import imshow, show image = mh.imread('nature.jpeg', as_grey=True).astype(np.uint8) # Performing dilation with the largest structuring element largest_se = mh.disk(8) dilated_image = mh.dilate(image, Bc=largest_se) # Performing additional dilations with smaller structuring elements smaller_se_1 = mh.disk(2) smaller_se_2 = mh.disk(5) dilated_image = mh.dilate(dilated_image, Bc=smaller_se_1) dilated_image = mh.dilate(dilated_image, Bc=smaller_se_2) # Displaying the dilated image imshow(dilated_image) show()
输出
获得的输出如下所示:
使用圆形内核进行膨胀
要创建圆形内核,我们可以使用 Mahotas 的 disk() 函数。通过指定所需的半径,此函数会生成一个表示圆形内核的 NumPy 数组。
准备好图像和圆形内核后,我们可以进行膨胀。此操作将圆形内核应用于图像的每个像素,相应地扩展白色区域。
简单来说,它增强了图像中的明亮区域,使其更大。
示例
现在,我们正在使用圆形内核膨胀图像:
import mahotas as mh import numpy as np from pylab import imshow, show # Load image image = mh.imread('sun.png', as_grey=True).astype(np.uint8) # Circular kernel with radius 5 radius = 5 kernel = mh.disk(radius) dilated_image = mh.dilate(image, kernel) # Display the dilated image imshow(dilated_image) show()
输出
以下是上述代码的输出: