forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   Сглаживание карты высот (http://forum.boolean.name/showthread.php?t=17565)

den 25.11.2012 14:26

Сглаживание карты высот
 
Вложений: 2
Есть карта высот (heightmap). Вот пример:
Вложение 18133
На первый взгляд всё хорошо. Но если карту затопить, то на берегах видны очень неестественные неровности:
Вложение 18132
В реале они исчезли бы в результате водной эрозии. Поэтому надо всю карту сгладить. Но алгоритмов сглаживания много, поэтому прошу подсказать наиболее подходящий :)

den 25.11.2012 15:34

Ответ: Сглаживание карты высот
 
Вложений: 1
Пока что сделал примитивным способом: вокруг каждого пикселя строим квадрат, находим среднее значение на нём, и приравниваем пикселю. В данном случае размер квадрата 8:
Вложение 18134

impersonalis 25.11.2012 17:09

Ответ: Сглаживание карты высот
 
Медианный фильтр
Нужный эффект может дать (хотя он имеет иное назначение) Фильтр Гаусса (его использование можно глянуть здесь)

ABTOMAT 25.11.2012 17:59

Ответ: Сглаживание карты высот
 
Цитата:

Сообщение от Den (Сообщение 244771)
Пока что сделал примитивным способом: вокруг каждого пикселя строим квадрат, находим среднее значение на нём, и приравниваем пикселю. В данном случае размер квадрата 8:
Вложение 18134

Норм, я тут так же делал: http://forum.boolean.name/showthread.php?t=14561
Вроде вышла вкусная пица.

impersonalis 25.11.2012 18:05

Ответ: Сглаживание карты высот
 
Вы бы хоть по ссылке прошли: медианный фильтр это и есть вариация вашего велосипеда. Т.к. среднее, вообще говоря, можно считать по-разному (в зависимсоти от задачи).

WISHMASTER35 14.12.2012 19:40

Ответ: Сглаживание карты высот
 
Можно считать шум не для каждого пикселя, а для каждого четвертого, а между ними делать интерполяцию.


Часовой пояс GMT +4, время: 23:06.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot