- 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 - 2D拉普拉斯滤波器
- Mahotas - 多数滤波器
- Mahotas - 均值滤波器
- Mahotas - 中值滤波器
- Mahotas - Otsu方法
- Mahotas - 高斯滤波
- Mahotas - 击中击不中变换
- Mahotas - 标记最大数组
- Mahotas - 图像的平均值
- Mahotas - SURF密集点
- Mahotas - SURF积分
- Mahotas - Haar变换
- 突出图像最大值
- 计算线性二值模式
- 获取标签的边界
- 反转Haar变换
- Riddler-Calvard方法
- 标记区域的大小
- Mahotas - 模板匹配
- 加速鲁棒特征
- 移除带边框的标记
- Mahotas - Daubechies小波
- Mahotas - Sobel边缘检测
Mahotas - 图像腐蚀
在图像处理中,腐蚀图像指的是缩小图像的像素。
腐蚀过程会去除图像边缘周围的像素。此操作扫描图像并检查特定像素邻域内的所有像素是否为前景像素。如果是,则像素会被腐蚀或移除。
在Mahotas中腐蚀图像
在Mahotas中腐蚀图像指的是去除图像中对象或区域边界处的像素数量。此操作通常用于修改图像中的形状和结构。
我们可以使用erode()函数在mahotas中腐蚀图像。它用于使用结构元素B缩小元素A。
结构元素是一个小的矩阵或形状,定义了每个像素周围的邻域。它用于确定在腐蚀过程中应考虑哪些像素。
mahotas.erode()函数
mahotas.erode()函数以输入图像和结构元素作为参数,并返回一个新的NumPy数组。
输出像素的值由邻域中所有像素的最小值确定。如果任何邻域像素的值为0,则将像素设置为0。
erode()函数逐像素扫描图像,并检查由结构元素定义的邻域。
如果任何相邻像素是对象的一部分,则腐蚀操作会将这些像素移除到对象的边界,使其变小。
语法
以下是mahotas中erode()函数的基本语法:
mahotas.erode(A, Bc={3x3 cross}, out={np.empty_as(A)})
其中,
A - 它是要执行腐蚀的输入图像。它应该是一个NumPy数组,表示灰度图像。
Bc(可选) - 它用于腐蚀的结构元素。默认情况下,它设置为一个3x3十字形结构元素。
out(可选) - 它指定用于存储结果的输出数组。
示例
以下是使用erode()函数在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 erosion with a square kernel of size 3x3
eroded_image = mh.erode(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 eroded image
axes[1].imshow(eroded_image, cmap='gray')
axes[1].set_title('Eroded 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 erosion with the largest structuring element
largest_se = mh.disk(8)
eroded_image = mh.erode(image, Bc=largest_se)
# Performing additional erosions with smaller structuring elements
smaller_se_1 = mh.disk(2)
smaller_se_2 = mh.disk(5)
eroded_image = mh.erode(eroded_image, Bc=smaller_se_1)
eroded_image = mh.erode(eroded_image, Bc=smaller_se_2)
# Displaying the eroded image
imshow(eroded_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 10
radius = 10
kernel = mh.disk(radius)
eroded_image = mh.erode(image, kernel)
# Display the eroded image
imshow(eroded_image)
show()
输出
以下是上述代码的输出: