二维灰度图象的统计分析及FFT变换处理_第1页
二维灰度图象的统计分析及FFT变换处理_第2页
二维灰度图象的统计分析及FFT变换处理_第3页
二维灰度图象的统计分析及FFT变换处理_第4页
二维灰度图象的统计分析及FFT变换处理_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 学 号基础强化训练设计报告题 目:二维灰度图象的统计分析及FFT变换处理专业班级:通信学生姓名:指导教师:武汉理工大学信息工程学院2010年7月13日基础强化训练设计任务书学生姓名: 专业班级:通信指导教师: 工作单位:信息工程学院题 目: 二维灰度图象的统计分析及FFT变换处理课程设计目的: 较全面了解常用的数据分析与处理原理及方法; 能够运用相关软件进行模拟分析; 掌握基本的文献检索和文献阅读的方法; 提高正确地撰写论文的基本能力。课程设计内容和要求 采集一幅像素大于64*64黑白图像; 常规的数学统计数据处理:计算图象各象素点灰度值得均值、标准差、方差,并绘出灰度直方图; 采用FFT(

2、傅立叶变换)对图像进行分析初始条件: MATLAB软件。 数字信号处理与图像处理基础知识。时间安排:第18周周一:安排任务1920周:仿真设计(鉴主13楼计算机实验室)第20周周六:完成(答辩,提交报告,演示) 指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目 录摘 要1Abstract21 数据采集31.1 图像的选取31.2 MATLAB读取方法41.2.1 编辑M文件41.2.2 图像的读取41.2.3查看图像的格式51.2.4 灰度值的获取62 数据统计处理72.1 均值计算72.1.1 原理介绍72.1.2 仿真结果72.2 标准差计算82.2.1 原理介绍82.2

3、.2 仿真结果82.3 方差计算82.3.1 原理介绍82.3.2 仿真结果92.4绘制灰度直方图92.4.1直方图定义92.4.2直方图的绘制93 快速傅立叶变换(FFT)103.1 原理介绍103.2 仿真结果124 总结和心得13参考文献14摘 要数字图像处理是一门新兴的综合性学科,它在交通、通信、工业、军事、医学、遥感等多领域被广泛应用。伴随着计算机技术的发展,图像处理的应用领域还在不断扩大。图像处理工程可分为图像处理、图像分析和图像理解三个层次,图像处理是比较低层的操作,它主要在图像的像素级上进行处理,而且处理的数据非常庞大,需要用到大量的工程数学知识。Matlab集数值计算、符号运

4、算及图形处理等强大功能于一体,是当今国际上公认的最优秀的科技应用软件之一。它编写简单,具有强大的科学计算能力、可视化功能和开放式可扩展环境,因此在图像处理领域得到了广泛的应用。本次练习就是Matlab环境下的一些最基本的图像处理操作,如图像的读取、显示、直方图统计、图像增强、傅里叶变换等处理,为将来迅速进入图像处理应用领域打下基础。关键词:Matlab,数字图像处理 AbstractDigitalimageprocessingis a new comprehensive subjectwhich has been widely used in many fields like transpor

5、tation, communications, industrial, military, medical, remote sensing.With the development of computer technology, image processing applications is still expanding.Image processing projects can be divided into three levels,imageprocessing, image analysis and image understanding.Image processing oper

6、ations are consideredrelatively low-level.It is mainly used on the pixel level and it handles verylarge data.So it needs to use a lot of engineering mathematics.Matlab is good at numerical calculations, symbolic manipulation and graphics processing.It isinternationally recognized as the best applica

7、tion of technology today.It can be used for programming with its powerful scientific computing, visualization and open extensible environment.Therefore it has been widely used in image processing.We will do the most basic image processing operationsunder the Matlab environment, such as image reading

8、, displaying,histogram statistics,image enhancement and Fourier transform processing.This practice can help us prepare for do image processingquickly in the future.Key words:Matlab,digitalimageprocessing1 数据采集Matlab软件的图像采集工具箱提供了大量的函数用于采集图像和视频信号,该工具箱支持的硬件设备包括工业标准的PC图像采集卡和相应的设备。所支持的硬件包括:Matrox和Data Tr

9、anslation公司提供的视频采集设备,同时还支持Windows平台下支持USB视频摄像头等设备。Matlab可以支持很多很多图片的文件格式,例如cur、bmp、hdf、ico、jpg、tif、gif、pcx等。用于读写图像数据的函数有imread(从图像格式的文件中读取数据)和imwrite(将数据写入图像格式的文件)。这里我们主要是用到图像的读取。1.1 图像的选取目前我们刚接触图像的处理,为了便于学习和降低难度,根据训练要求,我们采集一幅像素略大于64*64黑白图像如下:图1.1 选取的图片1.2 MATLAB读取方法1.2.1 编辑M文件打开Matlab软件,在File下选择NewM

10、-File便可以编辑M文件。M文件分为脚本式和函数式,我们可以利用M文件实现自己的算法即可以建立自己的函数工具箱。例如读取图像我们可以编辑一个read.m的文件来实现读取图像的功能。在以后的处理过程中我们几乎每部分都要建立M文件,到时将具体列出其内容。1.2.2 图像的读取imread函数用于读入各种图象文件,其一般的用法为:      利用函数imread()可完成图形图像文件的读取,语法:A=imread(filename,fmt)fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。通常,读取的大多数图像均为8bit

11、,当这些图像加载到内存中时,Matlab就将其存放在类uint8中。例如本次练习中: I = imread(tree.jpg);利用函数imread函数实现图像文件的读取,然后运用imshow函数显示图像。具体操作如下:将所要处理的图片存在D:matlabwork里,若要将图片“tree.jpg”写入Matlab中。需要先打开运行Matlab,然后在File里面新建M-File文件,再将读取图片M文件read.m的程序如下:I= imread ('tree.jpg');figureimshow(I);title('西院的老树');在Matlab的command

12、windows栏里运行read图1.2 读取后显示图片查看图像的格式图形图像文件信息的查询   imfinfo()函数imfinfo( 'tree.jpg')在Matlab的command windows栏里运行该函数,可查看该图像的格式>> imfinfo( 'tree.jpg')ans = Filename: 'tree.jpg' FileModDate: '25-May-2010 22:17:58' FileSize: 58954 Format: 'jpg' FormatVer

13、sion: '' Width: 353 Height: 250 BitDepth: 8 ColorType: 'grayscale' FormatSignature: '' NumberOfSamples: 1 CodingMethod: 'Huffman' CodingProcess: 'Sequential' Comment: 'ACD Systems Digital Imaging'1.2.4 灰度值的获取从上述文件的信息可以看到该文件的颜色类型ColorType: 'grayscal

14、e',所以我们不需转换格式便可以查看该图片的灰度值。灰度图像的数据通常是保存在一个二维矩阵中,本图像的像素为250X353即有一个250X353的矩阵。只要在command windows输入I=imread('tree.jpg')运行便可得该图像的矩阵(部分):图1.3 图像的灰度值矩阵2 数据统计处理2.1 均值计算2.1.1 原理介绍均值计算的原理较简单,在MATLAB的函数库中表示均值的函数是mean2,其格式是mean2(),括号里面就是待处理分析的信号。均值计算主要是获得图像矩阵每列灰度值的平均值(函数mean)或者是总的平均值(函数mean2)。1、新建M

15、文件average1.m编辑如下:I=imread('tree.jpg');mean(I)2、 M文件average2.m编辑如下:I=imread('tree.jpg');mean2(I)2.1.2 仿真结果1、 每列的平均值仿真结果(部分)如下:>> average1ans = Columns 1 through 11 93.5800 98.0280 99.6160 105.2520 108.9000 108.8640 109.0560 106.9680 105.8760 103.8640 103.5200 Columns 12 through

16、22 104.6520 104.3400 103.3840 102.0960 99.7320 98.0240 101.3360 104.5320 103.0720 102.3080 101.8880 Columns 23 through 33 103.0040 101.4360 98.6360 99.8600 99.1800 95.0520 93.8160 92.9760 91.4280 91.9880 94.2520 Columns 34 through 44 98.1720 99.0600 98.7840 100.6720 104.9280 107.1880 107.3720 105.93

17、20 104.0160 103.9160 103.2720 Columns 45 through 55 104.6880 106.8600 105.2040 103.6160 105.5200 106.9320 2、求总的像素灰度均值仿真结果如下:>> average2ans = 135.20812.2 标准差计算2.2.1 原理介绍标准差表示一组数据对于平均值的分散程度,在MATLAB的函数库中计算矩阵标准差的函数为std2,其格式是std2(),括号里面就是待处理分析的信号。由于标准差反映的是图像灰度值偏离灰度均值的程度,如果标准差越大,则说明灰度级越大,则图像包含的信息就越多

18、。编辑M文件bzc.m如下:I=imread('tree.jpg');std2(double(I)2.2.2 仿真结果>> bzcans = 72.75382.3 方差计算2.3.1 原理介绍这里对图像的方差进行计算如图2.5所示,在求标准差的基础上,方差是标准差的平方,其反映的也是图像灰度值偏离灰度均值的程度,同样Matlab也提供直接求方差的函数var(),当在()里面输入I(:)表示对整个矩阵求方差。编辑M问件fc.m如下:I=imread('tree.jpg');var(double(I(:)2.3.2 仿真结果>> fcans

19、= 5.2931e+0032.4绘制灰度直方图在数字图像处理中,一个最简单最有用的工具是灰度直方图,它是一个用来说明图像灰度分布的图形。灰度直方图是多种空间域处理的基础,是图像处理中十分重要的分析工具,直方图的操作能有效地用于图像增强、图像压缩、边沿检测等处理中。2.4.1直方图定义灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数,其横坐标表示灰度级纵坐标表示频数或等于该灰度级的像素的个数与总像素之比。灰度直方图反映了一幅图中的灰度级与出现这种灰度的概率之间的关系,展现了图像最基本的统计特征。2.4.2直方图的绘制Matlab里面图像的直方图的绘制用的函数是imhist。其使用

20、格式为imhist(I,n) 其中,n 为指定的灰度级数目,缺省值为256。M文件编辑draw.m如下:I= imread ('tree.jpg');imhist(I)运行结果如下:图2.1 图像的灰度直方图3 快速傅立叶变换(FFT)离散傅里叶变换时数字图像处理最常用的一个正交变换。利用傅里叶变换可将图像信号从空间域变换到频率域,使得信号处理中的频域理论可应用于数字图像处理领域。3.1 原理介绍假设f(x,y)是一个离散空间中的二维函数,则该函数的二维傅立叶变换的定义如下:u=0,1M-1v=0,1N-1(1)离散傅立叶反变换的定义如下: x=0,1M-1y=0,1

21、N-1(3)F(p,q)称为f(m,n)的离散傅立叶变换系数。这个式子表明,函数f(m,n)可以用无数个不同频率的复指数信号和表示,而在频率(w1,w2)处的复指数信号的幅度和相位是F(w1,w2)。Matlab里对图像快速傅里叶变化用到的是fft2函数。其应用格式为:Afft2(X,MROWS,NCOLS)  其中,MROWS 和 NCOLS 指定对 X 进行零填充后的 X 大小。傅里叶反变换函数为ifft2( ),显示频谱图可以使用imshow(X,)。1、进行傅里叶变换的M文件fft1.m如下:I= imread ('tree.jpg'); %读取图像F=fft

22、2(double(I); %进行二维傅里叶变换S=abs(F); %计算傅里叶频谱S1=fftshift(S); %计算居中的傅里叶频谱 S2=log(1+S1); %为缩小观察范围进行对数变换i=real(ifft2(S1); %傅里叶反变换figure %画出原图,傅里叶变换图,傅里叶频谱和居中的傅里叶频谱subplot(2,2,1),imshow(I);title('a.原图');subplot(2,2,2),imshow(F);title('b.傅里叶变换图');subplot(2,2,3),imshow(log(S+1),);title('c.

23、傅里叶频谱图');subplot(2,2,4),imshow(S2,);title('d.居中的傅里叶频谱图');2、 傅里叶变换后进行傅里叶反变换的M文件fb.m如下:I=imread ('tree.jpg'); %读取图像F1=fft2(double(I); %进行二维傅里叶变换i=ifft2(F1); %傅里叶反变换 figure subplot(2,2,1),imshow(I);title('a.原图');subplot(2,2,2),imshow(F1);title('b.傅里叶变换图');subplot(2,2

24、,3),imshow(i,);title('c.傅里叶反变换图');3.2 仿真结果图3.1 傅里叶变换结果图图3.2 傅里叶反变换图4 总结和心得考完试了,我便有时间认真的完成此次的基础强化训练,之前有接触过Matlab也有接触过信号与系统的Matlab实验,所以对Matlab的信号处理我并不感到陌生。但是我对数字图像处理却没有任何概念,之前对图像的认识仅限于图片的格式以及像素的大小,并了解图像处理原来是一门先进的专业学科。因此我借助此次的强化训练进一步的认识图像处理技术。为了完成此次的强化训练,我上网查找了Matlab的相关教程以及图像处理函数库,并且带着电脑扎根鉴主18楼图书室,以便随时查阅相关书籍。通过学习我对图像处理技术的应用情况有了一个宏观的认识,它和通信工程也是紧密联系的,所以我至少要掌握它的基本处理方法,以便将来更加深入的学习。对于图像的统计处理的练习,我边查相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论