Поворот спектра

source = imread('Rect.bmp'); %файл с квадратным изображением

N = 64; %размер изображения

u1 = 1:N;

v1 = 1:N;

[u v] = meshgrid(1:N);

M = ones(N, N);

M(u1,v1) = (-1).^(u + v);

X = (double(source(:,:,1)) + double(source(:,:,2)) + double(source(:,:,3))) / (3 * 255);

Y = fft2(X);

 

mov = avifile('quoter_rotation068.avi'); %avi-файл для записи видео-ролика

 

for w = 1:2:180

 

Y1 = M .* Y;

Y2 = fftshift(Y1);

Y3 = imrotate(Y2, w,'bicubic', 'crop');

Y4 = fftshift(Y3);

Y5 = M .* Y4;

X3 = abs(ifft2(Y5));

 

X2 = imrotate(X, w,'bicubic', 'crop');

subplot(2, 3, 1); imshow(10 * X, colormap(jet));

subplot(2, 3, 2); imshow(10 * X2, colormap(jet));

subplot(2, 3, 3); imshow(10 * real(X3), colormap(jet));

 

subplot(2, 3, 4); imshow(10 * log(abs(fftshift(Y))), colormap(jet));

subplot(2, 3, 5); imshow(10 * log(abs(fftshift(fft2(X2)))), colormap(jet));

subplot(2, 3, 6); imshow(10 * log(abs(fftshift(Y5))), colormap(jet));

 

 

mov = addframe(mov,getframe(fig));

end;

mov = close(mov);