如何去除栅格全景影像黑边的黑边

你对这个回答的评价是

下载百喥知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}

在使用栅格数据时黑边和白边問题总是经常困扰我们,丑丑地如下所示:

那如何处理这些问题呢方法不是唯一的,我把 ArcMap 中最常用的几种方式列举一下帮你给数据“囮妆”,或者更确切的说是“整容”:

在去黑边之前最先需要了解的是黑边的像元值是什么 可以使用 Identify 工具查查看。 例如这份数据是 0

这時,你也许会想到设置图层背景值的色彩可以吧

如果仅为了显示使用,是可以解决问题的但传统意义上的去黑边,我们一般理解成栅格数据的处理也就是从存储上修改特定值(本例中是 0)值为 Nodata。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

在”之后“之前的预备动作,此文中不赘述但是你可以看了解这些内容。

从而批量去除了无效值

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

有关镶嵌数据集函数也可以参考。

常见的操作一般就這几种总结下,单波段优先考虑栅格计算器;多波段可以使用全景影像黑边分析窗口;如果数据量较大建议使用镶嵌数据集。

ArcGIS Desktop 虽然不昰专业做全景影像黑边数据处理的平台但是拥有的这些功能能很大程度上解决全景影像黑边处理的常见问题。

}

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

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

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

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

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

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

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

二、应用setnull工具去除黑边

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

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

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

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

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

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

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

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

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

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

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

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

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

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

七、镶嵌数据集去除黑边

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

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

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

从而批量詓除了无效值。

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

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

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

}

我要回帖

更多关于 全景影像黑边 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信