我需要建立颜色和海拔之间的对应图。高程文件的海洋颜色为蓝色,高程文件为绿色/黄色/棕色。建议说:
找到勃朗峰 (4810 m) 的像素。
我正在使用Python。我不知道如何解决这个问题。我将地图转换为具有 RGB 值的形状为 (2860,4490,3) 的 NumPy 数组,并希望转换为具有以米为单位的高程值的 (2860,4490)。
此处最低值 (min_value) 的 RGB 颜色为蓝色,最高值 (max_value) 的 RGB 颜色为棕色。 如果我们采用所有可能的不同颜色并使用 R、G、B 作为特征,我们应该将它们投影到一维空间中。
因此,如果将 R、G、B 视为 X、Y、Z 3D 空间,则蓝色 min_value (x1, y1, z1) 和棕色 max_value (x2, y2,z2) 之间存在一条直线
您可以将 x1 y1, z1 设为 0, 0, 0 并变换 (x2,y2,z2) -> (x2-x1, y2-y1, z2-z1) 这将为您提供更简单的线性映射,您可以使用它来映射到任何中间点 (x3,y3,z3),前提是您知道该点距海平面的高度。这样获得的 (x3,y3,z3) 点只不过是您的 RGB 颜色,其中 R=x3、G=y3 和 B=z3 该颜色的像素位置就是你的答案!