如何制作2D / anD掩模:信号周围的框

时间:2013-10-01 11:54:25

标签: arrays matlab 2d

我试图为2D图像制作2D蒙版,或者通常为nD阵列制作nD蒙版。 所以我有一个数组,信号位置和信号宽度,例如。

mask=ones(10,10);
pks=[[3 4]; [1 5]];
pks=sub2ind(size(mask),pks(:,1),pks(:,2)); % linear indices
xwidth=2; ywidth=3;

我想要的是用pks填充pks周围+/- x / ywidth的区域。

mask(aroundpks)=0;

当然,我可以使用for循环执行此操作,但它看起来很笨拙,并且可能很难为nD情况明确制作for循环。

1 个答案:

答案 0 :(得分:1)

mask0=zeros(10,10);
mask0(pks)=1;
mask0=mask0>0;
mask0=imdilate(mask0, ones(2*ywidth+1, 2*xwidth+1))
mask(mask0)=0;

不确定它是否是最有效的解决方案,但也应该使用ND matixes,只需在zeros()ones()函数中添加其他维度的数据