如何从rgb地图构建高程比例?

2024-05-28 23:16:31 发布

您现在位置:Python中文网/ 问答频道 /正文

对于挑战,我需要在颜色和高度之间建立一个对应的地图(见下面的地图)。 高程文件的蓝色表示海,绿色/黄色/棕色表示高程。 挑战给出的建议是:找到勃朗峰(4810米)的像素

Text

我正在使用python。 我根本不知道如何解决这个问题。我已经将地图转换为一个具有RGB值的形状(28604490,3)的numpy数组,我想将此数组转换为一个高程值以米为单位的(28604490)数组。如果你有任何建议,我会非常喜欢的


Tags: 文件numpy高度颜色地图rgb像素数组
2条回答

此处最低(最小值)为RGB颜色蓝色,最高(最大值)为棕色。 如果我们尽可能使用所有不同的颜色,并使用R、G、B作为特征,那么我们应该将它们投射到一维空间中

因此,如果R,G,B被认为是X,Y,Z三维空间,蓝色的最小值(x1,y1,z1)和棕色的最大值(x2,y2,z2)之间存在一条直线

您可以将x1、y1、z1设置为0、0、0和变换(x2、y2、z2)->;(x2-x1,y2-y1,z2-z1) 这将为您提供更简单的线性映射,您可以使用它映射到任何中间点(x3、y3、z3),前提是您知道该点距海平面的高度。这样获得的(x3,y3,z3)点只不过是R=x3,G=y3,B=z3的RGB颜色 该颜色的像素位置就是您的答案

如果同一班级的另一名学生偶然发现这个问题。关键字是颜色空间HSV。将RGB图像转换为HSV空间,并查看使用“色调”可以线性映射陆地。把水分开处理

有用资源:

from skimage.color import rgb2hsv

rgb_img = np.array(your_image)

hsv_img = rgb2hsv(rgb_img)
hue_img = hsv_img[:, :, 0]

摘自:https://scikit-image.org/docs/dev/auto_examples/color_exposure/plot_rgb_to_hsv.html

相关问题 更多 >

    热门问题