Но есть один момент, в левом углу опять идет отсчет от 0, но высота увеличивается, как это определять программно, пока неизвестно
похоже что при составлении карты высот произошло переполнение "байта" и всё сбросилось на 0
в самом простом случае можно определить область переполнения по границе перехода 0 и 255 делается это свёрткой по матрице
-1 -1 -1
-1 8 -1
-1 -1 -1
но сначала надо вычесть синий канал из зелёного
это конечно первая иттерация решения
вот что у меня получилось
для тех кому интересно что это предлагаю зелёный канал в "объёме"
после внимательного взгляда на карту высот пришёл к выводу
что altuide= red+green*256+(blue+add)*256^2
канал add получаем следующим образом
делаем свёртку по матрице
0 0 0
0 1 -1
0 0 0
результат запоминаем в дополнительный канал A1 (мы записали переход с 255 до 0)
потом прогоняем матрицу свёртки
0 0 0
-1 1 0
0 0 0
но в этот раз мы детектируем переход с 0 на 255 и записываем в канал A2
в обоих каналах заменяем всё что не 255 на 0, 255 заменяем на 1
затем берём канал ADD ( берём тип который понимает отрицательные числа)
прогоняем от 0 до х и суммируем предыдущий пиксель с каналом А1
прогоняем от х до 0 и вычитаем А2 из предыдущего пикселя
получаем канал АDD который и используем