《数字图像处理》实验报告学院:信息与通信工程学院班级:学号:姓名:实验一图像变换一、实验目的1.掌握图像变换的方法;2.掌握离散二维余弦变换的原理和性质;3.掌握离散二维傅里叶变换的原理和性质。二、实验原理1.1-DFFT序列1,,1,0Nnnx的DFT定义为:NnkjnxkXNn2exp10(1)设njbnanx,kjBkAkX,NQ2,则上式变为:QnkjQnknjbnakjBkANnsincos10(2)10sincosNnQnknbQnknakA(3)10sincosNnQnknaQnknbkB(4)将序列nx按序号的奇偶分成两组,即:12,,1,012221Nnnxnxnxnx(5)因此,nx的傅里叶变换可以写成:12022120211201212021010122nnNnnkNkNNnnkNNnknNNnnkNNnNnnkNnkNWnxWWnxWnxWnxWnxWnxkX为奇数为偶数(6)由此可得:12,,1,021NkkXWkXkXkN(7)式中:120212NnnkNWnxkX(8)1202212NnnkNWnxkX(9)它们分别是nx1和nx2的2N点DFT。上面的推导表明:一个N点的DFT被分解为两个2N点的DFT,这两个2N点的DFT又可合成一个N点的DFT。但上面的公式仅能得到kX的前2N点的值,运用权系数NW的周期性与对称性,即:nkNNknNWW222,nkNNknNWW2(10)因此,kX的后2N点的值可表示为:12,,1,022221221NkkXWkXNkXWNkXNkXkNNkN(11)通过上面的推导可以看出,一个N点的DFT可以分解为两个2N点的DFT,每个2N点的DFT又可以分解为两个4N点的DFT。以此类推,当N为2的整数次幂时(MN2),由于每分解一次降低一阶幂次,所以通过M次分解,最后全部成为一系列2点的DFT运算,以上就是按时间抽取的FFT算法。2.2-DFFT以NM图形为例,将式(1)推广,可得2-DFFT式:1,1,01,1,0),(,1010)//(2NvMueyxfvuFMxNyNvyMuxj(12)将式(12)写成如下的分离形式:1,1,01,1,0),(,1010/2/2NvMueyxfevuFMxNyNvyjMuxj(13)由上述分离形式可知一个2-DDFT可由连续2次运用1-DDFT来实现。如式(13)可分成下列两式:1,,2,1,0),(),(10/2NveyxfvxFNyNvyj(14)1,1,01,1,0),(,10/2NvMuevxFvuFMxMuxj(15)对每个x值,式(14)方括号中是一个1-DDFT。所以vxF,可由沿yxf,的每一列求变换得到。在此基础上,再对vxF,的每一行求变换就可得到vuF,。由上述可知,对于2-DFFT同样可以采取分别进行2次1-DFFT来得到。3.数字图像FFT流程图根据图像阵列的特性,对其按下列步骤进行FFT变换:(1)将图像数据阵列变换为按列存储,即从下到上,从左到右;(2)对每一列图像数据进行1-DFFT;(3)将按列处理后的数据结果存储,并对它们按原图像阵列的形式,即按行重新存储;(4)对重新排列的数据逐行进行1-DFFT;(5)将每行处理后的数据存储起来,即得到2-D数字图像FFT结果。对一幅nm图像进行FFT其流程图如下所示:图12-DFFT流程图其中的1-DFFT需要倒位序和递推计算,它们的流程图如下:图21-DFFT流程图1-DFFT中整个L级递推过程由三个嵌套循环构成。外层的一个循环控制L(L=N2log)级的顺序循环;内层的两个循环控制同一级各蝶形结的运算,其中最内一层循环控制同一种(指rNW的同一个r)蝶形结的运算,而中间一层循环则是对不同种(即rNW中的r不同)蝶形结做运算。4.2-D离散傅里叶反变换MvyuxjvuFNyxfNuNv2exp,1,1010(16)5.1-D离散余弦变换1,,1,0212cos10NuNuxxfuauCNx(17)1,,1,0212cos10NxNuxuCuaxfNu(18)其中ua由下式定义:1,,2,1201NuNuNua6.2-D离散余弦变换1,,1,0,212cos212cos,,1010NvuNvxNuxyxfvauavuCNxNy(19)1,,1,0,212cos212cos,,1010NyxNvxNuxvuCvauayxfNuNv(20)三、实验内容和步骤实验内容:1.对标准图像进行离散傅里叶变换并在计算机屏幕观测其频谱,验证二维傅里叶变换的常用性质。2.对标准图像进行离散余弦变换并在计算机屏幕观测其频谱,验证二维余弦变换的常用性质,了解二维余弦变换用在图像压缩中的原因。3.对标准图像离散傅里叶变换和离散余弦变换的频谱进行比较。实验步骤:1.学习Matlab语言的常用和图像处理函数库,会使用其函数进行编程。2.用Matlab语言、C语言或C++语言编制标准图像离散傅里叶变换和离散余弦变换的程序。3.将处理结果存盘。四、实验设备计算机、Matlab软件、Photoshop软件。五、程序源代码及所得对应图像%DFT频谱和DCT频谱比较clcclear%创建矩形函数f=zeros(256,256);f(180:240,130:150)=1;figure;imshow(f);%DFT2F=fft2(f,256,256);figure;imshow(log(abs(F)),[]);%将直流分量移到中心F2=fftshift(F);figure;imshow(log(abs(F2)),[]);%DCT2C=dct2(f);figure;imshow(log(abs(C)));clearall;clc;%FFT变换I=imread('cameraman.tif');A1=fft2(I);A2=ifft2(A1);A3=uint8(A2);figure,subplot(221),imshow(I);subplot(222);imshow(A3);%DCT变换I=imread('cameraman.tif');subplot(223);imshow(I);I=im2double(I);T=dctmtx(8);B=blkproc(I,[88],'P1*x*P2',T,T');Mask=[1111000011100000110000001000000000000000000000000000000000000000];B2=blkproc(B,[88],'P1.*x',Mask);%此处为点乘(.*)I2=blkproc(B2,[88],'P1*x*P2',T',T);subplot(224);imshow(I2);%灰度图象的直方图数据clcclearfn='cameraman.tif';I=imread(fn);J=I;%计算灰度图象的直方图数据L=256;%灰度级Ps=zeros(L,1);%统计直方图结果数据nk=zeros(L,1);[row,col]=size(I);n=row*col;%总像素个数fori=1:rowforj=1:colnum=double(I(i,j))+1;%获取像素点灰度级nk(num,1)=nk(num,1)+1;%统计nkendend%计算直方图概率估计fori=1:LPs(i,1)=nk(i,1)/n;endfigure(1),subplot(3,1,1);imshow(J),title('原图');subplot(3,1,2),plot(nk),title('直方图(nk)');subplot(3,1,3),plot(Ps),title('直方图(Ps)');figure(4),imhist(I);p=imhist(I);%生成直方图函数,返回灰度图象直方图数据figure(5),plot(p);clcclear%图像求反I=imread('cameraman.tif');I=im2double(I);figure;subplot(1,2,1);imshow(I);J=1-I;subplot(1,2,2);imshow(J);%灰度线性变换I=imread('cameraman.tif');figure;subplot(2,2,1);imshow(I);subplot(2,2,2);imhist(I);J=imadjust(I,[0.30.7],[]);subplot(2,2,3);imshow(J);subplot(2,2,4);imhist(J);%gammar校正I=imread('trees.tif');figure;subplot(2,2,1);imshow(I);J1=imadjust(I,[],[],1);%gammar=1线性变换subplot(2,2,2);imshow(J1);J2=imadjust(I,[],[],0.5);%gammar1增强低灰度级subplot(2,2,3);imshow(J2);J3=imadjust(I,[],[],2);%gammar1增强高灰度级subplot(2,2,4);imshow(J3);六、结论及心得通过实验截图观测其频谱,可验证二维傅里叶变换的常用性质,比如说线性、平移性质等,同样验证了二维余弦变换的常用性质。离散余弦变换是一种与傅立叶变换紧密相关的数学运算。在傅立叶级数展开式中,如果被展开的函数是实偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换,主要反映了图像频谱的能量分布情况。经过编写程序,调用各种变换函数来处理已知路径的图像并显示图像的原始图、灰度图及各种变换后的频谱图来观察实验的结果。观察标准图像离散傅里叶变换频谱可知经过离散傅里叶变换后,图像的能量即直流和低频交流分量主要集中中间,所以看到频谱的四角更暗,中间呈亮十字状。观察离散余弦变换的频谱可知经过离散余弦变换后,图像的能量即直流和低频交流分量主要集中在左上角,所以看到频谱的左上角更亮,而右下角明显较暗。二者频谱比较可知两个不同的变换是经过变化后将图像的能量即直流和低频交流分量集中在不同的位置,从而实现不同的压缩编码结果。通过本实验我基本了解了图像变换的方法;明白了离散二维余弦变换的原理和性质;更加深刻地认识了离散二维傅里叶变换的原理和性质,学习了很多相关的函数,为以后得学习和实践打下了良好的基础。实验二图像增强一、实验目的1.掌握图像点运算增强的方法;2.掌握空域增强方法;3.掌握频域增强方法。二、实验原理1.图像点运算增强原理1.1线性变换图像中常会出现对比度不够的情况,这可能是因图像记录装置的动态范围太小所至,也可能是由于摄影过程中原先曝光不足所造成的。增大对比度的方法是简便的,可通过灰度范围的线性变换来达到。我们假定原图像yxf,的灰度范围是[a,b],变换后图像yxg,的灰度范围希望扩大到[m,n],那么应采用下述线性变换: