Main Content

imgaussfilt

图像的二维高斯滤波

说明

B = imgaussfilt(A) 使用标准差为 0.5 的二维高斯平滑核对图像 A 进行滤波,并在 B 中返回滤波后的图像。

B = imgaussfilt(A,sigma) 使用由 sigma 指定标准差的二维高斯平滑核对图像 A 进行滤波。

示例

B = imgaussfilt(___,Name,Value) 使用名称-值参量来控制滤波的各个方面。

示例

全部折叠

读取要滤波的图像。

I = imread("cameraman.tif");

用标准差为 2 的高斯滤波器对图像进行滤波。

Iblur = imgaussfilt(I,2);

以蒙太奇方式显示原始图像和滤波后的图像。

montage({I,Iblur})
title("Original Image (Left) Vs. Gaussian Filtered Image (Right)")

Figure contains an axes object. The hidden axes object with title Original Image (Left) Vs. Gaussian Filtered Image (Right) contains an object of type image.

输入参数

全部折叠

要滤波的图像,指定为任意维度的数值数组。

数据类型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

高斯分布的标准差,指定为正数或由正数组成的二元素向量。如果指定标量,则 imgaussfilt 使用方高斯核。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量后,但对各个参量对组的顺序没有要求。

如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: 'FilterSize',3

高斯滤波器的大小,指定为正奇数或由正奇数组成的二元素向量。如果指定标量,则 imgaussfilt 使用方滤波器。默认滤波器大小为 2*ceil(2*sigma)+1

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

图像填充,指定为下列值之一。

描述
数值标量用常量值元素填充图像。
'circular'

通过循环重复维度内的元素来填充。

'replicate'

通过重复数组的边界元素来填充。

'symmetric'

用自身的镜面反射填充图像。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string

要在其中执行滤波的域,指定为下列值之一:

描述
'auto'基于内部启发式方法,在空间域或频域中执行卷积。
'frequency'在频域中执行卷积。
'spatial'在空间域中执行卷积。

数据类型: char | string

输出参量

全部折叠

滤波后的图像,返回为与输入图像 A 具有相同的类和大小的数值数组。

提示

  • 如果图像 A 包含值为 InfNaN 的元素,则频域滤波的 imgaussfilt 的行为会是未定义状态。如果将 'FilterDomain' 名称值参量设置为 'frequency',或将其设置为 'auto' 并且 imgaussfilt 使用频域滤波,就会发生这种情况。要以类似于 imfilter 的方式限制输出中 InfNaN 的传播,请考虑将 'FilterDomain' 名称值参量设置为 'spatial'

  • 如果将 'FilterDomain' 名称值参量设置为 'auto',则 imgaussfilt 使用内部启发式方法来确定是空间域更快还是频域滤波更快。这种启发式方法依赖于机器,可能因不同配置而异。为了获得最优性能,请尝试两个选项 'spatial''frequency',以确定适合您的图像和核大小的最佳滤波域。

  • 如果未指定 'Padding' 名称值参量,则 imgaussfilt 默认使用 'replicate' 填充,这与 imfilter 使用的默认填充不同。

扩展功能

版本历史记录

在 R2015a 中推出

全部展开