最新Matlab二维灰度图象的统计分析及FFT变换处理.docx
- 文档编号:29911013
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:14
- 大小:1.17MB
最新Matlab二维灰度图象的统计分析及FFT变换处理.docx
《最新Matlab二维灰度图象的统计分析及FFT变换处理.docx》由会员分享,可在线阅读,更多相关《最新Matlab二维灰度图象的统计分析及FFT变换处理.docx(14页珍藏版)》请在冰豆网上搜索。
最新Matlab二维灰度图象的统计分析及FFT变换处理
[Matlab]二维灰度图象的统计分析及FFT变换处理
《基础强化训练》报告
题目:
二维灰度图象的统计分析及FFT变换处理
专业班级:
通信0803
学生姓名:
David
指导教师:
刘雪东
武汉理工大学信息工程学院
2010年7月11日
基础强化训练任务书
学生姓名:
鲁浩专业班级:
通信0803
指导教师:
刘雪东工作单位:
信息工程学院
题目:
二维灰度图象的统计分析及FFT变换处理
基础强化训练目的
1较全面了解常用的数据分析与处理原理及方法;
2能够运用相关软件进行模拟分析;
3掌握基本的文献检索和文献阅读的方法;
4提高正确地撰写论文的基本能力。
训练内容和要求
1采集一幅像素大于64*64黑白图像;
2常规的数学统计数据处理:
计算图象各象素点灰度值得均值、标准差、方差,并绘出灰度直方图;
3数据分析常用算法:
FFT(傅立叶变换)
初始条件
1MATLAB软件
2数字信号处理与图像处理基础知识
时间安排:
第19周,安排任务(鉴3-204,7月6日)
第20周,仿真设计(鉴主13楼计算机实验室)
第20周,完成(答辩,提交报告,演示)
指导教师签名:
2010年7月日
系主任(或责任教师)签名:
年月日
摘要
MATLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。
作为强大的科学计算平台,它几乎能够满足所有的计算需求。
MATLAB本身就是功能强大的数据可视化工具,可以通过各种形式显示分析数据,例如灰度直方图、等高线、蒙太奇混合、像素分析、图层变换以及材质贴图等。
利用可视化的图形,不仅能够评估图形图像的特性,还能够分析图像中的色彩分布等情况。
本次练习介绍的就是Matlab环境下的一些最基本的图像处理操作,如读图像、写图像、查看图像信息和格式、尺寸和灰度的伸缩等等;通过实验掌握图像直方图的描绘方法,加深直方图形状与图像特征间关系间的理解;加深对直方图均衡算法的理解。
关键词:
Matlab;仿真;傅里叶变换
Abstract
MATLABisascientificcomputinglanguagethataddsthefunctionofnumericalcomputingandgraphicsprocessing,symbolstogether.Asapowerfulscientificcomputingplatforms,itcanalmostsatisfyallthecalculationsthatneeds.MATLABitselfisapowerfultoolofdatavisualizationthatcandisplaydatathroughvariousforms,suchasgraylevelhistogram,contours,montagemixing,pixelanalysis,thelayertextureandtransformation.Withvisualgraphics,itcannotonlyevaluateimagecharacteristics,butalsoanalyzethedistributionofcolorimage.
ThepurposeofthepracticeofintroducingMatlabenvironmentisthemostbasicofsomeimageprocessingoperations,suchasread,write,imageinformationandimageformat,sizeandgraytelescopic;etc.Throughtheexperimentmasteryofimagehistogramsdepictsmethod,deepenthehistogramimagefeatureandtherelationshipbetweentheshapeofunderstanding,andtodeepentheunderstandingofhistogramequalizationalgorithm.
Keywords:
Matlab;Simulation;Fouriertransform
1数据采集
Matlab软件的图像采集工具箱提供了大量的函数用于采集图像和视频信号,该工具箱支持的硬件设备包括工业标准的PC图像采集卡和相应的设备。
所支持的硬件包括:
Matrox和DataTranslation公司提供的视频采集设备,同时还支持Windows平台下支持USB或者火线(IEEE-1394)的视频摄像头等设备。
MATLAB可以支持很多很多图片的文件格式,例如*.cur、*.bmp、*.hdf、*.ico、*.jpg、*.tif、*.gif、*.pcx等。
用于读写图像数据的函数有imread(从图像格式的文件中读取数据)和imwrite(将数据写入图像格式的文件)。
这里我用到的是imread,主要是用到图像文件的读取。
1.1图像的选取
本次的研究对象为我用手机拍摄的一张图片leg.jpg。
图片尺寸为558×745。
图1.1原始图片
1.2MATLAB编辑
1.2.1编辑M文件
打开Matlab软件,在File下选择New\M-File。
1.2.2图像的读取与显示
imread函数用于读入各种图象文件,其一般的用法为:
[X,MAP]=imread(‘filename’,‘fmt’);
亦可直接写为imread(‘’);其中,X,MAP分别为读出的图象数据和颜色表数据,fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。
例如本次练习中:
i=imread(’738f963cab1540e39e3d62e2.jpg’);
利用函数imread函数实现图像文件的读取,然后运用imshow函数显示图像。
如果采集图像为彩色图像,可以先将彩色图像转换为灰度图像,再进行计算分析。
操作如下图1.1,将存在D:
\documents\matlab\强化训练\里的图片“leg.jpg”写入MATLAB中。
需要先打开运行MATLAB,然后在File里面新建M-File文件,再将读写图片数据的程序输进去即可。
i=imread('leg.jpg');
g=rgb2gray(i);
figure
imshow(i);
title('ori');
figure
imshow(g);
title('grey');
图1.1图像的转换及显示
检查程序无误之后,就可以直接在commandwindow窗口运行。
如果运行之后在MATLAB主页面里显示有错误的话就需要重新回到M-File的页面里面对程序进行修改然后才可以运行;如果运行之后在MATLAB主页面里面没有错误显示就可以看到图1.2。
图1.2原图与灰白图
2数据统计处理
2.1均值计算
2.1.1原理介绍
均值计算的原理较简单,在MATLAB的函数库中表示均值的函数是mean2,其格式是mean2(),括号里面就是待处理分析的信号。
i=imread('leg.jpg');
g=rgb2gray(i);
mean2(g)
图2.1均值计算的程序
上面的程序同样也是在新建的M-File文件里面编写运行的,检查程序没有错误之后,就在commandwindow窗口直接运行。
2.1.2仿真结果
运行以上的程序以后,如果程序有错误的话,会在MATLAB的主页面里显示出来;如果没有错误也可以在MATLAB的主页面查看显示的结果。
上图程序运行的结果如下图2.2所示。
图2.2均值的结果显示
2.2标准差计算
在MATLAB的函数库中表示标准差的函数为std2,其格式是std2(),括号里面就是待处理分析的信号。
由于标准差反映的是偏离灰度均值的程度,如果标准差越大,则说明灰度级越大,则图像包含的信息就越多。
i=imread('leg.jpg');
g=rgb2gray(i);
c=std2(g)
图2.3标准差计算的程序
图2.4标准差的结果显示
2.3方差计算
这里对图像的方差进行计算如图2.5所示,在求标准差的基础上,方差是标准差的平方。
i=imread('leg.jpg');
g=rgb2gray(i);
c=std2(g)
d=c.^2
图2.5方差的计算程序
图2.6方差的结果显示
2.4灰度直方图
直方图是一个显示灰度或索引图像亮度分布情况的图表,它是图像分析中用来说明图像灰度分布的图形。
直方图的每一个分支表示对应灰度级出现的频数(处于该灰度级的像素的数目)间的统计关系,用横坐标表示灰度级,纵坐标表示频数(或相对频数=频数/总像素数目)。
这里对图像的直方图的绘制用的函数是imhist,下面为具体绘制图像直方图的程序,如图2.7。
i=imread('leg.jpg');
g=rgb2gray(i);
imhist(g);
title('hdzft');
图2.7直方图绘制的程序
图2.8直方图的显示
3快速傅立叶变换
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)。
这里是对图像快速傅里叶变化,用到的是fft2函数。
说明:
以下程序的原始图片dai.jpg放在matlab安装目录下work文件夹里。
打开matlab后将本程序段直接复制到matlab的“commandwindow”里面的">>"后即可进行图片的傅立叶变换。
对图像快速傅里叶变化后,可以对图像进行反傅里叶变换,应用函数ifft2(),如果得到的图像与傅里叶变换前的图像相同,则傅里叶变换正确。
i=imread('leg.jpg');
g=rgb2gray(i);
figure
imshow(i);
figure
imshow(g);
B1=fft2(g);
B=fftshift(B1);
figure
imshow(log(abs(B)),[]);
B2=ifft2(B1);
figure
imshow(B2,[])
图3.1快速傅里叶变换与反变换的程序
3.2仿真结果
检查无误后,运行以上的程序,观察程序运行结果。
出现几个警告,这是由图片尺寸太大导致的。
图3.2warning提示
程序运行的结果如图3.3所示:
图3.3结果显示
4心得体会
在《信号与系统》课程中,我接触并学习了Matlab软件。
当时只是按照教材一步一步来,并没有灵活掌握Matlab的使用方法。
通过这次基础强化训练,我感觉自己有很大提高。
程序的结构设计问题,对于程序的运行效率非常有帮助。
有时候,编出来的程序,能够运行,但是耗时太长,也就是说程序没有错,但是不适合实际。
或者说,对于规模小的问题能够解决,但是规模大一点的问题就需要很长很长的时间,这就需要对程序的结构和算法问题进行改进。
我又专门找来了一本Matlab的函数工具词典,就像汉语词典一样,尽量多的去熟悉matlab自带的函数,及其作用,因为matlab的自带函数特别多,基本上能够满足一般的数据和矩阵的计算,所以基本上不需要你自己编函数。
这一点对我写程序非常有帮助,可以使写出的程序简单,运行效率高,从而节省很多时间。
在这次强化训练中,多查,多问,多练,我为自己的进步感到高兴。
5参考文献
[1]王华等.MATLAB电子仿真与应用教程.国防工业出版社.2001.
[2]李文锋.图形图像处理与应用.中国标准出版社.2006.
[3]王洪元.MATLAB语言以及在电子信息工程中的应用.清华大学出版社.2004
[4]刘文耀.数字图像采集与处理.电子工业出版社.2007.
[5]贺兴华.MATLAB7.X图像处理.人民邮电出版社.2006.
[5]章毓晋.图像工程(上册).北京清华大学出版社.1999.
本科生基础强化训练成绩评定表
姓名
David
性别
男
专业、班级
通信0803
题目:
二维灰度图象的统计分析及FFT变换处理
答辩或质疑记录:
成绩评定依据:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 Matlab 二维 灰度 图象 统计分析 FFT 变换 处理