matlab在遥感技术中的应用,C#.net和Matlab在遥感图像处理中的应用

1概述在气象预报和对太空其他星球研究方面,数字图像处理技术也发挥了相当大的作用。利用Matlab可以对遥感图像进行图像增强、滤波,融合等,可大大推动在遥感图像处理的深入研究和广泛应用。VisualC#是一种强大的现代的面向对象的程序开发语言,语法比较简单,它使得程序员能够在新的微软.NET平台上快速开发种类丰富的应用程序。.NET平台提供了大量的工具和服务,能够最大限度地发掘和使用计算及通信能力。将C#.net和Matlab结合起来,不仅简化了界面化和可视化,而且便于用户交互。2小波变换和均值滤波2.1小波分解从一幅N*N的图像f(x,y)开始,其中上标指示尺度,并且N是2的幂数。对于j=0,尺度==1,也就是原始图像的尺度。j值的每一次增大都使尺度加倍,而使分辨率减半。在变换的每一层次,图像都被分解为4个四分之一大小的图像,他们都是由原始图像与一个小波基图像的内积后,再经过在行和列方向进行2倍的间隔抽样而生成的。对于第一个层次(j=1),可写成:若将内积改写卷积形式,则有因为尺度函数和小波函数都是可分离的,所以每个卷积都可分解成行和列的一维卷积。例如,在第一层,首先用(-x)和(-x)分别与图像f(x,y)的每行做卷积并丢弃奇数列(以最左边为第0列)。接着这个(N*N)/2矩阵的每列再和(-x)、(-x)做卷积,丢弃奇数行(以最上行为第0行)。结果就是该层变换所要求的4个(N/2)*(N/2)的数组(见图1)。2.2小波重构重构过程与上面过程相反,在每一层,通过在每一列的左边插入一列零来增频采样前一层的4个矩阵:接着用和来卷积各行,再成对地把这几个(N/2)*N的矩阵加起来;然后通过在每行上面插入一行0来将刚才所得的两个矩阵的增频采样为N*N;再用和与这两个矩阵的每列卷积。这两个矩阵的和就是这一层重构的结果。2.3均值滤波数字图像的均值滤波是一种利用模板对图像进行模板操作(卷积运算)的平滑方法,是一种常用的图像滤波去噪方法,该方法运算简单,对高斯噪声具有良好的去噪能力。但均值滤波在本质上是一种低通滤波的方法,在消除噪声的同时也会对图像的高频细节成分造成破坏和损失,使图像模糊。为了解决均值滤波算法存在的图像模糊问题,人们提出许多改进算法,如K邻点平均法、梯度倒数加权平滑法、自适应权平滑法等。3C#与Matlab接口的实现3.1编写wt_mean.m文件。functionwt_mean(file)…3.2Matlab编译,把.m文件编译成.dll文件。首先是Matlab编译的配置,在matlab的命令窗口输入mbuild.-setup,将会出现下列的提示信息,按信息提示选择即可。然后在matlab的命令窗口输入comtool命令(在MATLABR2007a中输入deploytool命令),弹出matlabcombuilder窗口。点击文件工程,新建一个工程,在组件名称里输入名字Mlghd,然后选中Mlghdclass文件,点击工程-添加文件,将wt_mean.m添加入工程,然后点击build子菜单下的Build-ComObject菜单项,就会在当前工作空间文件夹下生成一个Mlghd1_0.dll(它就是做好的com组件),Build时matlab已经自动将此dll在注册表中注册。3.3在C#中调用dll文件:在c#的解决方案浏览器中右击,引用-添加引用-COM,浏览,找到Mlghd.dll,点击添加。再写入以下代码:privatevoidbutton1_Click(objectsender,EventArgse){Mlghd.MlghdclassC