Поворот изображения в матричном коде домена частоты

Я хочу сделать поворот изображения с помощью кода, подобного приведенному ниже, но я не могу получить ответ, может ли кто-нибудь сделать поворот изображения в частотной области (если вы знаете, что вращение в частотной области выполняется с помощью imrotate, вы можете написать свой код). хочу написать код в Matlab для поворота изображения в частотной области. Сначала я должен изменить декартову координату на полярную, затем взять fft, после взятия fft, сделав поворот, затем снова взяв обратный fft, чтобы получить повернутое изображение в пространственной области. Может кто-нибудь помочь мне, спасибо. Ниже я пишу код, но не могу получить повернутое изображение. Благодарю.

clear;
im1 = imread('cameraman.tif');imshow(im1);  
ft=fft2(im1);
ft=fftshift(ft);
[m,n]=size(ft);
thet = pi/2;
mm = m*sqrt(2);
nn = n*sqrt(2);
for t=1:mm
   for s=1:nn
      i = uint16((t-mm/2)*cos(thet)+(s-nn/2)*sin(thet)+m/2);
      j = uint16(-(t-mm/2)*sin(thet)+(s-nn/2)*cos(thet)+n/2);
      if i>0 && j>0 && i<=m && j<=n           
         im2(t,s)=ft(i,j);
      end
   end
end
Y=fftshift(im2);
y=ifft2(Y);
figure;
imshow(y);

0 ответов

Другие вопросы по тегам