Нулевое изображение колодки перед FFT в MATLAB - PullRequest
1 голос
/ 25 апреля 2019

У меня есть изображение размером 64x64, и я должен взять его преобразование Фурье. Я должен заполнить нулями справа и снизу исходного изображения, чтобы сделать его 128x128, а затем снова принять его преобразование Фурье. А затем повторите эту процедуру для изображений размером 256x256 и 512x512 и найдите связь между конечными преобразованиями Фурье.

Может кто-нибудь сказать мне, как я должен это сделать? Я не знаю, как обнулить изображение, чтобы получить изображение двойного размера с половиной нулей.

1 Ответ

1 голос
/ 25 апреля 2019

Есть несколько способов обнуления. Вы можете просто создать массив, используя 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');
...