1. 程式人生 > 其它 >利用arcgis和Python製作光學遙感影像語義分割的樣本

利用arcgis和Python製作光學遙感影像語義分割的樣本

目錄

1.參考博文

  以下的幾個部落格的地址確實對我製作自己的樣本起到了幫助,但有幾步我沒有看明白,遂做補充。
  我製作的是語義分割樣本是針對三波段的,原始的4通道TIF影像會被匯出為3波段。

2.流程

2.1 選擇影像區域

  該2.1章節參考博文參考1中的一、選擇裁剪合適的影像區域
  對文中後面實際匯出了三通道的影像這一段我一開始不是很理解,原來就是右鍵影像的圖層,有一個export data。這裡參考了博文參考2

2.2 勾畫標籤區域

  該2.2章節參考博文參考1

中的二、建立標籤shp檔案,目視解譯勾畫標籤區域
  需要提前借鑑參考博文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