数字图像处理实验四--图像变换

数字图像处理实验四

(图像变换)

实验内容:
  1. 对图像lena、cameraman和face进行傅里叶变换,观察图像能量在频谱图中的分布情况。
  2. 利用Matlab生成下列图像,并对其进行旋转30度、90度和120度,然后对他们分别进行傅里叶变换。图像
  3. 对图像lena、cameraman和face用DCT变换进行图像压缩,舍掉的变换系数分别小于0.01、0.03、0.05,求经压缩、解压后的图像。
实验步骤:
  1. 对给定图像进行傅里叶变换并观察图像能量在频谱图中的分布情况。
P1 =imread('./face.jpg');
P1=im2double(P1); 
P2 =imread('./cameraman.tif');
P2=im2double(P2); 
P3 =imread('./lena.jpg');
P3=im2double(P3); 
P1f = fft2(P1);
P2f = fft2(P2);
P3f = fft2(P3);P1f1 =abs(P1f);
P2f1 = abs(P2f);
P3f1 = abs(P3f);P1f2 = fftshift(P1f1);
P2f2 = fftshift (P2f1);
P3f2 = fftshift(P3f1);figure;
subplot(3,3,1);
imshow(P1);
xlabel('原图face ');subplot(3,3,2);
imshow(P2);
xlabel('原图cameraman'); subplot(3,3,3);
imshow(P3);
xlabel('原图lena');subplot(3,3,4);
imshow(P1f,[5,30]);
xlabel('频谱图face');  subplot(3,3,5);
imshow(P2f,[5,30]);
xlabel('频谱图cameraman');subplot(3,3,6);
imshow(P3f,[5,30]);
xlabel('频谱图lena');subplot(3,3,7);
imshow(P1f2,[5,30]);xlabel('中心移到零点face');subplot(3,3,8);
imshow(P2f2,[5,30]);
xlabel('中心移到零点cameraman');

效果图:在这里插入图片描述
2.matlab生成图像并进行傅里叶旋转变换

Picture = zeros(256,256); 
Picture(28:228,108:148) = 1;
%旋转
P1=imrotate(Picture,30,'bilinear');
P2=imrotate(Picture,90,'bilinear');
P3=imrotate(Picture,120,'bilinear');
%傅里叶变换
Picturef=fft2(Picture);F=abs(Picturef);
Picturef=fftshift(F);
P1f=fft2(P1);F=abs(P1f);P1f=fftshift(F);
P2f=fft2(P2);F=abs(P2f);P2f=fftshift(F);
P3f=fft2(P3);F=abs(P3f);P3f=fftshift(F);
%显示图像
figure;
subplot(2,4,1);imshow(Picture);xlabel('原图 ');
subplot(2,4,2);imshow(P1);xlabel('旋转30度 ');
subplot(2,4,3);imshow(P2);xlabel('旋转90度');
subplot(2,4,4);imshow(P3);xlabel('旋转120度');subplot(2,4,5);imshow(Picturef,[5,50]);xlabel('原图的傅里叶频谱');
subplot(2,4,6);imshow(P1f,[5,50]);xlabel('旋转30度');
subplot(2,4,7);imshow(P2f,[5,50]);xlabel('旋转90度');
subplot(2,4,8);imshow(P3f,[5,50]);xlabel('旋转120度');

效果图:
在这里插入图片描述
3.对给定的图像按要求进行DCT变换实现图像压缩(三张图代码类似这里给出来一个)

I =imread('./lena.jpg');
[M,N]=size(I);%M=512,N=512
I=im2double(I); 
%生成标准DCT变化中的矩阵(8x8)
n=8;
[cc,rr]=meshgrid(0:n-1);
C=sqrt(2/n)*cos(pi*(2*cc+1).*rr/(2*n));
C(1,:)=C(1,:)/sqrt(2);%光亮度量化表
a=[16 11 10 16 24 40 51 61;12 12 14 19 26 58 60 55;14 13 16 24 40 57 69 56;14 17 22 29 51 87 80 62;18 22 37 56 68 109 103 77;24 35 55 64 81 104 113 92;49 64 78 87 103 121 120 101;72 92 95 98 112 100 103 99 ];%分块做DCT变换(8x8) DCT变换公式 正变换Y=CIC'
for i=1:8:Mfor j=1:8:NP=I(i:i+7,j:j+7);K=C*P*C';I1(i:i+7,j:j+7)=K;K=K./a; %量化(按位除)K(abs(K)<0.01)=0;  %舍掉的变换系数分别小于0.01 0.03 0.05I2(i:i+7,j:j+7)=K;  end 
end%分块做DCT反变换(8x8),逆变换 P=C'YC
for i=1:8:Mfor j=1:8:NP=I2(i:i+7,j:j+7).*a;%反量化K=C'*P*C;I3(i:i+7,j:j+7)=K;     end
end
figure(1);
subplot(2,2,1);imshow(I);xlabel('原图 ');
subplot(2,2,2);imshow(I1);xlabel('DCT变换后的频域图像 ');
subplot(2,2,3);imshow(I2);xlabel('量化后的频域图像 ');
subplot(2,2,4);imshow(I3);xlabel('复原图像 ');

效果图:
rena
cameraman
face

问题讨论:

图像变换是将图像从空间变换到变换域(或频率域),变换的目的是根据图像在变换域的某些性质对其进行处理。傅里叶变换是使用最广泛地一种变换,可广泛应用于图像特征提取、图像增强等方面,离散余弦变换在图像压缩算法中获得了广泛的应用。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部