#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, но я думаю, что Магия делает это лучше, чем то, что я вижу на ваших изображениях.