实验三
实验目的
掌握图像变换的各种方法
实验内容
一、对于图像lena,用PS加上自己的学号姓名。
二、编写—个m文件,完成:
1. 对于PS后图像lena,进行傅立叶变换,将原图和频谱图像分别显示在第—个图像窗口第—排,移位的频谱图像和反变换结果图像分别显示在第二排。
2. 对于PS后图像lena,进行离散余弦变换,将变换谱图像和反变换图像分别显示在第一个图像窗口第三排。
3. 用正交小波'db2'对PS后lena图像作一级小波分解,将一级小波分解图像和反变换图像分别显示在第一个图像窗口第四排。
注意:显示的每个上都加上标题说明是哪个操作后的结果图像。
三、变换结果进行分析
1、从移位的傅立叶频谱上分析图像的能量主要集中在低频还是高频部分?
2、为什么小波分解反变换结果直接显示的图像不对?
实验过程
第一题
>> img=imread('C:\Users\Administrator\OneDrive\桌面\yl.bmp');
>> figure (1);
>> subplot(4,2,1);imshow(img);title('原图');
>> F=fft2(img); %傅里叶变换
>> F1=log(abs(F)+1); %取模并进行缩放
>> subplot(4,2,2);imshow(F1,[]);title('傅里叶变换频谱图');
>> Fs=fftshift(F); %将频谱图中零频率成分移动至频谱图中心
>> S=log(abs(Fs)+1); %取模并进行缩放
>> subplot(4,2,3);imshow(S,[]);title('频移后的频谱图');
>> fr=real(ifft2(ifftshift(Fs))); %频率域反变换到空间域,并取实部
>> ret=im2uint8(mat2gray(fr));
>> subplot(4,2,4);imshow(ret);title('逆傅里叶变换');
第二题
>> DCT=dct2(img);
>> DCT(abs(DCT)<1)=0;
>> IDCT=idct2(DCT);
>> subplot(4,2,5);imshow(DCT);title('余弦变换谱图');
>> subplot(4,2,6);imshow(IDCT,[0,255]);title('反变换图像');
第三题
>> [ca1,ch1,cv1,cd1]=dwt2(img,'db2'); %用'db2'小波对图像进行一层小波解
>> img1=[ca1,ch1*4;cv1*4,cd1*4];%组成变换后的矩阵
>> min=min(img1(:));
>> max=max(img1(:));
>> X=idwt2(ca1,ch1,cv1,cd1,'db2');%用idwt2作反变换
>> subplot(4,2,7);imshow(img1,[min,max]);title('一级小波分解图像'); %显示变换后近似和细节图像
>> subplot(4,2,8);imshow(uint8(X));title('一级小波反变换图像');
二、变换结果分析
1、从移位的傅立叶频谱上分析图像的能量主要集中在低频还是高频部分?
答:主要集中在低频部分。
2、为什么小波分解反变换结果直接显示的图像不对?
答:分解级数不够,小波分解图没有完全显示出来。