-
大小: 2.16MB文件類型: .zip金幣: 2下載: 0 次發布日期: 2023-10-22
- 語言: Matlab
- 標簽:
資源簡介
基于MATLAB寫的可對遙感影像進行BP神經網絡分類的m文件,里面有測試圖像數據,其中感興趣區域數據是由ENVI選取的感興趣區域保存而來。

代碼片段和文件信息
clear?all;
clc;
%<----------------------------貝葉斯算法進行遙感圖像分類------------------------
%讀入樣本圖像1
Y=imread(‘date\yangqu.tif‘);
%讀入待分類遙感圖像
I=imread(‘date\wuhan.bmp‘);
??%將彩色圖像降維
??R=I(::1);
??G=I(::2);
??B=I(::3);
??%將灰度值歸一化處理
??R=im2double(R);
??G=im2double(G);
??B=im2double(B);
??[MN]=size(R);
??P=[R;G;B];
a1=1;a2=1;a3=1;
for?i?=?1?:?M
????for?j?=?1?:?N
????????if?(Y(ij)==1)
????????????T1(:a1)?=?I(ij:);
????????????a1=a1+1;
????????elseif?(Y(ij)==2)
????????????T2(:a2)?=?I(ij:);
????????????a2=a2+1;
????????elseif?(Y(ij)==3)
????????????T3(:a3)?=?I(ij:);
????????????a3=a3+1;
????????end
????end
end
T1?=?im2double(T1);
T2?=?im2double(T2);
T3?=?im2double(T3);
P=[T1T2T3];????%樣區數據
T=[];?????%標記結果
TT=[0;0;0];
T=concur(TTa1-1);
TT=[0.4;0.7;0.7];
TT=concur(TTa2-1);
T=[TTT];
TT=[0.6;0.7;0.4];
TT=concur(TTa3-1);
T=[TTT];????????????????????
%建立BP網絡,中間層8,輸出層3,tansig、purelin分別為中間層、輸出層的轉換函數,
?echo?on
?net=newff(minmax(P)[83]{‘tansig‘‘purelin‘}‘trainlm‘);??
?clc
????%設置訓練參數
????net.trainparam.show=50;????????
????net.trainParam.epochs=1000;
????net.trainParam.goal=1e-4;
????net=init(net);%重新初始化
????[nettr]=train(netPT);?
A4=imread(‘date\wuhan.bmp‘);
A4=im2double(A4);%將各波段的灰度值類型轉換為人工神經網絡可用的類型
RB=A4(::1);%提取出圖像紅色波段的灰度值
GB=A4(::2);%提取出圖像綠色波段的灰度值
BB=A4(::3);%提取出圖像藍色波段的灰度值
%初始化三個矩陣
[mn]=size(RB);%確定圖像的行數和列數
RB1=reshape(RB1n*m);
GB1=reshape(GB1m*n);
BB1=reshape(BB1m*n);
X=[RB1;GB1;BB1];
OUT=sim(netX);
IN=sim(netX);?
clc
[mn]=size(RB);
r1=OUT(1:);%將數據還原成原始圖像的rgb行列格式
r1=reshape(r1mn);
g1=OUT(2:);
g1=reshape(g1mn);
b1=OUT(3:);
b1=reshape(b1mn);
r2=IN(1:);%將數據還原成原始圖像的rgb行列格式
r2=reshape(r2mn);
g2=IN(2:);
g2=reshape(g2mn);
b2=IN(3:);
b2=reshape(b2mn);
R=[];
G=[];
B=[];
for?i=1:m
????for?j=1:n
????????if?r1(ij)<0.9
????????????R(ij)=r1(ij);
????????????G(ij)=g1(ij);
????????????B(ij)=b1(ij);
????????else
????????????R(ij)=r2(ij);
????????????G(ij)=g2(ij);
????????????B(ij)=b2(ij);
????????end
????end
end
Rr=abs(R)*255;%還原成圖像格式
Gg=abs(G)*255;
Bb=abs(B)*255;
Rr=uint8(Rr);
Gg=uint8(Gg);
Bb=uint8(Bb);
RGB=cat(3RrGgBb);
clc
imshow(RGB);
title(‘05年分類圖像‘);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-05-22?21:10??BP神經網絡\
?????文件????????2485??2013-05-22?19:44??BP神經網絡\BPnetwork.m
?????目錄???????????0??2013-05-22?21:10??BP神經網絡\date\
?????文件?????3000054??2013-05-22?19:17??BP神經網絡\date\wuhan.bmp
?????文件?????1009921??2013-05-22?19:17??BP神經網絡\date\yangqu.tif
- 上一篇:基于MATLAB GUI的數字圖像處理
- 下一篇:電磁場計算方法與MATLAB實現
評論
共有 條評論