查看原文
其他

去除影像黑边的N种方法

小陈 GIS前沿 2022-12-04


在影像处理过程中,有时候需要将几张小的影像图镶嵌为一张大的,但是却被黑边所阻挡,这时候就需要找到一种方法来将黑边去掉了。由于遥感影像一般都太大了,不好获取也不好处理,这里我们选用的的影像是之前用过的一个小影像,虽然是带有白边而不是黑边的,但其实方法是一样的,都是通用的。


在这里先注明下,N=7



一、使用符号系统去除



我们右键影像图层,选择属性 -> 符号系统 -> RGB 合成,勾选【显示背景值(B):(R,G,B)】,点击应用即可。



但是这种方法只是让白边不显示,并不是真正意义上的去除,白边还是存在于影像数据集中,我们在对影像不进行处理,只是用来进行目视解译的话就可以使用次方法,但若是要进行多张影像的镶嵌等就不能使用此方法了。


二、自定义去除



在影像导入之前,设置ArcMap地图属性。点击自定义→选择ArcMAP选项→栅格→栅格图层-去除背景值,勾选显示背景值。



但是,用这种方式去除黑边同用符号系统去除黑边一样只是会改变背景的显示状态,并没有对数据本身做任何改变,重新将图层加载进来时,仍会显示黑边,不过有一点好是如果有多幅影像的话,该方法可以统一全部不显示黑边,不用使用符号系统一幅一幅操作。


三、利用工具去除



这里介绍三个可以去除影像黑边的工具,一个是【复制栅格】工具,一个是【栅格计算器】工具,还有一个是【设为空函数】工具。


工具位置:

数据管理工具 -> 栅格 -> 栅格数据集 -> 复制栅格。

Spatial Analyst 工具 -> 地图代数 -> 栅格计算器。

Spatial Analyst 工具 -> 条件分析 -> 设为空函数。


1. 复制栅格工具


在使用该工具时要知道背景值是多少,白边一般是255,黑边一般是-999,为了确保正确,可以使用识别工具进行探查。




将探查结果输入到【NoData值】中,点击确认,处理得到的影像就不再有黑边了。



不过影像在处理后颜色会变浅,如果不叫在意的话可以选择不使用该方法。




2. 栅格处理器工具


在使用该工具时同样要知道背景值是多少,并在栅格处理器中输入如下公式:


  1. SetNull("公主岭市_卫图_Level_14.tif" == 255,"公主岭市_卫图_Level_14.tif")  



若是黑边就将255改为-999,具体还是要看背景值是多少。


该方法一个比较严重的问题就是,处理后得到的栅格数据集在加载进来时整体变成了灰白色,符号系统变为了拉伸显示,且不再有RGB合成这个选项。



左侧为处理前的符号系统,右侧为处理后的符号系统。




所以该方法在使用时拥有更大的限制,只能够在影像不受这一变化影响的情况下使用,最好是对单波段数据进行处理。


3. 设为空函数工具


该工具的原理同栅格处理器一样,都是将某一数值设置为Nodata(这里我们把值为255的像元设置为Nodata,若是黑边就将255改为-999,具体还是要看背景值是多少,其它像元数值保持不变)。

该工具处理后得到的栅格数据集在加载进来时同样是整体变成了灰白色,符号系统同样变为了拉伸显示,且不再有RGB合成这个选项。

所以该工具也是只能对单波段数据进行操作,如果我们得到的数据是单波段的,那这种方法再合适不过了




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



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


工具位置:数据管理工具 -> 栅格 -> 栅格属性 -> 构建金字塔



五、利用影像分析窗口去除



点击窗口,选择影像分析(Image Analysis)。



选中要编辑的影像图层→点击添加函数→在新弹出的对话框中右键标识函数→选择插入→选择掩膜函数(Mask Function)。




弹出栅格函数属性窗口,无数据转换改为【全部】,波段的无数据值,去除黑边的输入0,白边的输入255。



依次点击确定后软件会生成一个新的图层,这个图层就是我们去除了黑边的了。需要注意的是,这个图层只是临时数据,移除后需要重新处理一遍才能再出现这个效果,需要将其导出到电脑上才是你自己的数据,或者也可以选择直接在这个处理结果上进行镶嵌等操作。



六、镶嵌数据集去除黑边



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

凡事保证质量之后,重复工作多了之后就同时需要保证效率,那么这种方法适用于“很多”、“大量”……





在地理数据库中创建镶嵌数据集,其中坐标系利用导入的方式添加即可,并将数据添加到镶嵌数据集中。




之后,便可以在镶嵌数据集中使用【定义镶嵌数据集 Nodata】工具,对数据的无效值进行定义。其中NoData值的波段选择ALL_BANS,NoData值设为255(之前用识别工具探查的白边的值),勾选【合成基于各波段的NoData值】,遥感影像有3个波段,选中以后只有这三个波段的值均为255时像元才会变成NoData。

工具位置:数据管理工具 -> 栅格 -> 镶嵌数据集 -> 定义镶嵌数据集 Nodata



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

七、其他方法




- END -


Python | ArcPy批量更新图形面积
ArcGIS 基准面介绍和坐标系分类
免费下载 | ContextCapture分块OBJ模型合并与裁剪
如何做一张漂亮的高程、坡度、坡向分析图(附练习数据下载)
羊了个GIS

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存