计算每个三角形的矩阵与地形的角度

时间:2017-06-28 13:05:16

标签: matlab matrix angle topography

我有一个包含地形数据的矩阵,让我们说几个山丘。我希望获得每个数据点与垂直线的角度信息。以下是两个例子:

  1. 如果我认为山脚附近的地方是完全平坦的,我的度数是90°(与垂直线成90°)。
  2. 如果我在山顶最陡的地方,我的角度可以说是50°。
  3. 为了计算这个,我想我必须连接所有地形数据,以便(至少)三个近像素形成三角形。之后我必须计算这个三角形的角度。

    我可以使用现有的算法吗?

1 个答案:

答案 0 :(得分:1)

如果您的高度图是矩阵A,那么您可以通过

近似每个内点的渐变分量(没有egdes)
  Xgrad = (A(2:end-1,3:end)-A(2:end-1,1:end-2))/2;
  Ygrad = (A(3:end,2:end-1)-A(1:end-2,2:end-1))/2;

然后将是

  deg = (pi/2 - atan(sqrt(Xgrad.^2 + Ygrad.^2),1))/pi*180;

根据您的高度图,以数字方式区分会产生“模糊”结果。也许你必须做一些模糊过滤才能产生更平滑的渐变。