MATLAB图像处理.docx
《MATLAB图像处理.docx》由会员分享,可在线阅读,更多相关《MATLAB图像处理.docx(18页珍藏版)》请在冰豆网上搜索。
![MATLAB图像处理.docx](https://file1.bdocx.com/fileroot1/2022-12/14/d28145ce-2d51-476f-9fd2-bdf41fc366ab/d28145ce-2d51-476f-9fd2-bdf41fc366ab1.gif)
MATLAB图像处理
《基础强化训练》报告
题目:
MATLAB图像处理
专业班级:
学生姓名:
指导教师:
武汉理工大学信息工程学院
年月日
基础强化训练任务书
学生姓名:
专业班级:
指导教师:
工作单位:
题目:
MATLAB图像处理
基础强化训练目的
1较全面了解常用的数据分析与处理原理及方法;
2能够运用相关软件进行模拟分析;
3掌握基本的文献检索和文献阅读的方法;
4提高正确地撰写论文的基本能力。
训练内容和要求
1采集一幅像素大于64*64黑白图像;
2常规的数学统计数据处理:
计算图象各象素点灰度值得均值、标准差、方差,并绘出灰度直方图;
3数据分析常用算法:
FFT(傅立叶变换),DCT(离散余弦变化),DWT(离散小波变化)
初始条件
1MATLAB软件
2数字信号处理与图像处理基础知识
时间安排:
第19周,安排任务(鉴主15楼实验室)
第20周,仿真设计(鉴主13楼计算机实验室)
第21周,完成(答辩,提交报告,演示)
指导教师签名:
2009年7月15日
系主任(或责任教师)签名:
2009年7月15日
目录
摘要1
Abstract2
1数据采集3
1.1图像的选取3
1.2MATLAB读取方法4
1.2.1编辑M文件4
1.2.2图像的读取与灰度图的转换4
1.2.3灰度值的获取6
2数据统计处理7
2.1均值计算7
2.1.1原理及计算公式7
2.2各点像素灰度值的标准差计算8
2.3各像素点灰度值的方差9
2.4灰度直方图10
3.快速傅里叶变换11
3.1快速傅里叶变换原理11
4.离散余弦变换13
4.1离散余弦变换原理13
4.2变换及逆变换程序及结果13
5.离散小波变换15
5.1离散小波变换原理15
5.2变换及反变换程序和结果15
5.2.1离散小波变换15
5.2.2离散小波反变换16
6总结(心得体会)18
7参考文献19
摘要
MATLAB是矩阵实验室之意。
除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能,MATLAB语言在各国高校与研究单位起着重大的作用。
本次基础强化训练的目的在于较全面了解常用的数据分析与处理原理及方法,能够运用相关软件进行模拟分析。
通过对采集的图像进行常规的数学统计数据处理和计算图像各象素点灰度值得均值、标准差、方差,并绘出灰度直方图;最后进行各种变换,从而达到本次强化训练的目的。
Abstract
MATLABisthemeaningofthematrixlaboratory.Besidestheremarkablenumericalcalculusability,ithasalsoprovidedthecompetencelevelmarkcomputation,thelanguageprocessing,visualizationfunctionsandsoonmodellingsimulationandreal-timecontrol,theMATLABlanguageisplayingthesignificantroleinvariouscountries'universityandtheresearchunit.
Thisfoundationstrengtheningtraining'sgoalliesinthethoroughunderstandingcommonlyuseddataanalysisandtheprocessingprincipleandthemethod,andbeingabletoutilizetherelatedsoftwaretocarryonthesimulationanalysis.Throughcarryingonconventionaltothegatheringimagemathematicsstatisticaldataprocessingandacomputationimagevariouspictureelementsgradationisworththeaveragevalue,thestandarddeviation,thevariance,anddrawsthegradationhistogram;Finallycarriesonthekindsoftransformation,thusachievesthegoalofthisstrengthenedtraining.
1数据采集
1.1图像的选取
从互联网上下载一张图片,如图1,像素为413*583,满足像素要求,但由于图像为彩图。
为满足要求,在下面的过程中会将彩图转换为灰度图。
图1原彩色图
1.2MATLAB读取方法
1.2.1编辑M文件
MATLAB是解释型语言,就是说MATLAB命令行中敲入的命令在当前MATLAB进程中被解释运行。
为方便起见,有两种方法可以使MATLAB的力量得到扩展——脚本和函数。
这两种方法都用像emacs一样的文本编辑器中编写的m文件(因为扩展名是.m所以这样命名,m文件还称点m文件)。
m文件的好处在于它可以保存命令,还可以轻易地修改命令而无需重新敲入整个命令行。
新建m文件的方法为File->New->BlankM-File,如图2所示。
图2新建m文件
1.2.2图像的读取与灰度图的转换
1.图像的读取:
利用函数imread()可完成图形图像文件的读取,语法:
a=imread(filename,fmt)
[X,map]=imread(filename,fmt)
[...]=imread(filename)
[...]=imread(filename,idx)(只对TIF格式的文件)
[...]=imread(filename,ref)(只对HDF格式的文件)
通常,读取的大多数图像均为8bit,当这些图像加载到内存中时,Matlab就将其存放在类uint8中。
此为Matlab还支持16bit的PNG和TIF图像,当读取这类文件时,Matlab就将其存贮在uint16中。
对于索引图像,即使图像阵列的本身为类uint8或类uint16,imread函数仍将颜色映象表读取并存贮到一个双精度的浮点类型的阵列中。
2.灰度图的转换:
为了转换为灰度图,利用MATLAB中的rgb2gray()命令实现RGB图像到灰度图像的转化。
转化后在使用命令isgray()判断图像是否变为灰度图,如果是灰度图将返回为1,不是将返回0。
灰度图转换成功后,将转化后的灰度图读取出来。
相关的MATLAB命令为:
a=imread('D:
\cover.jpg');%读取图像路径
figure,
subplot(1,2,1)
imshow(a);%显示图像
title('原彩色图像')
A=rgb2gray(a);%转化成灰度图
isgray(A)
subplot(1,2,2)
imshow(A);
title('转化成的灰度图')
键入isgray(A)后,显示的返回值ans=1,证明转化成功。
原彩图读取和灰度图转化图如图3所示。
图3原彩图读取和灰度图转化图
1.2.3灰度值的获取
直接在MATLAB命令行中输入灰度图像所存储的文件名“A”记得获得其灰度值,部分值如图4所示。
图4灰度矩阵截图
2数据统计处理
2.1均值计算
2.1.1原理及计算公式
用mean(A)(默认dim=1)就会求每一列的均值,结果如图5所示。
用mean2(A)求出所有像素的均值,结果如图6所示。
图5每一列的均值图
图6所有像素平均值结果
2.2各点像素灰度值的标准差计算
图像矩阵标准差的计算与平均值的类似,Matlab中提供的函数为std和std2,用途和用法与均值相同,每一列标准差值如图7所示,所有像素标准差如图8所示。
输入MATLAB命令:
std(double(A))
图7每一列标准差值图
输入MATLAB命令:
std2(A)
图8所有像素标准差结果图
2.3各像素点灰度值的方差
在方差的计算中,Matlab提供的函数为var,与mean和std函数相同,它只能计算矩阵中某一列的方差值,要计算整个矩阵的方差值,需要在var函数中输入x(:
)以表示对整个矩阵的计算。
输入MATLAB命令:
var(double(H)),结果如图9所示。
图9方差结果截图
输入MATLAB命令:
var(double(H(:
))),结果如图10所示。
图10所有像素方差图
2.4灰度直方图
相关的MATLAB代码:
a=imread('D:
/cover.jpg')
A=rgb2gray(a);
figure,
imhist(A);
title(‘灰度直方图’)
所得出的灰度直方图如图11所示。
图11灰度直方图
3.快速傅里叶变换
3.1快速傅里叶变换原理
傅里叶变换在物理学、数论、组合数学、信号处理、概率论、统计学、密码学、声学、光学、海洋学、结构动力学等领域都有着广泛的应用(例如在信号处理中,傅里叶变换的典型用途是将信号分解成幅值分量和频率分量)。
快速傅氏变换(FFT),是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。
它对傅氏变换的理论并没有新的发现,但是对于在计算机系统或者说数字系统中应用离散傅立叶变换,可以说是进了一大步。
这里是对图像快速傅里叶变化,用到的是fft2函数。
对图像快速傅里叶变化后,可以对图像进行反傅里叶变换,应用函数ifft2(),如果得到的图像与傅里叶变换前的图像相同,则傅里叶变换正确。
3.2变换及逆变换程序和结果
a=imread('D:
\cover.jpg');
A=rgb2gray(a);
C=fft2(double(A));
B=fftshift(C);
D=ifft2(B);
figure,
subplot(1,3,1)
imshow(A);
title('傅里叶变换原图');
subplot(1,3,2)
imshow(log(abs(B)+1),[]);
title('直接傅里叶变换频谱图');
subplot(1,3,3)
imshow(abs(D),[]);
title('反傅里叶变换图');
其傅里叶变换及反变换图如图12所示。
图12傅里叶变换及反变换图
4.离散余弦变换
4.1离散余弦变换原理
离散余弦变换(dctfordiscretecosinetransform)是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换,但是只使用实数。
离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的。
离散余弦变换是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换,但是只使用实数。
离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的。
4.2变换及逆变换程序及结果
a=imread('D:
/cover.jpg');%读取
figure,
subplot(2,2,3)
imshow(rgb2gray(a));%转化为灰度图像
title('离散余弦变换原图')
D=dct2(rgb2gray(a));%DCT变换
subplot(2,2,1)
imshow(D);
title('经DCT变换之后的图像')
D(90:
100,23:
50)=0;%丢弃部分高频分量
subplot(2,2,2)
imshow(D);
title('丢弃部分高频分量后图像')
I2=idct2(D);%DCT反变换
subplot(2,2,4)
imshow(mat2gray(I2));%将数据矩阵转化为灰度图
title('DCT进行逆变换之后的图像');
其DCT变换及逆变换图像如图13所示。
图13DCT变换及逆变换图像
5.离散小波变换
5.1离散小波变换原理
小波变换是现代谱分析工具,它既能考察局部时域过程的频域特征,又能考察局部频域过程的时域特征,因此即使对于非平稳过程,处理起来也得心应手。
它能将图像变换为一系列小波系数,这些系数可以被高效压缩和存储,此外,小波的粗略边缘可以更好地表现图像,因为它消除了DCT压缩普遍具有的方块效应。
5.2变换及反变换程序和结果
5.2.1离散小波变换
a=imread('D:
\cover.jpg');
A=rgb2gray(a);
figure
imshow(A);
title('原图');
[m,n]=wavedec2(I,2,'bior3.7');
figure;
c=appcoef2(m,n,'bior3.7',1);
subplot(1,2,1);
imshow(c,[]);
title('一层小波变换结果');
d=appcoef2(m,n,'bior3.7',2);
subplot(1,2,2);
imshow(d,[]);
title('二层小波变换结果');
图14小波变换结果
5.2.2离散小波反变换
[A,M]=imread('D:
\cover.jpg','jpg');%图像数据的读取,将图像数据放入矩阵A中,颜色数据放入矩阵M中
i=rgb2gray(A);
[cA,cH,cV,cD]=dwt2(i,'bior3.7');%小波变换
A=upcoef2('a',cA,'bior3.7',1);%重构细节分量信号
H=upcoef2('h',cH,'bior3.7',1);%重构水平分量信号
V=upcoef2('v',cV,'bior3.7',1);%重构垂直分量信号
D=upcoef2('d',cD,'bior3.7',1);%重构对角线分量信号
%显示各分量
subplot(2,2,1);image(wcodemat(A,192));title('细节分量');
subplot(2,2,2);image(wcodemat(H,192));title('水平分量');
subplot(2,2,3);image(wcodemat(V,192));title('垂直分量');
subplot(2,2,4);image(wcodemat(D,192));title('对角线分量');
figure
d=idwt2(cA,cH,cV,cD,'bior3.7');
imshow(d,[]);%显示重构灰度图
title('反变换后的图像');
各分量图如图15所示。
反变换后的图像如图16所示。
图15各分量图
图16小波反变换后图形
6总结(心得体会)
这次的强化训练结束了,虽然开始的时候不知道从何入手,该怎么样达到要求,完成设计,但是经过一步步的摸索和总结,最后总算完成了这次任务。
这次基础强化训练主要是让我们学习使用MATLAB,利用对图像的处理来学习MATLAB这个软件。
通过强化训练,我认识到了MATLAB功能非常的强大,使得我们在使用的时候用户直接调用这些库函数并赋予实际参数就能解决实际问题,具有极高的变成效率。
我也熟悉了MATLAB的工作环境,可以很熟练的对MATLAB进行常规的操作,快速进行程序编辑和仿真。
完成任务后才发现这次训练的内容并不算难。
首先要做的工作就是如何把图像信息写入到MATLAB中,其次就是对图像的信息进行分析,主要是得出图像的一些参数,进而来考察图像的质量等方面的问题。
最后就是对图像进行简单的变化,这里分别采用了傅里叶变换,离散余弦变换,离散小波变换。
以上的内容全都要通过程序的编写来完成,不过主要的操作是对函数的调用,这就要我们熟悉MATLAB的一些函数的基本功能以及它们的基本语句。
当然,经过了这次基础强化训练,我也发现了自己的很多不足。
但是通过自己的动手动脑,既增加了知识,又给了我专业知识以及专业技能上的提升,我也会更加努力,认真学习,争取在以后的课程中做得更好!
7参考文献
[1]王洪元主编.《MATLAB语言以及在电子信息工程中的应用》.清华出版社.2004.12
[2]李文锋编著.《图形图像处理与应用》.中国标准出版社.2006.06
[3]贺兴华等著.《MATLAB7.X图像处理》.人民邮电出版社.2006.11.01
[4]刘文耀编著.《数字图像采集与处理》.电子工业出版社.2007.08.01
[5]陈怀琛主编.《数字信号处理教程——MATLAB释义与实现》.电子工业出版社.2004.06
[6]徐建华编著.《图像处理与分析》.科学出版社.1994.05
[7]赵树杰编著.《数字图像处理》.西安电子科技大学出版社.2000.03
本科生基础强化训练成绩评定表
姓名
性别
女
专业、班级
题目:
MATLAB图像处理
答辩或质疑记录:
成绩评定依据:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
年月日