基于FFT的图像平移与旋转实验的Matlab代码
时间: 2023-06-26 17:08:02 浏览: 88
source-builder_2msrqy.zip_FFT图像平移
以下是基于FFT的图像平移与旋转的Matlab代码示例:
```matlab
% 图像平移
clear all;
close all;
clc;
% 读取图像
I = imread('lena.jpg');
figure(1);
imshow(I);
title('原图像');
% 图像平移参数设置
tx = 50; % 水平方向平移距离
ty = 100; % 垂直方向平移距离
% 图像尺寸
[M, N] = size(I);
% 构造平移矩阵
T = [1 0 tx; 0 1 ty; 0 0 1];
% 构造仿射变换矩阵
T = maketform('affine', T);
% 执行图像变换
I2 = imtransform(I, T, 'XData', [1 N], 'YData', [1 M]);
% 显示变换后的图像
figure(2);
imshow(I2);
title('平移后的图像');
```
```matlab
% 图像旋转
clear all;
close all;
clc;
% 读取图像
I = imread('lena.jpg');
figure(1);
imshow(I);
title('原图像');
% 图像旋转参数设置
theta = pi/4; % 旋转角度,弧度制
% 图像尺寸
[M, N] = size(I);
% 构造旋转矩阵
R = [cos(theta) -sin(theta) 0; sin(theta) cos(theta) 0; 0 0 1];
% 构造仿射变换矩阵
T = maketform('affine', R);
% 执行图像变换
I2 = imtransform(I, T, 'XData', [1 N], 'YData', [1 M]);
% 显示变换后的图像
figure(2);
imshow(I2);
title('旋转后的图像');
```
这里使用了Matlab内置的`imtransform`函数来进行平移和旋转变换,其中平移变换使用了仿射变换矩阵,旋转变换则使用了旋转矩阵。
阅读全文