在MATLAB中进行FFT之前的零填充图像

时间:2019-04-25 05:04:58

标签: matlab image-processing fft zero-pad

我的图像尺寸为64x64,我应该对其进行傅立叶变换。我应该在原始图像的右边和底部用零填充,使其变为128x128,然后再次对其进行傅立叶变换。然后对256x256和512x512大小的图像重复此过程,并找到最终傅立叶变换之间的关系。

谁能告诉我该怎么做?我不知道如何对图像进行零填充以获得半个零的双倍图像。

1 个答案:

答案 0 :(得分:1)

有多种方法可以将填充零。您可以使用两倍大小的zeros创建一个数组,然后将图像放入左上角的索引中:

A = imread('coins.png');

[s1, s2] = size(A);
B = zeros(s1*2, s2*2, class(A));
B(1:s1,1:s2) = A;

为确保新数组B与原始图像A具有相同的类型,我使用了class(A)

或者,您可以使用padarray。指定在每个方向上要填充的元素数量,要填充的元素以及放置的位置('post')。

C = padarray(A, [s1 s2], 0, 'post');