您的位置:首页 > 理论基础 > 计算机网络

使用Matlab结合神经网络模型对多波段影像进行计算

2015-08-24 23:03 976 查看
前期做了一个构造神经网络模型预测叶绿素浓度的项目,主要内容是通过影像的反射率反演出叶绿素浓度。现在模型构建出来了,如何利用这个模型对研究区域的影像进行计算叶绿素浓度呢?接着需要利用Matlab来操作了。

(1)打开Matlab,导入影像。

I=imread('122_33_20140422.img');

im=imread('D:\test.tif');

两种方式,第一种是该影像在当前工作目录下,另一种就是通过盘符寻找。

然后在Workspace里出现一个三维l*m*n矩阵,分别代表行数,列数和波段数。

(2)将三维矩阵拆成n个二维矩阵,n为波段数,即获取每个波段的影像值矩阵。

A1= I ( : , : , 1) %第一波段所有像素点

A2= I ( : , : , 2) %第二波段所有像素点

A3= I ( : , : , 3) %第三波段所有像素点

(3)我所使用的影像类型是int16型的,进行计算时候需要将其转成double型的。



(4)进行到这里,需要提一下,我设计的神经网络模型的输入矩阵是n*a,a代表样本数,n代表波段数,所以我需要将刚才分开的七个矩阵转化成行向量,接着再组合成一个n*a型矩阵,这样才能导入到神经网络模型中。

(5)接着就可以将已建好的net导入进来,然后对刚组合好的n*a矩阵(即a个样本)进行反演运算。得到1*a叶绿素浓度矩阵,然后利用reshape函数重新组合成l*m型二维矩阵(起名叫“Finish”)。

(6)然后利用下面的语句

imagesc(Finish);

即可查看生成的叶绿素浓度图。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: