实验报告实验课程名称:数字图像处理班级:学号:姓名:注:1、每个实验中各项成绩按照10分制评定,每个实验成绩为两项总和20分。
2、平均成绩取三个实验平均成绩。
2016年 4 月18日实验一 图像的二维离散傅立叶变换一、实验目的掌握图像的二维离散傅立叶变换以及性质二、实验要求1) 建立输入图像,在64⨯64的黑色图像矩阵的中心建立16⨯16的白色矩形图像点阵,形成图像文件。
对输入图像进行二维傅立叶变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上。
2) 调整输入图像中白色矩形的位置,再进行变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上,比较变换结果。
3) 调整输入图像中白色矩形的尺寸(40⨯40,4⨯4),再进行变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上,比较变换结果。
三、实验仪器设备及软件HP D538、MATLAB四、实验原理傅里叶变换作为分析数字图像的有利工具,因其可分离性、平移性、周期性和共轭对称性可以定量地方分析数字化系统,并且变换后的图像使得时间域和频域间的联系能够方便直观地解决许多问题。
实验通过MATLAB 实验该项技能。
设),(y x f 是在空间域上等间隔采样得到的M ×N 的二维离散信号,x 和y 是离散实变量,u 和v 为离散频率变量,则二维离散傅里叶变换对一般地定义为∑∑-=-=+-=1010)],(2ex p[),(1),(M x N y Nyu M xu j y x f MN v u F π,1,0=u …,M-1;y=0,1,…N-1 ∑∑-=-=+=1010)],(2ex p[),(),(M x N y Nuy M ux j v u F y x f π ,1,0=x …,M-1;y=0,1,…N-1 在图像处理中,有事为了讨论上的方便,取M=N ,这样二维离散傅里叶变换对就定义为,])(2ex p[),(1),(1010∑∑-=-=+-=N x N y Nyu xu j y x f N v u F π 1,0,=v u …,N-1 ,])(2ex p[),(1),(1010∑∑-=-=+=N u N v Nvy ux j v u F N y x f π 1,0,=y x ,…,N-1 其中,]/)(2exp[N yv xu j +-π是正变换核,]/)(2exp[N vy ux j +π是反变换核。
将二维离散傅里叶变换的频谱的平方定义为),(y x f 的功率谱,记为),(),(|),(|),(222v u I v u R v u F v u P +==功率谱反映了二维离散信号的能量在空间频率域上的分布情况。
五、实验步骤、程序及结果:1、实验步骤:(1)、编写程序建立输入图像;(2)、对上述图像进行二维傅立叶变换,观察其频谱(3)、改变输入图像中白框的位置,在进行二维傅里叶变换,观察频谱;(4)、改变输入图像中白框的大小,进行二维傅里叶变换,观察频谱。
2、实验程序:(1)、原始图像及变换程序:%clear%原始图象f=zeros(64,64);%输入64*64的黑色图像矩阵f(25:40,25:40)=1;%建立16*16的白色矩行图像点阵figure(1);subplot(231);imshow(f);title('原始图像')%显示原图像F=fft2(f);%傅立叶变换subplot(232);imshow(abs(F));title('傅里叶变换图像');%显示傅里叶变换图像F2=fftshift(abs(F));%频谱中心化subplot(233);imshow(abs(F2));title('中心化傅里叶频谱图');%显示中心化傅里叶频谱图x=1:64;y=1:64;subplot(234);mesh(abs(real(F)));title('三维频谱图');%显示三维频谱图subplot(235);mesh(x,y,F2(x,y)); title('FFT')(2)、调整输入图像中白色矩形的位置,再进行变换后的程序%原始图象f=zeros(64,64);%输入64*64的黑色图像矩阵f(47:63,47:63)=1;%建立16*16的白色矩行图像点阵figure(1);subplot(231),imshow(f); title('原始图像')%显示原图像F=fft2(f);%傅立叶变换subplot(232);imshow(abs(F));title('傅里叶变换图像');%显示傅里叶变换图像F2=fftshift(abs(F));%频谱中心化subplot(233);imshow(abs(F2));title('中心化傅里叶频谱图');%显示中心化傅里叶频谱图x=1:64;y=1:64;subplot(234);mesh(abs(real(F)));title('三维频谱图');%显示三维频谱图subplot(235);mesh(x,y,F2(x,y)); title('FFT')(3)、整输入图像中白色矩形的尺寸(40*40),再进行变换的程序:clear %原始图象f=zeros(64,64);%输入64*64的黑色图像矩阵f(13:52,13:52)=1;%建立40*40的白色矩行图像点阵figure(1);subplot(231),imshow(f); title('原始图像')%显示原图像F=fft2(f);%傅立叶变换subplot(232);imshow(abs(F));title('傅里叶变换图像');%显示傅里叶变换图像F2=fftshift(abs(F));%频谱中心化subplot(233);imshow(abs(F2));title('中心化傅里叶频谱图');%显示中心化傅里叶频谱图x=1:64;y=1:64;subplot(234);mesh(abs(real(F)));title('三维频谱图');%显示三维频谱图subplot(235);mesh(x,y,F2(x,y)); title('FFT')(4)、整输入图像中白色矩形的尺寸(4*4),再进行变换的程序:clear%原始图象f=zeros(64,64);%输入64*64的黑色图像矩阵f(31:34,31:34)=1;%建立4*4的白色矩行图像点阵figure(1);subplot(231),imshow(f); title('原始图像')%显示原图像F=fft2(f);%傅立叶变换subplot(232);imshow(abs(F));title('傅里叶变换图像');%显示傅里叶变换图像F2=fftshift(abs(F));%频谱中心化subplot(233);imshow(abs(F2));title('中心化傅里叶频谱图');%显示中心化傅里叶频谱图x=1:64; y=1:64;subplot(234);mesh(abs(real(F)));title('三维频谱图');%显示三维频谱图subplot(235);mesh(x,y,F2(x,y)); title('FFT')六、实验分析:1、原图像的频谱图不能明显地反映图像的完整频谱。
经过中心化后可以看出频谱中的较大值集中在中心。
可以很好地反映出图像的完整频谱。
2、从实验运行结果可以看出,图像的原尺寸平移,只改变了图像的傅里叶变换,对其三维频谱图没有影响,任然在中心处有最大频率,频谱中的较大值集中于四个角的低频部分。
3、通过对比40*40和4*4的图像运行结果可知,图像越小其三维频谱的低频分布更强,中心化频谱更集中,从图中可以看出能量主要集中在中心,也就是低频部分,说明高频分量所占比重少。
傅里叶频谱的低频主要决定图像的平坦区域中灰度的总体分布,而高频主要决定于图像的边缘和噪声等细节。
按照图像空间域和频率域的对应关系,空域中的强相关性,即由于图像中存在大量的平坦区域,使得图像中的相邻或相近像素一般趋向于取相同的灰度值,反映在频率域中,就是图像的能量主要集中于低频部分。
因此在三维频谱图中可以清楚地看出原图像的频谱中的较大值集中于四个角的低频部分。
实验二图像的增强一、实验目的1)掌握在计算机上进行直方图统计,以及直方图均衡化、线性变换的图像增强的方法2)掌握在计算机上进行图象平滑、图象锐化特别是中值滤波平滑及拉普拉斯算子锐化的方法二、实验要求1)显示图像(cameraman.tif)及灰度直方图。
2)对指定图像(cameraman.tif)进行直方图均衡化和线性变换,将原始图像及增强后的图像都显示于屏幕上,比较增强的效果。
3)对指定图像(lena.bmp)加入椒盐噪声,然后进行邻域平滑、中值滤波,将原始图像及平滑后的图像都显示于屏幕上,比较效果。
4)对指定图像(lena.bmp)进行锐化(简单梯度算法、ROBERT算子,Prewitt边缘算子和拉普拉斯算子),将原始图像及锐化后的图像都显示于屏幕上,比较锐化的效果。
三、实验仪器设备及软件HP D538、MATLAB四、实验原理1、对比度调整如果原图像f(x, y)的灰度范围是[m, M],我们希望对图像的灰度范围进行线性调整,调整后的图像g(x, y)的灰度范围是[n, N],MATLAB图像处理工具箱中提供的imadjust函数,可以实现上述的线性变换对比度调整。
imadjust函数的语法格式为:J = imadjust(I,[low_in high_in], [low_out high_out]);J = imadjust(I,[low_in high_in], [low_out high_out])返回原图像I经过直方图调整后的新图像J,[low_in high_in]为原图像中要变换的灰度范围,[low_out high_out]指定了变换后的灰度范围,灰度范围可以用 [ ] 空矩阵表示默认范围,默认值为[0, 1]。
不使用imadjust函数,利用matlab语言直接编程也很容易实现灰度图像的对比度调整。
但运算的过程中应当注意以下问题,由于我们读出的图像数据一般是uint8型,而在MATLAB的矩阵运算中要求所有的运算变量为double型(双精度型)。
因此读出的图像数据不能直接进行运算,必须将图像数据转换成双精度型数据。
MATLAB中提供了这样的数据类型转换函数:im2double函数,其语法格式为:I2 = im2double(I1),运算之后的图像数据再显示时可以再转化成uint8型,格式为:I3 = uint8 (I2)2、直方图均衡化直方图均衡化的目的是将原始图像的直方图变为均衡分布的形式,即将一已知灰度概率密度分布的图像,经过某种变换变成一幅具有均匀灰度概率密度分布的新图像,从而改善图像的灰度层次。