91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

訓練樣本(資源已附一個訓練樣本)來自ENVI CLASSIC導出的ASCLL碼格式(文本文件),執行代碼會有對話框要求手動打開若干個波段的TM圖像,有對話框可以調整輸出圖像的大小,輸出圖像顯示并以系統時間命名保存。 代碼注釋完整,易于看懂。

資源截圖

代碼片段和文件信息


%打開待讀取txt樣本數據
[FileName_YBPathName_YB]?=?uigetfile(‘*.txt‘‘選擇樣本數據‘);%YB為樣本的簡寫
fidin=fopen(strcat(PathName_YBFileName_YB)‘r‘);???
fidout=fopen(‘HEAD.txt‘‘w‘);???%HEAD文件存儲樣本中首行為分號的數據
fidout2=fopen(‘RGB_NUM.txt‘‘w‘);??%RGB_NUM文件存儲樣本數據中不同類別的顏色RGB數值所在字符串
semnum=0;
while?~feof(fidin)??????????????????????????????????????%?判斷是否為文件末尾???????????????
????tline=fgets(fidin);?????????????????????????????????%?從文件讀行???
????if?~isempty(strfind(tline(1)‘;‘))??????????????????%判斷行首字符是否為分號
????????semnum=semnum+1;????????????????????????????????%記錄分號的數量
????????fprintf(fidout‘%s\n\n‘tline);??
????????if?semnum==6||(semnum-6>0&&rem(semnum-64)==0)??%將樣本類別所在顏色RGB數值所在行打印
????????????fprintf(fidout2‘%s\n‘tline);
????????end
????else
????????break;
????end
end
fclose(fidout);
fclose(fidout2);
importdata(‘HEAD.txt‘);??
importdata(‘RGB_NUM.txt‘);??
M=semnum/4-1;????????????????%M為樣本類別數,文件頭占4行,每一類別也占4行,semnum為分號的個數也就是無關數據的行數

FormatString=repmat(‘%d?‘113);????%讀取除HEAD文件外的全數字數據
YB_0?=cell2mat(textscan(fidinFormatString‘HeaderLines‘0));???%YB_0就是列數為波段數的矩陣
YB_0(11)=1;
ind=find(all(YB_0(:1)==12));?%找出所有行首為1的數值所在行號,用于計算每一類別矩陣行數
fclose(fidin);
RGB=zeros(M3);
%讀取RGB_NUM文件中的RGB數值,數據在S_3S_4S_5中
[S_1S_2S_3S_4S_5]=textread(‘RGB_NUM.txt‘‘%s%s%s%s%s‘‘delimiter‘?‘{}:‘);

for?x=1:M???????????????????????????????????????????????%獲得RGB值
????RGB(x1)=str2num(S_3{x1}(:)‘);
????RGB(x2)=str2num(S_4{x1}(:)‘);
????RGB(x3)=str2num(S_5{x1}(:)‘);
end

%元胞數組YB_Mtri存儲不同樣本類別的數據
for?i_0=1:M-1
?????YB_Mtri{1i_0}=YB_0(ind(i_0):(ind(i_0+1)-1)8:13);
?end
YB_Mtri{1M}=YB_0(ind(M):size(YB_01)8:13);



%求均值
for?i_1=1:M
????Mean{1i_1}=mean(YB_Mtri{1i_1})?;
end

%求協方差陣
for?i_2=1:M
????for?a=1:size(YB_Mtri{1i_2}2)?
????????for?b=1:size(YB_Mtri{1i_2}2)?
????????????Sigma{1i_2}(ab)=sum((YB_Mtri{1i_2}(:a)-mean(YB_Mtri{1i_2}(:a))).*(YB_Mtri{1i_2}(:b)-mean(YB_Mtri{1i_2}(:b))))/(size(YB_Mtri{1i_2}1)-1);
????????end?
????end
end
%用BD_num求波段數目
BD_num=inputdlg(‘需要打開幾個波段的TIF圖像‘...
?????????????‘圖像數目:‘?[1?50]{‘6‘});
img_num=str2num(BD_num{1});?????????????????????????????%圖像的數目等于波段數目
scale=inputdlg(‘輸入縮放比(1為原始大小)‘...
????????????‘請輸入縮放比以決定處理后圖像大小‘[1?70]{‘0.1‘});

for?i_3=1:img_num???????????????????????????????????????%讀取各波段圖像
????[FileName_img{i_3}PathName_img]?=?uigetfile(‘*.tif‘‘選擇各波段圖像‘);
????img{i_3}=imread(strcat(PathName_imgFileName_img{i_3}));??
????img{i_3}=imresize(img{i_3}eval(scale{1}));
end

New_img=uint8(zeros(size(img{1}1)size(img{1}2)));????%初始化新圖像

%求馬氏距離,進行分類
for?i=1:size(img{1}1)
????for?j=1:size(img{1}2)
????????if?img{1}(ij)==0???????????????????????????????%將圖像周圍區別開來
???????????New_img(ij1)=255;New_img(ij2)=255;New_img(ij3)=255;
????????else
????????????for?m=1:img_num?????????????????????????????%在此P只為了簡化計算??
????????????????P(1m)=double(img{m}(ij));
????????????end
????????????for?n=1:M???????????????????????????????????%求馬氏距離
????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4099??2018-05-08?09:03??TM_Supervised_Mahalanobis_Distance_Classification.m
?????文件????12227250??2018-05-08?08:49??訓練樣本.txt

評論

共有 條評論