arcgis只保留图片范围内的要素

首先设置个坐标系才好操作

arcgispro深度学习样本标准 arcgis创建训练样本_图层


然后如何只保存我需要的范围内的要素

arcgispro深度学习样本标准 arcgis创建训练样本_栅格_02


如图,我要只保留图片上的线段最好是对影像处理

获取其轮廓线,然后再进行裁剪

这里尝试了很多方法,最好的方式是导入图像的时候就可以获取其轮廓

查看这篇文章

arcgispro深度学习样本标准 arcgis创建训练样本_windows_03


得到轮廓后

点击“ArcToolbox”—“分析工具”—“提取”—“裁剪”

在打开的“裁剪”界面,选择输入要素(即要被裁剪的要素)

选择裁剪要素(即用来裁剪要素的范围线)

选择裁剪结果的存放位置,选择好之后,点击“确定”。

就可以保留我需要的范围的线要素啦

arcgispro深度学习样本标准 arcgis创建训练样本_windows_04

道路添加缓冲区

地理处理->缓冲区就可以添加一个缓冲区啦

arcgispro深度学习样本标准 arcgis创建训练样本_arcgispro深度学习样本标准_05

arcgis双线道路栅格化后的膨胀与收缩

制作样本时需要将线状的道路转换成面状

上面缓冲区的方法可以直接得到面状道路

但是那种不闭合的双线道路怎么处理呢

如下图所示

arcgispro深度学习样本标准 arcgis创建训练样本_栅格_06


这种情况就不能使用缓冲区,因为此时不是道路中心线

虽然可以通过手动封闭线

再转为面状,但这样操作着实很繁琐

这里有个很简便的方法

使用栅格工具箱中的膨胀收缩

首先要把要素转为栅格,我这里设置的分辨率0.1,方便计算

得到栅格图片后

在spatial analyst 工具->栅格综合->散度(这个就是膨胀操作,我当时也找了好久)上面就是收缩

arcgispro深度学习样本标准 arcgis创建训练样本_人工智能_07


散度和收缩都需要输入像元数目,这里的意思是需要膨胀多少个像素

收缩也差不多,需要手动输入收缩的像素值

arcgispro深度学习样本标准 arcgis创建训练样本_人工智能_08

为了提取道路,这里膨胀和收缩的值为略大于二分之一道路的宽度

那么怎么知道道路的宽度呢

使用arcgis的测量功能

arcgispro深度学习样本标准 arcgis创建训练样本_windows_09


测量道路的最大宽度

arcgispro深度学习样本标准 arcgis创建训练样本_人工智能_10


而我的整个图片是606*606的大小

也可以用这个工具测量一下

arcgispro深度学习样本标准 arcgis创建训练样本_栅格_11

我的图片分辨率是0.1

那么你也可以知道道路是410个像素啦

那么我大概就把膨胀的像素值设为210

膨胀出来是这样

arcgispro深度学习样本标准 arcgis创建训练样本_arcgispro深度学习样本标准_12


接下来收缩,收缩的值要与膨胀的值一样也是210

结果如下

arcgispro深度学习样本标准 arcgis创建训练样本_windows_13


宽度合适的道路是可以正确并且快速的提取出来,而且直接就是栅格,若是效果不错可以直接保存

但是周围分散出去的细长道路就容易产生错误

同时由于栅格无法直接进行修改

且存在准确度无法预测的问题

但这样确实速度很快

arcgispro深度学习样本标准 arcgis创建训练样本_windows_14


这种比较简单的路用这种方法产生了一些bug

用软件不好解决

目前为止还没有一个好方法能够一次性很好的提取出完美的道路
路漫漫其修远兮
有想法的朋友们可以跟我一起交流一下~

缓冲区白色 背景黑色的的图片

建立缓冲区后的面要素转换为栅格要素

转换工具->转为栅格->面转栅格

arcgispro深度学习样本标准 arcgis创建训练样本_windows_15


这样设置同一层数据就是相同的颜色

之后设置颜色为白色

arcgispro深度学习样本标准 arcgis创建训练样本_人工智能_16


接下来右键数据导出

arcgispro深度学习样本标准 arcgis创建训练样本_人工智能_17


即可导出需要的图片啦

arcgispro深度学习样本标准 arcgis创建训练样本_图层_18

我在处理了几张图片后,发现了一个问题
如果我的要素范围不是我想要保存的图片的范围该怎么办?

这个问题用图片描述形容一下:

比如我保存之后样本是这样的

arcgispro深度学习样本标准 arcgis创建训练样本_人工智能_19


但是原图是这样的

arcgispro深度学习样本标准 arcgis创建训练样本_图层_20


发现了没有其实样本保存的只有左上角一部分

这是因为在作图时

图片右下部分没有要素,这就导致要素保存的大小与原图不同

但我在网上查找了大量博客,并没有与保存图片范围大小有关的方法
因此我的解决方法如下:

使用arcgis保存指定范围大小(某图层大小)的图片

这个范围很明显就是我的轮廓边界大小,那么如何保存指定的这个图层大小的图片呢
在导出数据里,可以看出范围一个是栅格数据集,我的这个就变小了,不是我需要的60606060,而是35156080
我找了很多方式试图修改原栅格数据集的范围,比如在面转栅格的时候,修改像元大小,或者查看有没有其他方法在转换的时候自定义栅格图片大小,但都失败了

这里有个坑!!!!

我自己摸索出来的方法是通过使用数据框

大家可以先看看,不要学习这个方法!!!不然要重新返工

是有bug的!!!!!

这里的方法就是使用数据框

arcgispro深度学习样本标准 arcgis创建训练样本_人工智能_21


数据框如何设定为我们自己需要的图片大小呢

这里图层右键属性

arcgispro深度学习样本标准 arcgis创建训练样本_windows_22


arcgispro深度学习样本标准 arcgis创建训练样本_windows_23


就可以在这里修改数据框大小啦

设定成固定范围

就可以选择某一个图层的大小

arcgispro深度学习样本标准 arcgis创建训练样本_arcgispro深度学习样本标准_24

这样保存的时候这样设置

这样大小就可以自定义啦

arcgispro深度学习样本标准 arcgis创建训练样本_arcgispro深度学习样本标准_25


这样即使图片下半部分没有要素

也可以保存下来与原图保持一致啦


虽然我设定的数据框大小是图片的大小

但其实很多时候他并不是标准的6060*6060

而是如图所示

并不是完美的贴合轮廓

arcgispro深度学习样本标准 arcgis创建训练样本_图层_26


经过一系列尝试,在进行面转栅格时需要在这里进行设置即可

这个页面点击环境。。。

arcgispro深度学习样本标准 arcgis创建训练样本_栅格_27


就可以在这里设置处理范围了

arcgispro深度学习样本标准 arcgis创建训练样本_arcgispro深度学习样本标准_28


处理范围可以设某一个图层

arcgispro深度学习样本标准 arcgis创建训练样本_windows_29


这样转出的栅格就是完美的6060*6060大小了

arcgis打开PNG格式的图片是空白的

这里做出来png图片之后加载到图层里竟然显示不出来!!!

震惊!

需要修改一下相关显示

设置拉伸方法为None即可

arcgispro深度学习样本标准 arcgis创建训练样本_windows_30


这样就可以显示啦

但是保存之后直接加载png是能够与tif格式的图片重合的

但是你若不马上加载

而是把图片导入,就根本不能与tif图片重合

修改了坐标系使png与tif图片坐标系相同也还是重合不了

png与tif图片无法重合

由于我保存设置了png图片的坐标系

我就一直以为png图片也是有坐标的

直到我在arcgis里打开png图片

arcgispro深度学习样本标准 arcgis创建训练样本_图层_31


会提示这个,查看它的属性

arcgispro深度学习样本标准 arcgis创建训练样本_arcgispro深度学习样本标准_32


怎么回事????我明明保存的时候设置了坐标系

这是由于png格式保存时丢失了图片的坐标信息和范围信息

这样才能尽可能地压缩图片大小,哭泣

而tif格式的图片是有这些信息的

arcgispro深度学习样本标准 arcgis创建训练样本_人工智能_33


这里有个办法:

在上面的保存页面,不直接保存成png

而是保存成tif

arcgispro深度学习样本标准 arcgis创建训练样本_arcgispro深度学习样本标准_34


再通过修改后缀将tif改成png

则可以使得png图片拥有坐标系和图片范围,完美解决这个问题

这样就可以使得png图片和tif图片重合

不说了,我又要去改了,暴风雨式哭泣


这里操作步骤较多
为了节省部分操作时间
可以使用模型来简化部分内容
这里我贴一些模型步骤

1、裁剪模型:

arcgispro深度学习样本标准 arcgis创建训练样本_栅格_35

上面这个模型是把我的线状道路按照每个图片的轮廓裁剪出来,并且为单线道路创建缓冲区

裁剪之后自己手动对双线道路进行补充
然后保存得到人工画完全之后的双线道路

2、之后使用双线转为面,模型如下:

arcgispro深度学习样本标准 arcgis创建训练样本_arcgispro深度学习样本标准_36


这个模型把要素转面

没问题则进行下一个模型3、面转栅格

这里要把单线面与双线面合并

合并的工具有些不好找

在数据管理工具->常规->合并

arcgispro深度学习样本标准 arcgis创建训练样本_图层_37


然后进行转栅格的时候需要注意添加一个“范围”

arcgispro深度学习样本标准 arcgis创建训练样本_arcgispro深度学习样本标准_38


这个范围就是照片的轮廓

才能保证样本与原图的大小一致

使用这三个模型可以大大提高效率