MatLab学习总结

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

使图像符合信息提取要求、设计描述符需要的知识:第一部分数字图像基础第1章引言第2章图像量化基础第3章数学形态学概论第4章遥感图像常规处理第二部分遥感图像分析第5章图像变换与小波分析第6章图像分割第7章边缘检测与串行边界第8章纹理分析第9章形状分析构建多描述符空间、测试描述符、实施分类需要的知识:第三部分空间数据挖掘第10章空间数据挖掘基础第11章模糊集与模糊聚类第12章人工神经网络第13章决策树第14章支持向量机SVM一、概述matlab主要特点:(1)数据可视和图形化:图像一旦读入MATLAB,就以矩阵形式保存,可以在工作区查看矩阵的值,用绘图工具按钮选择表达图形等;这种图形化数据分析使测试算法的过程简单化。(2)高效简单的编程环境:直译式语言。(3)开放及可延伸的架构:内核采用C语言编写。允许开发人员接触它的大多数源代码。(4)丰富的工具箱:MATLAB的工具箱提供了使用者在特别应用领域所需的许多函数,以简化开发人员的工作。现有工具箱包括:图像处理、统计分析、神经网络、模拟分析、最优化、模糊逻辑、小波分析等13个。在MATLAB中,数字图像经常采用矩阵(matrix)或阵列/数组(array)表达,矩阵或阵列元素代表图像的灰度值(或分色亮度值)。可以通过函数reshape()实现矩阵和阵列间的相互转换。可以通过数组下标访问像素的具体值。对于灰度图像,可用A(i,j)获得指定行列处的灰度值,比如指令A(2,5)将返回第2行第5列的灰度;对于GRB图像,可用A(i,j,k)或得指定行列处的分色亮度值,比如指令A(2,5,1),A(2,5,2)将分别返回第2行第5列的红、绿值;A(:,:,3)返回所有行列的蓝值(返回整个蓝色分量)等。大多数运算符对矩阵与阵列通用,少量阵列与矩阵运算可能相混淆的操作使用有区别的运算符。imread()函数读取图像数据,imwrite()函数存储图像文件,figure另外打开一个图形输出窗口,subplot()用于在同一窗口显示多幅子图像,title()为输出图像加标题,Imshow()显示图像文件,rgb2gray()将RGB图像转换为灰度图像,im2bw()将灰度图像、索引图像或RGB图像转换为二值图像。二、图像量化基础1、考虑邻近像素的图像分析方法称为”邻域运算”;只考虑单个像素时称为“点运算”。常见的邻域运算:模板运算(卷积运算)滑动窗口运算块运算(固定窗口)邻域运算常被用于空间滤波、平滑降噪、边缘提取、纹理提取、窗口统计等图像处理和分析操作中。2、邻域运算模板运算:模板运算的输出值由对应的输入像素及其邻域像素的值共同决定。这种运算通过模板(也称“卷积核”)实现。模板是远比图像尺寸小、具有规则形状的元素集。模板元素的值可以根据具体任务设计。模板边长一般为奇数,常用的模板尺寸为3×3,5×5,7×7等。通过MATLAB的滤波函数conv2(),可以实现以自制模板对二维图像的模板运算(或滤波运算)。例2.2定制滤波算子并对图像I滤波。I=imread('mb.tif');H1=[1,1,1;0,0,0;1,1,1];%定制Prewitts算子(行向)H2=[1,0,1;1,0,1;1,0,1]%定制Prewitts算子(列向)C1=conv2(double(I),H1);%用H1对I做滤波C2=conv2(double(I),H2);imshow(C1|C2);3、邻域运算滑动窗口和图像块在遥感图像分析中,有些操作需要考虑一定尺寸邻域的统计特征。滑动窗口或图像块是一个像素子集,子集的像素由窗口中心像素的坐标和邻域尺寸决定。这个邻域范围常称为“窗口”区,邻域的统计值常称为“窗口值”。滑动窗口操作通常采用特定的窗口尺寸和操作函数遍历全图像素。如果仅仅将图像按照窗口尺寸划分成若干矩形,并对各矩形做函数运算,则称为“块操作”。MATLAB滑动窗口或块操作函数colfilt.m该函数按指定窗口函数做滑动窗口或块操作。基本语法:B=colfilt(A,[mn],block_type,fun)B=colfilt(A,[mn],[mblocknblock],block_type,fun)B=colfilt(A,'indexed',...)其中:A为原图像,窗口尺寸为m×n。fun为窗口函数,通常需定义为内联函数(参见A1.7.2和例2.4);block_type是一个字串,可选值①'distinct':“图像块”操作;②'sliding':滑动窗口操作。[mblocknblock]指定附加窗口尺寸,以节省操作内存。如在图像边缘出现窗口越界,将越界元素以0补齐。4、图像采样图像采样的任务:获得目标和/或背景的图像特征值;获得训练集(trainingsets)。训练集由若干样本构成,每个样本包括一个属性向量和一个目标值。一个包含q个样本、r维属性的训练集通常由一个r×q属性矩阵和一个q个元素的目标阵列构成。图像采样通常以交互方式进行,可以针对单像素、多边形区域或子块等。图像采样常用方式:单像素采样:返回采样点的图像值子块采样:返回子块的图像值多边形区域采样:返回样区二值图。(1)单像素采样MATLAB像素采样函数impixel.m用于返回若干指定像素的图像值。基本语法:P=impixel(I)在图像I中,获得鼠标选定像素的分色亮度值。允许连续选择若干像素,点击Backspace或Delete键,删除最近一次的选择;右击、双击左键或回车结束选取。一旦选取结束,函数返回一个m×3矩阵P,m是像素个数,三个列值依次为分色亮度R、G、B。例2.6对图像I采样,作图分析样本的波谱特征。P=impixel(I);%以交互方式采样,返回各像素的R、G、B值plot(P);%绘图表达P的所有列注:在工作区(workspace)选择矩阵P,在绘图按钮下拉列表中选择折线图,也有同样效果。(2)区域采样MATLAB区域选取函数roipoly.m,用于交互获得样区多边形和返回相应的二值图。基本语法:BW=roipoly(I,C,R)%以R和C定义的节点集构建多边形BW=roipoly(I)%以交互方式构建多边形[BW,xi,yi]=roipoly(...)%同时返回BW和多边形节点坐标函数返回一个与原图像I等大的二值图BW,选区值为1。以BW作为掩模,与I做.*运算可以屏蔽选区外的像素。参见例2.7.例:对多边形样区滤波I=imread('garden.jpg');I=rgb2gray(I);%滤波只适用于灰度图像,将I转换为灰度图像[BW,x1,y1]=roipoly(I);%交互点选多边形,多边形可编辑,右击选择“creatmask”确认H=fspecial('sobel');%构建sobel算子滤波器J=roifilt2(H,I,BW);%对I中BW所掩区域以H做滤波figure;subplot(121);imshow(I);title('Original');subplot(122);imshow(J);title('Filtered');holdonplot(x1,y1,'y');三、数学形态学概论用形态学进行图像分析的基本思想:利用一个称为结构元素(StructureElement,SE)的“探针”顺序探测整个图像,以度量和提取图像中与SE对应的特征。SE本身带有一些图像信息,包括形态、大小及灰度等,通过设计它可以达到检测图像结构特征的目的。数学形态学的基本运算膨胀(dilate)腐蚀(erode)开启(open)闭合(close)这些运算可以用于二值或灰度(多值)图像,甚至模糊集,相应的技术分别称为二值形态学、灰度形态学和模糊形态学。1、MATLAB的形态学基本操作MATLAB用于膨胀和腐蚀运算的函数分别为:imdilate()imerode()它们既可用于二值图像也可用于灰度图像。膨胀和腐蚀操作是其它形态学操作的基础,利用这两个函数可以实现几乎所有的形态学运算。2、MATLAB预定义的二值形态学操作为了使用方便,MATLAB以预定义形式,在函数bwmoph()中统一定义了多种操作,作为二值形态学有关操作的统一接口。基本语法:BW2=bwmorph(BW1,operation,n)该函数返回对图像BW1的形态学操作结果。通过参数operation可以指定预定义的形态学操作,其取值见表3.2;n指定操作的重复次数,默认值1。例3.4bwmorph函数形态学操作举例A=imread('T.jpg');BW1=im2bw(A);%读入图像并转换为二值图subplot(241);imshow(BW1);title('原图像');subplot(242);imshow(bwmorph(BW1,'dilate',2));title('膨胀');subplot(243);imshow(bwmorph(BW1,'erode',2));title('腐蚀');subplot(244);imshow(bwmorph(BW1,'open',2));title('开启');subplot(245);imshow(bwmorph(BW1,'close',2));title('闭合');SE=zeros(7,7);SE(:,4)=1;%定制SEsubplot(246);imshow(imerode(BW1,SE));title('以定制SE腐蚀');subplot(247);imshow(imerode(imdilate(BW1,SE),SE));title('以定制SE闭合');subplot(248);imshow(imdilate(imerode(BW1,SE),SE));title('以定制SE开启');3、灰度数学形态学4个二值形态学基本运算(膨胀、腐蚀、开启和闭合)可以方便地推广到灰度图像空间。与二值形态学不同,这里将操作对象看作图像函数而非集合。以下设f(x,y)为输入图像,b(x,y)是结构元素(SE),SE本身也是一幅子图像,对于平坦型SE,每个元素取值为1或0,值为1者表示参与运算。四、遥感图像常规处理在遥感图像使用前通常要对图像存在的某些误差和偏差进行校正,这种校正主要分为:对像素位置误差进行的几何校正和对图像灰度偏差进行的辐射校正。对图像进行增强(如反差增强和直方图均衡化等),以改善视觉效果等。为了有效利用多波段和多源信息,图像合成和融合等也是常见的图像处理手段。1、图像增强概述和分类根据图像增强处理所在的空间不同,可分为基于图像域和基于变换域两类。(1)图像域/空域增强该法直接作用于像素值,原始图像f(x,y)和增强图像g(x,y)具有以下基本关系:g(x,y)=EH[f(x,y)]其中,EH(Enhancement)代表增强操作。如果EH定义在每个(x,y)上,EH是点操作;而如果定义在(x,y)的某个邻域上,则称EH为模板操作。(2)变换域/频率域增强有时需要将空域图像转换到其它变换域,以便利用图像在这些值域的特有性质。最常用的变换域是频域。设空域图像f(x,y)经由变换关系T转换到频域,并以T-1表示T的逆变换;则频域增强可表示为:g(x,y)=T-1[EH[T[f(x,y)]]]即在频域做了EH后,再经逆变换返回空域。图像增强操作常用的EH包括反差增强、锐化和直方图均衡化等。这些操作不以图像保真为原则,它只是选择性地突出某些对人或机器分析有用的信息,抑制一些无用或干扰信息。2、图像增强反差增强/拉伸MATLAB的反差增强方法(2.1)stretchlim()搜索和返回图像的拉伸阈值基本语法:LOW_HIGH=stretchlim(I,TOL)函数返回对I做灰度调整时需要确定的最小和最大灰度。其中,TOL=[LOW_FRACTHIGH_FRACT]用来设定亮/暗端像素占比,默认值为[0.010.99];(2.2)imadjust()调整图像灰度或分色亮度基本语法:J=imadjust(I,[LOW_IN;HIGH_IN],[LOW_OUT;HIGH_OUT],GAMMA)把I中灰度在[LOW_IN;HI

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功