INTERPMASK通过距离映射执行掩码插值(补间)。between或tweening是在两个图像之间生成中间帧的过程,以使第一个图像平滑地演变为第二个图像
BWq = INTERPMASK(X,BW,Xq)在逻辑矩阵BW中插入掩码
在查询点Xq处。X的元素对应于逐次矩阵
沿着BW的最后一个维度的掩模。输出的BWq是一个逻辑
除最后一个维度相等外,与BW大小相等的矩阵
到Xq中查询点的数量。
BWq = INTERPMASK(…,'interpDim',D)指定D为BW的维度
沿内插默认情况下,D只是BW的最后一个维度。
BWq = INTERPMASK(BW,Xq)假设X = 1:N,其中N为SIZE(BW,INTERPDIM)。
掩码之间的插值是通过每个掩码的距离矩阵来完成的
BW中的掩码(由IP工具箱中的BWDIST计算)使用INTERP1。
额外的参数('linear', 'pchip', 'extrapval'等)将被传递给
INTERP1和可用于控制插补的方法。提供
一个'extrapval'到输出BWq蒙版,传递一个'extrapval'为1 (TRUE)
或-1 (FALSE)到INTERPMASK,如下所示:
BWq = INTERPMASK(…,'pchip','extrapval',-1) %额外像素设置为FALSE
例如,平滑地从一个小圆插到一个大圆
正方形到一个大的圆,考虑如下:
做两个圆和一个矩形
[x,y] = meshgrid(-51:51,-51:51);
circMat =√(x。²+ y.²);
smallCirc = circMat<10;
largeCirc = circMat<30;
largeRect = false(size(x));
largeRect(2:100,2:100) = true;
将它们堆叠为掩码1、2和3
BW = cat(3,smallCirc,largeRect,largeCirc);
在蒙版之间平滑地插入
BWout1 = interpmask(1:3, BW, linspace(1,3,200),'linear');
BWout2 = interpmask(1:3, BW, linspace(1,3,200),'pchip');
图中,次要情节(1、2、1)
补丁(等值面(BWout1, 0.5),‘FaceColor’,‘g’,‘EdgeColor’,‘没有’)
Camlight, view(3), Camlight, axis image
次要情节(1、2、2)
补丁(等值面(BWout2, 0.5),‘FaceColor’,‘g’,‘EdgeColor’,‘没有’)
Camlight, view(3), Camlight, axis image
参见INTERP1。
引用作为
斯文(2023)。Interpmask -插入(补间)逻辑掩码(//www.tatmou.com/matlabcentral/fileexchange/46429-interpmask-interpolate-tween-logical-masks), MATLAB中央文件交换。检索.
MATLAB版本兼容性
平台的兼容性
窗户 macOS Linux标签
版本 | 发表 | 发布说明 | |
---|---|---|---|
1.0.0.0 |