- 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 - Haralick特征
- 标记区域的权重
- 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.gaussian_filter()函数对图像执行高斯滤波。此函数通过使用称为高斯核的特殊矩阵来对图像应用模糊效果。
高斯核是一个特殊的矩阵,其数字以特定方式排列。核中的每个数字代表一个权重。
将核放置在图像中的每个像素上,并且相邻像素的值与其在核中的相应权重相乘。
然后将相乘的值相加,并将其赋值为中心像素的新值。对图像中的每个像素重复此过程,从而产生模糊的图像,其中减少了锐利细节和噪声。
mahotas.gaussian_filter()函数
mahotas.gaussian_filter()函数以灰度图像作为输入,并返回图像的模糊版本作为输出。
模糊的程度由sigma值决定。sigma值越高,应用于输出图像的模糊程度就越大。
语法
以下是mahotas中gaussian_filter()函数的基本语法:
mahotas.gaussian_filter(array, sigma, order=0, mode='reflect', cval=0., out={np.empty_like(array)})
其中:
array - 输入图像。
sigma - 决定高斯核的标准差。
order (可选) - 指定高斯滤波器的阶数。其值可以是0、1、2或3(默认为0)。
mode (可选) - 指定如何处理边界(默认为'reflect')。
cval (可选) - 当mode为'constant'时应用的填充值(默认为0)。
out (可选) - 指定存储输出图像的位置(默认为与array相同大小的数组)。
示例
在下面的示例中,我们使用mh.gaussian_filter()函数对图像应用高斯滤波。
import mahotas as mh import numpy as np import matplotlib.pyplot as mtplt # Loading the image image = mh.imread('tree.tiff') # Converting it to grayscale image = mh.colors.rgb2gray(image) # Applying gaussian filtering gauss_filter = mh.gaussian_filter(image, 4) # Creating a figure and axes for subplots fig, axes = mtplt.subplots(1, 2) # Displaying the original image axes[0].imshow(image) axes[0].set_title('Original Image') axes[0].set_axis_off() # Displaying the gaussian filtered image axes[1].imshow(gauss_filter) axes[1].set_title('Gaussian Filtered Image') axes[1].set_axis_off() # Adjusting spacing between subplots mtplt.tight_layout() # Showing the figures mtplt.show()
输出
以下是上述代码的输出:
不同阶数的滤波
我们可以对图像进行不同阶数的高斯滤波。高斯滤波中的阶数决定了应用于图像的平滑度(模糊度)。
阶数越高,应用于图像的平滑效果就越大。
处理非常嘈杂的图像时,较高的阶数很有用。但是,较高的阶数也会增加处理时间,因为滤波器会多次应用。
0阶应用高斯滤波器一次,1、2或3阶分别应用高斯滤波器两次、三次和四次。
在mahotas中,要进行不同阶数的高斯滤波,我们将0以外的任何值作为order参数传递给gaussian_filter()函数。
示例
在下面提到的示例中,我们对图像应用不同阶数的高斯滤波。
import mahotas as mh import numpy as np import matplotlib.pyplot as mtplt # Loading the image image = mh.imread('sea.bmp') # Converting it to grayscale image = mh.colors.rgb2gray(image) # Applying gaussian filtering gauss_filter = mh.gaussian_filter(image, 3, 1) # Creating a figure and axes for subplots fig, axes = mtplt.subplots(1, 2) # Displaying the original image axes[0].imshow(image) axes[0].set_title('Original Image') axes[0].set_axis_off() # Displaying the gaussian filtered image axes[1].imshow(gauss_filter) axes[1].set_title('Gaussian Filtered Image') axes[1].set_axis_off() # Adjusting spacing between subplots mtplt.tight_layout() # Showing the figures mtplt.show()
输出
上述代码的输出如下:
'Mirror'模式下的滤波
将滤波器应用于图像时,确定如何处理图像的边界非常重要。“镜像”模式是一种常见的方法,它通过镜像边界处的图像内容来处理边界像素。
这意味着图像边界之外的值是通过镜像图像内最近的像素获得的。这是通过沿边缘镜像现有像素来完成的。
这种镜像技术确保了实际图像和镜像图像之间平滑的过渡,从而产生更好的连续性。
示例
在这里,我们使用“镜像”模式对图像应用高斯滤波。
import mahotas as mh import numpy as np import matplotlib.pyplot as mtplt # Loading the image image = mh.imread('sun.png') # Converting it to grayscale image = mh.colors.rgb2gray(image) # Applying gaussian filtering gauss_filter = mh.gaussian_filter(image, 3, 0, mode='mirror') # Creating a figure and axes for subplots fig, axes = mtplt.subplots(1, 2) # Displaying the original image axes[0].imshow(image) axes[0].set_title('Original Image') axes[0].set_axis_off() # Displaying the gaussian filtered image axes[1].imshow(gauss_filter) axes[1].set_title('Gaussian Filtered Image') axes[1].set_axis_off() # Adjusting spacing between subplots mtplt.tight_layout() # Showing the figures mtplt.show()
输出
执行上述代码后,我们将获得以下输出: