遙感分類編程
㈠ 用於攝影測量與遙感應該學什麼編程語言
毫無疑問,c/c++
㈡ 實驗十七 遙感圖像監督分類處理
一、實驗目的
通過使用ENVI的六種主要的遙感監督分類器——平行六面體分類、最小距離分類、馬氏距離分類、最大似然分類、神經網路分類和支持向量機分類的命令,加深對遙感監督分類原理的理解,了解其技術實現過程,初步掌握其ENVI功能命令的基本使用操作。
二、實驗內容
①桂林市TM 遙感影像平行六面體分類;②桂林市TM 遙感影像最小距離分類;③桂林市TM 遙感影像馬氏距離分類;④桂林市TM 遙感影像最大似然分類;⑤桂林市TM 遙感影像神經網路分類;⑥桂林市TM 遙感影像支持向量機分類;⑦對6種分類結果進行比較分析。
三、實驗要求
①平行六面體、最小距離、馬氏距離、最大似然、神經網路和支持向量機六種分類方法在理論上比較復雜,為取得好的實驗效果,要求實驗前事先預習其原理,從理論上理解並掌握它們的特點和異同。②確定分類處理方法訓練樣本需要用到的已知地質資料,提前准備。③編寫實驗報告。④由於同時做六種分類處理工作量較大,可以根據實際課時情況選擇做其中部分。最小距離分類為必須做的方法。
四、技術條件
①微型計算機;②灌陽地區QuickBird全色波段遙感數據;③ENVI軟體;④Photoshop軟體(ver.6.0以上)和ACDSee軟體(ver.4.0以上)。
五、實驗步驟
遙感影像監督分類可以分為四個過程:樣本選擇、執行監督分類、評價分類結果和分類後處理。具體操作步驟如下。
(一)定義訓練
1.樣本選擇
(1)在ENVI主菜單中,選擇「File>Open Image File」,打開灌陽地區QuickBird全色波段遙感數據,Band3、4、1合成RGB並使之顯示在「Display」中,通過分析圖像,選擇耕地、林地、居民地和水體四種地物樣本。
圖17-1 ROI工具對話框
(2)在主圖像窗口中,選擇「Overlay>Region of Interest」,打開「ROI Tool」對話框,如圖17-1所示。
(3)在「ROI Tool」對話框中,選擇「Window」選項,可以在「Image」、「Scroll」或者「Zoom」窗口中繪制感興趣區;在「ROI Name」欄位輸入樣本的名稱;在「Color」欄位中,單擊右鍵選擇顏色。
(4)在「ROI Tool」對話框中,選擇「ROI Type > Polygon」,在「Image」、「Scroll」或者「Zoom」窗口中繪制感興趣區。
(5)完成一類感興趣區的繪制後,在「ROI Tool」對話框中,選擇【New Region】按鈕,新建另一類樣本種類,重復上述操作。
2.評價訓練樣本
在ROI對話框中,選擇「Option>Compute ROI Separability」,打開待分類影像文件,選擇所有定義的樣本類型,可以計算樣本的可分離性,如圖17-2所示,表示各個樣本類型之間的可分離性,用Jeffries-Matusita距離和轉換分離度(Transformed Divergence)來表示。ENVI為每一個感興趣區組合計算Jeffries-Matusita距離和Transformed Divergence,在對話框底部,根據可分離性值的大小,從小到大列出感興趣區組合。這兩個參數的值在0~2.0之間,大於1.9說明樣本之間可分離性好,屬於合格樣本;小於1.8,需要重新選擇樣本;小於1,考慮將兩類樣本合成一類樣本。
圖17-2 樣本可分離性計算報表
(二)執行監督分類
在ENVI主菜單中選擇「Classificatoin>Supervisred>分類器類型」,可以根據分類的復雜度、精度需求等選擇分類器。
1.平行六面體分類器
平行六面體用一條簡單的判定規則對多波譜數據進行分類。判定邊界在圖像數據空間中形成了一個N維平行六面體。平行六面體的維數由來自每一種選擇的分類平均值的標准差的閾值確定。如果像元值位於N 個被分類波段的低閾值與高閾值之間,則它歸屬於這一類。如果像元值落在多個類里,那麼ENVI將這一像元歸到最後一個匹配的類里。沒有落在平行六面體的任何一類里的區域被稱為無類別的。操作步驟如下:
(1)在ENVl主菜單欄中選擇「Classification>Supervised>Parallelepiped」,在分類輸入文件對話框中選擇待分類遙感影像,打開「Parallelepiped Parameters」對話框,如圖17-3所示。
圖17-3 平行六面體分類器參數設置對話框
(2) Select Classes from Regions:點擊【Select All Items】按鈕,選擇所有的訓練樣本。
(3) Set Max stdev from Mean:設置標准差閾值。有三種類型:不設置標准差閾值(None)、為所有類別設置一個標准差閾值(Single Value)和分別為每種類別設置一個標准差閾值(Multiple Values)。
(4)選擇「Single Value」,在「Max stdev from Mean」文本框里輸入標准差閾值。
(5)點擊【Preview】按鈕,可以預覽分類結果。
(6)選擇分類結果的輸出路徑及文件名。
(7)設置「Output Rule Images」:是否選擇規則圖像數據。
(8)設置完上述參數後,點擊【OK】按鈕執行分類處理。
2.最小距離分類器
最小距離分類用到每一個終端單元的均值矢量,計算每一個未知像元到每一類均值矢量的歐幾里德距離。所有像元都被歸為最近的一類,除非限定了標准差和距離的極限(這時,會出現一些像元因不滿足選擇的標准,而成為「無類別」),操作步驟如下:
(1)在ENVI主菜單欄中選擇「Classification>Supervised>Minimum Distance」,在分類輸入文件對話框中選擇待分類遙感影像,打開「Minimum Distance」對話框,如圖174所示。
圖17-4 最小距離分類器參數設置對話框
(2) Select classes from Regions:點擊【Select All Items】按鈕,選擇所有的訓練樣本。
(3) Set Max stdev from Mean:設置標准差閾值。有3種類型:不設置標准差閾值(None)、為所有類別設置一個標准差閾值(Single Value)和分別為每種類別設置一個標准差閾值(Multiple Values)。
(4)選擇「Single Value」,在「Max stdev from Mean」文本框里輸入標准差閾值。
(5) Set Max Distances Error:設置允許的最大距離誤差,距離大於該值的像元將不被分入該類,如果不滿足所有類別的最大距離誤差,將會被歸為未分類類型中,有3種類型:不設置最大距離誤差(None)、為所有類別設置一個最大距離誤差(Single Value)和分別為每種類別設置一個最大距離誤差(Multiple Values)。
(6)點擊【Preview】按鈕,可以預覽分類結果。
(7)選擇分類結果的輸出路徑及文件名。
(8)設置「Output Rule Images」:是否選擇規則圖像數據。
(9)設置完上述參數後,點擊【OK】按鈕執行分類處理。
.3 馬氏距離分類器
馬氏距離分類是一個方向靈敏的距離分類器,分類時用到了統計。它與最大似然分類有些類似,但是假定所有類的協方差相等,所以是一種較快的方法。所有像元都被歸到最臨近的ROI類,除非用戶限定了一個距離閾值(這時,如果一些像元不在閾值內,就會被劃為無類別),操作步驟如下:
(1)在ENVI主菜單欄中選擇「Classification>Supervised>Mahalanobis Distance」,在分類輸入文件對話框中選擇待分類遙感影像,打開「Mahalanobis Distance」對話框,如圖17-5所示。
(2) Select Classes from Regions:點擊【Select All Items】按鈕,選擇所有的訓練樣本。
圖17-5 馬氏距離分類器參數設置對話框
(3) Set Max Distances Error:設置允許的最大距離誤差,距離大於該值的像元將不被分入該類,如果不滿足所有類別的最大距離誤差,將會被歸為未分類類型中,有3種類型:不設置最大距離誤差(None)、為所有類別設置一個最大距離誤差(Single Value)和分別為每種類別設置一個最大距離誤差(Multiple Values)。
(4)點擊【Preview】按鈕,可以預覽分類結果。
(5)選擇分類結果的輸出路徑及文件名。
(6)設置「Output Rule Images」:是否選擇規則圖像數據。
(7)設置完上述參數後,點擊【OK】按鈕執行分類處理。
4.最大似然分類器
最大似然分類假定每個波段每一類統計呈均勻分布,並計算給定像元屬於一特定類別的可能性。除非選擇一個可能性閾值,所有像元都將參與分類。每一個像元被歸到可能性最大的那一類里。操作步驟如下:
(1)在ENVI主菜單欄中選擇「Classification>Supervised>Maximum Likelihood」,在分類輸入文件對話框中選擇待分類遙感影像,打開「Maximum Likelihood Parameters」對話框,如圖17-6所示。
(2) Select Classes from Regio:n點s擊【Select All Items】按鈕,選擇所有的訓練樣本。
圖17-6 最大似然分類器參數設置對話框
(3)Set Probability Threshold:設置似然度的閾值,有3種類型:不設置最大似然度閾值(None)、為所有類別設置一個最大似然度閾值(Single Value)和分別為每種類別設置一個最大似然度閾值(Multiple Values),如果選擇Single Value,則在Probability Threshold文本框中輸入一個0~1的值。
(4) Data Scale Factor:輸入一個數據比例系數,這個比例系數是一個比值系數,用於將整形反射率或者輻射率數據轉換為浮點型數據。例如,對於沒有經過輻射定標的8bit數據,設定比例系數為255。
(5)點擊【Preview】按鈕可以預覽分類結果。
(6)選擇分類結果的輸出路徑及文件名。
(7)設置「Output Rule Images」:是否選擇規則圖像數據。
(8)設置完上述參數後,點擊【OK】按鈕執行分類處理。
5.神經網路分類器
用計算機模擬入腦的結構,用許多小的處理單元模擬生物的神經元,用演算法實現人腦的識別、記憶、思考過程應用於圖像分類,操作步驟如下:
(1)在ENVI主菜單欄中選擇「Classificantion>Supervised>Neural Net」,在分類輸入文件對話框中選擇待分類遙感影像,打開「Neural Net Parameters」對話框,如圖17-7所示。
(2)Select Classes from Regions:點擊【Select All Items】按鈕,選擇所有的訓練樣本。
圖17-7 神經網路分類器參數設置對話框
(3) Activation:選擇活化函數,包括對數(Logistic)和雙曲線(Hyperbolic)。
(4) Training Threshold Contnbution:輸入訓練貢獻閾值(0~1)。該參數決定了與活化節點級別相關的內部權重的貢獻量,它用於調節節點內部權重的變化。訓練演算法互動式地調整節點間的權重和節點閾值,從而使輸出層和響應誤差達到最小。將該參數設置為0將不會調整節點的內部權重。適當調整節點的內部權重可以生成一幅較好的分類圖像,但是如果設置的權重過大,對分類結果會產生不良影響。
(5) Training Rate:設置權重調節速度(0~1)。參數值越大則使得訓練速度越快,但也增加擺動或者使訓練結果不收斂。
(6) Training Momentum:設置權重調節動量(0~1)。該值大於0時,在「Training Rate」文本框中輸入較大值不會引起擺動。該值越大,訓練的步幅越大。該參數的作用是促使權重沿當前方向改變。
(7)Training RMS Exit Criterai:指定RMS誤差為何值時訓練應該停止。RMS誤差值在訓練過程中將顯示在圖表中,當該值小於輸入值時,即使還沒有達到迭代次數,訓練也會停止,然後開始進行分類。
(8) Number of Hidden Layers:輸入所用隱藏層的數量。要進行線性分類,輸入值為0;進行非線性分類,輸入值應該大於或者等於1。
(9) Number of Training Iterations:輸入用於訓練的迭代次數。
(10) Min Output Activation Threshold:輸入一個最小輸出活化閾值。如果被分類像元的活化值小於該閾值,在輸出的分類中該像元將被歸入未分類中。
(11)選擇分類結果的輸出路徑及文件名。
(12)設置「Output Rule Images」:是否選擇規則圖像數據。
(13)設置完上述參數後,點擊【OK】按鈕執行分類處理。
6.支持向量機分類器
支持向量機分類(SVM)是一種建立在統計學習理論基礎上的機器學習方法。SVM可以自動尋找那些對分類有較大區分能力的支持向量,由此構造出分類器,可以將類與類之間的間隔最大化,因而有較好的推廣性和較高的分類准確率,操作步驟如下:
(1)在ENVl主菜單欄中選擇「Classification>Supervised>SupportVec tor Machine」,在分類輸入文件對話框中選擇待分類遙感影像,打開「Support Vector Machine Classification Parameters」對話框,如圖17-8所示。
圖17-8 支持向量機分類器參數設置對話框
(2) Select Classes From Regions:點擊【Select All Items】按鈕,選擇所有的訓練樣本。
(3) Kemel Type下拉列表中的選項有:Linear、Polynomial、Radial Basis Function和Sigmoid。
若選擇Polynomial,需要設置一個核心多項式(Degere of Kernel Polynomial)的次數用於SVM,最小值為1,最大值為6;使用向量機規則需要為Kernel指定「this Bias」,默認值為1;「Gamma in Kernel Function」參數設置為大於0的浮點型數據,默認值為輸入圖像波段數的倒數。
若選擇「Radial Basis Function」,需設置「Gamma in Kernel Function」參數為大於0的浮點型數據,默認值為輸入圖像波段數的倒數。
若選擇Sigmoid,需使用向量機規則需要為Kernel指定「this Bias」,默認值為1;設置「Gamma in Kernel Function」參數為大於0的浮點型數據,默認值為輸入圖像波段數的倒數。
(4) Penalty Parameter:為大於0的浮點型數據,這個參數控制了樣本錯誤與分類剛性延伸之間的平衡,默認值為100。
(5)Pyramid Levels:設置分級處理等級,用於SVM訓練和分類處理過程,如果這個值為0,將以原始解析度處理,最大值隨圖像的大小改變。
(6) Pyramid Reclassification Threshold(0~1):當Pyramid Levels值大於0時,需要設置這個重分類閾值。
(7) Classification Probability Threshold(0~1):為分類設置概率閾值,如果一個像素計算得到所有的規則概率小於該值,該像素將不被分類。
(8)選擇分類結果的輸出路徑及文件名。
(9)設置「Output Rule Images」:是否選擇規則圖像數據。
(10)設置完上述參數後,點擊【OK】按鈕執行分類處理。
(三)評價分類結果
在執行監督分類後,需要對分類結果進行評價,本次實驗採用使用地表真實感興趣區來計算混淆矩陣(Confusion Matrices)方法進行分類結果評價,操作步驟如下。
1.建立地表真實感興趣區
可以在高解析度圖像上,通過目視解譯獲取各個分類的地表真實感興趣區;也可以通過野外實地調查,根據調查數據生成地表真實感興趣區,獲取方法同「(一)定義訓練」,為了同訓練樣本區別,我們使用「植被、城鎮、河流、農田」作為地表真實感興趣區名稱。
2.計算混淆矩陣
(1)打開定義驗證樣本的文件(即灌陽地區QuickBird全色波段)以及圖像分類結果,使之顯示在「Available Band」列表中。
(2)在ENVI主菜單欄中選擇「Basic>Region of Interest>Restore Saved ROI File」,打開地表真實感興趣區文件。
(3)在ENVI主菜單欄中選擇「Basic>Region of Interest>Restore ROIs via Map」,打開「Reconcile ROIs via Map」對話框(圖179),選擇相應的地表真實感興趣區,點擊【OK】按鈕。
(4)在「Select Source File where ROI was Drawn」對話框中,選擇定義驗證樣本的文件(即灌陽地區 QuickBird 全色波段),點擊【OK】按鈕。
(5)在「Select Destination File to Reconcile ROIs to」對話框中,選擇匹配目標文件,也就是分類結果圖像。
(6)在主菜單中選擇「Classification>Post Classification> Confusion Matrix> Using Ground Truth ROIs」。
圖17-9「Reconcile ROIs via Map」對話框
(7)在「Classification Input File」對話框中,選擇分類結果圖像。地表真實感興趣區將被自動載入到「Match Classes Parameters」對話框中。
(8)在「Match Classes Parameters」對話框中,選擇所要匹配的名稱,然後點擊【Add Combination】按鈕,將地表真實感興趣區與最終分類結果相匹配,類別之間的匹配將顯示在對話框底部的列表中,如圖17-10所示,點擊【OK】按鈕輸出混淆矩陣。
圖17-10「Match Classse Parameters」對話框
(9)在混淆矩陣輸出窗口的「Confusion Matrix Parameters」對話框中,選擇像素(Pixels)和百分比(Percent),如圖17-11所示。
(10)點擊【OK】按鈕,輸出混淆矩陣,在輸出的混淆矩陣報表中,包含了總體分類精度、Kappa系數、混淆矩陣等幾項評價指標。
圖17-11 混淆矩陣輸出對話框
(四)分類後處理
一般情況下,使用上述分類方法得到的結果難於達到最終應用的目的,所以對獲取的分類結果需要進行一些處理,才能得到最終理想的分類結果。
圖17-12 編輯分類名稱和顏色
1.更改分類顏色、名稱
(1)打開分類結果,並使之顯示在「Display」窗口中。
(2)在分類結果主圖像窗口中,選擇「Tools>Color Mapping>Class Color Mapping」,打開「Class Color Mapping」對話框,如圖17-12所示。
(3)從「Selected Classes」列表中選擇需要修改的類別,改變其顏色或者名稱。
(4)完成對需要修改類別的顏色、名稱的修改後,選擇「Options>Save Changes」保存修改內容。
(5)選擇「File>Cancel」,關閉「Class Color Mapping」對話框。
2.聚類處理
分類結果中不可避免的會產生一些面積很小的圖斑,從實際應用角度有必要對這些小圖斑進行剔除或重新分類。目前,常用的方法有Majority/Minority分析、聚類處理和過濾處理,本次實驗選擇聚類處理方法對鄰近的類似分類區聚類並合並。
聚類處理首先將被選的分類用一個擴大操作合並到一起,然後用參數對話框中指定了大小的變換核對分類圖像進行侵蝕操作,具體操作步驟如下:
在ENVI主菜單欄中選擇「Classification> Post Classification> Clump Classes」,在「Classification Input File」對話框中,選擇分類結果圖像,單擊【OK】按鈕,打開「Clump Parameters」對話框,如圖17-13所示。Clump Parameters對話框參數設置如下。
(1)選擇分類類別(Select Classes):單擊【Select All Items】按鈕選擇所有類別;
(2)輸入形態學運算元大小(Rows和Cols):默認為3,3;
(3)選擇輸出路徑及文件名,單擊【OK】按鈕,完成聚類處理。
3.分類統計
分類統計可以基於分類結果計算相關輸入文件的統計信息,包括類別中的像元數、最大值、最小值、平均值以及類中每個波段的標准差等,還可以記錄每類的直方圖以及計算協方差矩陣、相關矩陣、特徵值和特徵向量,並顯示所有分類的總結記錄。
(1)在ENVI主菜單欄中,選擇「Classification> Post Classification > Class Statistics」,在「Classification Input File」對話框中,選擇分類結果圖像,單擊【OK】按鈕。
(2)在「Statistics Input File」對話框中,選擇一個用於計算統計信息的輸入文件,點擊【OK】按鈕,打開「Class Selection」對話框(圖17-14),在「Select Classes」列表中,選擇想計算統計的類別名稱,點擊【OK】按鈕,打開「Compute Statistics Parameters」對話框(圖17-15),選擇需要的統計項,包括以下統計類型。
圖17-13 「Clump Parameters」對話框
圖17-14 選擇分類對話框
基本統計(Basic Stats):包括所有波段的最小值、最大值、均值和標准差,若該文件為多波段,還包括特徵值。
直方圖統計(Histograms):生成一個關於頻率分布的統計直方圖。
協方差統計(Covariance):包括協方差矩陣和相關矩陣以及特徵值和特徵向量。
(3)輸出結果的方式包括3種:可以輸出到屏幕顯示、生成統計文件(.sta)和生成文本文件,其中生成的統計文件可以通過「Classification>Post Classification>View Statistics File」命令打開,選擇輸出路徑及文件名,單擊【OK】按鈕,完成分類統計。
4.分類結果轉矢量
(1)在ENVI主菜單欄中,選擇「Classification>Post Classification>Classification to Vector」,在「Rasterto VectorInput Band」對話框中,選擇分類結果圖像,單擊【OK】按鈕,打開「Raster to Vector Parameters」對話框,如圖17-16所示。
(2)選擇需要被轉換成矢量文件的類別,在「Output」標簽中,使用箭頭切換按鈕選擇「Single Layer」,把所有分類都輸出到一個矢量層中;或者選擇「One Layer per Class」,將每個所選分類輸出到單獨的矢量層。
(3)選擇輸出路徑及文件名,單擊【OK】按鈕,完成分類結果轉矢量文件。
圖17-15 計算統計參數設置對話框
圖17-16 柵格轉為矢量參數設置
完成遙感影像監督分類後,分別利用平行六面體、最小距離、馬氏距離、最大似然、神經網路和支持向量機這六種分類器對灌陽地區QuickBird遙感影像進行監督分類處理,利用混淆矩陣對六種分類結果進行評價,得出總體分類精度和Kappa系數。比較六種分類結果,用WORD文件記錄,取名為《灌陽地區QuickBird遙感影像六種監督分類方法分類結果評價》,存入自己的工作文件夾。
六、實驗報告
(1)簡述實驗過程。
(2)回答問題:①根據實驗操作步驟及各步驟之間的關系,分析所做的監督分類方法在模型設計思想或演算法上的共同特點。②通過目視解譯,定性比較所獲得的監督分類圖像的圖像識別效果優缺點。
實驗報告格式見附錄一。
㈢ 遙感與地理信息系統專業研究生需要會什麼編程語言
遙感與地理信息系統專業研究生需要會C++和C#編程語言。根據查詢相關信息顯示,遙感與地理信息系統專顫跡業研隱昌究生需要會C++和C#編程語言。C++是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。C++擅長面向對象程序設計的同時,還可以進行基於過程灶洞扒的程序設計,因而C++就適應的問題規模而論,大小由之。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、介面、與Java幾乎同樣的語法和編譯成中間代碼再運行的過程。
㈣ 測繪專業的考研選遙感以後要自己編程嗎
遙感一般是要編程的,消拆不過沒有地理信息系統的多,要求沒有那麼高,一般也就是做做遙感圖像的處理等等,我們學院的遙感的幾個學生都要編程,最主要還是看老師吧,老師的項目編程少那就編程少,但是鎮源遙感的不會編程就業很御橋態沒有優勢啊,大地的編程都有要求