当前位置: 首页 > article >正文

如何把栅格图像变平滑

栅格数据获取的途径多种多样,造成了栅格数据质量的很大差异,一些质量较差的栅格数据存在大量“噪音”象元,即在表达同类型的地理要素时,出现个别像元值与周边像元不一致的情况,数据中噪音栅格象元的存在为数据的使用和分析带来了极大的不便,因此经常需要对栅格进行平滑的预处理操作。

在ArcGIS软件的空间分析工具箱中,提供了大量的栅格数据处理工具,其中对栅格数据进行平滑处理的工具在去除图像上的椒盐噪音的处理中有非常重要的作用

1. 主滤波工具

1.1 主滤波工具原理

主滤波工具的原理是根据像元邻域内的众数值来替换像元。主滤波需要满足两个条件才能发生替换。首先,相同值的邻近像元的数量必须多到可以成为众数值,或者至少一半的像元必须具有相同值。即,如果指定的是众数参数,则四分之三或八分之五的已连接像元必须具有相同的值;如果指定的是半数参数,则需要四分之二或八分之四的已连接像元具有相同的值。其次,那些像元必须与指定的滤波器的中心相邻(例如,四分之三的像元必须相同)。第二个条件与像元的空间连通性有关,目的是将像元的空间模式的破坏程度降到最低。如果不满足这些条件,将不会进行替换,像元的值也将保持不变。

在下图中,主滤波应用于输入栅格,使用最近的四个像元(四个正交的相邻像元)作为滤波器,并要求众数(四分之三的像元)值是相同的,才能更改相应像元的值。仅更改那些被三个或三个以上值相同的(正交)像元包围的像元。

输入栅格输出栅格

在下图中,应用了主滤波,使用最近的八个像元作为滤波器,并要求至少一半的值(八分之四的像元)相同,才能更改像元的值,此时的平滑效果更佳。

输入栅格输出栅格

1.2 主滤波工具应用

在“ArcToolbox工具箱——空间分析工具——栅格综合——众数滤波”路径下找到工具双击打开,工具界面如下图所示:

要使用的相邻要素数:

确定在滤波器核中使用的相邻像元数。

FOUR — 滤波器内核将是与当前像元直接相邻(正交)的四个像元。这是默认设置。

EIGHT — 过滤器内核将是距当前像元最近的八个相邻像元(3 × 3 窗口)。

替换阈值

在进行替换之前指定必须具有相同值的相邻(空间连接)像元数。

MAJORITY— 多数像元必须具有相同值并且相邻。四分之三或八分之五的连接像元必须具有相同值。

HALF— 半数像元必须具有相同值并且相邻。四分之二或八分之四的连接像元必须具有相同值。使用HALF 选项可获得更平滑的效果。

为加强栅格处理效果,可反复调用滤波工具,并将上一次输出作为下一次输入,反复处理后,栅格图像的效果会有很大改善。

2. 焦点统计工具

2.1 焦点统计工具原理

焦点统计工具也可以实现对栅格数据进行平滑的效果,且效果优于主滤波工具。该工具用于计算输出栅格数据的邻域运算,各输出像元的值是其周围指定邻域内所有输入像元值的函数。对输入数据执行的函数可得出统计数据,例如最大值、平均值或者邻域内遇到的所有值的总和。

工具在执行过程中,算法将访问栅格中的每个像元,并且根据识别出的邻域范围计算出指定的统计数据。要计算统计数据的像元称为处理像元。处理像元的值以及所识别出的邻域中的所有像元值都将包含在邻域统计数据计算中。各邻域可以重叠,因此一个邻域中的像元也可以包含在其他处理像元的邻域中。

通过下图中值为5 的处理像元可演示出焦点统计的邻域处理过程。指定一个3 x 3 的矩形像元邻域形状。邻域像元值的总和(3 + 2 + 3 + 4 + 2 + 1 + 4 = 19) 与处理像元的值(5) 相加等于24 (19 + 5 = 24)。因此将在输出栅格中与输入栅格中该处理像元位置相同的位置指定值24。

在这里插入图片描述

输入栅格输出栅格

上图演示了如何对输入栅格中单个像元执行计算。而在下图中,将显示出所有输入像元的计算结果。以黄色高亮显示的是上例中所述处理像元及其邻域。

在这里插入图片描述

输入栅格输出栅格

2.2 焦点统计工具应用

在“ArcToolbox——空间分析——邻域分析——焦点统计分析”路径下找到工具并双击打开,工具界面如下图所示“

邻域分析

邻域的形状可以是环形(圆环)、圆形、矩形或楔形。通过使用核文件,也可定义自定义邻域形状,以及在计算统计数据之前将不同的权重分配给领域中的各个特定像元。

统计类型

可用的焦点统计统计数据包括众数、最大值、平均值、中值、最小值、少数、范围、标准差和总和。默认统计类型为平均值。

处理结果对比图:

原始栅格

主滤波工具处理后的栅格

焦点统计工具处理后的栅格


http://www.kler.cn/a/156632.html

相关文章:

  • linux上海康SDK安装并设置环境变量
  • Keil基于ARM Compiler 5的工程迁移为ARM Compiler 6的工程
  • 【PowerHarmony】电鸿蒙学习记录-编写helloworld!
  • change buffer:到底应该选择普通索引还是唯一索引
  • Go语言 实现将中文转化为拼音
  • 贪心算法day03(最长递增序列问题)
  • Future.forEach异步遍历列表,Future.doWhile实现了一个无限循环,直到满足某个条件才停止
  • CGE模型应用
  • 【华为OD题库-058】矩阵中非1的元素个数-java
  • 知识点滴 - 什么是半透膜和渗透压
  • 计算机网络:传输层——多路复用与解复用
  • 十、FreeRTOS之FreeRTOS时间片调度
  • 实现简单的Spring
  • thinkphp6出现 htmlentities() expects parameter 1 to be string, array given
  • 金融帝国实验室(Capitalism Lab)官方正版游戏『2023双12特卖』
  • 微信小程序uni.chooseImage()无效解决方案
  • C#/.NET/.NET Core优秀项目和框架2023年11月简报
  • prometheus部署及与grafana结合应用
  • 使用射线单击物体显示,点击物体隐藏
  • LD_PRELOAD劫持、ngixn临时文件、无需临时文件rce
  • 人机交互——言语信息表示模型
  • NetApp EF 系列全闪存存储,为实时分析、HPC 和数据库等性能敏感型工作负载提供助力
  • 数字孪生3D场景开发工具:弥补不足,开拓全新可能
  • Linux入门攻坚——7、磁盘管理——文件系统挂载管理及RAID、LVM
  • 学生犯错误老师应该怎么教育
  • colab notebook导出为PDF