MatLab - смещение изображения с помощью FFT

Я хочу сместить изображение (представленное 2D-матрицей), используя умножение егоfft по exp (-j * 2 * pi * x * F), где x - смещение. Я имею:

input=peaks(200);
H=fftshift(fft2(fftshift(input)));
x=19;
H=H*exp(-1i*x*2*pi*F);
IF_image=fftshift(ifft2(fftshift(H)));
imshow(IF_image)

Но у меня проблемы с идентификацией / представлением F в H [F], так как мой ввод - двумерный массив. Как я мог это сделать? Желаемым результатом будет мое исходное изображение, смещенное по горизонтальной оси (на x единиц) в том же кадре, чтобы оно начиналось с x + 1. В качестве примера:

Еслиinput=

1 2 3 4 5
6 7 8 9 0

и х = 2, я хочу:

4 5 1 2 3
9 0 6 7 8

Ответы на вопрос(1)

Ваш ответ на вопрос