# imgaussfilt3

3-D Gaussian filtering of 3-D images

## Syntax

``B = imgaussfilt3(A)``
``B = imgaussfilt3(A,sigma)``
``B = imgaussfilt3(___,Name,Value)``

## Description

example

````B = imgaussfilt3(A)` filters 3-D image `A` with a 3-D Gaussian smoothing kernel with standard deviation of 0.5, and returns the filtered image in `B`.```
````B = imgaussfilt3(A,sigma)` filters 3-D image `A` with a 3-D Gaussian smoothing kernel with standard deviation specified by `sigma`. ```
````B = imgaussfilt3(___,Name,Value)` uses name-value pair arguments to control aspects of the filtering.```

## Examples

collapse all

Load MRI data and display it.

```vol = load('mri'); figure montage(vol.D) title('Original image volume')``` Smooth the image with a 3-D Gaussian filter.

```siz = vol.siz; vol = squeeze(vol.D); sigma = 2; volSmooth = imgaussfilt3(vol, sigma); figure montage(reshape(volSmooth,siz(1),siz(2),1,siz(3))) title('Gaussian filtered image volume')``` ## Input Arguments

collapse all

Image to be filtered, specified as a 3-D numeric array.

Data Types: `single` | `double` | `int8` | `uint8` | `int16` | `uint16` | `int32` | `uint32`

Standard deviation of the Gaussian distribution, specified as positive number or a 3-element vector of positive numbers. If `sigma` is a scalar, then `imgaussfilt3` uses a cubic Gaussian kernel.

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64`

### Name-Value Arguments

Specify optional pairs of arguments as `Name1=Value1,...,NameN=ValueN`, where `Name` is the argument name and `Value` is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and enclose `Name` in quotes.

Example: ```volSmooth = imgaussfilt3(vol,sigma,"padding","circular");```

Size of the Gaussian filter, specified as a scalar or 3-element vector of positive, odd, integers. If you specify a scalar, then `imgaussfilt3` uses a cubic filter. The default filter size is `2*ceil(2*sigma)+1`.

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64`

Image padding, specified as one of the following.

ValueDescription
numeric scalarPad image with elements of constant value.
`"circular"`

Pad with circular repetition of elements within the dimension.

`"replicate"`

Pad by repeating border elements of array.

`"symmetric"`

Pad image with mirror reflections of itself.

Data Types: `single` | `double` | `int8` | `int16` | `int32` | `int64` | `uint8` | `uint16` | `uint32` | `uint64` | `logical` | `char` | `string`

Domain in which to perform filtering, specified as one of the following values.

Filter Domain Description
`"auto"`Perform convolution in the spatial or frequency domain, based on internal heuristics.
`"frequency"`Perform convolution in the frequency domain.
`"spatial"`Perform convolution in the spatial domain.

Data Types: `char` | `string`

## Output Arguments

collapse all

Filtered image, returned as a numeric array of the same class and size as input image.

## Tips

• If image `A` contains `Inf`s or `NaN`s, then the behavior of `imgaussfilt3` for frequency domain filtering is undefined. This can happen if you set the `FilterDomain` argument to `"frequency"` or if you set it to `"auto"` and `imgaussfilt3` uses frequency domain filtering. To restrict the propagation of `Inf`s and `NaN`s in the output in a manner similar to `imfilter`, consider setting the `FilterDomain` argument to `"spatial"`.

• If you set the `FilterDomain` argument to `"auto"`, then `imgaussfilt3` uses an internal heuristic to determine whether spatial or frequency domain filtering is faster. This heuristic is machine-dependent and may vary for different configurations. For optimal performance, try both options, `"spatial"` and `"frequency"`, to determine the best filtering domain for your image and kernel size.

• If you do not specify the `Padding` argument, then `imgaussfilt3` uses `"replicate"` padding by default, which is different from the default used by `imfilter`.

## Version History

Introduced in R2015a

expand all