matlab专业软件训练Word文档下载推荐.docx
《matlab专业软件训练Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《matlab专业软件训练Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
摘要
MATLAB全称是MatrixLaboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。
实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。
这一特点也就决定了MATLAB在处理数字图像上的独特优势。
理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。
二维图像进行均匀采样,就可以得到一幅离散化成M×
N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。
而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。
Matlab图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。
关键词:
Matlab,矩阵,数字图像,Matlab图像处理工具箱,滤波,图像变换,图像增强。
目录
1.概述
MATLAB作为一种矩阵语言,进行数字图像处理是非常方便的。
从理论上讲,数字图像是一个二维的整数阵列。
掌握简单的MATLAB图像增强技术,从而对图像处理有进一步的了解。
2.课程设计任务及要求
设计任务
1在图像的变换和压缩中,常常用到离散余弦变换(DCT)。
DCT变换用于图像的压缩实例。
请在测试图像中验证你的结论。
2请编程实现图像的真彩色增强。
3通过直方图均衡化的方法实现图像的灰度变换,在测试图像中验证你的结论,分析程序结果。
4使用常用的滤波器对数字图像进行处理。
如均值滤波器、中值滤波器、维纳滤波器等。
5在报告中给出本实验的实验结果和分析。
a)程序代码附有必要的注释。
b)报告中对实验的基本算法原理要进行简要叙述。
设计要求
1)熟悉和掌握MATLAB程序设计方法
2)掌握MATLABGUI程序设计
3)学习和熟悉MATLAB图像处理工具箱
4)学会运用MATLAB工具箱对图像进行处理和分析
3.程序调试
程序的运行
1)DCT图像压缩
a=imread('
F:
\matlab\MATLAB\work\a.jpg'
);
%读取图像文件
i=rgb2gray(a);
%转换为灰度图像
j=dct2(i);
%二维dct变换
subplot(131);
imshow(log(abs(j))),colorbar
j(abs(j)<
10)=0;
k=idct2(j);
%二维dct反变换
subplot(132);
imshow(i);
subplot(133);
imshow(k,[0,255]);
info=imfinfo('
trees.tif'
)%显示图像信息
2)图像真彩色增强
RGB1=imread('
\matlab\MATLAB\work\b.jpg'
RGB2=imadjust(RGB1,[.2.30;
.6.71],[]);
imshow(RGB1),figure,imshow(RGB2)
3)图像的灰度变换
I=imread('
tire.tif'
J=histeq(I);
imshow(I)
figure,imshow(J)
imhist(I,64)
figure;
imhist(J,64)
运行结果
图3-2-1
结果:
实现了图像的压缩
图3-2-2
图3-2-3
实验结果实现了颜色加强
图3-2-4
表3.2.1
表3.2.2
结果:
实现了灰度变化
4)均值滤波与中值滤波
1、编程实现图像的均值滤波
程序代码:
运行程序得到如下结果:
图3-2-5
2、编程实现图像的中值滤波
运行程序后得到如下结果:
图3-2-6
3、实现一种图像加权中值滤波或加权均值滤波
设计x模板为:
运行程序可得均值滤波后的结果:
图3-2-7
中值滤波较均值滤波好些,并且滤波与所选模板有关,若选择权值相同(本实验为0.1/9)相对不同权值的效果好些。
模板的不同对均值滤波的影响较大。
故障分析
在程序运行中遇到了一下的问题:
?
Errorusing==>
*
Innermatrixdimensionsmustagree.
.*
Matrixdimensionsmustagree.
这两个问题是关于矩阵和数组的乘法运算。
矩阵的乘法运算表达式为A*B,表示矩阵相乘,其中矩阵A的列数必须等于矩阵B的行数;
数组的乘法运算表达式为A.*B,运算符为‘.*’,表示数组A和B中对应的元素相乘,A和B数组的大小必须相同。
2)?
Subscriptedassignmentdimensionmismatch.
错误的原因是矩阵的维数没有匹配,不同类型的图片维数不相同。
对于灰度图像,它是m*n二维的;
对于彩色图像,它是m*n*k三维的。
所以在使用函数之前要明确它所支持的图像类型,我们可以通过rgb2gray或gray2rgb这一类函数将图片转换为所支持的类型,我们也可以通过相应函数来判断矩阵的维数,matlab中ndims(cdata)就支持这种功能,它返回值为正整数n,n代表它的维数。
3)在实现图像放大,缩小,亮度调整等功能时,为了方便修改,设置对话框输入,但从对话框输入的数其实是字符,并不是真正的整型数值,所以如果没有对字符转数值变化,就会得到错误的结果,举个简单的例子:
a=’2’;
b=2;
a*b
ans=100
得到的100并不是我们所想要的4,之所以还会出结果是因为,字符2对应的ASCII码值为50,而matlab有支持这种算法,所以会得到100的结果。
正确的做法应该是这样:
a=str2num(s);
ans=4
所以说我们在对数据做处理的时候,一定要分清出它的类型,以免到时候查不出错误。
4.结论
5.收获、体会和建议
MATLAB不仅具有强大的数值运算功能,也同样具有非常强大的二维和三维绘图功能,尤其擅长于各种科学运算结果的可视化。
计算的可视化可以将杂乱的数据通过图形表示从中观察出其内在的关系。
MATLAB的图形命令格式简单,可以使用不同的线形、彩色、数据点标记等来修饰图像,也可以设计出图形用户界面,方便地进行人机交互。
通过本次课程设计实验,不仅让我对以前学过的知识有了系统化的认识,而且提高了自己的动手操作能力,使我在此次课程设计过程中获益匪浅!
6.参考文献
【1】《MATLAB基础及其应用教程》管爱红,张红梅,杨铁军等编著电子工业出版社
【2】《数字图像处理(MATLAB)版》闫敬文著国防工业出版社
【3】MATLAB编程(第二版)
MATLABProgrammingforEngineersSecondEdition)
StephenJ.Chapman著邢树军郑碧波译
【4】陈杨.MATLAB6.X图像编程与图像处理[M].西安电子科技大学出版社