免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 3007|回复: 9
收起左侧

[经验共享] arcgis遥感图像去黑边林林种种(至少7种方法)

[复制链接]

324

主题

56万

铜板

1172

好友

等待验证会员

Rank: 1

积分
349368

宣传勋章爱心勋章组织勋章官方团队冰雪节勋章

发表于 2020-11-17 14:46 | 显示全部楼层 |阅读模式

当我们在ArcGIS中打开一景遥感影像时,是不是总是在我们的研究区周围出现我们并不希望看见的黑边,这种黑边在我们做图像分析或排版出图时总是个累赘,今天就教给大家在ArcGIS中轻松去除黑边。

     影像产生黑边的原因无外乎在设置无效值时,将无效值设成了0,而影像在导入软件进行渲染时,并没有进行黑边的预处理,导致展示时有黑边出现。

    在ArcMap中打开地图,我们会发现,黑边区域像元的DN值为0。我们的第一反应就是将影像中像元DN值为0的部分抹掉。不错,软件就是应用这个原理来工作的。以下提供至少7种方法用于去黑边,因为有的方法里面还有好几种。

一、单个或多个图像导入软件时属性中设置去除黑边

1、 单个图像属性设置去除   

在ArcMap中,每个图层都可以在其属性中进行符号化设置,黑边是图像中的背景,因此,去除黑边也是在对图层进行符号化时设置。具体步骤如下:

    (1)右键单击图层,在下拉菜单中选择Properties;

    (2)在打开的图层属性(Layer Properties)对话框中,选择Symbology选项卡;

    (3)在此选项卡中找到DisplayBackground Value:(R,G,B)可选框,这里勾选上,然后,设置RGB的值均为0,设置颜色显示为Nocolor。

2、多个图像属性设置

或者在影像导入之前,设置ArcMap地图属性。操作过程为,arcmap 菜单 自定义-arcmap选项-栅格-栅格图层-去除背景值,勾选0-0-0.


    但是,用这种方式去除黑边只是会改变背景的显示状态,并没有对数据本身做任何改变,重新将图层加载进来时,仍会显示黑边。

二、应用setnull工具去除黑边

    该工具的原理是将某一数值设置为Nodata(这里我们把值为0的像元设置为Nodata,其它像元数值保持不变)。该工具只能是对单波段数据进行操作,如果我们得到的数据是单波段的,那这种方法再合适不过了。

    工具位置:ArcToolbox—Spatial Analyst Tools—Conditional—Set Null

    参数设置如下:


        Inputconditional raster:这里选择的样例数据为Landsat5数据的第5波段;

        Expression(optional):写入SQL查询语句,这里将值为零的像元设为Nodata。

        Input falseraster or constant value:值不为零的像元数值保持不变,仍为原始像元值。

        Output raster:设置输出影像位置。

三、应用copyraster工具去除黑边

    Copy Raster工具可以对多波段和单波段数据进行操作,当然,该工具不仅仅是用来去影像黑边的,它的功能很强大,这里不做过多赘述。我们来看他是如何去除影像黑边的。

    工具位置:ArcToolbox—Data Management Tools—Raster—Raster Dataset—CopyRaster。

    参数设置如下:


        Input Raster:输入需要去黑边的影像;

        Output RasterDataset:设置去黑边后影像的位置;

        IgnoreBackground Value:设置要忽略的像元值,这里将像元值为0的抹掉。

        其他参数选择默认。


如果你的研究数据中也有0,也就是说部分0值像元为有效像元,不用担心,Copy Raster工具只会处理周边0值。

四,软件不兼容产生的黑边去除   

如果是两种不同软件产生的影像金字塔也有可能出现黑边,比如,使用erdas生成了边缘为0值影像的金字塔,那么该影像在导入arcgis 中展示时也一定会有黑边现象。这种情况是由于两款软件不兼容产生的,解决办法是将原有金字塔全部删掉,使用arcgis金字塔工具全部重新创建金字塔,就不会出现黑边了。

五、 栅格计算器/Raster Calculator 去除黑边

单波段数据处理起来常常相对容易些,最常用的工具就是 栅格计算器/Raster Calculator 了。Raster Calculator 可以通过输入的Python语法的表达式,对当前数据框内的栅格图层进运算。它是个非常实用的栅格数据处理工具,如果你想 Dive In ,点 这里了解 Raster Calculator 的工作原理。

例如这个需求中仅需要一个简单表达式,使用到SetNull函数,如下所示:

其中,表达式是 SetNull("RasterLayer" == 0 , "RasterLayer" )

这样执行工具之后,所有的 0 值变成了 Nodata,彻底去了黑边。

六、影像分析去除黑边

多波段数据同样会受到黑边的困扰,而且现实情况往往没有单波段数据那么理想,仅通过一个表达式就可以搞定。例如,我们常用的影像底图数据,通常有三个波段,通过包含RGB三个波段的一组值来表示像元值,例如 (0,255,129)。我一般会根据需要处理的数据量的多少给出不同的处理方法建议:

同样第一步需要确认黑边值是什么?本例中是 (0,0,0)

ArcMap的 Windows 菜单中有 Image Analysis 。在 Image Analysis 窗口中的 Processing 部分可以对当前数据框中的图层赋予函数或函数链,从而对栅格数据实时处理。

在弹出的窗口中,在 fx行右键插入函数,例如这个需求中会使用到 Mask Function。

设置 Mask Function,(0,0,0) 组合是无效值。为什么选择 All 而不是 Any? 这个答案很显见,同时都为0的像元值才是无效值,否则不是,例如(1,255,0)是有效的。或者说各个波段的0值是and关系,而不是or。

这样带有函数的新栅格图层会自动加入 ArcMap 的 TOC,看起来万事大吉,然而这里需要说明下,这个图层需要Export到硬盘上的某个位置,它目前还是个临时数据,当layer被移除掉,这个结果就不复存在。

所以,最后重要的一步,导出数据。

这种方法,还适用于具有多种无效值的情况。例如,除了(0,0,0) 还包含 (255,255,255) :

我们需要做的仅是继续增加栅格函数。在 Function Template Editor 中函数们顺序相接,像个环环相接的链条,所以称为 ”函数链/ Function Chain“,咦,好像跑题了。请继续看如何设置无效值:

这样就实现了去掉两组无效值。

七、镶嵌数据集去除黑边

那么摆在你面前的数据不是一个,而是“很多”呢?凡事保证质量之后,重复工作多了之后就同时需要保证效率,那么这种方法适用于“很多”、“大量”……

ArcGIS 的镶嵌数据集是个理想与实用兼备的影像数据管理模型,我们用它来“处理”大量栅格数据也是个不错的选择。

在地理数据库中创建镶嵌数据集,并将数据添加到镶嵌数据集中,之后:

在镶嵌数据集中可以使用工具 Define Mosaic Dataset Nodata 工具,对数据的无效值进行定义。

从而批量去除了无效值。

镶嵌数据集本身也支持栅格函数,类似影像数据窗口中函数模板的设置,同样可以设置函数链来实现一些复杂的要求。

当然,我们在使用镶嵌数据集的时候,也可以在重建footprint的时候去除无效值。但它只适用于影像边缘值一样的情况下。

      使用 Build Footprint 工具执行系统计算得到新的轮廓线。
      重新定义轮廓线的方法有:
        RADIOMETRY:根据像素值范围来重新定义轮廓线的形状,从而排除无效数据(*辐射法重新计算轮廓线这个小专题可以展开,以后有时间可以详细整理。)
       GEOMETRY:将轮廓线的形状重新定义为其原始几何形状
       COPY_FROM_SIBLING:在使用全色锐化的栅格类型时,轮廓线将被替换为多光谱项的轮廓线。

      设置有效值区域,比如,影像位深是8位,那么设置为将像素值设置为1-255,0黑边自动去除。


本文转载来自CSDN作者:冰清-小魔鱼   版权归作者所有

原文链接:https://blog.csdn.net/lijie45655/article/details/49132627


头像被屏蔽

141

主题

980万

铜板

3万

好友

管理员

Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

积分
627184
发表于 2020-11-17 16:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

0

主题

4万

铜板

38

好友

黄金会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
4329
发表于 2020-11-18 07:39 | 显示全部楼层
谢谢分享!!
该会员没有填写今日想说内容.
回复

使用道具 举报

10

主题

2万

铜板

34

好友

黄金会员

Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23Rank: 23

积分
4394

精华勋章灌水勋章活跃勋章贡献勋章

发表于 2020-11-18 09:24 | 显示全部楼层
谢谢分享
回复

使用道具 举报

0

主题

5281

铜板

7

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
421
发表于 2020-11-18 11:31 | 显示全部楼层
:zt:zt:zt
回复

使用道具 举报

10

主题

1万

铜板

21

好友

资深会员

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

积分
3814
发表于 2021-11-13 18:00 | 显示全部楼层
谢谢分享
回复

使用道具 举报

1

主题

2738

铜板

0

好友

教授级高工

Rank: 12Rank: 12Rank: 12

积分
1473
发表于 2022-1-22 17:37 | 显示全部楼层
感谢分享                                            。
回复 支持 反对

使用道具 举报

30

主题

2万

铜板

59

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
6283
QQ
发表于 2023-3-16 16:13 | 显示全部楼层
:zt:zt:zt:zt
回复 支持 反对

使用道具 举报

3

主题

2508

铜板

1

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
1016
发表于 2023-3-16 20:25 | 显示全部楼层
谢谢分享!!
回复

使用道具 举报

0

主题

527

铜板

2

好友

助理工程师

Rank: 5Rank: 5

积分
161
发表于 2023-4-3 15:23 | 显示全部楼层
总结的很好,学习了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表