Matlab - 增加阵列中图案的分辨率
Matlab - increase resolution of pattern in array
我已经将图案存储在数组中,大小为 1xM。
Pattern = [0,0,1,0,1,0,1,0,0]
绘制时,它是 3x3 正方形,其中 1 被高亮显示。
我想将分辨率提高 4 倍。所以我的正方形现在是 12x12。
我尝试了 imresize
但我失败了。我还想用零创建 12x12 矩阵,并根据我的原始数组以某种方式填充它。
最好的办法就是上图。左边是我有的,右边是我想要的。
使用repelem
(在R2015a中引入):
Pattern = [0,0,1,0,1,0,1,0,0];
Pattern = reshape(Pattern, 3, 3);
N = 4;
Result = repelem(Pattern, N, N);
或者简单地使用如下索引:
Pattern = [0,0,1,0,1,0,1,0,0];
Pattern = reshape(Pattern, 3, 3);
N = 4;
Result = Pattern(1/N:1/N:size(Pattern,1), 1/N:1/N:size(Pattern,2));
我不确定 imresize
为什么让你失望。它工作正常,但您需要确保使用最近邻插值。 imresize
的默认插值方法是双三次插值,这可能就是您没有得到正确答案的原因。指定一个额外的第三个参数,它是一个覆盖插值方案的字符串,在您的情况下,您需要使用最近的邻居 - 即 'nearest'
:
Pattern = [0,0,1,0,1,0,1,0,0];
P = reshape(Pattern, 3, 3);
N = 4;
out = imresize(P, N, 'nearest');
我们得到:
>> out
out =
0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0 0
我已经将图案存储在数组中,大小为 1xM。
Pattern = [0,0,1,0,1,0,1,0,0]
绘制时,它是 3x3 正方形,其中 1 被高亮显示。
我想将分辨率提高 4 倍。所以我的正方形现在是 12x12。
我尝试了 imresize
但我失败了。我还想用零创建 12x12 矩阵,并根据我的原始数组以某种方式填充它。
最好的办法就是上图。左边是我有的,右边是我想要的。
使用repelem
(在R2015a中引入):
Pattern = [0,0,1,0,1,0,1,0,0];
Pattern = reshape(Pattern, 3, 3);
N = 4;
Result = repelem(Pattern, N, N);
或者简单地使用如下索引:
Pattern = [0,0,1,0,1,0,1,0,0];
Pattern = reshape(Pattern, 3, 3);
N = 4;
Result = Pattern(1/N:1/N:size(Pattern,1), 1/N:1/N:size(Pattern,2));
我不确定 imresize
为什么让你失望。它工作正常,但您需要确保使用最近邻插值。 imresize
的默认插值方法是双三次插值,这可能就是您没有得到正确答案的原因。指定一个额外的第三个参数,它是一个覆盖插值方案的字符串,在您的情况下,您需要使用最近的邻居 - 即 'nearest'
:
Pattern = [0,0,1,0,1,0,1,0,0];
P = reshape(Pattern, 3, 3);
N = 4;
out = imresize(P, N, 'nearest');
我们得到:
>> out
out =
0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0 0