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

下载本文档

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

文档简介

目 录 摘 要.2 abstract.3 1 数据采集5 1.1 选取图像5 1.2 matlab 读取方法.6 1.2.1 创建m文件.6 1.2.2 读取图像6 1.2.3 查看图像格式7 1.2.4 灰度值的获取9 2 数据统计处理.11 2.1 各像素点灰度值的均值11 2.1.1算法原理及公式11 2.1.2 matlab 源程序及运行结果.11 2.2 各像素点灰度值的方差13 2.2.1算法原理及公式13 2.2.2 matlab 源程序及运行结果.13 2.3 各像素点灰度值的标准差13 2.3.1算法原理及公式13 2.3.2 matlab 源程序及运行结果.13 2.4 灰度直方图14 3 傅里叶变换.16 3.1 算法原理及公式16 3.2 fft 及反 fft 源程序及运行结果.16 3.3 对变换后的图像进行说明19 4 小结与体会.20 5 参考文献.21 摘摘 要要 matlab(matrix laboratory)是 mathworks 公司于 1989 年推出的一套高性 能的数值计算和可视化软件。 它集数值分析、 矩阵运算、 信号处理和图形于一体, 构成了一个方便且界面友好的用户环境,可进行矩阵运算、 绘制函数和数据、 实 现算法、 创建用户界面、 连接其他编程语言的程序等,主要应用于工程计算、 控 制设计、 信号处理与通讯、 图像处理、 信号检测、 金融建模设计与分析等领域。 这次基础强化训练就是运用 matlab 做基本的图像处理与数据分析,掌握基本 的图像处理方法。 关键词:matlab,图像处理,数据分析 abstract matlab (matrix laboratory) is the mathworks inc. in 1989 on a high- performance numerical computation and visualization software.it combines numerical analysis, matrix computation, signal processing and graphics in one, form a convenient and user-friendly user environment, can be matrix operations huizhi functions and data, implementation algorithms, create user interfaces, connect to other programming language procedures, mainly used in engineering calculations, control design, signal processing and communications, image processing, signal detection, financial modeling design and analysis and other fields.the basis of intensive training is to use matlab to do basic image processing and data analysis, a grasp of basic image processing method. key words: matlab, image processing, data analysis 1 1 数据采集数据采集 1.1 选取图像选取图像 从互联网上下载一幅图片,像素为 874*590,符合要求。但此图片是三维彩图, 不是灰度图,需要将其转换成灰度图进行分析处理。 图1 需要处理的原始图片 1.2 matlab 读取方法读取方法 1.2.1 1.2.1 创建创建 m m 文件文件 在处理一些包含多条命令的问题时,如果在 matlab 的命令窗口中进行处理, 当出现错误时不好修改,这时可以借助matlab 提供的 m文件方式来处理。m 文件类似于批处理文件,单击 matlab 菜单中的“file”选项,从下拉列表中 选取“new”选项,从其下拉列表中选取“m-file”,即可打开 m 文件的编辑窗口 如下图所示。 图2 创建m文件 1.2.2 1.2.2 读取图像读取图像 利用函数imread()可完成图形图像文件的读取,语法: x=imread(图片存储路径.图片格式) 通常,读取的大多数图像均为 8bit,当这些图像加载到内存中时,matlab 就 将其存放在类 uint8 中。此为 matlab 还支持 16bit 的 png 和 tif 图像,当读取这 类文件时,matlab 就将其存贮在uint16 中。 对于索引图像,即使图像阵列的本身 为类 uint8 或类 uint16,imread 函数仍将颜色映象表读取并存贮到一个双精度的 浮点类型的阵列中。 matlab 程序代码为: a=imread(c:documents and settingsadministrator桌面zhanglin.jpg); % 读取图像路径 imshow(a); %显示图像 matlab 读取的图像如下图所示: 图3 经matlab 读取后的图 1.2.3 1.2.3 查看图像格式查看图像格式 首先使用函数rgb2gray(x)将原三维彩图转换为黑白图。 matlab 程序代码为: a=imread(c:documents and settingsadministrator桌面zhanglin.jpg); b=rgb2gray(a) %将原图转换为灰度图 转换后黑白图显示如下: 图4 经转换后的黑白图 然后使用 matlab 命令 isgray()判断图像是否为灰度图,如果是灰度图将 返回为 1,不是将返回0。语法为:isgray(x) matlab 程序代码为: a=imread(c:documents and settingsadministrator桌面zhanglin.jpg); b=rgb2gray(a); %将原图转换为灰度图 isgray(b) %判断是否为灰度图 图5 判断图片格式的结果图 从上图可见返回值为1,说明是灰度图,便可进行下一步操作。 1.2.4 1.2.4 灰度值的获取灰度值的获取 直接在 matlab 命令行中输入存储图像矩阵的名字 b 即可得到灰度矩阵。如下 图所示: 图6 灰度矩阵(部分) 2 2 数据统计处理数据统计处理 2.1 各像素点灰度值的均值各像素点灰度值的均值 2.1.12.1.1 算法原理及公式算法原理及公式 用 mean(x)(默认 dim=1)就会求每一列的均值。 用 mean(x,2)就会求每一行的均值。 用 mean2(x)求出所有像素的均值。 2.1.2 2.1.2 matlab 源程序及运行结果源程序及运行结果 计算每一列的均值: mean(b) 图7 每一列的均值(部分) 计算每一行的均值: mean(b,2) 图8 每一行的均值(部分) 计算所有像素的均值: mean2(b) 图9 所有像素的均值 2.22.2 各像素点灰度值的方差各像素点灰度值的方差 2.2.12.2.1 算法原理及公式算法原理及公式 matlab 命令:var(double(x(:) 2.2.2 2.2.2 matlab 源程序及运行结果源程序及运行结果 求方差: var(double(b(:) 图10 所有像素的方差 2.3 各像素点灰度值的标准差各像素点灰度值的标准差 2.3.12.3.1 算法原理及公式算法原理及公式 matlab 命令:std2(double(x) 2.3.2 2.3.2 matlab 源程序及运行结果源程序及运行结果 求标准差:std2(double(b) 图11 所有像素点的标准差 2.4 灰度直方图灰度直方图 matlab 代码: a=imread(c:documents and settingsadministrator 桌面zhanglin.jpg); b=rgb2gray(a); subplot(1,2,1); imshow(b); title(原图); subplot(1,2,2); imhist(b); title(灰度直方图); 在 m 文件中将以上程序保存为 u8,然后再命令行中直接输入 u8,再按回车, 便可出现下图所示灰度直方图。 图12 灰度直方图 3 3 傅里叶变换傅里叶变换 3.1 算法原理及公式算法原理及公式 一个图像尺寸为m*n 的离散函数 f(x,y)d的离散傅里叶变换如下: f(x,y)可以通过对f(u,v)求傅立叶逆变化获得,其表达式如下: 式中,。 上两式构成了二维离散傅立叶变化对。变量 u 和 v 是频率变量,x 和 y 是空间 变量。 matlab 函数 fft、fft2 和 fftn 可分别可以实现一维、二维和 n 维 fft 算法,其公式为:a=fft(x,n,dim) 其中,x 表示输入图像;n 表示采样间隔点,如果 x 小于该数值,那么 matlab 将会对 x 进行零填充,否则将进行截取,使之长度为 n ;dim 表 示要进行离散傅立叶变换。 0,1,2,1xm=-l0,1,2,1yn=-l 11 2(/) 00 1 ( , )( , ) mn jux mvy n xy f u vf x y e mn p - -+ = = 邋 11 2 (/) 00 ( , )( , ) mn jux mvy n uv f x yf u v e p - + = =邋 matlab 函数 ifft、 ifft2 和 ifftn 则用来计算反fft,其公式为a=ifft(x,n,dim) 其中 x,n,dim 含义同上。 3.2 fft 及反及反 fft 源程序及运行结果源程序及运行结果 matlab 源程序: a=imread(c:documents and settingsadministrator桌面zhanglin.jpg); %读取图 像路径 i=rgb2gray(a); c= fft2(double(i); %对图像进行傅立叶变换 b=fftshift(fft2(double(i); %将直流分量移到频谱图的中心 d=ifft2(b); %傅立叶反变换 figure, %画图像原始图 imshow(i); title(傅里叶变换原图); figure, %画直接变换频谱图 imshow(log(abs(b)+1),); title(直接变换频谱图); figure, %显示反傅立叶变换后的图像 imshow(abs(d),) ; title(反傅里叶变换图); 图13 傅里叶变换原图 图14 直接变换频谱图 图15 反傅里叶变换图 3.3 对变换后的图像进行说明对变换后的图像进行说明 在时域处理图像并不能得到很好的结果,我们需要把图像转化到频域空间 去处理。在频域空间里,fourier 变换具有很好的性质,他使我们能够定量地分 析诸如数字化系统、 采样点、 电子放大器、 卷积滤波器、 噪声、 显示点等的作用。 本 图经过傅里叶变换之后,能够很方便的去除噪音,使图像更清晰。 4 4 小结与体会小结与体会 通过这次的 matlab 基础强化训练我收获很大,刚开始做的时候我感觉这个 东西很神秘,很难,觉得什么都不懂没办法下手,于是我就仔细研究老师发的 说明书及模板,总算是明白具体要干嘛了。 接下来就是做的问题了,我先是照葫 芦画瓢比着写程序,但出了很多错误,然后我就根据提示的错误的地方修改程 序,很多函数不知道是什么意思,该怎么用,我就上网查,请教别人。 经过几番 努力算是找到了错误所在,修改了错误之后,正确的结果图终于跳了出来。 我很 兴奋,总算是尝到了努力之后的甜头。 然后我开始写报告,由于前几天刚做了数 电课设的报告,这次写报告就轻松很多,字体啊,格式啊怎么设置都是心里有 数的,因此就很快的完成了报告。 我觉得 matlab 真的是个很强大的软件,就几条简单的程序写进去便能运行 出那么复杂的图形,真是个好工具啊!还有 matlab 中的函数更是丰富,如果 不用还真是想知道啊!因此我们应该多动手写程序来运行,同时对用到的函数、 语法多记忆,要会移植使用。 我们目前所学的东西只是冰山一角,还有很大一部分东西需要我们日后自己 去学、 去用,不能说是强化训练

温馨提示

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

评论

0/150

提交评论