第24卷增刊辽宁工程技术大学学报2005年4月Vol.24Suppl.JournalofLiaoningTechnicalUniversityApr.2005文章编号:1008-0562(2005)增刊-0047-03测绘领域中MATLAB的应用崔利,武文波(辽宁工程技术大学测量工程系,辽宁阜新123000)摘要:介绍了MATLAB的特点、优势,并结合测绘数据的特点,把MATLAB具体应用于测绘领域的数据处理、地理信息系统、等高线绘制、遥感图像处理方面;把MATLAB中的强大的数值计算功能应用于测绘领域;指出了MATLAB测绘数据处理程序需经过规划、需求分析、编码、测试等环节,在测绘领域中引进MATLAB可以很方便地进行数据处理,减轻对人员编程水平的要求,还可以用于成果的可视化显示。关键词:MATLAB;测绘;数据处理;地理信息系统中图分类号:P208文献标识码:BApplicationofMATLABinsurveyingCUILi,WUWen-bo(DepartmentofSurveyingEngineering,LiaoningTechnicalUniversity,Fuxin123000,China)Abstract:ThearticleintroducedtheMATLABcharacteristicsandadvantageinbrief.Andaccordingtothecharacteristicsofsurveyingdata,concreteapplicationofMATLABinsurveyingisintroduced,suchasdataprocessing,GIS,drawingcontourremotesensingimageprocessing;ThestrongnumericalcalculationoftheMATLABisappliedtosurveying.ThearticlepointsoutusingMATLABtoprocessdatainsurveyingneedslayout,analysis,codingandtestingetc.BringingtheMATLABtosurveyingcancarryoutdataprocessingveryexpediently.easingtherequestonprogramdesigneranddisplayingtheprogeny.Keywords:MATLAB;surveying;dataprocessing;GIS0引言测绘科学是一门以大规模数据甚至是海量数据处理、分析与应用为基础的学科,其各项具体工作如测量平差、GPS高程与水准高程换算、遥感图像处理、坐标换算等,都涉及大量的计算。MATLAB在大规模数据处理特别是矩阵运算方面具有其他程序设计语言难以比拟的优越性[1]。将MATLAB引入测绘领域是一件非常有意义的事情,它在测绘科学与工程领域的应用将越来越广泛,目前MATLAB应用于测绘领域主要是在数据处理、成果可视化方面,应用还不够广泛,实践少。文章主要研究它在测绘领域的几个具体应用,理清MATLAB应用于测绘领域的优势和思路。1应用于测绘数据处理1.1MATLAB测绘数据处理程序设计思想MATLAB语言开发测绘数据处理程序需要经过规划、需求分析、编码、测试等几个环节。由于MATLAB比较适合处理矩阵,其基本元素是无须定义维数的矩阵,进行数值计算的基本单位是复数数组(或称阵列),这使得MATLAB高度“向量化”。它不需定义数组的维数,并具有矩阵生成函数以及对特殊矩阵处理的库函数。使之在诸如GPS信号处理、建模、系统识别、控制、优化等测绘数据的处理过程中,显得简捷、高效、方便。1.2用于坐标换算坐标换算是测绘工作中必不可少的部分,在地理信息系统、遥感图像配准、GPS后处理等工作中都要用到坐标转换。例如地方独立坐标系向国家坐标系,1954年北京坐标系向西安1980年坐标系、WGS84坐标系转换等,坐标转换实质是求解转换系数的过程,即可简化为[X′Y′]=[XYF(X,Y)]*T。如用其他计算机语言实现则需用相当复杂的算法和代码,而在MATLAB中只需采用矩阵除法符号”/”,即T=[X′Y′]/[XYF(X,Y)]。根据一定的控制点求出转换矩阵T后,即可用矩阵相收稿日期:2004-12-20作者简介:崔利(1981-),男,辽宁凌海人,硕士研究生。本文编校:唐巧凤辽宁工程技术大学学报第24卷48乘形式将所有待转换点的新坐标求出来,计算过程简单,可以直接由语言实现。1.3线性方程组的解算在测绘数据平差处理中最常见的问题是解线性方程组。而在MATLAB中求解线性方程组相对简单。对于A为系数矩阵,B为右端向量,x为未知数的任意一个线性方程组Ax=B,方程组解的存在性是线性代数的基本问题。简单来说,当矩阵A的行列式不为0时,有唯一解。当解存在时,有几种解算办法,比如,高斯消去、LU分解或直接使用矩阵求逆等,其解可书写为x=A-1B。以下是采用对矩阵求逆和使用矩阵的左除算子求解的算例。需要说明的是当方程数与未知量数目不等时,通常不存在唯一解,在约束条件下可以得到唯一解。在MATLAB中,使用除法算子可按最小二乘法解求方程组。设有一方程组⎪⎪⎩⎪⎪⎨⎧=−−+−=++−=+++=+656673422322024321421432142xxxxxxxxxxxxxB矩阵为[0–2–76]T则x的解:x=A/B=(-0.5,1,0.3333,-2)T2应用于地理信息系统MATLAB具有强大的科学数据可视化能力,能够将计算的结果以二维、三维、乃至四维的图形表现出来,并且可以通过对图形线性、立面、色彩、渲染、光线、视角等特性的处理,把计算结果表现得淋漓尽致。许多GIS都提供专业的三维分析功能,但使用和支持开发功能很弱。在MATLAB中分析三维数据,不但提供的现成函数很多,而且其灵活运用矩阵运算的方法,可以实现许多其他软件无法实现的功能[2]。以下是一系列绘制三维图形的函数:带有基本等值线的网格图meshc(x,y,z);曲面图surf(x,y,z);色彩平滑shading[flat,interp];带等值线的曲面图surfc(x,y,z);带亮度的曲面图surf1(x,y,z)。通过以上函数可以方便的绘出DEM网格、等高线[3]等。方程组的系数矩阵A⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−−−=5616103423211020A3绘制山区地貌图要在某山区方圆大约27km2范围内修建一条公路,从山脚出发经过一个居民区,再到达一个矿区。横向纵向分别每隔400m测量一次,得到一些地点的高程:(平面区域0=x=5600,0=y=4800),需作出该山区的地貌图和等高线图。下表为数据表。MATLAB中,完成这个任务相当简单,直接用函数meshz(x,y,z)就可实现网格的绘制,函数contour(x,y,z)绘出等高线,函数contour3(x,y,z)生成立体等高线。结果如图1,图2,图3。图1山区地貌图Fig.1geomorphologicalmapofMountainarea表1数据表Tab.1tableofdataxy12001600200024002800320036004000120011301250128012301040900500700160013201490142014001300700900850200013901500150014009001100106095024001500120011001350145012001150101028001500120011001550160015501380107032001500155016001550160016001600155036001480150015501540145013001200980增刊崔利等:测绘领域中MATLAB的应用49图2等高线图Fig.2contourmap图3立体等高线图Fig.3stereoscopiccontourmap4在遥感图像处理中的应用MATLAB支持多种图形图像文件格式,包括BMP、GIF、TIFF、PCX、JPEG、PSD、PCD和WMF等[4]。MATLAB中提供了大量用于图像处理的函数,如读取图像文件的imread函数;使用直方图均一化方法增强图像对比度的histeq函数;实现二维自适应噪声消除滤波的wiener2函数等,利用这些图像处理函数,可以很容易地实现对图像进行如下处理:图像的各种运算、邻域操作、图像变换、图像的卷积与滤波、图像的二值形态学操作、图像增强、图像复原、图像编码与压缩、图像分析和理解、图像的小波分析等。5结语综上所述,MATLAB使用简单,功能强大,其数值计算和可视化功能非常适用于解决测绘中的一些问题。以上仅是几个探讨和实例,MATLAB中还有许多功能适用于测绘领域,相信随着MATLAB应用的普及应用,它在测绘领域的应用会越来越大。参考文献:[1]清源计算机工作室.MATLAB6.0基础及应用[M].北京:机械工业出版社,2001.[2]曾文华.MATLAB在地理信息系统中的应用[J].计算机应用,2002,(5):91-94.[3]周胜君.利用MATLAB进行测绘数据处理和分析[J].矿山测量,2004,(3):18-20.[4]董春来.利用MATLAB实现图像处理与分析[J].现代测绘,2003,(10):9-11.[5]吕延庆.基于VisualC++和MATLAB的联合编程方法的研究[J].计算机应用研究,2000,(11):101-103.[6]阳仁贵.用VC++6.0和MATLAB开发测量数据处理系统[J].人民长江,2003,(12):50-52.