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中的二、創建標簽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