资源描述
《基础强化训练》报告
题 目:二维灰度图象的统计分析及FFT变换处理
专业班级: 通信0805
学生姓名: 高云龙
指导教师: 朱健春
武汉理工大学信息工程学院
2010 年 7 月 17 日
基础强化训练任务书
学生姓名: 高云龙 专业班级: 通信0805
指导教师: 朱健春 工作单位: 信息工程学院
题 目: 二维灰度图象的统计分析及FFT变换处理
基础强化训练目的
① 较全面了解常用的数据分析与处理原理及方法;
② 能够运用相关软件进行模拟分析;
③ 掌握基本的文献检索和文献阅读的方法;
④ 提高正确地撰写论文的基本能力。
训练内容和要求
① 采集一幅像素大于64*64黑白图像;
② 常规的数学统计数据处理:计算图象各象素点灰度值得均值、标准差、方差,并绘出灰度直方图;
③ 数据分析常用算法:FFT(傅立叶变换)
初始条件
① MATLAB软件
② 数字信号处理与图像处理基础知识
时间安排:
第18周周一:安排任务
19~20周:仿真设计(鉴主13楼计算机实验室)
第20周周六:完成(答辩,提交报告,演示)
指导教师签名: 2010 年 7 月 日
系主任(或责任教师)签名: 年 月 日
目 录
摘要 1
Abstract 2
1 数据采集 3
1.1图像的选取 3
1.2 MATLAB编辑 4
1.2.1 编辑M文件 4
图 2 建立M文件 4
1.2.2 图像的读取 4
1.2.3查看图像的格式 5
1.2.4 灰度值的获取 6
2 数据统计处理 7
2.1 均值计算 7
2.1.1 原理介绍 7
2.1.2 仿真结果 7
2.2 标准差计算 8
2.3 方差计算 8
2.4 灰度直方图 9
3 快速傅立叶变换 10
3.1 原理介绍 10
3.2 仿真结果 11
4心得体会 12
5参考文献 13
武汉理工大学《基础强化训练》报告
摘要
MATLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。作为强大的科学计算平台,它几乎能够满足所有的计算需求。MATLAB 本身就是功能强大的数据可视化工具,可以通过各种形式显示分析数据,例如灰度直方图、等高线、蒙太奇混合、像素分析、图层变换以及材质贴图等。利用可视化的图形,不仅能够评估图形图像的特性,还能够分析图像中的色彩分布等情况。
本次练习介绍的就是Matlab环境下的一些最基本的图像处理操作,如读图像、写图像、查看图像信息和格式、尺寸和灰度的伸缩等等;通过实验掌握图像直方图的描绘方法,加深直方图形状与图像特征间关系间的理解;加深对直方图均衡算法的理解。
Abstract
MATLAB is a scientific computing language that adds the function of numerical computing and graphics processing, symbols together. As a powerful scientific computing platforms, it can almost satisfy all the calculations that needs. MATLAB itself is a powerful tool of data visualization that can display data through various forms, such as graylevel histogram, contours, montage mixing, pixel analysis, the layer texture and transformation. With visual graphics, it can not only evaluate image characteristics, but also analyze the distribution of color image.
The purpose of the practice of introducing Matlab environment is the most basic of some image processing operations, such as read, write, image information and image format, size and gray telescopic; etc. Through the experiment mastery of image histograms depicts method, deepen the histogram image feature and the relationship between the shape of understanding,and to deepen the understanding of histogram equalization algorithm.
1 数据采集
Matlab软件的图像采集工具箱提供了大量的函数用于采集图像和视频信号,该工具箱支持的硬件设备包括工业标准的PC图像采集卡和相应的设备。所支持的硬件包括:Matrox和Data Translation公司提供的视频采集设备,同时还支持Windows平台下支持USB或者火线(IEEE-1394)的视频摄像头等设备。
MATLAB可以支持很多很多图片的文件格式,例如﹡cur、﹡bmp、﹡hdf、﹡ico、﹡jpg、﹡tif、﹡gif、﹡pcx等。用于读写图像数据的函数有imread(从图像格式的文件中读取数据)和imwrite(将数据写入图像格式的文件)。这里我用到的是imread,主要是用到图像文件的读取。
1.1图像的选取
本次研究对象为像素是139*139的图片“木桥.jpg”如下所示
图1原始图片
1.2 MATLAB编辑
1.2.1 编辑M文件
打开Matlab软件,在File下选择New\M-File。
图 2 建立M文件
1.2.2 图像的读取
imread函数用于读入各种图象文件,其一般的用法为:
[X,MAP]=imread(‘filename’,‘fmt’);
亦可直接写为imread(‘’);其中,X,MAP分别为读出的图象数据和颜色表数据,fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。
例如本次练习中: i = imread(’C:\Documents and Settings\Administrator\桌面\木桥.jpg’);
利用函数imread函数实现图像文件的读取,然后运用imshow函数显示图像。
程序代码:
i=imread('C:\Documents and Settings\Administrator\桌面\木桥.jpg');
imshow(i); %显示图像
图2 matlab中读取的原图像
1.2.3查看图像的格式
由于要求我们对灰度图像进行分析,所以我们要查看所选的图像是否符合要求。在matlab中可以运用 isgray()函数来判断图像是否为灰度图像,如果是灰度图像则返回值为1,如果不是灰度图像返回值为0。
如果原图的返回值为0,则不符合要求,我们需要把原图灰度化。Matlab中提供了rgb2gray() 函数,可以将原来的图像进行灰度化。
程序代码:
isgray(i); %判断是否为灰度图像
图 3 判断远图像是否为灰度图像结果
因为原图不是灰度图像,所以要将原图进行灰度化。
程序代码:
h=rgb2ggray(i); %将原图转为灰度图
isgray(h); %判断是否转化为灰度图
灰度处理后进行灰度判断,返回值为1,符合要求,仿真结果如下:
图 4 进行灰度处理后的图像
1.2.4 灰度值的获取
把原图转化为灰度图后直接在matlab的CommandWindow窗口就可得到h 图像的灰度矩阵。
部分数据如图:
图 5 部分灰度值数据
2 数据统计处理
2.1 均值计算
2.1.1 原理介绍
矩阵均值又称平均值,是矩阵中所有元素的平均值。设矩阵X中第i个元素的值为,则其均值计算为:
在matlab中用mean(h)可以求每一列象素的均值。
用mean(h,2)可以求每一行像素的均值。
用mean2(h)可以求出所有像素的均值。
2.1.2 仿真结果
程序代码:
i=imread('C:\Documents and Settings\Administrator\桌面\木桥.jpg');
h=rgb2gray(i);
mean2(h);
仿真结果:
图6 均值的结果显示
2.2 标准差计算
计算公式如下:
在MATLAB的函数库中表示标准差的函数为std2,其格式是std2(),括号里面就是待处理分析的信号。由于标准差反映的是偏离灰度均值的程度,如果标准差越大,则说明灰度级越大,则图像包含的信息就越多。
程序代码:
i=imread('C:\Documents and Settings\Administrator\桌面\木桥.jpg');
h=rgb2gray(i);
bzc=std2(double(h));
仿真结果:
图7 标准差的结果显示
2.3 方差计算
计算公式如下:
在matlab中提供了直接求方差的函数 var函数,如果要计算整个矩阵的方差,需要在var函数中输入x(:),以表示对整个矩阵的计算。
程序代码:
i=imread('C:\Documents and Settings\Administrator\桌面\木桥.jpg');
h=rgb2gray(i);
fc=var(double(h(:)));
仿真结果:
图8 方差的结果显示
2.4 灰度直方图
直方图是一个显示灰度或索引图像亮度分布情况的图表,他是图像分析中的用来说明图像灰度分布的图形。在matlab中也有直接绘制直方图的函数——hist函数。
程序代码:
i=imread('C:\Documents and Settings\Administrator\桌面\木桥.jpg');
h=rgb2gray(i);
imhist(h);
图9 直方图的显示
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函数。
对图像快速傅里叶变化后,可以对图像进行反傅里叶变换,应用函数ifft2(),如果得到的图像与傅里叶变换前的图像相同,则傅里叶变换正确。
程序代码:
i=imread('C:\Documents and Settings\Administrator\桌面\木桥.jpg');
h=rgb2gray(i);
figure
imshow(i); % 显示原图
title('原图')
figure
imshow(h); % 显示灰度处理后的图像
title('灰度处理后的图像')
b1=fft2(h);
b=fftshift(b1); % 数据循环移位
figure
imshow(log(abs(b)),[]); %显示直接变换后频谱图
title('直接变换后的图像')
b2=ifft2(b1);
figure
imshow(b2,[]);%反傅里叶变换图像
Title('反傅里叶变换图像')
3.2 仿真结果
检查无误后,运行以上的程序,观察程序运行结果。程序运行的结果如下图示:
图10 结果显示
4心得体会
通过这次的课程设计的学习,我认为我达到了这次训练的主要目的。进一步了解了matlab工具对学习各门学科的重要的推进作用。通过这次对灰度图像处理的强化训练,我了解了图像变换技术在处理图像过程中所起到的关键的作用。对我日后学期图像传输和通信以及数字信号处理的课程起到了重要的作用。在此过程中,我深深的感受到了只学好课本上的知识是远远不够的,要通过图书馆和互联网等渠道来扩充自己的知识。在matlab软件的应用过程中我遇到过不少问题,通过同学的帮助,最终我完成了这次强化训练。
参考文献
[1] 王华等. << MATLAB电子仿真与应用教程>>. 国防工业出版社. 2001.
[2] 李文锋. <<图形图像处理与应用>>.中国标准出版社. 2006.
[3] 王洪元.<< MATLAB语言以及在电子信息工程中的应用>>. 清华大学出版社.2004
[4] 刘文耀. <<数字图像采集与处理.>> 电子工业出版社. 2007.
[5] 贺兴华. <<MATLAB7.X图像处理>>. 人民邮电出版社 .2006.
[5] 章毓晋. <<图像工程(上册)>> . 北京 清华大学出版社.1 999.
12
本科生基础强化训练成绩评定表
姓 名
高云龙
性 别
男
专业、班级
通信0805
题 目:二维灰度图象的统计分析及FFT变换处理
答辩或质疑记录:
成绩评定依据:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年 月 日
展开阅读全文