文档

imgaussfilt

二维高斯图像滤波

语法

B = imgaussfilt (A)
B = imgaussfilt(σ)
B = imgaussfilt(___、名称、值,…)
gpuarrayB = imgaussfilt (gpuarrayA,___

描述

B= imgaussfilt (一个过滤器的形象一个其二维高斯平滑核的标准差为0.5。返回B,即过滤后的图像。

B= imgaussfilt (一个σ过滤器的形象一个的二维高斯平滑核,其标准差为σ

B= imgaussfilt (___,名称,值,……)过滤器的形象一个使用名称-值对来控制过滤的各个方面。

例子

gpuarrayB= imgaussfilt (gpuarrayA___在图形处理器上进行过滤操作。输入图像必须是agpuArray.函数返回一个gpuArray.此语法需要并行计算工具箱™。

例子

全部折叠

读取待过滤图像。

我= imread (“cameraman.tif”);

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

Iblur = imgaussfilt(I, 2);

显示所有结果进行比较。

次要情节(1、2、1)imshow (I)标题(原始图像的);次要情节(1、2、2)imshow (Iblur)标题('高斯滤波图像,\sigma = 2'

这个例子展示了如何在GPU上执行高斯平滑操作。

读取待过滤的图像到gpuArray中。

我= gpuArray (imread (“cameraman.tif”));

执行高斯平滑。

Iblur = imgaussfilt(I, 2);

显示所有结果进行比较。

次要情节(1、2、1),imshow (I)、标题(原始图像的);次要情节(1、2、2),imshow (Iblur)标题('高斯滤波图像,\sigma = 2'

输入参数

全部折叠

要过滤的图像,指定为任何维数的实数非稀疏矩阵。

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

高斯分布的标准差,用一个标量或两个元素的正矢量表示。如果指定一个标量,则高斯核为平方。

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

为GPU输入图像,指定为GPU阵列。

名称-值对的观点

指定逗号分隔的可选对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在单引号内(' ').可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:B = imgaussfilt(“FilterSize”,3);

全部折叠

高斯过滤器的大小,指定为一个标量或正奇数的2元素向量。如果指定标量,则筛选器为正方形。

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

在过滤之前在图像上使用的填充,指定为以下值之一或数值标量。如果指定一个标量(X),则隐式假定图像边界以外的输入图像值具有该值X

价值 描述
“圆”

衬垫内元素循环重复。

“复制”

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

“对称”

衬垫图像与镜子反射本身。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串

执行过滤的域,指定为以下值之一:

价值 描述
“汽车” 基于内部启发式在空间或频域执行卷积。
“频率” 在频域进行卷积。
“空间” 在空间域进行卷积。

数据类型:字符|字符串

输出参数

全部折叠

经过过滤的图像,返回一个实的、非稀疏的矩阵,大小和类别与输入图像相同。

过滤后的图像,作为一个gpuArray返回。

提示

  • 如果图像一个包含年代或S,行为imgaussfilt对于频域滤波未定义。如果您设置了“FilterDomain”参数“频率”或者如果你把它设置成“汽车”而且imgaussfilt使用频域滤波。限制…的传播年代和S的输出方式类似于imfilter,请考虑设置“FilterDomain”参数“空间”

  • 当你设置“FilterDomain”参数“汽车”imgaussfilt使用内部启发式来确定是空间域滤波还是频域滤波更快。这种启发式依赖于机器,可能会因不同的配置而有所不同。要获得最佳性能,请尝试这两个选项,“空间”而且“频率”,以确定您的图像和内核大小的最佳过滤域。

  • 如果不指定“填充”参数,imgaussfilt使用“复制”的默认填充,它不同于imfilter

扩展功能

介绍了R2015a

这个话题有帮助吗?