Matlab中的零填充

时间:2014-10-07 14:22:56

标签: matlab padding zero

我有图像,我想做采样。首先,我需要在像素之间插入零,以便[1,2,3]转换为[1,0,2,0,3]。任何人都可以告诉我如何在不使用paddarray且不使用for循环的情况下执行此操作吗?

提前谢谢!

4 个答案:

答案 0 :(得分:5)

这样的东西?:

B=zeros(size(img)*2);
B(1:2:end,1:2:end)=img;

然而,有些方法可以在matlab中进行上采样,而无需手动执行,例如interp2

答案 1 :(得分:4)

如果没有为数组中的索引指定数字,也可以使用MATLAB动态分配变量的方法。通过省略索引到数组中的某些位置,MATLAB默认会用零填充这些值。就这样:

B(1:2:5) = 1:3

B = 

1   0   2   0   3

答案 2 :(得分:3)

V = [1,2,3];

padded(numel(V)*2) = 0;
padded(1:2:end) = V

如果numel(V)为奇数

,则只处理尾随零

答案 3 :(得分:1)

有一个函数upsample可以从Octave-Forge中完成此操作 - 请参阅docs on upsample

或者您可以查看the source of upsample以查看实现它的内容。您是否反对使用包或函数?