发布时间 : 星期六 文章实验四 图像频域处理更新完毕开始阅读abcfafc190c69ec3d4bb7533
实验四 图像频域处理
****************共5小题****************
20124178 付蕊
一.实验目的及要求
1.了解图像变换的意义和手段;
2.熟悉离散傅立叶变换(DFT)、离散余弦变换(DCT)和离散小波变换(DWT)的基本性质及其实现方法;
3.熟练掌握FFT变换方法及应用; 4.了解二维频谱的分布特点;
5.通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换。 二.实验设备与软件 1.PC计算机
2.MATLAB软件/语言包括图像处理工具箱(Image Processing Toolbox) 3.实验所需要的图片
三.实验内容
1.打开一幅灰度图像,利用MATLAB工具箱所提供的函数对图像进行离散傅立叶变换,显示图像的频谱及居中的频谱;
>> I=imread('pout.tif'); >> fftI=fft2(I); >> sfftI=fftshift(fftI); >> RR=real(sfftI); >> II=imag(sfftI);
>> A1=sqrt(RR.^2+II.^2);
>> A1=(A1-min(min(A1)))/(max(max(A1))-min(min(A1)))*225; >> subplot(2,2,1);imshow(A1); >> subplot(1,2,1);imshow(A1); >> subplot(1,2,2);imshow(I);
2.用MATLAB图像处理工具箱提供的函数进行图像的DCT变换和反变换,利用DCT变换编程实现图像的压缩、解压缩;
>> I=imread('pout.tif'); >> J=dct2(I);
>> subplot(1,2,1),imshow(I)
>> subplot(1,2,2),imshow(log(abs(J)),[]); >> figure;
>> J(abs(J)<10)=0;
>> K=idct2(J)/255; >> imshow(K);
3.编程实现图像的沃尔什-哈达玛变换并显示其频谱;
>> I=imread('pout.tif'); >> I = im2double(I); >> T = dctmtx(8);
>> B = blkproc(I,[8 8],'P1*x*P2',T,T'); >> mask = [1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; >> B2 = blkproc(B,[8 8],'P1.*x',mask); >> I2 = blkproc(B2,[8 8],'P1*x*P2',T',T); >> subplot(1,2,2);imshow(I2); >> subplot(1,2,1);imshow(B2);
4.分析几种变换各自的特点以及频谱的区别;
离散傅里叶变换简称DFT;离散余弦变换简称DCT
DCT只包含了实数部分,将主要的信息放到较少的系数上去。
5.对图像进行二维小波多级分解、小波系数的提取和小波图像重构。
对图像作二维小波分解 >> I=imread('pout.tif'); >>figure(1),imshow(I); >>nbcol=size(I,1);
>> [ca1,ch1,cv1,cd1]=dwt2(I,'db1'); >>cod_X=wcodemat(I,nbcol);