去除影像黑边的N种方法

2023-11-04

在这里插入图片描述

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

在这里先注明下,N=7图片。

在这里插入图片描述

一、使用符号系统去除

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

在这里插入图片描述

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

二、自定义去除

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

在这里插入图片描述

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

三、利用工具去除

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

工具位置:

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

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

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

  1. 复制栅格工具

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

  1. 栅格处理器工具

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

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

  1. 设为空函数工具

该工具的原理同栅格处理器一样,都是将某一数值设置为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

在这里插入图片描述

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

七、其他方法

影像黑边太顽固?GIS怎么也去不掉?!
影像出现密密麻麻小空洞的「神奇」解决办法
Global Mapper常见技巧汇总(常见格式转换,影像拼接,几何纠正…)

  • END -
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

去除影像黑边的N种方法 的相关文章

  • [转载]TF-IDF模型的概率解释

    信息检索概述 信息检索是当前应用十分广泛的一种技术 论文检索 搜索引擎都属于信息检索的范畴 通常 人们把信息检索问题抽象为 在文档集合D上 对于由关键词w 1 w k 组成的查询串q 返回一个按查询q和文档d匹配度relevance q d

随机推荐

  • 自动化测试 —— unittest框架,理论和实操双管齐下

    unittest 1 什么是Unittest框架 python自带一种单元测试框架 2 为什么使用UnitTest框架 gt 批量执行用例 gt 提供丰富的断言知识 gt 可以生成报告 3 核心要素 1 TestCase 测试用例 2 Te
  • UVA-127 纸牌游戏 题解答案代码 算法竞赛入门经典第二版

    GitHub jzplp aoapc UVA Answer 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 简单的模拟题目 暴力即可 我使用了栈记录每个堆的数量 include
  • 软件测试分级理论

    软件测试是软件工程当中不可或缺的一个过程 在软件工程中 测试者充当 虚拟用户 对软件产品进行检验 只有经过严格测试的软件产品 才能发布给用户使用 只要有软件的地方 就有软件测试 软件测试是一个包罗万象的话题 这种 包罗万象 的具体表现之一就
  • 使用streamstring实现格式化输入

    目的 在windows系统写c 项目 常用sscanf s进行格式化输入 但是在ubuntu系统上发现sscanf s不可用 只有sscanf可用 但是它是c 99 的函数了 后面查阅知道 这个sscanf s函数是微软专有的函数 不具有跨
  • 关于hibernate在实体类增加字段启动项目报错

    如果出现这种情况 有可能涉及到hibernate或者mysql的缓存 因为第一次启动失败 mysql或者hibernate已经在数据库添加相应的字段 并生成缓存 然后之后的修改 启动项目也不会成功 因为hibernate会一直访问缓存 所以
  • cmake指令基础知识

    总结 写在前面 方便查看 1 cmake指令API文档 cmake指令 2 cmake指令中的常量 cmake变量 比如设置静态库和动态库输出目录的CMAKE ARCHIVE OUTPUT DIRECTORY和CMAKE LIBRARY O
  • 都9102年了还不懂动态图吗?一文带你了解飞桨动态图

    导读 飞桨PaddlePaddle致力于让深度学习技术的创新与应用更简单 飞桨核心框架已提供了动态图 DyGraph 相关的API和文档 并且还附有Language model Sentiment Classification OCR Re
  • 24. 两两交换链表中的节点 ----链表再学习

    https leetcode cn com problems swap nodes in pairs 思路如下图 蓝绿色箭头代表我们要构建的指向 红色箭头代表原来的指向 代码如下 Definition for singly linked l
  • C++ 实现两线段是否相交、相交情况、若相交求出交点坐标

    前段时间做计算机图形学的东西 现在闲下来 对代码稍作整理 都是些实用的函数 判断是否相交 X1 Y1 X2 Y2 前线 X3 Y3 X4 Y4 后线 x y 交点坐标 相交在前线上return 1 后线return 2 交于外面return
  • MacOS:Launchd&LaunchDaemon&LaunchAgent&.plist文件编写

    launchd官方文档 gt gt 详解文章1 gt gt 详解文章2 gt gt 什么是launchd 来自于官方文档 Wikipedia defines launchd as a unified open source service
  • java 基础 之 Comparable与Comparator

    曾经去一家公司面试 上来第一道问题就是问这个 原题目大概是 给你一个Student类 实现Comparable接口 如何写这个compareTo方法 当时很蒙 因为长时间的CURD 只是用的比较多 但是基础相对薄弱 结果必然是铩羽而归 为什
  • SQUASHFS error

    when i do flashcp operation and there are some errors happen asbelow SQUASHFS error xz dec run error data probably corru
  • vue如何在页面刷新时保留状态信息

    vue如何在页面刷新时保留状态信息 本篇转载至来自简书 仅供自己学习用 1 通过本地存储 state中的数据 页面刷新成功后再次从本地存储中读取state数据 vuex中的数据发生改变时触发localStorage的存储操作 localst
  • 讲解Oracle数据库SYS密码的找回方法

    1 采用命令行方式 sqlplus nolog connect as sysdba alter user sys identified by 新密码 alter user system identified by 新密码 2 用数据库管理软
  • mybatis DATE_FORMAT 格式化时间输出

    参考 http www cnblogs com yangy608 p 3950095 html 一 在oracle中 当想把字符串为 2011 09 20 08 30 45 的格式转化为日期格式 我们可以使用oracle提供的to date
  • Vue+SpringMVC---前后端分离极简尝试

    前后端分离 的开发方式是目前WEB开发中的一个大的趋势 随着各种前后端框架的出现 加上REST编程规范慢慢深入人心 前端后端之间通过更加轻量级 简洁高效的JSON作为数据传输格式 使得一切变得开朗起来 前后端分工更加明晰 前端被赋予了更多的
  • XSS----payload,绕过,xss小游戏记录

    一 XSS 1 原理 攻击者把恶意的脚本代码注入到网页中 等待其他用户浏览 这些网页 或触发其他条件 从而执行其中的恶意代码 1 xss实例代码 test html
  • 微信小程序数据传递的几种方式,你都掌握了吗?

    1 组件传递内容给页面 给组件设置myevent事件 通过this triggerEvent myevent myEventDetail 触发该myevent事件并传递内容 在页面用onMyEventshi事件监听传递过来的数据 Page
  • 三道典型C语言题(9)

    1 改错 a void test1 char string 10 改为string 11 char str1 0123456789 strcpy string str1 b void test2 char string 10 str1 10
  • 去除影像黑边的N种方法

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