概述

本方法的目标位快速,自动,准确地提取DEM格式图像中山脊线(或山谷线),其在水文地质工程应用方面有着特殊的意义。算法基本处理流程为:

  1. 构建基于原始DEM图像的图G;
  2. 对G中各边V赋予权值;
  3. 按一定规则去除图G中环形连接边;
  4. 对步骤三进行后处理,包括末端缩减,线段平滑等;

2 图的构建

图论算法在计算机科学中扮演着很重要的角色,它提供了对很多问题都有效的一种简单而系统的建模方式。很多问题都可以转化为图论问题,然后用图论的基本算法加以解决。这里将“山脊线的判断提取”抽象为图论中最小生成树问题,可借鉴成熟的“kruskal”与“prim”方法求解问题。
对于任意图G,其是一个二元组(V,E),集合V中的元素称为图G的顶点,集合E的元素称为边。从原始DEM图像中按照预定间隔可得到M*N个采样点,即构成集合V。再将所有采样点按照8邻域或4邻域方式与邻近点连接后,得到集合E。此时,基于原始DEM图像的图G已构建完成,其中:
M = 原始图像宽/采样点间隔;
N = 原始图高宽/采样点间隔;
接下来我们将详细描述对集合E中边的“加权赋值”过程,本文一共提供三种可选方式:“高度加权”,“曲度加权”与“混合加权”。

2.1 高度

设ei为集合E中任意一条边,其端点为vi,1与vi,2,因此可得边ei权重为:Hei = (H vi,1+ H vi,2)/2。其中,H vi,1与H vi,2为对应采样点高度值。需要注意在实际情况中,由于原始DEM图像为8阶灰度,只能提供0-255共256级高程分辨率。在上述加权方法中会导致图中出现大量权重相同的边,从而使得最小生成树分支在方向上出现不可控现象。为避免这一问题,可参考文献《Approximating edges of source bodies from magnetic or gravity anomalies》提出的一种结合梯度加权的方式,将采样点权值分为高程值与梯度加权值两部分,从而拉伸其取值区间,增加图G中边ei的权重辨析度。

2.2 曲度

曲度加权计算方法如下,边{A,B}对应向量为d = [dx,dy] = A-B。A’与B’为分别为A’=A+d,B’=B-d。C为A,B的终点,则定义Kd如下:
Kd = (H B’ – HC’)-( HC’- H A’)
同理,在边{A,B}的正交方向(d ‘= [dy ,-dx])上的到Kd’如下:
Kd’ = (HC’ –H c2)-( H c1- HC’)
最终曲度权值为C{A,B} = Kd’/| Kd |,注意,边{A,B}与{B,A}是完全一致的。

2.3 混合

由于“曲度加权”对于DEM图像表面的曲度与变化更加敏感,因此可以集合考虑 “高度加权”与“曲度加权”形式,如两者乘积,或两者的加权和。


3 最小生成树

最小生成树定义为:在一给定的无向图G = (V, E) 中,(u, v)代表连接顶点u与顶点v的边(即),而w(u, v)代表此边的权重,若存在T为E的子集(即)且为无循环图,使得的w(T)最小,则此T为G的最小生成树。
该类问题的成熟方法有“kruskal”与“prim”。其中,prim算法适合稠密图,其时间复杂度为O(n^2),其时间复杂度与边得数目无关,而kruskal算法的时间复杂度为O(e*loge)跟边的数目有关,适合稀疏图。
由前面的图G构建方式可知,prim算法更适合解决本文所述问题。算法伪代码如下:


4 后处理

在得到最小生成树G’后,还可以采取“末端缩减”与“线段平滑”等步骤是的主山脊线(或山谷线)更适合人眼观测。

4.1 末端缩减

在不破坏原最小生成树连接性的前提下,缩短各连线的末端,有效剔除细节分支。基于最小生成树的末端缩减伪代码如下:

4.2 平滑

由于构建图G时采用的8邻域连接方式,“末端缩减”后的主山脊线(或山谷线)会出现大量呈45度,90度或135度的不自然的“锯齿”。可以通过加权平均的方式来解决上述问题。设当前采样点水平坐标为C_Hor,垂直坐标为C_Ver,则加权后的坐标为:
C_Hor’ = SUM(N_Hori*Wi)/SUM(Wi)
C_Ver’ = SUM(N_ Veri*Wi)/SUM(Wi)
其中,N_Hori,N_Veri为邻近点i的水平与垂直坐标,Wi为邻近点i的权值。i取值为1到8,若i对应的采样点为无效点,则N_Hori,N_Veri与Wi均为0。实际处理效果如下:


5 小结

较之PPA方法具有以下优点:
1. 可使用不同的采样点权重方法(高度,曲度与混合加权)进行处理;
2. 将问题转移到图论邻域,可直接套用成熟算法来解决问题;
3. 难很好地适应各种采样尺度与邻近位置关系(4邻域或8邻域);
4. 计算更高效;

二维灰度地形图山脊线自动提取方法整理(MST)相关推荐

  1. 二维灰度地形图山脊线自动提取方法整理(PPA)

    本文是对国立台湾大学海洋研究所张逸中博士论文<二维地球物理资料之自动化线型描绘>的学习理解 方法概述 文档介绍了两类山脊线自动提取方法(PPA与MST),此类方法的目标是快速,自动,准确地 ...

  2. 图像分割——基于二维灰度直方图的阈值处理

    前言 像素灰度值仅仅反映了像素灰度级的幅值大小,并没有反映出像素与邻域的空间相关信息. 二维灰度直方图的概念 二维灰度直方图:像素的灰度值分布和邻域的平均灰度值分布构成的二维直方图 二维直方图的值N( ...

  3. 二维码相关---java生成二维码名片,并且自动保存到手机通讯录中...

    二维码相关---java生成二维码名片,并且自动保存到手机通讯录中... 技术qq交流群:JavaDream:251572072 1.首先介绍一个api.   Zxing是Google提供的关于条码 ...

  4. 2021-03-22-TensorFlow故障诊断代码-一维信号转二维灰度图

    故障诊断代码-一维信号转二维灰度图 凯斯西储大学数据划分及灰度图转换 故障诊断代码 凯斯西储大学数据划分及灰度图转换 https://mp.weixin.qq.com/s?__biz=MzkxMzE5 ...

  5. Jenkins+Gradle+Git+Pyger+二维码搭建Android自动打包平台

    1.下载jenkins war包 从Jenkins官方网站下载最新的war包,然后在war的目录下打开cmd,执行命令:java -jar jenkins.war. 看到以下信息,就表示jenkins ...

  6. 微信二维码来源统计自动生成二维码统计?

    微信二维码来源统计,我们先来了解下渠道二维码,我们的微信公众号使用渠道二维码可以实现记录粉丝是通过二维码扫描关注并进入活动功能的统计,渠道二维码还可以让粉丝扫码后直接关注成为粉丝并直接弹出微信活动的页 ...

  7. 草料二维码提交数据自动通知企业微信

    草料二维码自动通知场景简介:通过草料二维码,可以快速的生成二维码,适用于疫情统计.人员信息认证.设备巡检等场景.当表单填写新数据.状态发生变化时,如何更高效的通知企业微信?通过腾讯云HiFlow场景连 ...

  8. java——记录一次条形码、二维码、订单自动生成的制作

    目录 条形码的生成 解决方案 生成结果如下 工具包下载 代码如下 二维码码的生成 解决方案 生成结果如下 工具包下载 代码如下 订单自动生成的制作 效果如下 源代码下载 条形码的生成 解决方案 使用j ...

  9. 免签接口 个人二维码收款系统/微信支付支付宝支付二维码监听自动发货/个人免签系统/个人免签支付 微信.支付宝 个人支付监控

    开源个人收款码免签系统 服务端和监控端全部开源,自建支付平台,安全更放心,二开更方便 没有中间商赚差价,买家扫多少,商家收多少 一.系统特色 1.1 支持 支付宝个人收款的推送通知 支付宝商家二维码的 ...

最新文章

  1. 12. MySQL简单使用
  2. HTC One 802w(联通双卡版本)刷机过程(只是记录大概的过程,网上已经有各步骤的详细过程)...
  3. js 对一个字段去重_JS单行、多行文本字符去重和行去重
  4. 【Linux】一步一步学Linux——mkdir命令(21)
  5. UWP 响应键盘组合快捷键
  6. ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表
  7. Eclipse 答疑:如何使用 Eclipse 进行断点(Breakpoints)调试?
  8. C BackgroundWorker类详细说明
  9. 用内存映射在多个应用程序之间共享数据
  10. 旅游管理系统项目java设计_基于JSP的旅游管理系统设计与实现(MyEclipse,SQL)
  11. pin与抓握手包破解wifi密码
  12. Selenium获取浏览器Network数据包
  13. 艾永亮:优衣库,究竟是怎么卖衣服的?
  14. 武汉农商行 商转公所需材料
  15. 语法长难句——并列句
  16. R语言使用order函数对dataframe数据进行排序、基于多个字段(变量)进行降序排序(DESCENDING)
  17. oracle的ofs,windows2003+oracle ofs 双机
  18. 大学物理-震动波动光学
  19. Poemscape|Beta阶段事后诸葛亮
  20. UE4-第一课:开关门基础

热门文章

  1. Chrome截取长屏图片
  2. Pikachu靶场暴力破解关卡3
  3. 【Python】创蓝253云通讯平台国际短信API接口DEMO
  4. CSS笔记 —— 美化网页
  5. 吉他大横按的学习技巧总结
  6. 职场上被人针对要不要告诉领导
  7. 东方日升再夺印度第一光伏供应商桂冠
  8. R语言第一课:R和Rstudio
  9. 用Python 80行代码实现一个微信消息撤回捕捉功能
  10. 使用webpack5自己搭建react项目脚手架(手把手教,把手伸过来,好软~呸,好手)