Arrays 替代多个padarray调用以获取图像的周界掩码 我有一个双打代码 IMG,我用它来掩码多个掩码掩码.*img < /代码>,其中掩码在中间有1个值,但是在边界上线性地变成0个,例如对于5x5的掩码,它将有点像 0.1 0.1 0.1 0.1 0.1 0 0.5 0.5 0.5 0.1 0.1 0.5 1 0.5 0.1 0.1 0.5 0.5 0.5 0.1 0.1 0.1 0.1 0.1 0.1

Arrays 替代多个padarray调用以获取图像的周界掩码 我有一个双打代码 IMG,我用它来掩码多个掩码掩码.*img < /代码>,其中掩码在中间有1个值,但是在边界上线性地变成0个,例如对于5x5的掩码,它将有点像 0.1 0.1 0.1 0.1 0.1 0 0.5 0.5 0.5 0.1 0.1 0.5 1 0.5 0.1 0.1 0.5 0.5 0.5 0.1 0.1 0.1 0.1 0.1 0.1,arrays,image,matlab,Arrays,Image,Matlab,我目前的想法是使用x=one(M) 然后创建一系列递减值y=[0.9 0.5 0.3 0.1] 然后呢 for k = 1: size(y) x = padarray(x,[1 1], y(k)) 它会将y的值作为围绕x的周长添加多次,每次一个。有没有更聪明的方法来制作这种周边逐渐变细的面具?一个有趣的方法来做类似的事情。其中,向量锥度与5乘5矩阵的中心行相同。行是通过将转置中的对应元素与向量Taper进行比较生成的,该向量是Taper. 分为几个步骤: 第1行:min([0.1 0.5

我目前的想法是使用
x=one(M)
然后创建一系列递减值
y=[0.9 0.5 0.3 0.1]
然后呢

for k = 1: size(y)
   x = padarray(x,[1 1], y(k))

它会将y的值作为围绕x的周长添加多次,每次一个。有没有更聪明的方法来制作这种周边逐渐变细的面具?

一个有趣的方法来做类似的事情。其中,向量
锥度
与5乘5矩阵的中心行相同。行是通过将转置中的对应元素与向量
Taper
进行比较生成的,该向量是
Taper.

分为几个步骤: 第1行:
min([0.1 0.5 1 0.5 0.1],[0.1])→ <代码>[0.10.1 0.1 0.1 0.1 0.1]

第2行:
min([0.1 0.5 1 0.5 0.1],[0.5])→ <代码>[0.1 0.5 0.5 0.5 0.1]

第3行:
min([0.1 0.5 1 0.5 0.1],[1])→ <代码>[0.10.5 1 0.5 0.1]

第4行:
min([0.1 0.5 1 0.5 0.1],[0.5])→ <代码>[0.1 0.5 0.5 0.5 0.1]

第5行:
min([0.1 0.5 1 0.5 0.1],[0.1])→ <代码>[0.1 0.1 0.1 0.1 0.1 0.1]

Taper = [0.1 0.5 1 0.5 0.1];
Result = min(Taper, Taper.');

Result

有趣的想法。如何将其扩展到行数多于列数的非对称情况,或者列数多于行数的非对称情况?没有线索,这将取决于您希望如何配置锥度。理想情况下,我希望使用环形图案,其中最外层的行和列填充一个值,然后是一个较大值的环,等等。当尺寸不相等时,环的两侧必须有较大的厚度。