首先设置个坐标系才好操作
然后如何只保存我需要的范围内的要素
如图,我要只保留图片上的线段
最好是对影像处理
获取其轮廓线,然后再进行裁剪
这里尝试了很多方法,最好的方式是导入图像的时候就可以获取其轮廓
查看这篇文章
得到轮廓后
点击“ArcToolbox”—“分析工具”—“提取”—“裁剪”
在打开的“裁剪”界面,选择输入要素(即要被裁剪的要素)
选择裁剪要素(即用来裁剪要素的范围线)
选择裁剪结果的存放位置,选择好之后,点击“确定”。
就可以保留我需要的范围的线要素啦
地理处理->缓冲区就可以添加一个缓冲区啦
制作样本时需要将线状的道路转换成面状
上面缓冲区的方法可以直接得到面状道路
但是那种不闭合的双线道路怎么处理呢
如下图所示
这种情况就不能使用缓冲区,因为此时不是道路中心线
虽然可以通过手动封闭线
再转为面状,但这样操作着实很繁琐
这里有个很简便的方法
使用栅格工具箱中的膨胀收缩
首先要把要素转为栅格,我这里设置的分辨率0.1,方便计算
得到栅格图片后
在spatial analyst 工具->栅格综合->散度(这个就是膨胀操作,我当时也找了好久)上面就是收缩
散度和收缩都需要输入像元数目,这里的意思是需要膨胀多少个像素
收缩也差不多,需要手动输入收缩的像素值
为了提取道路,这里膨胀和收缩的值为略大于二分之一道路的宽度
那么怎么知道道路的宽度呢
使用arcgis的测量功能
测量道路的最大宽度
而我的整个图片是606*606的大小
也可以用这个工具测量一下
我的图片分辨率是0.1
那么你也可以知道道路是410个像素啦
那么我大概就把膨胀的像素值设为210
膨胀出来是这样
接下来收缩,收缩的值要与膨胀的值一样也是210
结果如下
宽度合适的道路是可以正确并且快速的提取出来,而且直接就是栅格,若是效果不错可以直接保存
但是周围分散出去的细长道路就容易产生错误
同时由于栅格无法直接进行修改
且存在准确度无法预测的问题
但这样确实速度很快
这种比较简单的路用这种方法产生了一些bug
用软件不好解决
目前为止还没有一个好方法能够一次性很好的提取出完美的道路
路漫漫其修远兮
有想法的朋友们可以跟我一起交流一下~
建立缓冲区后的面要素转换为栅格要素
转换工具->转为栅格->面转栅格
这样设置同一层数据就是相同的颜色
之后设置颜色为白色
接下来右键数据导出
即可导出需要的图片啦
我在处理了几张图片后,发现了一个问题
如果我的要素范围不是我想要保存的图片的范围该怎么办?
这个问题用图片描述形容一下:
比如我保存之后样本是这样的
但是原图是这样的
发现了没有其实样本保存的只有左上角一部分
这是因为在作图时
图片右下部分没有要素,这就导致要素保存的大小与原图不同
但我在网上查找了大量博客,并没有与保存图片范围大小有关的方法
因此我的解决方法如下:
这个范围很明显就是我的轮廓边界大小,那么如何保存指定的这个图层大小的图片呢
在导出数据里,可以看出范围一个是栅格数据集,我的这个就变小了,不是我需要的60606060,而是35156080
我找了很多方式试图修改原栅格数据集的范围,比如在面转栅格的时候,修改像元大小,或者查看有没有其他方法在转换的时候自定义栅格图片大小,但都失败了
这里有个坑!!!!
我自己摸索出来的方法是通过使用数据框
大家可以先看看,不要学习这个方法!!!不然要重新返工
是有bug的!!!!!
这里的方法就是使用数据框
数据框如何设定为我们自己需要的图片大小呢
这里图层右键属性
就可以在这里修改数据框大小啦
设定成固定范围
就可以选择某一个图层的大小
这样保存的时候这样设置
这样大小就可以自定义啦
这样即使图片下半部分没有要素
也可以保存下来与原图保持一致啦
虽然我设定的数据框大小是图片的大小
但其实很多时候他并不是标准的6060*6060
而是如图所示
并不是完美的贴合轮廓
经过一系列尝试,在进行面转栅格时需要在这里进行设置即可
这个页面点击环境。。。
就可以在这里设置处理范围了
处理范围可以设某一个图层
这样转出的栅格就是完美的6060*6060大小了
这里做出来png图片之后加载到图层里竟然显示不出来!!!
震惊!
需要修改一下相关显示
设置拉伸方法为None即可
这样就可以显示啦
但是保存之后直接加载png是能够与tif格式的图片重合的
但是你若不马上加载
而是把图片导入,就根本不能与tif图片重合
修改了坐标系使png与tif图片坐标系相同也还是重合不了
由于我保存设置了png图片的坐标系
我就一直以为png图片也是有坐标的
直到我在arcgis里打开png图片
会提示这个,查看它的属性
怎么回事????我明明保存的时候设置了坐标系
这是由于png格式保存时丢失了图片的坐标信息和范围信息
这样才能尽可能地压缩图片大小,哭泣
而tif格式的图片是有这些信息的
这里有个办法:
在上面的保存页面,不直接保存成png
而是保存成tif
再通过修改后缀将tif改成png
则可以使得png图片拥有坐标系和图片范围,完美解决这个问题
这样就可以使得png图片和tif图片重合
不说了,我又要去改了,暴风雨式哭泣
这里操作步骤较多
为了节省部分操作时间
可以使用模型来简化部分内容
这里我贴一些模型步骤
上面这个模型是把我的线状道路按照每个图片的轮廓裁剪出来,并且为单线道路创建缓冲区
裁剪之后自己手动对双线道路进行补充
然后保存得到人工画完全之后的双线道路
2、之后使用双线转为面,模型如下:
3、面转栅格
这里要把单线面与双线面合并
合并的工具有些不好找
在数据管理工具->常规->合并
然后进行转栅格的时候需要注意添加一个“范围”
这个范围就是照片的轮廓
才能保证样本与原图的大小一致
使用这三个模型可以大大提高效率