对自备照片进行傅里叶变换 离散余弦变换 缩放变换 旋转变换编写一段代码完成四种变换Matlab实现
时间: 2024-10-24 08:10:18 浏览: 46
在MATLAB中,你可以使用内置函数来进行各种图像处理操作,包括傅立叶变换、离散余弦变换(DCT)、缩放变换和旋转变换。下面是一个简单的例子,展示了如何分别对一张图片进行这四项操作:
```matlab
% 加载示例图片
img = imread('example.jpg'); % 替换成实际的图片路径
% 将图像转换为灰度图像(如果原图是彩色)
if size(img, 3) == 3
img = rgb2gray(img);
end
% 傅立叶变换(FFT)
fft_img = fft2(img); % 对图像做二维傅立叶变换
% 可以通过abs(fft_img)或fft_img(abs(fft_img))查看频域信息
% 离散余弦变换(DCT)
dct_img = dct2(img); % 对图像做二维离散余弦变换
% DCT通常用于JPEG压缩,dct_img保存了系数,还原需IDCT
% 图像缩放
scale_factor = 0.5; % 缩小一半
scaled_img = imresize(img, [size(img, 1)*scale_factor, size(img, 2)*scale_factor]);
% 顺时针90度旋转
rotated_img = imrotate(img, -90); % 这里的角度是逆时针,因为MATLAB的旋转方向与顺时针相反
% 显示原始和变换后的图片
subplot(2, 2, 1), imshow(img, 'InitialMagnification', 'fit');
title('Original Image');
subplot(2, 2, 2), imshow(fft_img, 'InitialMagnification', 'fit');
title('Fourier Transform');
subplot(2, 2, 3), imshow(dct_img, 'InitialMagnification', 'fit');
title('Discrete Cosine Transform');
subplot(2, 2, 4), imshow(rotated_img, 'InitialMagnification', 'fit');
title('Rotated Image');
%
阅读全文