中南大学数字图像处理实验报告

合集下载

数字图像处理实习报告

数字图像处理实习报告

数字图像处理实习报告在当今数字化的时代,数字图像处理技术在众多领域中发挥着至关重要的作用,从医疗诊断到卫星遥感,从娱乐产业到工业检测,其应用无处不在。

通过这次数字图像处理实习,我对这一领域有了更深入的了解和实践经验。

实习的初始阶段,我主要进行了相关理论知识的学习。

数字图像处理涵盖了众多概念,如图像的数字化表示、像素、灰度值、分辨率等。

了解这些基础知识是后续处理图像的基石。

同时,我还学习了常见的图像格式,如 JPEG、PNG、BMP 等,以及它们的特点和适用场景。

在掌握了一定的理论基础后,我开始接触图像处理的基本操作。

图像增强是我最先实践的部分,通过调整图像的对比度和亮度,能够使原本模糊不清或暗淡的图像变得更加清晰和易于观察。

例如,对于一张曝光不足的照片,增加亮度可以让隐藏在黑暗中的细节显现出来;而提高对比度则可以使图像中的不同区域更加分明,突出重点。

图像滤波是另一个重要的环节。

均值滤波可以有效地去除图像中的噪声,但在一定程度上会使图像变得模糊;中值滤波则能够在去除噪声的同时较好地保留图像的边缘细节。

我通过对不同类型和程度的噪声图像进行滤波处理,直观地感受到了它们的效果差异。

图像的几何变换也是实习中的关键内容。

图像的平移、旋转和缩放操作看似简单,但其背后涉及到复杂的数学计算。

在实际操作中,需要准确地计算变换矩阵,以确保图像在变换后的准确性和完整性。

实习过程中,我还深入研究了图像分割技术。

这是将图像分成不同区域或对象的过程,以便进行后续的分析和处理。

阈值分割是一种常见且简单的方法,通过设定一个阈值,将图像中的像素分为两类。

然而,对于复杂的图像,这种方法往往效果不佳,这时就需要更高级的分割算法,如基于边缘检测的分割或基于区域生长的分割。

在进行数字图像处理的过程中,我也遇到了一些挑战和问题。

例如,在处理大规模图像数据时,计算资源的限制可能导致处理速度缓慢;在选择图像处理算法时,需要根据具体的图像特点和需求进行权衡,否则可能无法达到理想的效果。

数字图像处理实习报告

数字图像处理实习报告

数字图像处理实习报告
本次实习主要任务是进行数字图像处理相关工作,包括图像的预处理、特征提取、图像分割和图像识别等方面的工作。

实习过程中,我主要负责了图像处理算法的编写与优化,以及实验数据的收集与分析。

通过这次实习,我对数字图像处理技术有了更深入的了解,并且提升了自己的编程能力和团队协作能力。

在图像处理算法的编写与优化过程中,我主要使用了Python
语言和常用的图像处理库,如OpenCV和PIL等。

我研究了不同的图像处理算法,并对其进行了实验验证,优化了算法的性能和效果。

通过这些工作,我深入了解了图像处理算法的实现原理和优化方法,提升了自己在图像处理领域的技术水平。

在实验数据的收集与分析过程中,我主要负责了实验数据的采集和整理工作。

我使用了各种图像采集设备,包括相机、摄像头等,对不同场景下的图像进行了采集和整理。

然后我利用Python和Matlab等工具对实验数据进行了分析和结果展示,
为后续的图像处理算法提供了重要的支持和参考。

总的来说,这次实习让我对数字图像处理有了更深入的了解,提升了自己的技术能力和实践能力。

我在实习过程中遇到了不少困难和挑战,但通过团队合作和自我努力,最终都得以克服,取得了一定的成果。

通过这次实习,我深刻地感受到了数字图像处理技术的重要性和广阔的应用前景,也对自己未来的发展方向有了更清晰的认识。

希望通过这次实习的经历,我能够为将来的学习和工作打下坚实的基础。

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告(一)实验目的1.理解数字图像处理的基本概念与原理。

2.掌握数字图像处理的基本方法。

3.掌握常用数字滤波器的性质和使用方法。

4.熟练应用数字图像处理软件进行图像处理。

实验器材计算机、MATLAB软件实验内容1.图像的读写与显示首先,我们需要在MATLAB中读入一幅图像,并进行显示。

% 导入图像文件I = imread('myimage.jpg');% 显示图像imshow(I);2.图像的分辨率与色彩空间转换数字图像处理中的一个重要概念是图像的分辨率,通常用像素数量表示。

图像的分辨率越高,代表着图像包含更多的像素,从而更具细节和清晰度。

在数字图像处理中,常常需要将一幅图像从一种色彩空间转换为另一种色彩空间。

RGB色彩空间是最常见的图像色彩空间之一,并且常常作为其他色彩空间的基础。

% 转换图像色彩空间J = rgb2gray(I);% 显示转换后的图像imshow(J);3.图像的增强与滤波图像的增强通常指的是对图像的对比度、亮度和清晰度等方面进行调整,以改善图像的质量和可读性。

数字图像处理中的滤波是一种常用的图像增强方法。

滤波器是一个能够对图像进行局部操作的矩阵,它能够提取或抑制特定的图像特征。

% 对图像进行平滑滤波K = imgaussfilt(J, 1);% 显示滤波后的图像imshow(K);4.数字图像处理在实际应用中的例子数字图像处理在很多实际应用中被广泛应用。

这些应用包括医疗成像、计算机视觉、人脸识别、安防监控等。

下面是数字图像处理在人脸识别应用中的一个简单例子。

% 导入图像文件I = imread('face.jpg');% 进行人脸检测faceDetector = vision.CascadeObjectDetector;bbox = step(faceDetector, I);% 在图像上标记人脸位置IFaces = insertObjectAnnotation(I, 'rectangle', bbox, 'Face');imshow(IFaces);实验结论通过本次实验,我已经能够理解数字图像处理的基本概念与原理,掌握数字图像处理的基本方法,熟练应用数字图像处理软件进行图像处理。

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告数字图像处理实验报告1一. 实验内容:主要是图像的几何变换的编程实现,具体包括图像的读取、改写,图像平移,图像的镜像,图像的转置,比例缩放,旋转变换等.具体要求如下:1.编程实现图像平移,要求平移后的图像大小不变;2.编程实现图像的镜像;3.编程实现图像的转置;4.编程实现图像的比例缩放,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的缩放效果;5.编程实现以任意角度对图像进行旋转变换,要求分别用双线性插值和最近邻插值两种方法来实现,并比较两种方法的旋转效果.二.实验目的和意义:本实验的目的是使学生熟悉并掌握图像处理编程环境,掌握图像平移、镜像、转置和旋转等几何变换的方法,并能通过程序设计实现图像文件的读、写操作,及图像平移、镜像、转置和旋转等几何变换的程序实现.三.实验原理与主要框架:3.1 实验所用编程环境:Visual C++(简称VC)是微软公司提供的基于C/C++的应用程序集成开发工具.VC拥有丰富的功能和大量的扩展库,使用它能有效的创建高性能的Windows应用程序和Web应用程序.VC除了提供高效的C/C++编译器外,还提供了大量的可重用类和组件,包括著名的微软基础类库(MFC)和活动模板类库(ATL),因此它是软件开发人员不可多得的开发工具.VC丰富的功能和大量的扩展库,类的重用特性以及它对函数库、DLL库的支持能使程序更好的模块化,并且通过向导程序大大简化了库资源的使用和应用程序的开发,正由于VC具有明显的优势,因而我选择了它来作为数字图像几何变换的开发工具.在本程序的开发过程中,VC的核心知识、消息映射机制、对话框控件编程等都得到了生动的体现和灵活的应用.3.2 实验处理的对象:256色的BMP(BIT MAP )格式图像BMP(BIT MAP )位图的文件结构:具体组成图: BITMAPFILEHEADER位图文件头(只用于BMP文件) bfType=”BM” bfSize bfReserved1bfReserved2bfOffBitsbiSizebiWidthbiHeightbiPlanesbiBitCountbiCompressionbiSizeImagebiXPelsPerMeterbiYPelsPerMeterbiClrUsedbiClrImportant单色DIB有2个表项16色DIB有16个表项或更少256色DIB有256个表项或更少真彩色DIB没有调色板每个表项长度为4字节(32位)像素按照每行每列的顺序排列每一行的字节数必须是4的整数倍BITMAPINFOHEADER 位图信息头 Palette 调色板 DIB Pixels DIB图像数据1. BMP文件组成BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成.2. BMP文件头BMP文件头数据结构含有BMP文件的类型(必须为BMP)、文件大小(以字节为单位)、位图文件保留字(必须为0)和位图起始位置(以相对于位图文件头的偏移量表示)等信息.3. 位图信息头BMP位图信息头数据用于说明位图的尺寸(宽度,高度等都是以像素为单位,大小以字节为单位, 水平和垂直分辨率以每米像素数为单位) ,目标设备的级别,每个像素所需的位数, 位图压缩类型(必须是 0)等信息.4. 颜色表颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色.具体包含蓝色、红色、绿色的亮度(值范围为0-255)位图信息头和颜色表组成位图信息5. 位图数据位图数据记录了位图的每一个像素值,记录顺序是在扫描行内是从左到右,扫描行之间是从下到上.Windows规定一个扫描行所占的字节数必须是4的倍数(即以long为单位),不足的以0填充.3.3 BMP(BIT MAP )位图的显示:①一般显示方法:1. 申请内存空间用于存放位图文件2. 位图文件读入所申请内存空间中3. 在函数中用创建显示用位图, 用函数创建兼容DC,用函数选择显示删除位图但以上方法的缺点是: 1)显示速度慢; 2) 内存占用大; 3) 位图在缩小显示时图形失真大,(可通过安装字体平滑软件来解决); 4) 在低颜色位数的设备上(如256显示模式)显示高颜色位数的图形(如真彩色)图形失真严重.②BMP位图缩放显示 :用视频函数来显示位图,内存占用少,速度快,而且还可以对图形进行淡化(Dithering )处理.淡化处理是一种图形算法,可以用来在一个支持比图像所用颜色要少的设备上显示彩色图像.BMP位图显示方法如下:1. 打开视频函数,一般放在在构造函数中2. 申请内存空间用于存放位图文件3. 位图文件读入所申请内存空间中4. 在函数中显示位图5. 关闭视频函数 ,一般放在在析构函数中以上方法的优点是: 1)显示速度快; 2) 内存占用少; 3) 缩放显示时图形失真小,4) 在低颜色位数的设备上显示高颜色位数的图形图形时失真小; 5) 通过直接处理位图数据,可以制作简单动画.3.4 程序中用到的访问函数Windows支持一些重要的DIB访问函数,但是这些函数都还没有被封装到MFC中,这些函数主要有:1. SetDIBitsToDevice函数:该函数可以直接在显示器或打印机上显示DIB. 在显示时不进行缩放处理.2. StretchDIBits函数:该函数可以缩放显示DIB于显示器和打印机上.3. GetDIBits函数:还函数利用申请到的内存,由GDI位图来构造DIB.通过该函数,可以对DIB的格式进行控制,可以指定每个像素颜色的位数,而且可以指定是否进行压缩.4. CreateDIBitmap函数:利用该函数可以从DIB出发来创建GDI 位图.5. CreateDIBSection函数:该函数能创建一种特殊的DIB,称为DIB项,然后返回一个GDI位图句柄.6. LoadImage函数:该函数可以直接从磁盘文件中读入一个位图,并返回一个DIB句柄.7. DrawDibDraw函数:Windows提供了窗口视频(VFW)组件,Visual C++支持该组件.VFW中的DrawDibDraw函数是一个可以替代StretchDIBits 的函数.它的最主要的优点是可以使用抖动颜色,并且提高显示DIB的速度,缺点是必须将VFW代码连接到进程中.3.5 图像的几何变换图像的几何变换,通常包括图像的平移、图像的镜像变换、图像的转置、图像的缩放和图像的旋转等.数字图像处理实验报告2一、实验的目的和意义实验目的:本实验内容旨在让学生通过用VC等高级语言编写数字图像处理的一些基本算法程序,来巩固和掌握图像处理技术的基本技能,提高实际动手能力,并通过实际编程了解图像处理软件的实现的基本原理。

数字图像处理实验报告

数字图像处理实验报告

目录实验一:数字图像的基本处理操作 (4):实验目的 (4):实验任务和要求 (4):实验步骤和结果 (5):结果分析 (8)实验二:图像的灰度变换和直方图变换 (9):实验目的 (9):实验任务和要求 (9):实验步骤和结果 (9):结果分析 (13)实验三:图像的平滑处理 (14):实验目的 (14):实验任务和要求 (14):实验步骤和结果 (14):结果分析 (18)实验四:图像的锐化处理 (19):实验目的 (19):实验任务和要求 (19):实验步骤和结果 (19):结果分析 (21)实验一:数字图像的基本处理操作:实验目的1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用;2、实现图像的读取、显示、代数运算和简单变换。

3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。

:实验任务和要求1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。

2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。

3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。

4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的对应关系。

:实验步骤和结果1.对实验任务1的实现代码如下:a=imread('d:\');i=rgb2gray(a);I=im2bw(a,;subplot(1,3,1);imshow(a);title('原图像');subplot(1,3,2);imshow(i);title('灰度图像');subplot(1,3,3);imshow(I);title('二值图像');subplot(1,3,1);imshow(a);title('原图像');结果如图所示:图原图及其灰度图像,二值图像2.对实验任务2的实现代码如下:a=imread('d:\');A=imresize(a,[800 800]);b=imread('d:\');B=imresize(b,[800 800]);Z1=imadd(A,B);Z2=imsubtract(A,B);Z3=immultiply(A,B);Z4=imdivide(A,B);subplot(3,2,1);imshow(A);title('原图像 A'); subplot(3,2,2);imshow(B);title('原图像 B'); subplot(3,2,3);imshow(Z1);title('加法图像'); subplot(3,2,4);imshow(Z2);title('减法图像'); subplot(3,2,5);imshow(Z3);title('乘法图像'); subplot(3,2,6);imshow(Z2);title('除法图像');结果如图所示:3.对实验任务3的实现代码如下:s=imread('d:\');i=rgb2gray(s);i=double(i);j=fft2(i);k=fftshift(j); %直流分量移到频谱中心I=log(abs(k)); %对数变换m=fftshift(j); %直流分量移到频谱中心RR=real(m); %取傅里叶变换的实部II=imag(m); %取傅里叶变换的虚部A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=circshift(s,[800 450]);b=rgb2gray(b);b=double(b);c=fft2(b);e=fftshift(c);I=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);title('原图像');subplot(2,2,2);imshow(uint8(b));title('平移图像');subplot(2,2,3);imshow(A);title('离散傅里叶变换频谱');subplot(2,2,4);imshow(B);title('平移图像离散傅里叶变换频谱');结果如图所示:4.对实验任务4的实现代码如下:s=imread('d:\');i=rgb2gray(s);i=double(i);j=fft2(i);k=fftshift(j);I=log(abs(k));m=fftshift(j);RR=real(m);II=imag(m);A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=imrotate(s,-90);b=rgb2gray(b);b=double(b);c=fft2(b);e=fftshift(c);I=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);title('原图像');subplot(2,2,2);imshow(uint8(b));title('平移图像');subplot(2,2,3);imshow(A);title('离散傅里叶频谱');subplot(2,2,4);imshow(B);title('平移图像离散傅里叶频谱');结果如图所示::结果分析对MATLAB软件的操作开始时不太熟悉,许多语法和函数都不会使用,写出程序后,调试运行,最开始无法显示图像,检查原因,是有些标点符号没有在英文状态下输入和一些其他的细节,学会了imread(),imshow(),rgb2gray()等函数。

《数字图像处理》实验报告

《数字图像处理》实验报告

《数字图像处理》实验报告数字图像处理是一门将图像进行数字化处理的学科,它通过计算机算法和技术手段对图像进行分析、增强、压缩和重建等操作。

在本次实验中,我们学习了数字图像处理的基本概念和常用算法,并通过实验来探索其应用和效果。

首先,我们进行了图像的读取和显示实验。

通过使用Python中的OpenCV库,我们能够轻松地读取图像文件,并将其显示在屏幕上。

这为我们后续的实验奠定了基础。

同时,我们还学习了图像的像素表示方法,了解了图像由像素点组成的原理。

这使我们能够更好地理解后续实验中的算法和操作。

接下来,我们进行了图像的灰度化实验。

灰度化是将彩色图像转换为灰度图像的过程。

在实验中,我们使用了不同的算法来实现灰度化操作,包括平均值法、最大值法和加权平均法等。

通过比较不同算法得到的灰度图像,我们发现不同算法对图像的处理效果有所差异,这使我们深入理解了灰度化的原理和应用。

随后,我们进行了图像的直方图均衡化实验。

直方图均衡化是一种用于增强图像对比度的方法。

在实验中,我们使用了直方图均衡化算法来对图像进行处理,并观察了处理前后的效果变化。

通过实验,我们发现直方图均衡化能够显著提高图像的对比度,使图像更加清晰和鲜明。

在进一步探索图像处理技术的过程中,我们进行了图像的滤波实验。

滤波是一种常用的图像处理操作,它通过对图像进行卷积操作来实现。

在实验中,我们学习了不同类型的滤波器,包括均值滤波器、高斯滤波器和中值滤波器等。

通过比较不同滤波器对图像的处理效果,我们发现每种滤波器都有其适用的场景和效果。

此外,我们还进行了图像的边缘检测实验。

边缘检测是一种用于提取图像边缘信息的方法。

在实验中,我们学习了不同的边缘检测算法,包括Sobel算子、Canny算子和Laplacian算子等。

通过比较不同算法对图像的处理效果,我们发现每种算法都有其独特的特点和应用。

最后,我们进行了图像的压缩实验。

图像压缩是一种将图像数据进行压缩以减小文件大小的方法。

中南大学数字图像处理实验报告

中南大学数字图像处理实验报告

实验报告实验名称图像变换及频域滤波课程名称数字图像处理姓名成绩班级学号日期地点实验一 图像变换及频域滤波一.实验目的(1)编写快速傅里叶变换算法程序,验证二维傅里叶变换的平移性和旋转不变。

; (2)实现图像频域滤波,加深对频域图像增强的理解。

二.实验环境及开发工具Windws XP 、MATALAB7.0、Visual C++、Visual Basic 三.实验方法1.验证二维傅里叶变换的平移性和旋转不变性;a .要验证证其平移特性,就先建立一个二维图象,然后再对其平移,通过观察两者的频谱图来观察平移特性,为了方便起见,我们选择特殊情况来分析,令u0=v0=N/2,使),()1(),(12y x f y x f y x +-= F(u-N/2,v-N/2),达到将原始F(U,V)四周频谱移到中心的效果,及达到频谱中心化。

b .验证旋转不变性可以通过将原始数组的通过移动45度,然后再比较旋转后与旋转前的频谱,得出频谱旋转不变性的结论。

具体步骤:1)产生如图1所示图像),(1y x f (128×128大小,暗处=0,亮处=255) 2)同屏显示原图1f 和)(FFT 1f 的幅度谱图。

3)若令),()1(),(12y x f y x f y x +-=,重复以上过程,比较二者幅度谱的异同。

4)将),(2y x f 顺时针旋转45度得到),(3y x f ,显示)(FFT 3f 的幅度谱,并与)(FFT 2f 的幅度谱进行比较。

图1实验图象f 1(x , y )2.实现图像频域滤波,加深对频域图像增强的理解。

频率域中进行增强是相当直观的,主要步骤有:1)计算需要增强的图象的傅立叶变换;2)将其与一个(根据需要设计的)转移的函数相乘; 3)再将结果反傅立叶变换以得到增强的图象. 为了直观的展示频域增强,可以通过下面任务来展现:对如图2所示的数字图像lena.img (256×256大小、256级灰度)进行频域的理想低通、高通滤波,同屏显示原图、幅度谱图和低通、高通滤波的结果图。

数字图像处理实验报告3

数字图像处理实验报告3

实验三图像分割实验一.实验目的1. 掌握基本的图像分割方法2.观察图像分割的效果3.加深对边缘提取的理解二.实验原理1.边缘检测:图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是一个阶跃,既从一个灰度值在很小的缓冲区域内急剧变化到另一个灰度相差较大的灰度值。

图象的边缘部分集中了图象的大部分信息,图象边缘的确定与提取对于整个图象场景的识别与理解是非常重要的,同时也是图象分割所依赖的重要特征,边缘检测主要是图象的灰度变化的度量、检测和定位。

2.灰度阈值分割即是先确定一个处于图像灰度取值范围内的灰度阈值,然后将图像中各个像素的灰度值与这个阈值相比较:划分成像素灰度大于阈值的一类和小于阈值的一类。

3. 双峰法的原理及其简单:它认为图像由前景和背景组成,在灰度直方图上,前后二景都形成高峰,在双峰之间的最低谷处就是图像的阈值所在三.实验内容1.实验步骤1.打开matlab编程环境;2.利用“imread”函数导入图像数据;3.利用“imshow”显示所读入的图像数据;4.进行图像分割处理;5.记录和整理实验报告;2. 按下面要求编写程序并运行结果1. 用sobel方法对一幅灰度图像进行边缘提I=imread('cameraman.bmp');R=double(I(:,:,1));G=double(I(:,:,2));B=double(I(:,:,3));[rows,cols]=size(R);I=0.299*R+0.587*G+0.114*B;[H,W]=size(I);M=double(I);J=M;for i=2:H-1for j=2:W-1J(i,j)=abs(M(i-1,j+1)-M(i-1,j-1)+2*M(i,j+1)-2*M(i,j-1)+M(i+1,j+1)-M(i+1,j-1))+abs(M(i-1,j-1)-M(i+1,j-1)+2*M(i-1,j)-2*M(i+1,j)+M(i-1,j+1)-M(i+1,j+1));end;end;for i=2:H-1for j=2:W-1if J(i,j)>254J(i,j)=255;elseJ(i,j)=0;endendendsubplot(1,2,1);imshow(uint8(I));title('原图');subplot(1,2,2);imshow(uint8(J));title('Sobel 处理后');2.用 Laplacian-Gaussian方法对一幅灰度图像进行边缘提取I = imread('cameraman.bmp');R=double(I(:,:,1));G=double(I(:,:,2));B=double(I(:,:,3));[rows,cols]=size(R);I=0.299*R+0.587*G+0.114*B;s=fftshift(fft2(I));[M,N]=size(s);n=2;d0=400;n1=floor(M/2);n2=floor(N/2);for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);h=1*exp(-1/2*(d^2/d0^2));s(i,j)=h*s(i,j);endends=ifftshift(s);s=uint8(real(ifft2(s))); subplot(1,2,1),imshow(s);title('GLPF滤波');s=double(s);[r,c]= size(s);R=zeros(r,c);core1=[-1 -1 -1;-1 8 -1;-1 -1 -1];core2=[0 -1 0;-1 4 -1;0 -1 0];for x=2:r-1for y=2:c-1Z=[s(x-1,y-1) s(x-1,y) s(x-1,y+1);s(x,y-1) s(x,y) s(x,y+1);s(x+1,y-1) s(x+1,y) s(x+1,y+1)];A=core1*Z;B=core2*Z;R(x,y)=max(abs(sum(sum(A))),abs(sum(sum(B))));endendfor x=2:r-1for y=2:c-1if R(x,y)>250R(x,y)=255;elseR(x,y)=0;endendendsubplot(1,2,2),imshow(uint8(R));title('拉普拉斯处理后 ');3. 利用双峰法对一幅灰度图像进行灰度分割处理I = imread('lena.bmp');I=double(I);sum_obj=0;obj_counter=0;sum_backgnd=0;backgnd_counter=0;[rows,cols]=size(I);cols_c=floor(cols/20);rows_c=floor(rows/20);corners=[I(1:rows_c,1:cols_c);I(1:rows_c,(end-cols_c+1):end);I((en d-rows_c+1):end,1:cols_c);I((end-rows_c+1):end,(end-cols_c+1):end) ];threshold=mean(mean(corners));while 1for i=1:rowsfor j=1:colsif(I(i,j)>threshold)sum_obj=sum_obj+I(i,j);obj_counter=obj_counter+1;elsesum_backgnd=sum_backgnd+I(i,j);backgnd_counter=backgnd_counter+1;endendendnew_threshold=((sum_backgnd/backgnd_counter)+(sum_obj/obj_counter))/2 ;if(abs(threshold-new_threshold)<=0.01)break;endthreshold=new_threshold;endfor i=1:rowsfor j=1:colsIf(I(i,j)<=threshold)I(i,j)=0;elseI(i,j)=255;endendendimshow(I);四.实验结果及分析1. sobel边缘提取placian-Gaussian方法边缘提取3.双峰法对一幅灰度图像进行灰度分割处理五.实验小结与体会1.本次实验以图像分割为主线,涉及边缘提取2. 通过实验结果的比较,对课堂上的理论有了直观的认识,也为更好的理解理论奠定了基础,培养了兴趣。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告实验名称图像变换及频域滤波课程名称数字图像处理姓名成绩班级学号日期地点实验一 图像变换及频域滤波一.实验目的(1)编写快速傅里叶变换算法程序,验证二维傅里叶变换的平移性和旋转不变。

; (2)实现图像频域滤波,加深对频域图像增强的理解。

二.实验环境及开发工具Windws XP 、MATALAB7.0、Visual C++、Visual Basic 三.实验方法1.验证二维傅里叶变换的平移性和旋转不变性;a .要验证证其平移特性,就先建立一个二维图象,然后再对其平移,通过观察两者的频谱图来观察平移特性,为了方便起见,我们选择特殊情况来分析,令u0=v0=N/2,使),()1(),(12y x f y x f y x +-= F(u-N/2,v-N/2),达到将原始F(U,V)四周频谱移到中心的效果,及达到频谱中心化。

b .验证旋转不变性可以通过将原始数组的通过移动45度,然后再比较旋转后与旋转前的频谱,得出频谱旋转不变性的结论。

具体步骤:1)产生如图1所示图像),(1y x f (128×128大小,暗处=0,亮处=255) 2)同屏显示原图1f 和)(FFT 1f 的幅度谱图。

3)若令),()1(),(12y x f y x f y x +-=,重复以上过程,比较二者幅度谱的异同。

4)将),(2y x f 顺时针旋转45度得到),(3y x f ,显示)(FFT 3f 的幅度谱,并与)(FFT 2f 的幅度谱进行比较。

图1实验图象f 1(x , y )2.实现图像频域滤波,加深对频域图像增强的理解。

频率域中进行增强是相当直观的,主要步骤有:1)计算需要增强的图象的傅立叶变换;2)将其与一个(根据需要设计的)转移的函数相乘; 3)再将结果反傅立叶变换以得到增强的图象. 为了直观的展示频域增强,可以通过下面任务来展现:对如图2所示的数字图像lena.img (256×256大小、256级灰度)进行频域的理想低通、高通滤波,同屏显示原图、幅度谱图和低通、高通滤波的结果图。

四.实验分析1.验证二维傅里叶变换的平移性和旋转不变性 1)建立一个二维数组并要求该数组能够显示成图1.a=zeros(128,128) for y=54:74 for x=34:94 a(x,y)=1; end end然后再用显示图象的函数显示即可, 在此我们用imshow(a)语句。

为了得到幅度谱图,可以地数组a 进行快速傅立叶变换,然后再用图2 实验图象lena.imgMesh语句便可得到其幅度谱.2)观察其平移特性。

根据实验方法中的分析,构造一个新的数组存入平移后的原数组,通过在嵌套中加入语句b(x,y)=(-1).^(x+y).*a(x,y);即可,然后再用类似上面的方法画出图象和幅度谱.3)验证其旋转不变性。

首先将所得图画旋转45度,这需要通过将数组先相应的旋转,这个旋转有两种方式:(1)根据旋转后的图象算出旋转后的数组形式,通过点与点之间的变换来实现,需要分区间来画图和构建新的数组.然后用imshow来显示.(2)直接用IMROTATE(A,ANGLE,METHOD)语句,其中A表示数组,ANGLE表示旋转角度,METHOD表示旋转方向.我们令t=imrotate(a,315,'nearest','crop')令可将数组a逆时针旋转135度,即相当于顺时针旋转45度。

然后比较旋转前后两幅图的差别以及其频率谱和幅度谱的异同。

最后可以得结论。

2.实现图像频域滤波1)读出图片,并生成图片的数组.首先要将lena.img与MATLAB程序文档放在一个目录下面,然后再用语句a=fopen('lena.img','r');b=fread(a,[256,256],'uchar');打开图片并获得组成该图片的数组.然后用imshow(b),便可得到lena的人头图片.其次与上面任务一样,对图片数组进行快速傅立叶变换,然后用mesh()语句画出他的幅度谱图,2)进行频域增强的低通滤波部分。

频域法的过程是:f(x,y)→正变换----F(u,v)---→修正H(u,v)---G(u,v)---→反变换→g(x,y).理想低通滤波的转移函数需满足以下条件:H(u,v) H(u,v)=1; 当D(u,v)<=Do时;H(u,v)=0; 当D(u,v)> Do时;其中Do是一个非负整数, D(u,v)是反映点(u,v)到频率平面原点的距离。

当小于Do的频率可以完全不受影响的通过滤波器,而大于Do的则完全不能通过滤波器,该Do可以形象的表示成截断频率。

在低通滤波时,分别令Do等于88,24,11,5时,可得到低通滤波后的结果图象,通过观察其图象与幅度谱图来理解低通滤波的特性.3)进行频域增强的高通滤波部分。

一个2---D理想高通滤波器的转移函数满足下列条件H(u,v) H(u,v)=0; 当D(u,v)<=Do时;H(u,v)=1; 当D(u,v)> Do时;所得到的结果恰好与低通滤波相反, 当大于Do的频率可以完全不受影响的通过滤波器,而小于Do的则完全不能通过滤波器。

在高通滤波时,分别令Do等于2,8,24时,分别得到高通滤波后的结果图像,通过观察其图象与幅度谱图来理解高通滤波的特性。

关于此部分主要的函数语句是:(1) m=abs(b);m0=15*log(m+1.001);surf(m0);求出数组之后将其进行fft2得到m,然后求出其绝对值,为了避免其数值过大,求其对数,且为了避免出现0和1的情况,可以在m的基础上加上1.001,最后用surf()函数显示出3----D效果.(2) r=24;for x=1:256for y=1:256if (x-128).^2+(y-128).^2<r.^2;t(x,y)=0;endendend通过对r 数值的改变,和if 条件的变化来实现不同的低通和高通情况下的滤波. 五.实验结果及结论1.验证二维傅里叶变换的平移性和旋转不变性;1.1 产生的图像),(1y x f 与fft2(f1)幅度谱的程序如下:clear all; close all; a=zeros(128,128) for y=54:74 for x=34:94 a(x,y)=1; end end figure(1) a1=fft2(a); subplot(1,2,1); imshow(a); subplot(1,2,2); a2=abs(a1); mesh(a2); for x=1:128 for y=1:128b(x,y)=(-1).^(x+y).*a(x,y); end end figure(2) b1=fft2(b); subplot(1,2,1);imshow(b); subplot(1,2,2); b2=abs(b1); mesh(b2);figure(3)t=imrotate(a,315,'nearest','crop') t1=fft2(t); subplot(1,2,1); imshow(t); subplot(1,2,2); t2=abs(t1); surf(t2);结果如图1.2 令),()1(),(12y x f y x f y x +-=,则图像2f 与)(FFT 2f 的幅度谱图如下:结果分析:对比两图可以得到,1.2得的图就是将1.1得的图的频谱往中心移.即称为频谱中心化,将能量集中的4个角往中心靠拢。

1.3若将f2(x,y)顺时针旋转45°得到),(3y x f ,则3f 及)(FFT 3f 的幅度谱图如下结果分析:将1.3得的图与1.1得的图比较可知,将原图移动旋转45度以后,幅度谱图仍然没的改变,图象能量依然集中在4个角。

2.实现图像频域滤波2.1 对数字图像lena.img 进行频域的理想低通,同屏显示原图、幅度谱图和低通滤波的结果图。

其中,取理想低通滤波的半径R分别为88、24、11和5。

程序代码如下(取r=8时)clear all;close all;a=fopen('C:\Users\lenovo\Desktop\lena.img','r');b=fread(a,[256,256],'uchar');fclose(a);figure(1)subplot(1,2,1)imshow(b,[0,255]);b=fft2(b)m=abs(b);subplot(1,2,2)m0=15*log(m+1.001)surf(m)q=b;t=fftshift(q)r=8;for x=1:256for y=1:256if (x-128).^2+(y-128).^2>r.^2;t(x,y)=0;endendendh2=abs(t);h02=15*log(1.001+h2)figure(2)imshow(h02,[0,255]);t=ifftshift(t);z=ifft2(t);figure(3);subplot(1,2,1)imshow(z,[0,255]);n=fft2(z);subplot(1,2,2);n=15*log(1.001+abs(n));surf(n);结果如下:原图像及其频谱图R=88时的理想低通滤波结果图和滤波频谱图R R=24时的理想低通滤波结果图和滤波幅度谱图R=11时的理想低通滤波结果图和滤波频谱图R=5时的理想低通滤波结果图和滤波频谱图当 R=5 时,滤波后的图像很模糊,无法分辨;当 R=11 时,滤波后的图像比较模糊,但基本能分辨出人脸的形状;当 R=24 时,滤波后的图像有些模糊,能分辨出脸上的器官轮廓,但由于理想低通滤波器在频域的锐截止特性,滤波后的图像有较明显的振铃现象;当 R=88 时,滤波后的图像比较清晰,但高频分量损失后,图像边沿与文字变的有些模糊,在图像的边框附近仍有振铃现象。

2.2 对数字图像lena.img 进行频域的理想高通,同屏显示原图、幅度谱图和高通滤波的结果图。

其中,取理想高通滤波的半径R 分别为2、8 和24:原图像及其频谱图R=2时的理想高通滤波结果图和滤波频谱图R=8时的理想高通滤波结果图和滤波频谱图R=24时的理想高通滤波结果图和滤波频谱图注:对理想高通滤波后的图像用直接灰度变换方法作了灰度范围的扩展。

当 R=2 时,滤波后的图像无直流分量,但灰度的变化部分基本上都保留了;当 R=8时,滤波后的图像在文字和图像边缘部分的信息仍然保留;当 R=24 时,滤波后的图像只剩下文字和白条边缘等信号突变的部分。

相关文档
最新文档