实验四 图像频域处理 联系客服

发布时间 : 星期六 文章实验四 图像频域处理更新完毕开始阅读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);