博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
天下无云第一步,无云图像获得
阅读量:3920 次
发布时间:2019-05-23

本文共 1743 字,大约阅读时间需要 5 分钟。

今天讲一下从网上下载到的sentinel-2卫星图像处理去除含有云区域的方法。

关于图像下载网上方法很多,这里不赘述,然后记得下载配套软件snap。

file-open-MTD文件

接下来,使用Raster-subset选项,然后进行裁剪,当然这主要是用来分离一些无用的波段的,所以实际上可以整个图像都剪下来,这里为例演示方便就裁剪一小块。
剪裁图像
然后在bandsubset里面选择前面一直到B12的波段,后面的都没有意义。
在这里插入图片描述
剪裁完成之后你的工作区域多出来这么一个文件,snap无法直接把他自己的文件格式导出为envi格式,因为是多波段的,所以把他重采样存储为一个envi文件,然后,在右上角搜索resamp,就会有相应的结果弹出
在这里插入图片描述
耐心等待写入,然后就有成功的提示,然后我们看看文件夹
在这里插入图片描述
这就是我们的envi格式的数据了。接下来用envi打开进行验证
envi中打开了以后,为了方便后续分类等出路,就使用envi自带的layer stacking工具进行波段合成。
注意在合成的选项中,importfile要把所有波段选进去,然后合成逻辑按照exclusive,否则会把同一个波段存两次。
下面是完成合成之后的结果
在这里插入图片描述
下面就来到图像分类了,我们先不关注分类方法的理论本身,首先做出结果,先给脑中决定一下我们要分哪几类,陆地,水,云,云影,这里先用这种比较粗略的方法来实现分类。
首先就需要绘制我们的ROI区域作为训练样本,自己给自己定义的类在整个图像各个位置都画上一些各个类别的数据。
下面是我自己实现的一个粗略分类,由于这幅图水中的运营不多久没有特别分一类
在这里插入图片描述
具体描述见左边ROI。
下面使用右边工具栏的classification,然后选择监督分类的极大似然法,maximum likelihood
按照指示输入我们的数据,然后选择我们需要分成的类别,把ROI中的输入进去,在这里插入图片描述
output result是存放结果的地方,自己定义,下面的是分类规则,可有可无毕竟我们只要结果,然后直接ok
在这里插入图片描述
这是刚刚进行分类后的结果,可以看到分类效果还是很好的,但是很多地方太过零碎,这样在生成evf,shp时候是很不利的,所以我们需要进行聚类处理,点击post classification,majority。
然后直接按照默认设置即可,卷即核越大,图像越平滑,这里我直接用默认值
在这里插入图片描述
在这里插入图片描述
可以看到图像处理的刚刚好,既实现了轮廓的平滑又没有损失太多细节。

接下来我们将把这些图像输出为evf文件,为接下来转化为shp文件做准备。

在这里插入图片描述
打开分类后处理post classification,然后按照图中所示做出选择,记住output记得是one layer per class 否则所有类别轮廓都放在一起你怎么分。
在这里插入图片描述
这是输出之后的结果,不会自动显示可以自己打开自己放的位置验证,可以看到和实际图片吻合。
接下来首先关闭这几个evf文件在工具栏搜索evf 有一个evf转矢量文件的工具,点开,
在这里插入图片描述
注意这个界面对每一个evf都会输出一个shp,所以命名最好对应。
接下来工具栏搜索roi,可以看见一个vector转ROI,点爱,找到刚才你存shp位置,把相应的shp文件放进去。
在这里插入图片描述
这里面每一个shp文件转换为roi都需要用一次这个工具,所以每一个对应的是选中你要存为shp的类别,然后下一步,直到让你选择base layer的时候,你选择哪一个,哪一个底下就会多出来一个新的roi,那个ROI就是根据刚才的矢量文件剪裁得到的
在这里插入图片描述
可以看到在左边我这个stack的图像底下多了四个新的roi,同时对应放在图像中覆盖了所有区域。
接下来最后一步,右边搜索subset,使用subset data from roi,然后roi用你最新转换出来的那四个,然后可以选陆地和水,这样就得到了粗略的无云图像。
在这里插入图片描述
我们可以看到,图中依然有以下薄薄的卷云,但是已经基本不影响观测,而且这些薄云几乎可以使用图像处理而去除,今天的流程就先讲到这里。

一直拖来拖去,一开始想用gdal库处理图像,使用文档不教借口以及用户太少让我寸步难行,然后又想尝试采用

第一步使用snap打开文件,这一步大概只能用他们自己的软件,否则你有渠道当然用envi5.5也行,不过大家一般都是5.3所以这一步必不可少

转载地址:http://zmhrn.baihongyu.com/

你可能感兴趣的文章
说说 RabbiMQ 的应答模式
查看>>
OpenTelemetry - 云原生下可观测性的新标准
查看>>
使用 ML.NET 实现峰值检测来排查异常
查看>>
通过 .NET NativeAOT 实现用户体验升级
查看>>
如何友好的处理 WebApi 中抛出的错误
查看>>
因MemoryCache闹了个笑话
查看>>
Dotnet的垃圾回收
查看>>
乘风破浪,.Net Core遇见Dapr,为云原生而生的分布式应用运行时
查看>>
gRPC在C#中的未来属于grpc-dotnet
查看>>
快速排序的性能和名字一样优秀
查看>>
开源推荐:Asp.Net Core入门学习手册!
查看>>
ML.NET 示例:对象检测
查看>>
C#基于yolov3的行人检测
查看>>
ML.NET Cookbook:(16)什么是规范化?为什么我需要关心?
查看>>
WPF 修改(优化)Menu菜单的样式
查看>>
晕了!这个配置值从哪来的?
查看>>
我开发了一款基于web容器的前端项目容器
查看>>
WPF实现环(圆)形菜单
查看>>
WPF 写一个提醒工具软件(完整项目)
查看>>
NET问答: 多个 await 和 Task.WaitAll 是等价的吗?
查看>>