资源描述:
《数字图像处理作业》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数字图像处理作业机电工程学院学号姓名题目:数字图像处理的频域变换有哪些?是对其中三种进行原理分析(含MATLAB程序)。数字图像处理的频域变换有积分变换,离散傅里叶变换(包括一维离散傅里叶变换,一维快速傅里叶变换,二维离散傅里叶变换和二维快速傅里叶变换),正交变换,离散余弦变换,沃尔什变换和哈达玛变换,哈尔变换,,K-L变换,霍特林变换,拉东变换和小波变换等。下面就离散傅里叶变换,哈达玛变换和离散余弦变换进行原理分析:一.离散傅里叶变换(DFT)傅立叶变换是数字图像处理中应用最广的一种变换,其中图像增强、图像复原和图像分析与描述等,每一类处理方法都要
2、用到图像变换,尤其是图像的傅立叶变换。(1)二维离散傅里叶变换设f(x,y)(x=0,1,...,M-1;y=0,1,...,N-1)是一幅M×N的图像,其二维离散傅立叶变换(DFT)为: 逆变换为:式中,在DFT变换对中,称为离散信号的频谱,而称为幅度谱,为相位角,功率谱为频谱的平方,它们之间的关系为:x,y为空间域采样值,u,v为频率采样值,F(u,v)称为离散信号f(x,y)的频谱。(2)二维快速离散傅里叶变换快速傅里叶变换(FFT)并不是一种新的变换,它是离散傅里叶变换(DFT)的一种算法。这种方法是在分析离散傅里叶变换(DFT)中的多余运
3、算的基础上,进而消除这些重复工作的思想指导下得到的,所以在运算中大大节省了工作量,达到了快速的目的。基于二维离散傅里叶变换的分离性,二维离散FFT算法可以用两个一维FFT算法来实现。每一列求变换再乘以N再对F(x,v)每1行求傅里叶变换求的逆变换得:图表1由2步1-D变换计算2-D变换(3)MATLAB实现数字图像傅立叶变换的程序示例[I,map]=imread(‘原图像名’);%读入原图像文件figure(1);imshow(I,map);%设定窗口,显示原图像colorbar;%colorbar函数用显示图像的颜色条J=fft2(I);%fft2
4、函数用于数字图像的二维傅立叶变换K=fftshift(J);%一般在计算图形函数的傅立叶变换时,坐标原点在函数图形的中心位置处,而计算机在对图像执行傅立叶变换时是以图像的左上角为坐标原点。所以使用函数fftshift进行修正,使变换后的直流分量位于图形的中心RR=real(K);%取傅立叶变换的实部II=imag(K);%取傅立叶变换的虚部A=sqrt(RR.^2+II.^2);%计算频谱幅值A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225;%归一化figure(2);imshow(A,[]);%设定窗口
5、,显示原图像的频谱colorbar;N=ifft2(J)/255;%ifft2函数用于数字图像的二维傅立叶反变换figure(3);imshow(N,[]);colorbar;二.哈达玛变换(1)一维离散哈达玛变换当N=2n,一维哈达玛正变换核与反变换核相同,为因此,一维哈达玛变换对可表示为(u=0,1,2,...,N-1)()哈达玛变换核除了因子之外,由一系列的+1和-1组成。如N=8时的哈达玛变换核用矩阵表示为:由此矩阵可得出一个非常有用的结论,即2N阶的哈达玛变换矩阵可由N阶的变换矩阵按下述规律形成而最低阶(N=2)的哈达玛变换矩阵为利用这个性
6、质求N阶(N=2n)的哈达玛变换矩阵要比直接用定义式来求此矩阵速度快的多,此结论提供了一种快速哈达玛变换(FHT)。(2)二维离散哈达玛变换二维离散哈达玛变换的正变换核和反变换核相同,为这里M=2m,N=2n。则对应的二维哈达变换对可表示为:(u=0,1,2,...,M-1;v=0,1,2,...,N-1)和(x=0,1,2,...,M-1;v=0,1,2,...,N-1)可以看出,二维离散哈达玛变换的正反变换核具有可分离性,因此可以通过两次一维变换来实现一个二维变换。(3)MATLAB实现数字图像离散一维哈达玛变换的程序示例clc;cr=0.5;I
7、=imread('8.tif');I1=double(I)/255;%图像为256级灰度图像,对图像进行归一化操作subplot(1,2,1);imshow(I1);xlabel('(a)原始图像');%显示原始图像disp('原始图像的大小为:');whos('I1')%对图像进行哈达玛变换T=hadamard(8);%产生8*8的哈达玛矩阵htcoe=blkproc(I1,[88],'P1*x*P2',T,T);%将图像分割为8*8的子图像进行FFTcoevar=im2col(htcoe,[88],'distinct');%降变换系数矩阵重新排列
8、coe=coevar;[y,ind]=sort(coevar);[m,n]=size(coevar);%根据