1. 程式人生 > >使用Matlab結合神經網路模型對多波段影像進行計算

使用Matlab結合神經網路模型對多波段影像進行計算

前期做了一個構造神經網路模型預測葉綠素濃度的專案,主要內容是通過影像的反射率反演出葉綠素濃度。現在模型構建出來了,如何利用這個模型對研究區域的影像進行計算葉綠素濃度呢?接著需要利用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*aa代表樣本數,n代表波段數,所以我需要將剛才分開的七個矩陣轉化成行向量,接著再組合成一個n*a型矩陣,這樣才能匯入到神經網路模型中。

5)接著就可以將已建好的net匯入進來,然後對剛組合好的n*a矩陣(a個樣本)進行反演運算。得到1*a葉綠素濃度矩陣,然後利用reshape

函式重新組合成l*m型二維矩陣(起名叫“Finish”)。

(6)然後利用下面的語句

imagesc(Finish);

即可檢視生成的葉綠素濃度圖。