图像邻域与块运算
4、图像空域处理与邻域操作(2 图像邻域操作)解析

– A为输入图像,B为输出图像,邻域尺寸为m×n,fun为运算函数
• 其它
– – – – – – mean -求向量的平均值, mean2-求矩阵的平均值 std -求向量的的标准差,std2 -求矩阵的标准差。 median-求向量的中值 max -求向量的最大值 min -求向量的最小值 var -求向量的方差
2、邻域操作
数字图像处理
• 分离邻域操作
– colfilt快速块操作函数
• 格式
B=colfilt(A,[m n],'distinct',fun)
• 说明
– 参数'distinct',说明该函数作快速块操作。
2、邻域操作
数字图像处理
• 将输入图像的每一个 邻域进行重新排列来 创建一个临时矩阵, 在此之前如果必要会 对原始图像进行零填 充。
• 线性点运算 – fruits=imread('fruits.jpg'); – I=double(fruits); – J=-1*I+255; – fruits2=uint8(J); – subplot(1,2,1),imshow(fruits,[]); – subplot(1,2,2),imshow(fruits2,[]);
2、邻域操作
数字图像处理
• 滑动邻域操作
– 实现步骤
• 选择原图一个像素 • 确定该像素的邻域 • 用一个函数对邻域内的像素求值并返回标量 结果 • 在输出图像对应的位置填入计算值 • 重复计算,遍及所有像素
2、邻域操作 • 滑动邻域操作
– nlfilter滑动邻域操作函数
• 格式
数字图像处理
B=nlfilter(A,[m n],fun)
遥感图像增强实验报告

遥感图像增强实验报告1. 实验目的和内容实验目的:(1)遥感图像的空间域增强:通过直接改变图像中的单个像元及相邻像元的灰度值来增强图像,是图像增强技术的基本组成部分,包括点运算和邻域运算。
(2)遥感图像的频率域增强:通过对频率域的调整对遥感图像进行平滑和锐化,平滑主要是保留图像的低频部分抑制高频部分,锐化则保留图像的高频部分而削弱低频部分。
(3)遥感图像的彩色增强:将黑白图像转换成彩色图像,使地物的差别易于分辨,突出图像的有用信息,从而提高对图像的解译和分析能力。
实验内容:(1)遥感图像的空间域增强:点运算—直方图均衡化、灰度拉伸、任意拉伸,邻域运算—图像平滑、图像锐化。
(2)遥感图像的频率域增强:定义FFT,反向FFT,再进行对比。
(3)遥感图像的彩色增强:多波段影像—彩色合成、单波段影像—伪彩色增强、色彩空间变换、遥感数据融合。
2. 图像处理方法和流程A.遥感图像的空间域增强1.直方图均衡化(1)在主窗口中打开can_tmr.img文件。
(2)以gray形式显示一个波段。
(3)Display窗口>enhance>equalization2.灰度拉伸(1)Display窗口>enhance>interactive stretching(2)弹出的对话框>stretch_type>linear(3)在STRETCH对应的两个文本框中输入需要拉伸的范围,然后单击对话框上的APPLY按钮,图像显示为线性拉伸后的效果。
3.任意拉伸(1)弹出的对话框>stretch_type>Arbitary,在output histogram中单击绘制直方图,右键结束(2)点击apply,结果如图所示4.图像平滑(1)均值平滑,在主窗口中打开can_tmr.img文件。
主窗口>enhance>filter>smooth[3*3]。
结果如图所示(2)中值平滑,在主窗口中打开can_tmr.img文件。
视觉系统课件(9)Neighborhood operations

中心像素
中心像素( pixel) 中心像素(center pixel)是输入图像真正要进 行处理的像素。 行处理的像素。 中心像素的定位: 中心像素的定位:
若邻域的行和列都为奇数, 若邻域的行和列都为奇数,则中心像素为邻域最中心 位置的像素 若邻域的行或列有一维为偶数,设邻域为m 若邻域的行或列有一维为偶数,设邻域为m×n的,则 中心像素为: 中心像素为: floor(([m n]+1)/2)
Example
fun=inline('uint8(round(mean2(x)*ones(size(x))))'); B2=blkproc(A,[8 8],fun); imshow(B2)
邻域重叠
1×2重叠 × 重叠
Example
imshow(B2) C=imabsdiff(B3,B2); B3=blkproc(A,[8 8],[1 2],fun); imshow(C,[]) imshow(B3)
分离邻域操作
特点: 特点:
分离邻域从左上角开始覆盖整个图像矩阵。 分离邻域从左上角开始覆盖整个图像矩阵。 对邻域超出边界的像素自动填充零值。 对邻域超出边界的像素自动填充零值。 自动填充零值 以分离邻域为单位进行处理。 以分离邻域为单位进行处理。 进行处理 每次邻域操作返回一个与分离邻域相同大小的 每次邻域操作返回一个与分离邻域相同大小的 矩阵。 矩阵。 输出图像的大小与输入图像大小可以不一致。 输出图像的大小与输入图像大小可以不一致。 大小可以不一致
特点: 特点:
当邻域操作从图像矩阵的一个位置移动到另一 个位置时,滑动邻域也朝相同的方向移动。 个位置时,滑动邻域也朝相同的方向移动。 对邻域超出边界的像素自动填充零值。 对邻域超出边界的像素自动填充零值。 自动填充零值 以像素为单位进行处理(核心:中心像素)。 以像素为单位进行处理(核心:中心像素)。 每次邻域操作返回一个标量值。 每次邻域操作返回一个标量值。 标量值 输出图像的大小与输入图像大小一致。 输出图像的大小与输入图像大小一致。 大小一致
数字图像处理之邻域处理

m 1 m 1
i0
j 0
m 1 m 1 T i , j f x i ,y j 2 2
演 示
100 96 87 86 92 95 101 106 121 133 99 102 98 103 87 99 111 121 97 95 94 103 102 100 89 87 85 78 79 67 72 75 74 73 86 84 88 92 97 90 102 100 98 90 91 88
使
f r
$进一步阅读:Gonzalez, p463.
4 边缘检测
4 边缘检测
梯度最大值及其方向
f x s in f y c o s 0
ta n
1
fy 或 fx fx fy
2 2
梯度最大值
4 边缘检测
2 2 2
G x, y e
e
r
2 2
2
2 平滑
设计离散高斯滤波器的方法:
设定σ2和n,确定高斯模板权值。如σ2 =2和 n=5:
[i,j] -2 -1 0 1 2 -2 0.105 0.287 0.135 0.287 0.105 -1 0.287 0.606 0.779 0.606 0.287 0 0.135 0.779 1 0.779 0.135 1 0.287 0.606 0.779 0.606 0.287 2 0.105 0.287 0.135 0.287 0.105
111 112
111 112
111 112
100 96 1 2 87 86 1 92 95
mrf原理

mrf原理mrf原理1. 概述mrf原理(Mean-Removal Filter)是一种常用的图像处理算法,用于去除图像中的噪点和平滑图像。
它基于统计原理,对图像中的像素进行均值修正,从而实现去噪和平滑的效果。
2. 去噪原理mrf原理的去噪过程可以简单分为以下几个步骤:•步骤1:将图像分割为小的邻域块。
•步骤2:对每个邻域块进行均值计算,得到该块的像素均值。
•步骤3:将块中的每个像素值减去该块的像素均值。
•步骤4:对去均值后的图像进行重组,得到最终的去噪图像。
3. 平滑原理mrf原理的平滑过程与去噪过程类似,也可以简单分为以下几个步骤:•步骤1:将图像分割为小的邻域块。
•步骤2:对每个邻域块进行均值计算,得到该块的像素均值。
•步骤3:将块中的每个像素值替换为该块的像素均值。
•步骤4:对替换后的图像进行重组,得到最终的平滑图像。
4. 应用场景mrf原理在图像处理中有着广泛的应用场景,例如:•图像去噪:由于各种原因产生的图像噪点可以通过mrf原理进行有效的去除,提升图像质量。
•图像平滑: mrf原理可以平滑图像中的纹理和轮廓,使得图像更加自然和细腻。
•图像分割: mrf原理也可用于图像分割领域,通过对邻域块的处理,将图像分为不同的区域。
5. 总结mrf原理是一种基于统计原理的图像处理算法,通过对图像中的邻域块进行均值修正,实现去噪和平滑的效果。
它在图像处理领域有着广泛的应用,并可以提升图像的质量和细节。
希望通过本文的介绍,读者能够对mrf原理有一个初步的了解,并在实际应用中发挥其作用。
6. 原理详解邻域块分割mrf原理第一步是将图像分割为小的邻域块。
邻域块的大小可以根据具体情况进行调整,通常选择一个合适的邻域大小以保证对图像的有效处理。
均值计算对于每个邻域块,mrf原理进行均值计算,得到该块的像素均值。
这个均值表示了邻域块内像素的平均值,可以反映该区域的整体特征。
像素修正在均值计算完成后,需要将邻域块中的每个像素值减去该块的像素均值。
图像处理 第七章 邻域运算

第七章 邻域运算目录1. 引言相关与卷积2. 平滑3. 中值滤波4. 边缘检测5.细化作业1.引言邻域运算是指当输出图象中每个象素是由对应的输入象素及其一个邻域内的象素共同决定时的图象运算,通常邻域是远比图象尺寸小的一规则形状,如正方形2x2、3x3、4x4或用来近似表示圆及椭圆等形状的多边形。
信号与系统分析中的基本运算相关与卷积,在实际的图象处理中都表现为邻域运算。
邻域运算与点运算一起形成了最基本、最重要的图象处理工具。
以围绕模板(filter mask, template )的相关与卷积运算为例,给定图象f(x,y)大小N×N,模板T(i, j)大小m ×m (m 为奇数),常用的相关运算定义为: 使模板中心T((m-1)/2,(m-1)/2)与f(x,y)对应,∑∑-=-=--+--+=•=101)21,21(),(),(),(m i m j m j y m i x f j i T y x f T y x g当m=3时,)1,1())2,2(),1()1,2(),1()0,2()1,()2,1(),()1,1()1,()0,1()1,1()2,0(),1()1,0()1,1()0,0(),(++++++++++-++-+-+--=y x f T y x f T y x f T y x f T y x f T y x f T y x f T y x f T y x f T y x g卷积运算定义为:∑∑-=-=-+--+-=•=101)21,21(),(),(),(m i m j m j y m i x f j i T y x f T y x g 当m=3时,)1,1())2,2(),1()1,2()1,1()0,2()1,()2,1(),()1,1()1,()0,1()1,1()2,0(),1()1,0()1,1()0,0(),(--+-++-+-++++-++++++=y x f T y x f T y x f T y x f T y x f T y x f T y x f T y x f T y x f T y x g可见,相关运算是将模板当权重矩阵作加权平均,而卷积与相关不同的只是在于需要将模板沿中心反叠(先沿纵轴翻转,再沿横轴翻转;即沿次对角线翻转)后再加权平均。
《数字图像处理》课程设计题目.
1、图像的阈值分割方法研究2、图像锐化算子的对比研究3、图像的开运算4、图像的闭运算5、连通区域单元贴标签6、彩色图像的灰度化处理7、图像类型的转换8、FIR滤波器的设计9、图像的算术运算10、图像空域增强方法研究11、图像频域增强方法研究12、图像的腐蚀13、图像的膨胀14、图像的霍夫曼编码15、图像区域特征的描述和测量16、图像无损压缩和编码17、图像有损压缩和编码18、图像高通滤波器19、图像低通滤波器20、图像伪彩色增强21、图像边缘检测算子22、图像平滑滤波器23、数字图像的频谱特性研究24、图像DCT变换25、基于灰度阈值的图像分割技术26、图像分析与增强27、图像邻域与块运算28、正交变换方法对比29、灰度直方图规定化30、图像真彩色增强31、图像局部区域填充32、图像显示技术33、图像文件操作34、数字图像几何运算技术35、数字图像的傅里叶变换36、图像的小波变换参考书目:1、张汗灵编著MA TLAB在图像处理中的应用/ 北京:清华大学出版社,20082、王家文MATLAB 6.5 图形图像处理国防工业出版社3、王晓丹,吴崇明编著基于MATLAB的系统分析与设计[5] 图像处理西安电子科技大学出版社20004、余成波编著数字图像处理及MATLAB实现重庆大学出版社20035、杨枝灵, 王开等编著Visual C++数字图像获取处理及实践应用人民邮电出版社20036、苏彦华等编著Visual C++数字图像识别技术典型案例人民邮电出版社20047、何斌[等] 编著Visual C++数字图像处理人民邮电出版社20028、周金萍编著MA TLAB 6.5图形图像处理与应用实例科学出版社2003TP391.41/04479、清源计算机工作室编著MATLAB 6.0高级应用:图形图像处理机械工业出版社2001 TP391.41/10、郝文化主编MATLAB图形图像处理应用教程中国水利水电出版社200411、苏金明, 王永利编著MA TLAB图形图像电子工业出版社2005。
MATLAB图像邻域运算,去除噪声,模板运算中值滤波,均值滤波
1.列出常用的卷积模板2.基于3×3的模板,编写均值滤波的处理程序,处理含有加性高斯噪声和椒盐噪声的图像,观察处理结果3.编写中值滤波程序,处理相同的图像与均值滤波进行比较;改变模板尺寸观察处理结果4.编程实现利用一阶微分算子和二阶拉普拉斯算子进行图像锐化的程序5.对比不同的邻域运算结果,体会图像锐化与图像平滑的区别均值滤波处理含有椒盐噪声图像程序代码(1):模板运算f=imread('lena sp.bmp');f=double(f);[row,col]=size(f);r=1;for i=2:row-1for j=2:col-1g(i,j)=(f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)+f(i,j-1)+f(i,j)+f(i,j+1)+f (i+1,j-1)+f(i+1,j)+f(i+1,j+1))/9;g=uint8(g);endendsubplot(121);imshow(uint8(f));title('椒盐噪声图像');subplot(122);imshow(g);title('均值滤波处理后的图像')椒盐噪声图像均值滤波处理后的图像(2):mean函数均值滤波f=imread('lena sp.bmp');f=double(f);[row,col]=size(f);g=size(f);for i=2:row-1for j=2:col-1t=f(i-1:i+1,j-1:j+1);t=double(t);g(i,j)=mean(mean(t));g(i,j)=uint8(g(i,j));endendsubplot(121);imshow(uint8(f));title('椒盐噪声图像');subplot(122);imshow(uint8(g));title('均值滤波处理后的图像')均值滤波处理后的图像(3)可变模板处理f=imread('lena gauss.bmp');f=double(f);[row,col]=size(f);r=1;g=size(f);for i=2:row-1for j=2:col-1s=0;s=double(s);for m=-r:rfor n=-r:rs=s+f(i+m,j+n);endendg(i,j)=s/power((r+2),2);endendsubplot(121);imshow(uint8(f));title('椒盐噪声图像');subplot(122);imshow(uint8(g));title('均值滤波处理后的图像')椒盐噪声图像均值滤波处理后的图像均值滤波处理含有加性高斯噪声图像程序代码(1):模板运算f=imread('lena gauss.bmp');f=double(f);[row,col]=size(f);r=1;for i=2:row-1for j=2:col-1g(i,j)=(f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)+f(i,j-1)+f(i,j)+f(i,j+1)+f (i+1,j-1)+f(i+1,j)+f(i+1,j+1))/9;g=uint8(g);endendsubplot(121);imshow(uint8(f));title('加性高斯噪声图像');subplot(122);imshow(g);title('均值滤波处理后的图像')加性高斯噪声图像均值滤波处理后的图像(2):mean函数均值滤波f=imread('lena gauss.bmp');f=double(f);[row,col]=size(f);r=1;g=size(f);for i=2:row-1for j=2:col-1t=f(i-1:i+1,j-1:j+1);t=double(t);g(i,j)=mean(mean(t));g(i,j)=uint8(g(i,j));endendsubplot(121);imshow(uint8(f));title('加性高斯噪声图像');subplot(122);imshow(uint8(g));title('均值滤波处理后的图像')均值滤波处理后的图像(3):可变模板处理f=imread('lena gauss.bmp');f=double(f);[row,col]=size(f);r=1;g=size(f);for i=2:row-1for j=2:col-1s=0;s=double(s);for m=-r:rfor n=-r:rs=s+f(i+m,j+n);endendg(i,j)=s/power((r+2),2);endendsubplot(121);imshow(uint8(f));title('加性高斯噪声图像');subplot(122);imshow(uint8(g));title('均值滤波处理后的图像')椒盐噪声图像均值滤波处理后的图像中值滤波(椒盐噪声图像处理)f=imread('lena sp.bmp');f=double(f);[row,col]=size(f);g=size(f);r=1;for i=r+1:row-rfor j=r+1:col-rt=f(i-r:i+r,j-r:j+r);id=0;for tm=1:5m=0;for k=1:9if(m<t(k))m=t(k);id=k;endendt(id)=0;endg(i,j)=m;endendsubplot(121);imshow(uint8(f));title('原图像');subplot(122);imshow(uint8(g));title('中值滤波处理后的图像')R=1时的图像原图像中值滤波处理后的图像R=5原图像中值滤波处理后的图像中值滤波(加性高斯噪声)f=imread('lena gauss.bmp');f=double(f);[row,col]=size(f);g=size(f);r=1;for i=r+1:row-rfor j=r+1:col-rt=f(i-r:i+r,j-r:j+r);id=0;for tm=1:5m=0;for k=1:9if(m<t(k))m=t(k);id=k;endendt(id)=0;endg(i,j)=m;endendsubplot(121);imshow(uint8(f));title('原图像');subplot(122);imshow(uint8(g));title('中值滤波处理后的图像')原图像中值滤波处理后的图像R=5原图像中值滤波处理后的图像不同领域运算结果比较r=2f=imread('lena sp.bmp');f=double(f);[row,col]=size(f);r=2;g=size(f);for i=r+1:row-rfor j=r+1:col-rs=0;s=double(s);for m=-r:rfor n=-r:rs=s+f(i+m,j+n);endendg(i,j)=s/power((r+2),2);endendsubplot(121);imshow(uint8(f));title('椒盐噪声图像');subplot(122);imshow(uint8(g));title('均值滤波处理后的图像')均值滤波处理后的图像R=3椒盐噪声图像均值滤波处理后的图像R=8椒盐噪声图像均值滤波处理后的图像。
1光电图像处理实验(图像基本操作)
1光电图像处理实验(图像基本操作)光电图像处理实验报告学⽣姓名:班级:学号:指导教师:实验⽇期:⼀、实验名称:图像基本操作⼆、实验⽬的:1.掌握MATLAB的操作窗⼝功能;2.熟练掌握MATLAB的图像处理基本操作,熟练掌握数字图像读取、显⽰、保存;3.熟练掌握MATLAB各种图像格式⽂件的互相转换。
三、实验原理:MATLAB是由美国mathworks公司发布的主要⾯对科学计算、可视化以及交互式程序设计的⾼科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及⾮线性动态系统的建模和仿真等诸多强⼤功能集成在⼀个易于使⽤的视窗环境中,为科学研究、⼯程设计以及必须进⾏有效数值计算的众多科学领域提供了⼀种全⾯的解决⽅案,并在很⼤程度上摆脱了传统⾮交互式程序设计语⾔(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进⽔平。
MATLAB和Mathematica、Maple并称为三⼤数学软件。
它在数学类科技应⽤软件中在数值计算⽅⾯⾸屈⼀指。
MATLAB可以进⾏矩阵运算、绘制函数和数据、实现算法、创建⽤户界⾯、连接其他编程语⾔的程序等,主要应⽤于⼯程计算、控制设计、信号处理与通讯、图像处理、信号检测、⾦融建模设计与分析等领域。
MATLAB⼯作环境:桌⾯包括4个⼦窗⼝:命令窗⼝、⼯作空间窗⼝、当前路径窗⼝、历史命令窗⼝。
命令窗⼝是⽤户在提⽰符(>>)处键⼊MATLAB命令和表达式的地⽅,也是显⽰那些命令输出的地⽅。
⼯作空间窗⼝显⽰当前的变量名称和值。
双击可以启动数组编辑器。
当前路径窗⼝显⽰当前的⼯作⽬录。
⼯作⽬录的内容显⽰在当前⽬录窗⼝内。
可通过Set Path改变。
历史命令窗⼝包含⽤户已在命令窗⼝中输⼊的命令的记录。
如果要重新执⾏以前的MATLAB命令,可在历史命令窗⼝中双击该命令即可。
使⽤MATLAB编辑器创建M⽂件:MATLAB编辑器既是⽤于创建M⽂件的⽂本编辑器,也是调试器。
数字图像处理的邻域运算讲义解读PPT80页
❖ 知识就是财富 ❖ 丰富你的人生
71、既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。——康德 72、家庭成为快乐的种子在外也不致成为障碍物但在旅行之际却是夜间的伴侣。——西塞罗 73、坚持意志伟大的事业需要始终不渝的精神。——伏尔泰 74、路漫漫其修道远,吾将上下而求索。——屈原 75、内外相应,言行相称。——韩非
数字图像处理的邻域运算讲义解读
11、用道德的示范来造就一个人,显然比用法律来约束他更有价值。—— 希腊
12、法律是无私的,对谁都一视同仁。在每件事上,她都不徇私情。—— 托马斯
13、公正的法律限制不了好的自由,因为好人不会去做法律不允许的事 情。——弗劳德
14、法律是为了保护无辜而制定的。——爱略特 15、像房子一样,法律和法律都是相互依存的。——伯克
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要MATLAB7.0的工作环境包括当前工作窗口、命令历史记录窗口、命令控制窗口、图形处理窗口、当前路径选择菜单、程序编辑器、变量查看器、模型编辑器、GUI编辑器以及丰富的函数库和MATLAB附带的大量M文件。
在MATLAB图像处理中,有时并不需要对整个图像进行操作,而是对图像中的某一部分进行操作,即块操作。
比如许多线性滤波操作和二进制图像均按照块操作方式实现。
MATLAB的图像处理工具箱提供了多个专门用于图像块操作的函数,如dilate函数等。
此外,工具箱提供的大量通用函数也适用于块操作。
利用这些函数,用户可以进行各种块操作,包括滑动邻域操作和块处理操作。
关键词: MATLAB图像处理滑动邻域操作块处理操作目录1课程设计目的 (1)2课程设计要求 (2)3 MATLAB 及其图像处理工具箱 (3)3.1 MATLAB的广泛应用 (4)3.2 MATLAB软件系统构成 (5)3.3 MATLAB语言 (5)3.4 MATLAB中的傅里叶变换函数[2] (6)3.5 MATLAB GUI设计工具简介 (7)3.6 GUI开发环境 (9)3.7 GUIDE菜单编辑工具 (9)4 图像邻域与块处理 (10)4.1 块处理操作 (10)4.2 滑动邻域操作 (11)4.3 分离块操作 (13)4.4 滑动邻域操作程序 (15)4.5 分离块处理操作程序 (16)5 总结和体会 (19)参考文献 (20)1课程设计目的1)掌握matlab的基本操作和函数的实用2)掌握二值图像滑动邻域操作、分离块操作的基本方法3)编程实现滑动邻域操作、分离块操作2课程设计要求1) 使用nlfilter函数进行图像滑动邻域操作,并观察操作后图像的变化。
2) 使用blkproc函数进行图像分离块操作,观察操作后的图像变化情况。
3) 在程序开发时,必须清楚主要实现函数目的和作用,需要在程序书写时做适当注释说明,理解每一句函数的具体意义和使用范围。
4) 分析和对比处理前后的图像,能看出彩色增强效果,得出相应结论。
3 MATLAB及其图像处理工具箱Matlab是MathWorks公司于1982年推出的一套高性能的数值计算和可视化软件。
它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便、界面良好的用户环境。
它还包括了Toolbox(工具箱)的各类问题的求解工具,可用来求解特定学科的问题。
其特点是:[1,2,4](1) 可扩展性:Matlab最重要的特点是易于扩展,它允许用户自行建立指定功能的M文件。
对于一个从事特定领域的工程师来说,不仅可利用Matlab 所提供的函数及基本工具箱函数,还可方便地构造出专用的函数。
从而大大扩展了其应用范围。
当前支持Matlab的商用Toolbox(工具箱)有数百种之多。
而由个人开发的Toolbox则不可计数。
(2) 易学易用性:Matlab不需要用户有高深的数学知识和程序设计能力,不需要用户深刻了解算法及编程技巧。
(3) 高效性:Matlab语句功能十分强大,一条语句可完成十分复杂的任务。
如fft语句可完成对指定数据的快速傅里叶变换,这相当于上百条C语言语句的功能。
它大大加快了工程技术人员从事软件开发的效率。
据MathWorks公司声称,Matlab软件中所包含的Matlab源代码相当于70万行C代码。
3.1 MATLAB的广泛应用由于Matlab具有如此之多的特点,在欧美高等院校,Matlab已成为应用于线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具:在研究单位、工业部门,Matlab也被广泛用于研究和解决各种工程问题。
当前在全世界有超过40万工程师和科学家使用它来分析和解决问题[4]。
Matlab作为科学计算软件,主要适用于矩阵运算和信息处理领域的分析设计,它使用方便、输入简捷,运算高效、内容丰富,并且有大量的函数库可提供使用,与Basic,C和Fortran相比,用Matlab编写程序,其问题的提出和解决只需要以数学方式表达和描述,不需要大量繁琐的编程过程。
利用Matlab软件并通过计算机仿真光学空间滤波实验过程的新方法,其特点是:既可以随意改变所设计滤波器的参量,又可以对输入图像进行振幅、相位或复合滤波,并且可实现傅里叶变换频谱中相位信息的提取、存储和利用,因而能够完成一般光学实验中往往难以实现的某些操作.并分别给出了网格滤波、低通、高通及相位滤波等仿真实验结果。
这种仿真实验给光学滤波器的设计和图象处理带来很大方便,同时也为相关器件的设计提供了一条新的途径[3]。
3.2 MATLAB 软件系统构成MATLAB 软件主要包括主包、Simulink 和工具箱三大部分组成。
下图为MATLAB 界面:3.3 MATLAB 语言MATLAB 可以认为是一种解释性语言,可以直接在MATLAB 命令窗口键入命令,也可以在编辑器内编写应用程序,这样MATLAB 软件对命令或程序中各条语句进行翻译,然后在MATLAB 环境下对它进行处理,最后返回运算结果。
MATLAB 语言的基本语句结构为: 变量名列表=表达式其中等号左边的变量名列表为MATLAB 语句的返回值,等号右边是表达式的定义,它可以是MATLAB 允许的矩阵运算,也可以使函数调用。
等号右边的表达式可以由分号结束,也可以由逗号或回车结束,但他们的含义是不同的,如果用分号结束,则左边的变量结果将不在屏幕上显示出来,否则将把结果全部显示出来。
MATLAB 语言和C 语言有所不同,在调用函数式MATLAB允许一次返回多个结果,这时等号左边是用[]括起来的变量列表[2]。
3.4 MATLAB中的傅里叶变换函数[2]1)一维快速傅里叶变换函数fft格式:X=fft(x,N)功能:采用FFT算法计算序列向量x的N点DFT变换。
当N省略时,fft函数自动按x的长度计算DFT。
当N为2的整数次幂时,fft按基数2算法计算,否则用混合计算。
2)一维快速逆傅里叶变换函数ifft格式:x=ifft(X,N)功能:采用FFT算法计算序列向量X的N点IDFT变换。
3)二维快速傅里叶变换函数fft2格式:X=fft2(x)功能:返回矩阵X的二维DFT变换。
4.)二维快速逆傅里叶变换函数ifft2格式:X=ifft2(x)功能:返回矩阵X的二维IDFT变换。
3.5 MATLAB GUI设计工具简介图形用户界面的程序是在图形界面下创建与用户交互的控件元素,用户可以通过操作这些交互控件实现特定的功能,并且可以返回显示在程序界面相应的结果显示区域中。
因此,用户只和前台界面下的控件发生交互,而所有运算、绘图等内部操作都分装在内部,终端用户不需要去追究这些复杂过程的代码。
图形用户界面编程大大提高了用户使用MATLAB程序的易用性。
在Matlab中,图形用户界面(graphical user interface,GUI)是Matlab中一个专用于GUI程序设计的向导设计器,而GUI是由各种图形对象,如图形窗口、图轴、菜单、按钮、文本框等构建的用户界面,是人机交互的有效工具和方法。
通过GUIDE可以很方便地设计出各种符合要求的图形用户界面。
用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。
GUI设计既能以基本的Matlab程序设计为主,也能以鼠标为主,利用GUIDE工具进行设计,也可综合以上两种方法进行设计。
GUIDE 主要是一个界面设计工具集。
Matlab将所有GUl支持的用户控件都集成在这个环境中并提供界面外观、属性和行为相应方式的设置方法。
GUIDE将用户保存设计好的图形用户界面保存在一个FIG资源文件中,同时自动生成包含图形用户界面初始化和组件界面布局控制代码的M文件,这个M文件为实现回调函数的编写提供了一个参考框架。
FIG文件是一个二进制文件,包含系列化的图形窗口对象。
所有对象的属性都是用户创建图形窗口时保存的属性。
该文件最主要的功能是对象句柄的保存。
M文件包含GUI设计、控制函数及控件的回调函数,主要用来控制GUI展开时的各种特征。
该文件基本上可以分为GUI初始化和回调函数2个部分,控件的回调函数可根据用户与GUI的具体交互行为分别调用。
Matlab定义的各种图形对象及其关系如下图所示。
GUI所含有的所有控件必须随时对鼠标的单击做出回应,当然也要对可能的键盘输入做出恰当的回应。
创建GUI组建的三个主要部分如下[2]:(1)构成:GUI的所有项目都是图形界面的重要构成(按钮、标签、可编辑框等)。
(2)图形窗口:GUI的所有构成都必须安放在图形窗口中,该图形窗口就显示在计算机屏幕上。
(3)回调函数:对无论是鼠标的单击,还是对菜单的选取,还是对可选框的选取等操作作出反应,能够通过回调函数执行相应语句,完成用户需求。
也即是说GUI的所有图形组件实际上就是一个回调函数与可执行函数语句的链接。
上面三个部分中,最后一条最为重要。
如果想建一个性能好的GUI界面,首要的就是回调函数必须能够很好地连接需要执行的MATLAB语句。
3.6 GUI开发环境在MATLAB的命令窗口里输入GUIDE,确认后就可以进入到GUIDE开发环境下,或者单击菜单File→New→GUI来打开开发环境。
环境窗口如图3.1.6:设计界面的过程就是把我们需要的控件从控件调色板拖到(或复制到)控件布局编辑区,并使用列队工具把这些控件排列整齐合理的过程。
把控件拖到编辑区的方法有两种:一是用鼠标单击所需要的控件,然后在编辑区再单击鼠标即可得到我们所需要的控件;另一种方法是选中我们需要的控件,然后再编辑区用鼠标滑过的框区就会生成开一个大小等于矿区的控件[2]。
3.7 GUIDE菜单编辑工具GUIDE还提供一个菜单编辑工具,用来编辑窗口标题栏下面的下拉式菜单,以及用鼠标右键单击控件调出的弹出式菜单。
选择GUIDE的菜单Tools|Menu Editor,可以打开菜单编辑器,如下图所示。
Menu Bar为常规的下拉式菜单,Context Menus为弹出式菜单。
单击按钮,可以添加新的菜单项;单击按钮,可以在所选择的菜单项下面添加子菜单;单击按钮,可以删除所选的项。
1)设计原则:由于要求不同,设计出来的界面也就千差万别,设计好的图形界面需要考虑以下因素:2)简单性:设计界面时,力求简洁、清晰地体现界面的功能和特征。
删去可有可无的一些设计,保持整洁。
图形界面要直观,减少窗口数目。
3)一致性:即要求界面的风格尽量一致,不要和已经存在的界面风格截然相反。
4)习常性:界面设计时,尽量使用人们所熟悉的标志和符号。
5)其他因素:还要注意界面的动态性能。
比如界面的响应要速度、连续,对长时间运算的要给出等待的时间提示,并允许用户中断运算等等。