利用arcgis和Python製作光學遙感影像語義分割的樣本
1.參考博文
以下的幾個部落格的地址確實對我製作自己的樣本起到了幫助,但有幾步我沒有看明白,遂做補充。
我製作的是語義分割樣本是針對三波段的,原始的4通道TIF影像會被匯出為3波段。
- 博文參考1——利用arcgis和Python製作語義分割的樣本
- 博文參考2——利用arcgis將4波段柵格轉換為RGB的3波段
- 參考博文3——生成規則格網fishnet
- 參考博文4——arcgis擦除(erase)操作
- 參考博文5——arcgis空間疊加(union)操作
- 參考博文6——arcgis向量轉柵格
2.流程
2.1 選擇影像區域
該2.1章節參考博文參考1中的一、選擇裁剪合適的影像區域。
對文中後面實際匯出了三通道的影像這一段我一開始不是很理解,原來就是右鍵影像的圖層,有一個export data。這裡參考了博文參考2。
2.2 勾畫標籤區域
該2.2章節參考博文參考1
需要提前借鑑參考博文1中的三、標籤shp修改屬性並轉換為tif檔案,將標籤shp的id欄位轉換成為255。
2.3 標籤shp轉tif檔案
這一段雖然參考博文參考1中的三、標籤shp修改屬性並轉換為tif檔案。但是參考博文裡,缺失了部分的細節。應當將以下步驟操作完(將背景和標記的shp組合在一起後),才能開始轉換。
2.3.1 背景shp的建立
在2.2 勾畫標籤區域的時候,建立了標籤的檔案,但是除了標籤勾畫的區域,未勾畫的區域都是背景。但博文參考1中省略瞭如何製作背景的細節。以下是建立背景shp,並將其與標記shp合併,最後轉換成tif格式檔案的步驟。
2.3.2 Arcgis建立1x1的fishnet
在參考博文3裡建立格網。但需要注意的是引數的設定:
- 不是設定像元寬度和像元高度,而是設定行數和列數均為1。
- 建立標註點(可選)前的√號不需要點,應當為空,因為我們不需要這個。
- 幾何型別(可選)的選單需要下拉,不是POLYLINE,而是POLYGON。
2.3.3 Arcgis擦除(erase)操作生成背景
在參考博文4中的erase操作,將建立的fishnet格網中的標記shp全部裁剪掉,這樣現在就有兩個shp檔案:標記shp和背景shp了。並且擦除得到的shp,其id應當是0(如果不是,應當修改屬性裡的id為0)。
2.3.4 Arcgis空間疊加(union)操作
在參考博文5中的union操作,將先前得到的標記shp和背景shp聯合在一起,就能得到一個和影像區域大小一致的shp了,並且這個shp中有兩個元素,一個是背景,另一個是標記。(聯合後,開啟圖層的屬性表,肯定有一個屬性,其中一個值是0,其餘的值是255,記住這一列的列名,若未做修改,列名應當是id_1)。
2.3.5 Arcgis中conversion工具轉換shp為tif
在參考博文1裡的三、標籤shp修改屬性並轉換為tif檔案中使用了conversion工具條中的polygon to raster工具。
詳細操作見參考博文6。
有如下幾個引數需注意:
- 欄位。前文已經提醒,要記住union操作後,屬性表中一列除一個0外全為255的列名(大概率是id_0)。轉柵格時要修改欄位為該段。
- 輸出像元大小(可選)。該段應當利用後面的資料夾符號,指定為2.1中得到的影像。
2.4 使用Python滑動裁剪影象及標籤
該段完全同參考博文1中的四、使用Python滑動裁剪影象及標籤。
複製程式碼到pycharm中,安裝指定的庫,利用定義的TifCrop函式。
TifCrop(引數1,引數2,引數3,引數4)
- 引數1:指定的tif檔案的完整路徑
- 引數2:選擇儲存的資料夾(資料夾的路徑)
- 引數3:裁剪的影象的大小,這裡為256
- 引數4:重複率設定為0.1