二维灰图象的统计分析及FFT变换处理doc.docx
- 文档编号:15210792
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:15
- 大小:468.87KB
二维灰图象的统计分析及FFT变换处理doc.docx
《二维灰图象的统计分析及FFT变换处理doc.docx》由会员分享,可在线阅读,更多相关《二维灰图象的统计分析及FFT变换处理doc.docx(15页珍藏版)》请在冰点文库上搜索。
二维灰图象的统计分析及FFT变换处理doc
学号
《基础强化训练》设计报告
题目:
二维灰度图象的统计分析及FFT变换处理
专业班级:
学生姓名:
指导教师:
xxx大学信息工程学院
xxxx年x月xx日
《基础强化训练》设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
信息工程学院
题目:
二维灰度图象的统计分析及FFT变换处理
课程设计目的:
1较全面了解常用的数据分析与处理原理及方法;
2能够运用相关软件进行模拟分析;
3掌握基本的文献检索和文献阅读的方法;
4提高正确地撰写论文的基本能力。
课程设计内容和要求
1采集一幅像素大于64*64黑白图像;
2常规的数学统计数据处理:
计算图象各象素点灰度值得均值、标准差、方差,并绘出灰度直方图;
3采用[FFT(傅立叶变换)]对图像进行分析
初始条件:
1MATLAB软件。
2数字信号处理与图像处理基础知识。
时间安排:
第18周周一:
安排任务
19~20周:
仿真设计(鉴主13楼计算机实验室)
第20周周六:
完成(答辩,提交报告,演示)
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
数字图像处理是一门新兴的综合性学科,它在交通、通信、工业、军事、医学、遥感等多领域被广泛应用。
伴随着计算机技术的发展,图像处理的应用领域还在不断扩大。
图像处理工程可分为图像处理、图像分析和图像理解三个层次,图像处理是比较低层的操作,它主要在图像的像素级上进行处理,而且处理的数据非常庞大,需要用到大量的工程数学知识。
Matlab集数值计算、符号运算及图形处理等强大功能于一体,是当今国际上公认的最优秀的科技应用软件之一。
它编写简单,具有强大的科学计算能力、可视化功能和开放式可扩展环境,因此在图像处理领域得到了广泛的应用。
本次练习就是Matlab环境下的一些最基本的图像处理操作,如图像的读取、显示、直方图统计、图像增强、傅里叶变换等处理,为将来迅速进入图像处理应用领域打下基础。
Abstract
Digitalimageprocessingisanewcomprehensivesubjectwhichhasbeenwidelyusedinmanyfieldsliketransportation,communications,industrial,military,medical,remotesensing.Withthedevelopmentofcomputertechnology,imageprocessingapplicationsisstillexpanding.Imageprocessingprojectscanbedividedintothreelevels,imageprocessing,imageanalysisandimageunderstanding.Imageprocessingoperationsareconsideredrelativelylow-level.Itismainlyusedonthepixellevelandithandlesverylargedata.Soitneedstousealotofengineeringmathematics.
Matlabisgoodatnumericalcalculations,symbolicmanipulationandgraphicsprocessing.Itisinternationallyrecognizedasthebestapplicationoftechnologytoday.Itcanbeusedforprogrammingwithitspowerfulscientificcomputing,visualizationandopenextensibleenvironment.Thereforeithasbeenwidelyusedinimageprocessing.
WewilldothemostbasicimageprocessingoperationsundertheMatlabenvironment,suchasimagereading,displaying,histogramstatistics,imageenhancementandFouriertransformprocessing.Thispracticecanhelpuspreparefordoimageprocessingquicklyinthefuture.
1数据采集
Matlab软件的图像采集工具箱提供了大量的函数用于采集图像和视频信号,该工具箱支持的硬件设备包括工业标准的PC图像采集卡和相应的设备。
所支持的硬件包括:
Matrox和DataTranslation公司提供的视频采集设备,同时还支持Windows平台下支持USB视频摄像头等设备。
Matlab可以支持很多很多图片的文件格式,例如﹡cur、﹡bmp、﹡hdf、﹡ico、﹡jpg、﹡tif、﹡gif、﹡pcx等。
用于读写图像数据的函数有imread(从图像格式的文件中读取数据)和imwrite(将数据写入图像格式的文件)。
这里我们主要是用到图像的读取。
1.1图像的选取
目前我们刚接触图像的处理,为了便于学习和降低难度,根据训练要求,我们采集一幅像素略大于64*64黑白图像如下:
图1.1选取的图片
1.2MATLAB读取方法
1.2.1编辑M文件
打开Matlab软件,在File下选择New\M-File便可以编辑M文件。
M文件分为脚本式和函数式,我们可以利用M文件实现自己的算法即可以建立自己的函数工具箱。
例如读取图像我们可以编辑一个read.m的文件来实现读取图像的功能。
在以后的处理过程中我们几乎每部分都要建立M文件,到时将具体列出其内容。
1.2.2图像的读取
imread函数用于读入各种图象文件,其一般的用法为:
利用函数imread()可完成图形图像文件的读取,语法:
A=imread(filename,fmt)
fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。
通常,读取的大多数图像均为8bit,当这些图像加载到内存中时,Matlab就将其存放在类uint8中。
例如本次练习中:
I=imread(‘tree.jpg’);利用函数imread函数实现图像文件的读取,然后运用imshow函数显示图像。
具体操作如下:
将所要处理的图片存在D:
\matlab\work里,若要将图片“tree.jpg”写入Matlab中。
需要先打开运行Matlab,然后在File里面新建M-File文件,再将读取图片
M文件read.m的程序如下:
I=imread('tree.jpg');
figure
imshow(I);
title('西院的老树');
在Matlab的commandwindows栏里运行read
图1.2读取后显示图片
1.2.3查看图像的格式
图形图像文件信息的查询 imfinfo()函数
imfinfo('tree.jpg')
在Matlab的commandwindows栏里运行该函数,可查看该图像的格式
>>imfinfo('tree.jpg')
ans=
Filename:
'tree.jpg'
FileModDate:
'25-May-201022:
17:
58'
FileSize:
58954
Format:
'jpg'
FormatVersion:
''
Width:
353
Height:
250
BitDepth:
8
ColorType:
'grayscale'
FormatSignature:
''
NumberOfSamples:
1
CodingMethod:
'Huffman'
CodingProcess:
'Sequential'
Comment:
{'ACDSystemsDigitalImaging'}
1.2.4灰度值的获取
从上述文件的信息可以看到该文件的颜色类型ColorType:
'grayscale',所以我们不需转换格式便可以查看该图片的灰度值。
灰度图像的数据通常是保存在一个二维矩阵中,本图像的像素为250X353即有一个250X353的矩阵。
只要在commandwindows输入I=imread('tree.jpg')运行便可得该图像的矩阵(部分):
图1.3图像的灰度值矩阵
2数据统计处理
2.1均值计算
2.1.1原理介绍
均值计算的原理较简单,在MATLAB的函数库中表示均值的函数是mean2,其格式是mean2(),括号里面就是待处理分析的信号。
均值计算主要是获得图像矩阵每列灰度值的平均值(函数mean)或者是总的平均值(函数mean2)。
1、新建M文件average1.m编辑如下:
I=imread('tree.jpg');
mean(I)
2、M文件average2.m编辑如下:
I=imread('tree.jpg');
mean2(I)
2.1.2仿真结果
1、每列的平均值仿真结果(部分)如下:
>>average1
ans=
Columns1through11
93.580098.028099.6160105.2520108.9000108.8640109.0560106.9680105.8760103.8640103.5200
Columns12through22
104.6520104.3400103.3840102.096099.732098.0240101.3360104.5320103.0720102.3080101.8880
Columns23through33
103.0040101.436098.636099.860099.180095.052093.816092.976091.428091.988094.2520
Columns34through44
98.172099.060098.7840100.6720104.9280107.1880107.3720105.9320104.0160103.9160103.2720
Columns45through55
104.6880106.8600105.2040103.6160105.5200106.9320
……
2、求总的像素灰度均值仿真结果如下:
>>average2
ans=
135.2081
2.2标准差计算
2.2.1原理介绍
标准差表示一组数据对于平均值的分散程度,在MATLAB的函数库中计算矩阵标准差的函数为std2,其格式是std2(),括号里面就是待处理分析的信号。
由于标准差反映的是图像灰度值偏离灰度均值的程度,如果标准差越大,则说明灰度级越大,则图像包含的信息就越多。
编辑M文件bzc.m如下:
I=imread('tree.jpg');
std2(double(I))
2.2.2仿真结果
>>bzc
ans=
72.7538
2.3方差计算
2.3.1原理介绍
这里对图像的方差进行计算如图2.5所示,在求标准差的基础上,方差是标准差的平方,其反映的也是图像灰度值偏离灰度均值的程度,同样Matlab也提供直接求方差的函数var(),当在()里面输入I(:
)表示对整个矩阵求方差。
编辑M问件fc.m如下:
I=imread('tree.jpg');
var(double(I(:
)))
2.3.2仿真结果
>>fc
ans=
5.2931e+003
2.4绘制灰度直方图
在数字图像处理中,一个最简单最有用的工具是灰度直方图,它是一个用来说明图像灰度分布的图形。
灰度直方图是多种空间域处理的基础,是图像处理中十分重要的分析工具,直方图的操作能有效地用于图像增强、图像压缩、边沿检测等处理中。
2.4.1直方图定义
灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数,其横坐标表示灰度级纵坐标表示频数或等于该灰度级的像素的个数与总像素之比。
灰度直方图反映了一幅图中的灰度级与出现这种灰度的概率之间的关系,展现了图像最基本的统计特征。
2.4.1直方图的绘制
Matlab里面图像的直方图的绘制用的函数是imhist。
其使用格式为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,1…M-1 v=0,1…N-1
(1)
离散傅立叶反变换的定义如下:
x=0,1…M-1 y=0,1…N-1(3)
F(p,q)称为f(m,n)的离散傅立叶变换系数。
这个式子表明,函数f(m,n)可以用无数个不同频率的复指数信号和表示,而在频率(w1,w2)处的复指数信号的幅度和相位是F(w1,w2)。
Matlab里对图像快速傅里叶变化用到的是fft2函数。
其应用格式为:
A=fft2(X,MROWS,NCOLS)
其中,MROWS和NCOLS指定对X进行零填充后的X大小。
傅里叶反变换函数为ifft2(),显示频谱图可以使用imshow(X,[])。
1、进行傅里叶变换的M文件fft1.m如下:
I=imread('tree.jpg');%读取图像
F=fft2(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.傅里叶频谱图');
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,3),imshow(i,[]);title('c.傅里叶反变换图');
3.2仿真结果
图3.1傅里叶变换结果图
图3.2傅里叶反变换图
4总结和心得
考完试了,我便有时间认真的完成此次的基础强化训练,之前有接触过Matlab也有接触过信号与系统的Matlab实验,所以对Matlab的信号处理我并不感到陌生。
但是我对数字图像处理却没有任何概念,之前对图像的认识仅限于图片的格式以及像素的大小,并了解图像处理原来是一门先进的专业学科。
因此我借助此次的强化训练进一步的认识图像处理技术。
为了完成此次的强化训练,我上网查找了Matlab的相关教程以及图像处理函数库,并且带着电脑扎根鉴主18楼图书室,以便随时查阅相关书籍。
通过学习我对图像处理技术的应用情况有了一个宏观的认识,它和通信工程也是紧密联系的,所以我至少要掌握它的基本处理方法,以便将来更加深入的学习。
对于图像的统计处理的练习,我边查相关文献边在Matlab中运行程序很快就掌握了基本的统计方法,而且没有感觉十分的吃力。
当然在学习的过程中我也遇到了一些小困难,比如Matlab的语言编写和图像处理知识的理解问题,不过通过查阅相关的文献我便能很快的解决这些问题。
通过此次的强化训练,我较全面了解常用的数据分析与处理原理及方法,能够运用Matlab进行基本的模拟分析,掌握了文献检索和文献阅读的基本方法,同时也提高正确地撰写论文的基本能力。
总之我在学习的过程中体会到了快乐,这段时间感到十分的充实,这种边实践边学习才是我真正想要的学习方式,我真心希望以后能有更多的机会进行这样的学习和训练。
参考文献
[1]韩晓军.数字图像处理技术与应用.电子工业出版社.2009.
[2]李南南、吴清、曹辉林.MATLAB7简明教程.清华大学出版社.2006
[3]刘文耀.数字图像采集与处理.电子工业出版社.2007.
[4]刘直芳、王运琼、朱敏.数字图像处理与分析.清华大学出版社.2006
[5]蓝章礼、李益才、李益才.数字图像处理与图像通信.清华大学出版社.2009
本科生基础强化训练成绩评定表
姓名
性别
男
专业、班级
通信0805班
题目:
二维灰度图象的统计分析及FFT变换处理
答辩或质疑记录:
成绩评定依据:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二维 图象 统计分析 FFT 变换 处理 doc