Цветовая интерполяция/сглаживание на карте высоты дискретного цвета

#image-processing #3d #gaussian #heightmap #laplacian

Вопрос:

В настоящее время я пытаюсь сгладить карту высоты 2D-мира. У меня есть несколько изображений разных 2D-миров, так что я не собираюсь делать это вручную, а скорее создам сценарий.

Образец карты высот:

Высота-карта

Как вы можете видеть, цвета не смешиваются. Я хочу смешать каждое пространство с цветом их соседей, чтобы наклон карты высот был плавным.

Что я пробовал?

  • Применение фильтра размытия, но этого недостаточно и дает плохие качественные результаты.
  • Применяю небольшие шумовые фильтры, но это даже близко не то, что мне нужно.

Пока что…

Вот что произойдет, если я применю карту высот в ее нынешнем виде без интерполяции цвета с его соседями.

введите описание изображения здесь

В результате получаются плоские поверхности, а не склоны/горы. Надеюсь прояснить свою цель.

Я считаю, что интерполяция высот с их соседями и добавление случайного шума на поверхности приведет к созданию карты высот хорошего качества.

Я ценю вашу помощь.

Бонус

У вас есть какие-либо идеи о том, как бы я создал имитированную карту нормалей из результата этой гладкой карты высот?

Комментарии:

1. Вы сказали, что пробовали использовать фильтр размытия, вы также пробовали использовать ImageMagick? Что-то вроде convert heightmap.jpg -blur 0x6 heightmap_blurred.png . Видишь legacy.imagemagick.org/Usage/blur/#blur_args .

2. @dms Я пробую лучший подход, который я нашел с помощью CImg и масштабирования изображений с возможностью интерполяции. Все еще настраиваю настройки для достижения наилучшего результата. Опубликую свой ответ, как только он будет хорошо пересмотрен.

Ответ №1:

Вы можете попробовать уменьшить размер изображения, а затем снова увеличить его, чтобы воспользоваться преимуществами интерполяции, например, на 5% от исходного размера:

 magick U0kEbl.png.jpeg -set option:geom "%G" -resize "5%" -resize '%[geom]!' result.png
 

Вот результаты для 3%, 5% и 8% от исходного размера:

введите описание изображения здесь

Комментарии:

1. Попробую это сделать! Похоже на то, что я пробовал с CImg.h, но я думаю, что Магия делает это лучше, чем то, что я вижу на ваших изображениях.