Main Content

smooth3

对三维数据进行平滑处理

    说明

    示例

    W = smooth3(V) 对三维体数据 V 进行平滑处理并在 W 中返回平滑处理后的数据。W 是与 V 维度相同的双精度数组。

    W = smooth3(V,method) 使用指定的平滑方法定义卷积核并对数据进行平滑处理。

    示例

    W = smooth3(V,method,size) 指定平滑方法的三维窗大小。

    W = smooth3(V,method,size,sd) 指定 "gaussian" 平滑方法的标准差。

    示例

    全部折叠

    加载 mri 数据集,并将存储在 D 变量中的四维数组压缩成三维。然后对数据进行平滑处理。

    load mri
    D = squeeze(D);
    W = smooth3(D);

    将原始数据和经过平滑处理的数据显示为等值面。

    figure
    tiledlayout(1,2)
    nexttile
    p1 = patch(isosurface(D,5),"FaceColor","cyan", ...
        "EdgeColor","none");
    view(3)
    daspect([1,1,0.4])
    camlight
    isonormals(D,p1)
    title("Raw Data")
    
    nexttile
    p2 = patch(isosurface(W,5),"FaceColor","cyan", ...
        "EdgeColor","none");
    view(3)
    daspect([1,1,0.4])
    camlight
    isonormals(W,p2)
    title("Smoothed Data")

    创建由随机数据组成的 10×10×10 数组。使用大小为 5 的三维窗和 "gaussian" 方法对数据进行平滑处理。

    data = rand(10,10,10);
    data = smooth3(data,"gaussian",5);

    将数据显示为带有端顶的等值面。

    patch(isocaps(data,0.5), ...
       "FaceColor","interp","EdgeColor","none")
    p1 = patch(isosurface(data,0.5), ...
       "FaceColor","blue","EdgeColor","none");
    isonormals(data,p1)
    view(3) 
    axis vis3d tight
    camlight left
    lighting gouraud

    输入参数

    全部折叠

    三维体数据,指定为三维数组。

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

    平滑方法,指定为下列过滤器之一:

    • "box" - V 的每个窗内的加权移动平均值

    • "gaussian" - V 的每个窗内的高斯加权移动平均值

    平滑方法确定卷积核。

    所选平滑方法的窗大小,指定为正奇整数或正奇整数标量的三元素向量。如果 size 为标量,则 size 解释为 [size size size]

    窗大小确定应用于数据的平滑程度。随着窗的增大,更多数据点用于平均过程,因此发生更多平滑。

    使用 "gaussian" 平滑方法时,标准差和窗大小确定对数据应用的平滑程度。

    "gaussian" 平滑方法的标准差,指定为数值。随着标准差值的增大,过滤器窗内会应用更多平均值。

    如果平滑方法设置为 "box",则sd 不起作用。

    数据类型: single | double

    扩展功能

    版本历史记录

    在 R2006a 之前推出