我有一个大小为 64x64 的图像,我应该对其进行傅里叶变换。我应该在原始图像的右侧和底部填充零以使其成为 128x128,然后再次进行傅里叶变换。然后对 256x256 和 512x512 大小的图像重复此过程,并找到最终傅里叶变换之间的关系。
谁能告诉我该怎么做?我不知道如何对图像进行零填充以获得带有半零的双倍尺寸图像。
我有一个大小为 64x64 的图像,我应该对其进行傅里叶变换。我应该在原始图像的右侧和底部填充零以使其成为 128x128,然后再次进行傅里叶变换。然后对 256x256 和 512x512 大小的图像重复此过程,并找到最终傅里叶变换之间的关系。
谁能告诉我该怎么做?我不知道如何对图像进行零填充以获得带有半零的双倍尺寸图像。
有多种方法可以归零。您可以使用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');