图像的二维高斯滤波
B = imgaussfilt(A)
B = imgaussfilt(A,sigma)
B = imgaussfilt( ___ ,Name,Value)
B = imgaussfilt( A ) 使用标准差为 0.5 的二维高斯平滑核对图像 A 进行滤波,并在 B 中返回滤波后的图像。
B = imgaussfilt( A )
B
A
示例
B = imgaussfilt( A , sigma ) 使用由 sigma 指定标准差的二维高斯平滑核对图像 A 进行滤波。
B = imgaussfilt( A , sigma )
sigma
B = imgaussfilt( ___ , Name,Value ) 使用名称-值参量来控制滤波的各个方面。
B = imgaussfilt( ___ , Name,Value )
Name,Value
全部折叠
读取要滤波的图像。
I = imread('cameraman.tif');
用标准差为 2 的高斯滤波器对图像进行滤波。
Iblur = imgaussfilt(I,2);
以蒙太奇方式显示原始图像和滤波后的图像。
montage({I,Iblur}) title('Original Image (Left) Vs. Gaussian Filtered Image (Right)')
要滤波的图像,指定为任意维度的数值数组。
数据类型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32
single
double
int8
int16
int32
uint8
uint16
uint32
0.5
高斯分布的标准差,指定为正数或由正数组成的二元素向量。如果指定标量,则 imgaussfilt 使用方高斯核。
imgaussfilt
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
int64
uint64
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN ,其中 Name 是参量名称, Value 是对应的值。名称-值参量必须出现在其他参量后,但对各个参量对组的顺序没有要求。
Name1=Value1,...,NameN=ValueN
Name
Value
如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。
示例: 'FilterSize',3
'FilterSize',3
FilterSize
高斯滤波器的大小,指定为正奇数或由正奇数组成的二元素向量。如果指定标量,则 imgaussfilt 使用方滤波器。默认滤波器大小为 2*ceil(2* sigma )+1 。
2*ceil(2* sigma )+1
Padding
'replicate'
'circular'
'symmetric'
图像填充,指定为下列值之一。
通过循环重复维度内的元素来填充。
通过重复数组的边界元素来填充。
用自身的镜面反射填充图像。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string
logical
char
string
FilterDomain
'auto'
'spatial'
'frequency'
要在其中执行滤波的域,指定为下列值之一:
数据类型: char | string
滤波后的图像,返回为与输入图像 A 具有相同的类和大小的数值数组。
如果图像 A 包含值为 Inf 或 NaN 的元素,则频域滤波的 imgaussfilt 的行为会是未定义状态。如果将 ' FilterDomain ' 名称值参量设置为 'frequency' ,或将其设置为 'auto' 并且 imgaussfilt 使用频域滤波,就会发生这种情况。要以类似于 imfilter 的方式限制输出中 Inf 和 NaN 的传播,请考虑将 'FilterDomain' 名称值参量设置为 'spatial' 。
Inf
NaN
' FilterDomain '
imfilter
'FilterDomain'
如果将 'FilterDomain' 名称值参量设置为 'auto' ,则 imgaussfilt 使用内部启发式方法来确定是空间域更快还是频域滤波更快。这种启发式方法依赖于机器,可能因不同配置而异。为了获得最优性能,请尝试两个选项 'spatial' 和 'frequency' ,以确定适合您的图像和核大小的最佳滤波域。
如果未指定 ' Padding ' 名称值参量,则 imgaussfilt 默认使用 'replicate' 填充,这与 imfilter 使用的默认填充不同。
' Padding '
用法说明和限制:
imgaussfilt 支持 C 代码生成(需要 MATLAB ® Coder™ )。请注意,如果您选择通用的 MATLAB Host Computer 目标平台, imgaussfilt 生成的代码将使用平台特定的预编译共享库。使用共享库可保留性能上的优化,但适用范围仅限于生成的代码所适用的目标平台。有关详细信息,请参阅 Image Processing Toolbox 中代码生成支持的类型 。
MATLAB Host Computer
imgaussfilt 不支持指定为 'frequency' 的 FilterDomain 名称-值参量。在生成的代码中,滤波始终在空间域中执行。
生成代码时,所有字符串和字符向量输入参量都必须为编译时常量。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅 在基于线程的环境中运行 MATLAB 函数 。
此函数完全支持 GPU 数组。有关详细信息,请参阅 GPU 上的图像处理 。
全部展开
imgaussfilt 现在支持基于线程的环境。
imgaussfilt3 | imfilter | fspecial
imgaussfilt3
fspecial
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.