matlab图像旋转缩放和频谱图
时间: 2023-07-13 13:15:57 浏览: 145
用matlab对图像进行缩放与旋转.pdf
图像旋转和缩放可以使用Matlab中的imrotate和imresize函数实现。频谱图可以使用Matlab中的fft2函数和fftshift函数实现。
图像旋转:
```matlab
% 读入图像
img = imread('lena.png');
% 将图像逆时针旋转30度
img_rotated = imrotate(img, -30, 'bilinear', 'crop');
% 显示结果
subplot(1,2,1), imshow(img), title('原始图像');
subplot(1,2,2), imshow(img_rotated), title('旋转后的图像');
```
图像缩放:
```matlab
% 读入图像
img = imread('lena.png');
% 将图像缩小一半
img_scaled = imresize(img, 0.5, 'bilinear');
% 显示结果
subplot(1,2,1), imshow(img), title('原始图像');
subplot(1,2,2), imshow(img_scaled), title('缩小后的图像');
```
频谱图:
```matlab
% 读入图像
img = imread('lena.png');
% 对图像进行傅里叶变换
img_fft = fft2(img);
% 对频谱进行移动
img_fft_shifted = fftshift(img_fft);
% 取模
img_fft_abs = abs(img_fft_shifted);
% 对数变换
img_fft_log = log(1+img_fft_abs);
% 显示结果
subplot(1,2,1), imshow(img), title('原始图像');
subplot(1,2,2), imshow(img_fft_log, []), title('频谱图');
```
这里使用的是对数变换,可以更清楚地显示频谱图的细节。另外,最后的imshow函数中的[]表示使用默认的显示范围,即将最小值映射到0,最大值映射到255。
阅读全文