利用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
posted @ 2022-04-17 17:31  小澳子  阅读(973)  评论(0编辑  收藏  举报