Изображение нулевой площадки перед БПФ в MATLAB

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

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


person Nasim    schedule 25.04.2019    source источник


Ответы (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');
person rinkert    schedule 25.04.2019