【问题标题】:Algorithm that partitions landscape into connected components classified as hillsides and valleys将景观划分为山坡和山谷的连接组件的算法
【发布时间】:2021-11-03 17:23:49
【问题描述】:

我正在考虑以下问题:

给定一个 nxm 数组 h,其中包含平面中给定点的高度数据。是否存在一种算法,可以将平面中的点划分为可以按高度轮廓分类的连接区域,即一个点属于山坡还是山谷?

我完全理解这个问题没有唯一的答案,因为山坡或山谷没有硬性定义,但我认为粗略地说任何人都可以做出这样的决定,我想知道是否有算法有什么接近它的地方吗?

【问题讨论】:

  • 局部最小值应该是山谷和局部最大值山坡。从这些点开始,我会淹没其余部分,并决定属于山坡还是山谷。

标签: algorithm cluster-analysis


【解决方案1】:

遍历这些点,并计算当前点和下一个点之间的斜率。然后,遍历这些斜率,并找到所有拐点。为此-计算每对相邻斜率之间的新“斜率”/变化(就像我们对点本身所做的那样),并标记改变当前符号的那些(正/负)。符号变化之间共享的坡度包含我们的 POI,因此一个端点是山丘,另一个端点是山谷。只需查看坡度的符号'就可以确定哪个(正是山谷,因为坡度正在增加/向上弯曲,负是小山)。

【讨论】:

  • @Stef 从左到右。我将其视为一个连续的数学函数,我们被限制为一组离散的样本点。
  • 那么如果河流平行于 x 轴,这将不起作用,因为坡度会在错误的方向上?
猜你喜欢
  • 1970-01-01
  • 2016-12-13
  • 1970-01-01
  • 2019-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多