Как построить шкалу высот из карты rgb? - PullRequest
0 голосов
/ 26 мая 2020

для задачи, мне нужно построить карту соответствия между цветами и высотой (см. Карту ниже). Файл высот имеет синий цвет для моря, зеленый / желтый / коричневый цвета для высоты. Совет, который дает задача, гласит: найдите пиксель Монблана c (4810 м)

text

Я работаю с python. Совершенно не знаю, как решить эту проблему. Я преобразовал карту в массив формы numpy (2860,4490,3) со значениями RGB, и я хотел бы преобразовать этот массив в массив (2860,4490) со значением высоты в метрах. Если у вас есть предложения или советы, мне бы очень понравилось !!

1 Ответ

2 голосов
/ 26 мая 2020

Здесь самый низкий (min_value) имеет синий цвет RGB, а самый высокий (max_value) - коричневый цвет. Если мы возьмем все возможные цвета и будем использовать R, G, B как функции, мы должны спроецировать их в одномерное пространство.

Итак, если R, G, B рассматриваются как трехмерное пространство X, Y, Z, существует прямая линия между синим 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. Местоположение пикселя этого цвета - ваш ответ!

...