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

#matlab #image-processing #fft #zero-pad

#matlab #обработка изображений #БПФ #нулевая площадка

Вопрос:

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

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

Ответ №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');