?? bpclass.m
字號:
clc
%神經(jīng)網(wǎng)絡(luò)圖像分類
RGB=imread('harvey.jpg');
figure,imshow(RGB);
title('原始遙感圖像');
%提取原始圖像的R、G、B分量
R=RGB(:,:,1);
G=RGB(:,:,2);
B=RGB(:,:,3);
figure,subplot(1,3,1);
imshow(R);
title('原始圖像R分量');
subplot(1,3,2);
imshow(G);
title('原始圖像G分量');
subplot(1,3,3);
imshow(B);
title('原始圖像B分量');
%圖像灰度值轉(zhuǎn)換成雙精度格式并歸一化到[0,1]之間
DoubleR=im2double(R);
DoubleG=im2double(G);
DoubleB=im2double(B);
%將數(shù)字的二維信號轉(zhuǎn)化為一維數(shù)據(jù)的形式依次輸入到BP神經(jīng)網(wǎng)絡(luò)中
XR=[];
for i=1:400
XR=cat(2,XR,DoubleR(i,:));
end
XG=[];
for i=1:400
XG=cat(2,XG,DoubleG(i,:));
end
XB=[];
for i=1:400
XB=cat(2,XB,DoubleB(i,:));
end
rgb=[XR;XG;XB];
%通過人工判讀原始遙感圖像圖像,確定將圖像中的地物分為建筑物、道路和綠地3類,選取圖像中每個像素的RGB三個顏色分
%量組成光譜特征向量,因此網(wǎng)絡(luò)的輸入層節(jié)點數(shù)為3;輸出層節(jié)點數(shù)取3
p=[237,237,230,251,252,235,229,246,250,253,239,252,236,229,252,252,248,231,231,253,223,253,237,247,234,252,247,240,229,252,227,227,249,226,236,215,238,216,252,246,221,204,231,179,222,169,170,70,68,162,158,184,163,164,174,168,173,154,155,165,164,171,160,180,169,89,89,92,62,66,71,72,96,71,88,92,82,71,83,90,90,66,77,76,66,75,86,82,73,83,125,143,168,138,144,62,96,92,128,141,133,80,112,151,147,140,105,135,137,135,88,122,115,156,144,128,120,27,65,93,138,164,165,138,147,115,111,125,128,141,128,153,112,108,92
233,238,231,252,251,234,226,247,251,254,240,253,237,228,253,253,247,230,232,252,234,253,238,248,235,253,248,241,228,251,228,226,250,227,237,214,239,217,251,247,217,205,232,178,223,165,166,80,69,159,155,180,160,161,173,168,169,151,154,164,161,168,161,176,165,90,92,92,61,64,69,72,99,76,95,95,93,87,87,93,97,69,76,76,77,72,97,80,69,81,132,134,149,141,131,70,105,98,135,146,138,86,116,156,151,146,114,141,143,129,79,113,108,141,130,129,113,29,68,96,133,159,163,137,145,121,117,128,129,138,130,158,112,110,90
230,232,225,246,246,229,221,241,245,248,235,247,231,224,248,247,242,225,227,249,226,249,232,242,230,247,242,235,223,246,222,221,244,221,232,212,234,211,247,241,213,199,226,173,217,161,163,82,74,150,148,177,151,154,168,160,167,142,149,159,156,163,155,173,162,108,107,100,64,65,79,72,92,82,93,100,99,98,99,110,105,76,82,84,79,67,103,82,68,84,104,125,142,125,122,59,88,70,104,116,108,60,89,126,123,118,88,115,115,117,65,98,92,138,121,111,100,24,63,93,113,148,146,119,130,109,107,121,122,133,117,152,88,88,78];
p=p/255;
%t為目標(biāo)分類矢量將所有學(xué)習(xí)樣本的灰度值從0-255規(guī)格化為0-1,各類別學(xué)習(xí)樣本的期望輸出值。
%各類別的期望輸出值
%建筑 0.9 0.1 0.1,整體顯紅色
%道路 0.1 0.9 0.1,整體顯綠色
%綠地 0.1 0.9 0.9,整體顯藍(lán)色
t=[0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1
0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1
0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9,0.9]
%創(chuàng)建一個新的前向神經(jīng)網(wǎng)絡(luò)
net=newff(minmax(p),[10,3],{'tansig','purelin'},'traingdx');
%采用動量梯度下降bp算法
%隱含層轉(zhuǎn)換函數(shù)是正切函數(shù),輸出層轉(zhuǎn)換函數(shù)是線性函數(shù)
%當(dāng)前輸出層權(quán)值和閾值
inputweights=net.IW{1,1}
inputbias=net.b{1}
%當(dāng)前網(wǎng)絡(luò)層權(quán)值和閾值
layerweights=net.LW{2,1}
layerbias=net.b{2}
%設(shè)置訓(xùn)練參數(shù)
net.trainParam.show=50;
net.trainParam.lr=0.05;
net.trainParam.mc=0.9;
net.trainParam.epochs=5000;
net.trainParam.goal=1e-2;
%調(diào)用traingdx算法訓(xùn)練bp網(wǎng)絡(luò)
[newnet,tr]=train(net,p,t);
%對bp網(wǎng)絡(luò)進(jìn)行仿真
A=sim(newnet,rgb);
%由于仿真輸出的數(shù)據(jù)為一維的,所以要將一維像素矩陣生成400*600的二維矩陣,和原始圖像的大小一樣。
resultR=[];
classR=[A(1,:)];
for i=0:399
resultR=[resultR;classR((i*600+1):(i*600)+600)];
end
figure,subplot(1,3,1);
imshow(abs(resultR));
title('分類后圖像R分量');
resultG=[];
classG=[A(2,:)];
for i=0:399
resultG=[resultG;classG((i*600+1):(i*600)+600)];
end
subplot(1,3,2);
imshow(abs(resultG));
title('分類后圖像G分量');
resultB=[];
classB=[A(3,:)];
for i=0:399
resultB=[resultB;classB((i*600+1):(i*600)+600)];
end
subplot(1,3,3);
imshow(abs(resultB));
title('分類后圖像B分量');
%將數(shù)據(jù)轉(zhuǎn)成0-255格式
R1=abs(resultR)*255;
G1=abs(resultG)*255;
B1=abs(resultB)*255;
%轉(zhuǎn)成彩圖RGB格式顯示
R2=uint8(R1);
G2=uint8(G1);
B2=uint8(B1);
RGBfinal=cat(3,R2,G2,B2);
figure,imshow(RGBfinal);
title('分類后遙感圖像');
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -