MATLAB在频域中旋转图像

时间:2016-03-28 01:10:48

标签: matlab image-processing fft image-rotation

我想在频域中旋转图像。然而,在图片中有一些像别名的东西。有什么问题,如何解决?假设我只有图像的FFT结果并知道图像域中的旋转角度。

我的代码和示例图片如下:

close all
f=imread('cameraman.tif');
theta=pi/3;
T=[cos(theta) sin(theta) 0;
  -sin(theta) cos(theta) 0
      0          0       1];

t2 = maketform('affine',T);
g2 = imtransform(f,t2);
figure,imshow(f),title('Original image') % original image
figure,imshow(g2),title('Rotate image')  % rotated image

f_shift = fftshift(f);
f_fft   = fftshift(fftn(f_shift));
g2 = imtransform(f_fft,t2);   % rotation frequency domain
figure,imshow(abs(g2),[]),imcontrast % rotation in frequency domain
image_rotate = ifftshift(ifftn(g2));
figure,imshow(abs(image_rotate),[])  % result in image domain

enter image description here

0 个答案:

没有答案