Smooth values of 3-dimensional matrix data.
This function can be used, for example, to reduce the impact of noise in data before calculating isosurfaces.
data must be a non-singleton 3-dimensional matrix. The smoothed data from this matrix is returned in smoothed_data which is of the same size as data.
The option input method determines which convolution kernel is used for the smoothing process. Possible choices:
"box"
, "b"
(default)to use a convolution kernel with sharp edges.
"gaussian"
, "g"
to use a convolution kernel that is represented by a non-correlated trivariate normal distribution function.
sz is either a vector of 3 elements representing the size of the convolution kernel in x-, y- and z-direction or a scalar, in which case the same size is used in all three dimensions. The default value is 3.
When method is "gaussian"
, std_dev defines the standard
deviation of the trivariate normal distribution function. std_dev is
either a vector of 3 elements representing the standard deviation of the
Gaussian convolution kernel in x-, y- and z-directions or a scalar, in which
case the same value is used in all three dimensions. The default value is
0.65.
See also: isosurface, isonormals, patch.
The following code
data = rand (10, 10, 10); clf; subplot (1, 2, 1); patch (isosurface (data, .5), ... "FaceColor", "blue", "EdgeColor", "k"); title ("Original data"); view (3); smoothed_data = smooth3 (data); subplot (1, 2, 2); patch (isosurface (smoothed_data, .5), ... "FaceColor", "blue", "EdgeColor", "k"); title ("Smoothed data"); view (3);
Produces the following figure
Figure 1 |
---|
Package: octave