fft2绘制图像的对数幅度谱,比较图像旋转平移和缩放后的频谱
数字图像处理实验报告
姓名: 学号: 日期:
实验要求
熟悉fft2绘制图像的对数幅度谱,比较图像旋转、平移和缩放后的频谱
用matlab读取和显示
实验代码
sina=imread('E:\数字图像处理\exp2\伊伽贝拉.jpg' );%输入图像
if isrgb(sina)
sina=rgb2gray(sina);%如果图像为RGB则转换为灰度图
end
subplot(3,2,1)
imshow(uint8(sina)) %显示图像
title('原图');
I1=fft2(sina);%对图像进行傅里叶变换
I1=fftshift(I1);
d1=log10(1+3*I1);%进行对数运算
subplot(3,2,2)
imshow(d1,[0,10])
sina1=imrotate(sina,30);%旋转图
subplot(3,2,3)
imshow(uint8(sina1))
title('旋转图');
I2=fft2(sina1);
I2=fftshift(I2);
d2=log10(1+3*I2);
subplot(3,2,4)
imshow(d2,[0,10])
sina2=imresize(sina,5);%缩放图
subplot(3,2,5)
imshow(uint8(sina2))
title('缩放图');
I3=fft2(sina2);
I3=fftshift(I3);
d3=log10(1+3*I3);
subplot(3,2,6)
imshow(d3,[0,10])
[m,n]=size(sina);
X=zeros(m,n)%存放变换后的图像
A=[1,0,0;0,1,0;-20,-30,1]
for i=1:m
for j=1:n
x=A(1,1)*j+A(2,1)*i+A(3,1);%变换后坐标
y=A(1,2)*j+A(2,2)*i+A(3,2);
x=round(x);%取整
y=round(y);
if((x>0)&&(x0)&&(y
X(i,j)=sina(y,x);
else
I4(i,j)=0;
end
end
end
实验结果截图并做分析